导图社区 UML思维导图
UML简介:统一建模语言(Unified Modeling Language)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言
编辑于2019-05-05 11:20:49UML
软件工程与UML概述
软件工程生命周期五阶段
需求捕获
系统分析与设计
系统实现
测试
维护
建模的目标
便于开发人员展现系统
允许开发人员指定系统的结构和行为
提供指导开发人员构造系统的模板
记录开发人员的决策
建模四远测
玄策建立什么样的模型对如何发现和解决问题有重要影响
每个模型可以有多种表达方式
最好的模型总是能够切合实际
孤立的模型是不完整的
建模方发
基于算法方法建模
面向对象建模
UML的组成
视图
视图是表达系统的某一方面特征的UML建模元素的子集,视图不是图,它是由一个和多个图组成的对系统某个角度的抽象。
用例视图
逻辑视图
并发视图
组件视图
配置视图
图
图是模型元素集的图形表示,通常由关系(弧)和其他模型元素(顶点)构成。
用例图
类图
对象图
时序图
协作图
状态图
活动图
组件图
配置图
模型元素
模型元素代表面向对象中的类,对象,接口,消息和关系等概念。
通用机制
用于表示其他信息,如注释,模型元素的语义等。
UML的两套建模机制
静态建模机制
用例图
类图
对象图
包
组件图
配置图
动态建模机制
消息
状态图
时序图
协作图
活动图
UML语言初览
视图
RUP4+1
4
逻辑视图
实现视图
进程视图
配置视图
1
用例视图
UML视图
逻辑视图
组件视图
并发视图
配置视图
用例视图
事物
结构事物
类
具有相同属性、相同方发、相同语义和相同关系的一组对象的集合。
一个类可以实现一个和多个接口。
接口
类或组件所提供的、可以完成特定功能的一组操作的集合。
用例
定义了系统执行的一组操作,对特定用户产生可以观察的结果。
协作
定义了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的动作。
活动类
指类对象具有一个或多个线程或进程的类。
组件
物理上可替换的,实现了一个或多个接口的系统元素。
节点
一个物理元素,它在运行时存在,代表一个可计算的资源,如一台数据库服务器。
行为事物
交互
在特定上下文中的一组对象,为共同完成一定的任务而进行的一系列消息交换所组成的动作。
状态机
对象的一个或多个状态的集合。
组织事物
包
一种有组织地将一系列元素分组的机制。
辅助事物
注释
关系
has a
关联关系
结构化的关系,指一种对象和另一种对象有联系
单向关联(导航关联)
双向关联
聚合关系
表示类与类之间的关系是整体和部分的关系
聚合
共享聚合
部分方的对象可同时参与多个处于整体方对象的构成
组合(复合聚合)
部分与整体共存,整体不存在了部分也消失
use a
依赖关系
描述两个模型元素之间的语义关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变,将影响依赖与它的元素
包含关系(include)
扩展关系(extend)
is a
泛化关系
定义了一般元素和特殊元素之间的分类关系
普通泛化
没有给泛化添加约束
受限泛化
给泛化关系附加约束条件
实现关系
将类与接口连接起来,接口是行为的说明而不是结构或者是新,实现由类完成。
图
结构行为图
类图
对象图
用例图
组件图
配置图
动态行为图
状态图
活动图
时序图
协作图
通用机制
修饰
注释
规格说明
通用划分
型——实例
接口——实现
扩展机制
用例视图
参与者
定义
系统外部的一个实体(任何事物或人),以某周方式参与了用例的执行过程。
确定参与者的方法
谁或为什么使用该系统
交互中,它们扮演什么角色
谁安装系统
谁启动和关闭系统
谁维护系统
与该系统交互的是什么系统
谁从系统获取信息
谁提供信息给系统
有什么事发生在固定时间
注意事项
参与者对于系统而言总是在外部的,因此它们在你的控制之外
参与者直接同系统交互,这可以帮助定义系统边界
参与者表示人和事物与系统发生交互时所扮演的角色,而不是特定的人或特定的事物
一个人或事物在与系统发生交互时,可以同时或不同时扮演多个角色,如研究生担任助教,他既是学生又是助教。
每一个参与者需要有一个具有业务一样的名字
每个参与者必须要有简短的描述
像类一样,参与者可以具有分栏,参与者的属性和它可以接受的时间。
参与者间的关系
泛化关系
用例
定义
用例是一个系统或一个应用的一种单一的使用方式所作的描述,是关于单个活动者在与系统对话中所执行的处理行为的称述序列。
用例是对系统的用户需求(主要是功能需求)的描述
识别用例
特定参与者希望系统提供什么功能
系统是否存储和检索信息,如果是,这个行为由那个参与者触发
当系统改变状态时,通知参与者吗
存在影响系统的外部事件吗
是哪个参与者通知系统这些事件
参与者,用例间的关系
关联关系
参与者与用例之间的关系通常用关联关系来描述。
泛化关系
一个用例可以被特别列举为一个或多个子用例
包含关系
基础用例的行为包含了包含用例的行为,基础用例可以看到包含用例,并依赖于包含用例的执行结果,但二者不能访问对方的属性。
发生情况
两个以上的用例有重复的功能,则可将重复的功能分解到另一个用例中,其他用例可以和这个用例建立包含关系。
一个用例的功能太多,可以用包含关系创建多个子用例。
扩展关系
一个用例可以被定义为基础用例的增量扩展,扩展关系十八新行为插入到已有用例的方发。
用例图建模技术
对语境建模
建模步骤
1.识别参与者
需要从系统中得到帮助以完成其任务的组
执行系统功能时所必需的组
与外部硬件或其他软件系统进行交互的组
为了管理和维护系统而执行某些辅助功能的组
2.将类似的参与者组织成泛化/特殊化的结构层次
3.在需要加深理解的地方,为每个参与者提供一个构造型。
4.将参与者放入到用例图中,并说明参与者与用例图之间的通信路径。
对需求建模
建模步骤
1.识别系统外部的参与制,从而建立系统的语境
2.考虑每一个参与者期望的的行为或需要系统提供的行为
3.把公共行为命名为用例
4.确定供其他用例使用的用例和扩展其他用例的用例
5.在用例图中对这些用例、参与者和他们间的关系建模
6.用描述非功能需求的注释修饰用例图。
用例粒度
静态图
类图
定义
类图时描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构
7个元素
类
类是一组具有相同属性、操作、关系和语义的对象进行描述。
三部分
名称部分
属性部分
属性的语法
【可见性】 属性名 【:类型】【=初始值】【{属性字符串}】
操作部分
操作的语法
【可见性】 操作名【(参数表)】【:返回类型】【{属性字符串}】
接口
协作
依赖关系
依赖表示两个或多个模型元素之间语义上的关系。
它只将模型模型原色本身链接起来,而不需要用一组实例来表达它的意思。
4种基本依赖型
使用依赖
5种使用依赖关系
使用<<use>>
调用<<call>>
参数<<parameter>>
发送<<send>>
实例化<<instantiate>>
抽象依赖
3种抽象依赖关系
跟踪trace
精化refine
派生derive
授权依赖
3种授权依赖关系
访问access
导入import
友元frient
绑定依赖
1种绑定依赖关系
绑定bind
泛化关系
泛化是一种存在于一般元素和特殊元素之间的分类关系。
关联关系
关联是描述一组具有共同结构特征、行为特征、关系和语义的链接。
关联的6种修饰
名称
角色
多重性
约束是UML三大扩展机制之一,多重性是其中一种约束
关联的多重性是指有多少对象可以参与该关联,多重性可以表示一个取值范围,特定值,无限定的范围或一组离散值。
6种多重性语法
0
恰为0
0..1
0或1
0..n
0或更多
1
恰为1
1..n
1或更多
n
0或更多
聚合
组合
导航性
单向关联
双向关联
实现关系
实现是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来。
两种表示方法
两个共同元素
注解
约束
概要图
作用
对系统的词汇建模
对简单的协作建模
对逻辑数据库模式建模
类图建模技术
对简单协作建模
对逻辑数据库模式建模
正向工程
逆向工程
对象图
对象图表示某一时刻某一组对象以及他们之间的关系的图。
对象图建模过程
确定参与交互的各对象的类,可以参照相应的类图和交互图
确定类间的关系,如依赖、泛化、关联和实现
针对交互在某特定时刻各对象的状态、使用对象图为这些对象建模
建模时,系统分析师要根据建模的目标,绘制对象的关键状态和关键对象之间的关系。
包图
包图是由包与包之间的关系构成,它是维护和控制系总体结构的重要建模工具。
包的名字
简单名
包的扩展形式
路径名
包拥有的元素
包是对元素进行分组的机制,所以可以拥有UML种的其他元素
包内元素的可见性
包之间的关系
引入和访问依赖
泛化
标准元素(通过标记值来增加包的特性)
虚包
一个只引用其他包内元素的包
框架
一个主要由模式构成的包
桩
一个作为另一个包的公共内容代理的包
子系统
正在建模种的整个系统的独立部分的包
系统
正在建模中的整个系统的包
交互图
时序图
时序图描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。
4个元素
对象
时序图中的对象在交互中所扮演的角色
生命线
表示时序图中的对象在一段时间内的存在
激活
描述对象的激活和去激活
消息
消息是定义交互和协作种交换信息的类,用于对实体间的通信内容建模
消息可以是信号,明确的,命名的,对象间的异步通信,也可以是调用,有返回控制机制的操作的同步调用。
消息符号
对象的创建和撤销
创建(注意箭头指的位置)
撤销
协作图
协作图是动态图的另一种表现形式,它强调参加交互的各对象结构的信息。
元素
对象
链
六种符号
消息
消息具有序号,来表明其时间顺序。
时序图与协作图的异同
同
主要元素
消息
类角色
规定责任
直观得规定了发送对象和接受对象的责任
支持消息
支持所有的消息类型
衡量工具
衡量耦合性的工具。
异
协作图不能表示对象的创建与撤销的情况,只由存在与不存在
协作图不能表示对象的激活和去激活的情况
时序图与协作图的描绘方式不同
状态图和活动图
状态图
展示状态与状态转换的图
一个状态图表示一个状态机
状态机的构成
状态
表示一个模型在其生存期内的状况,一个状态的生存期是有限的一个时间段。
转换
两个不同状态之间的联系,事件可以出发状态之间的转换。
事件
某个时间产生的,可以触发状态转换的部分。
活动
状态机种进行的一个非原子的执行,由一系列动作组成。
动作
一个可执行的原子计算,它导致状态的变更或者返回一个值。
包含内容
状态
状态的五个组成部分
名字
入口/出口动作
表示进入/推出这个状态时所执行的动作。
语法:
entry/执行的动作或序列
exit/执行的动作或序列
内部转换
内部转换是不会引起状态变化的转换,此状态的触发不会导致状态的入口/出口动作被执行。
定义内部转换的原因是有时候入口/出口动作是显得多余的。
语法:
事件/动作表达式
延迟事件
延迟事件该状态下暂不处理,但将推迟到该对象的另一个状态下事件处理队列。
缓存到事件队列中,等到合适的事件处理。
子状态
包含子和状态的状态称为符合状态
顺序子状态
并发子状态
转换
转换是状态间的关联。
转换的五个部分
源状态
目标状态
触发事件
引起转变的事件
监护条件
满足监护条件则转换有效,否则不发生转换
动作
转变激活时执行的动作。
对反应型对象建模时一般使用状态图
反应型对象
一个为状态图提供语境的对象
特点
响应外部事件
具有清晰的生命期
当前行为和过去行为存在着依赖关系
在对某事件做出反应后,他又会变为空闲状态,等待下一个事件。
建模步骤
识别一个要对其生命周期进行描述的参与行为类
对状态建模
对事件建模
对动作建模
对建模的结果进行精化和细化
活动图
展现参与行为的类的活动或动作
活动图与流程图的区别
1
流程图着重描述处理过程,它的主要控制及结构是顺序,分支和循环
活动图描述的是对象活动的顺序关系所遵循的规则,着重表现系统的行为
2
活动图能够表示并发活动的情形
3
活动图是面向对象的
流程图是面向过程的
包含元素
动作状态
活动图最小的构造快,表示原子动作
是状态的入口动作
活动状态
和动作状态不同,活动图可以由入口动作和出口动作,也可以有内部转移。
动作状态是活动状态的一个特例,如果活动状态只包括一个动作,就是动作状态。
动作流
当一个状态结束时,状态会转移到下一个状态。
分支与合并
分叉与汇合
泳道
对象流
状态图与活动图的异同
活动图强调对已有几个对象参与的活动建模
状态图更强调对单个反应型对象进行建模