系统架构师——统一建模语言(UML)
UML概念:
- UML 是一种语言:为软件开发人员之间提供了一种用于交流的词汇表和一种用于软件蓝图的标准语言。
- UML 是一种可视化语言:UML 只是一组图形符号,它的每个符号都有明确语义,是一种直观、可视化的语言。
- UML 是一种可用于详细描述的语言:UML 所建的模型是精确的、无歧义和完整的,因此适合于对所有重要的分析、设计和实现决策进行详细描述。
- UML 是一种构造语言:UML 虽然不是一种可视化的编程语言,但其与各种编程语言直接相连,而且有较好的映射关系,这种映射允许进行正向工程、逆向工程。
- UML 是一种文档化语言:它适合于建立系统架构及其所有的细节文档。
UML 的结构
UML 由构造块、公共机制和架构三个部分组成。
公共机制
(1)规格说明:事物语义的细节描述,他是模型真正的核心
(2)修饰:通过修饰来表达更多信息
(3)公共分类:类与对象、接口与实现
(4)扩展机制:允许添加新的规则
架构
UML 对系统架构的定义是:系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则,这些提供系统设计的信息。而具体来说,就是指 5个系统视图。
- 逻辑视图:以问题域的语汇组成的类和对象集合。
- 进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例。
- 实现视图:对组成基于系统的物理代码的文件和组件进行建模。
- 部署视图:把组件物理地部署到一组物理的、可计算的节点上。
- 用例视图:最基本的需求分析模型。
构造快
事物
1、结构事物:通常是UML的静态部分、概念描述或者是物理元素。对应到代码中,结构事物就是类、接口。
2、行为事物:是UML图的动态部分,包括了交互(Interaction)、状态机(State Machine)和活动(Activity)。
- 交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接
- 状态机:描述事物或交互在生命周期内响应事件所经历的状态序列
- 活动是描述计算机过程执行的步骤序列,注重步骤之间的流而不关心哪个对象执行哪个步骤。
3、分组事物:是UML模型的组织部分。在所有的分组事物中,最主要的是包(Package)。结构事物、行为事物乃至于其他的分组事物都能放进包内。
4、注释事物:是UML模型的解释部分,这些解释事物用来描述、说明和标注模型的任何元素。注解(Note)是其中一种主要的解释事物。
关系
图
可以分为结构图和行为图或者分为动态图和静态图
用例图
描述了一组用例、参与者与他们之间的关系;用于需求分析阶段
该图的内容是系统和外部的交互关系。是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元
主要作用:
- 捕获需求。描述功能需求、行为需求(系统要完成什么任务)
- 分析需求。明确类和对象,建立之间的关系
用例图的基本组成元素:参与者、用例、元素之间的关系。
- 参与者:与系统接口的任何事物或人,包括用户、组织、外部系统、时间等
- 用例: 功能单元,是对系统行为的动态描述
- 包含和扩展:用例之间的关系
- 包含关系:一个用例包含或依赖于另一用例,用<< include >>或者<< use >>表示;
- 扩展关系:一个用例对另一用例行为的增强,用<< extend >>表示;
- 泛化关系
- 通信关联:表示的是参与者和用例之间的关系,或用例与用例之间的关系。用箭头表示;
用例建模流程:
- 识别参与者
- 合并需求获得用例
- 细化用例描述
- 调整用例模型(可选)
类图和对象图
类图:描述一组类、接口、协作和他们之间的关系
对象图:描述一组对象及他们之间的关系,描述了在类图中所建立的事物实例的静态快照
类之间的关系:
① 依赖关系:使用带箭头的虚线表示依赖关系。
② 泛化关系:描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,使用带空心箭头的实线表示,箭头指向父类。
③ 关联关系:表示两个类之间存在某种语义上的联系。提供了通信的路径,它是所有关系中最通用的、语义最弱的。用一条实线来表示关联关系。
④ 实现关系:用来规定接口和实现接口的类或组件之间的关系的。用一个带空心箭头的虚线表示。
多重性问题: 用来说明关联的两个类之间的数量关系,包括0…1;0…;1…1;1…;*。
构件图
是面向对象系统的物理方面进行建模要用的两种图之一。它可以有效地显示一组构件,以及它们之间的关系。构件图中通常包括构件、接口及各种关系。
通常构件指的是源代码文件、二进制代码文件和可执行文件等。而构件图就是用来显示编译、链接或执行时构件之间的依赖关系的。
使用构件图完成以下工作:
- 对源代码进行建模:这样可以清晰地表示出各个不同源程序文件之间的关系。
- 对可执行体的发布建模:将清晰地表示出各个可执行文件、DLL 文件之间的关系。
- 对物理数据库建模:用来表示各种类型的数据库、表之间的关系。
- 对可调整的系统建模:例如对应用了负载均衡、故障恢复等系统的建模。
部署图
也称为实施图,它和构件图一样,是面向对象系统的物理方面建模的两种图之一。构件图是说明构件之间的逻辑关系,而部署图则是在此基础上更进一步地描述系统硬件的物理拓扑结构及在此结构上执行的软件。部署图可以显示计算结点的拓扑结构和通信路径、结点上运行的软件构件,常用于帮助理解分布式系统。
交互图
表示各组对象如何依某种行为进行协作的模型。通常可以使用一个交互图来表示和说明一个用例的行为。在 UML 中,包括 3 种不同形式的交互图,强调对象交互行为顺序的顺序图,强调对象协作的通信图(协作图),强调消息的具体时间的定时图
顺序图
用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
对象间的通信通过在对象的生命线间画消息来表示。消息的箭头指明消息的类型。
活动图
活动图既可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。
活动图是由状态图变化而来的,它们各自用于不同的目的。
活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。
状态图
用来描述一个特定对象的所有可能状态及其引起状态转移的事件。
大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为。
一个状态图包括一系列的状态及状态之间的转移。
- 状态:又称为中间状态,用圆角矩形框表示;
- 初始状态:又称为初态,用一个黑色的实心圆圈表示,在一张状态图中只能够有一个初始状态;
- 结束状态:又称为终态,在黑色的实心圆圈外面套上一个空心圆,在一张状态图中可能有多个结束状态;
- 状态转移:用箭头说明状态的转移情况,并用文字说明引发这个状态变化的相应事件是什么。
通信图
用于描述相互合作的对象间的交互关系和链接关系。
顺序图着重体现交互的时间顺序,通信图则着重体现交互对象间的静态链接关系。
定时图
表示的交互具有很强的时间特性,着重表示定时约束的定时图。
系统架构师——统一建模语言(UML)相关推荐
- 软考初级程序员易错题:在统一建模语言 (UML)中,( )展现了 一组对象以及它们之间的关系, 给出了系统的静态设计视图或静态进程视图,描述了( )中所建立的事物 实例的静态快照。
在统一建模语言 (UML)中,( )展现了 一组对象以及它们之间的关系, 给出了系统的静态设计视图或静态进程视图,描述了( )中所建立的事物 实例的静态快照. 知识点: 统一建模语言 (UML) 问题 ...
- 软件工程结构化建模的方法和工具_系统架构师之——软件开发方法
不管你是开发人员,还是互联网行业人员,基本上经常看到各种各样的软件相关的图,如什么架构图什么设计图什么模式图甘特图等.很多时候总是傻傻分不清.对此,我们很有必要对系统开发基础知识有认知.对于一名程序员 ...
- 软考-系统架构师大纲思维导图+真题下载
真题+大纲 = 顺利通过 [真题下载地址(点击下载)] 系统架构师-大纲 科目1:信息系统综合知识 1. 计算机软件与网络基础知识 1.1 操作系统 操作系统的类型和结构 操作系统基本原理 网络操作系 ...
- 【软考系统架构设计师】2009年下系统架构师论文写作历年真题
[软考系统架构设计师]2009年下系统架构师论文写作历年真题 2009年下系统架构师论文写作历年真题 [软考系统架构设计师]2009年下系统架构师论文写作历年真题 2009年下系统架构师试题一(DSS ...
- 统一建模语言(UML) 版本 2.0
原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UM ...
- 系统架构师学习笔记-面向对象方法
目录 基本概念 统一建模语言(UML) 基本概念 对象(Object):它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位. 类(Class):它是具有相同属性和方法的一组对象的集合. 继承 ...
- 系统架构师(八)系统分析与设计方法
定义问题与归结模型 软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型.定义问题的过程包括:理解真实世界中的问题和用户的需 ...
- [架构之路-5]:架构师 - 中国计算机技术职业资格(软考)考试是如何定义系统架构师?
目录 第1章 中国计算机技术职业资格(软考)等级 第2章 考试要求与技能要求 第3章 关于题型与分值 第4章 教材内容 第1章 操作系统 1 第2章 数据库系统 30 第3章 数据通信与计算机网络 1 ...
- 系统架构师具备的能力和构架师自我培养过程
2019独角兽企业重金招聘Python工程师标准>>> 系统架构师具备的能力 一般来讲,系统架构师应该拥有以下几方面的能力: 1:具备 8 年以上软件行业工作经验: 2:具备 4 年 ...
最新文章
- 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》
- 正面迎战英特尔,英伟达要和博世一起卖自动驾驶系统
- Bootstrap(8) 路径分页标签和徽章组件
- 【OpenCv】Cannot parallelize deblocking type 1, decoding such frames in sequential order
- 01-复杂度2 Maximum Subsequence Sum (25 分)
- python百度翻译接口_python3 调用百度翻译API翻译英文
- Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
- HTML fieldset控件
- MySQL学习-连接查询
- 如何在Shell脚本中漂亮地打印JSON?
- centos7下使用git提交代码
- 指定火狐浏览器安装位置
- SQL Server 设计开发系列(文章索引)
- 基于Scrapy+MySQL爬取国家药监局100w+数据踩坑记录
- Itunes降级(卸载+安装)+苹果软件降级安装(爱思+ITunes)
- 静态HTML网页设计作品——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
- 第六届“蓝帽杯”全国大学生网络安全技能大赛-初赛Writeup
- 阿里天池比赛——地表建筑物识别
- 电信诈骗瞄准“徐玉玉”们,扣问网络安全教育短板
- 前端访问nginx发布的视频文件,实现在线播放