软件工程: UML图绘制
软件工程中UML图形式众多,这里简单记录一下各种图表的特性和基本元素。
用例图
- 特性:从用户角度描述系统功能,并指出各功能的操作者。
- 实例:
- 元素:
- 1、执行者:执行者是指用户在系统中所扮演的角色。
- 2、用例:系统执行的一系列动作(功能)
-
3、用例间联系.
- <<Use>>:表示一个用例使用另一个用例。
- <<Extend>>:通过向被扩展的用例添加动作来扩展用例。
- <<include>>:表示一个用例的行为包含了另一个用例的行为。
类图
- 特性:UML中的对象类图(Class Diagram)与对象图(Object Diagram)表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。
- 实例:
- 元素:
-
1、类:
-
2、类间的关系
-
关联(association) :类之间的连结。
-
聚集(aggregation) :聚集是一种特殊的关联,它指出类间的“整体-部分”关系。
-
泛化(generalization) :泛化指出类之间的“一般与特殊关系”,即继承关系。父类与子类之间构成类的分层结构。
-
依赖(depending):
-
细化 (refinement):
-
-
1、类:
顺序图
-
特性: 顺序图用来描述对象间的动态交互关系。表现对象间消息传递的时间顺序。强调交互时间序。
-
实例:
-
元素:
- 顶端水平轴:参与交互的对象。可以用
对象名:类名
标示,也可以用对象名
或者:类名
表示。 - 垂直轴: 表示时间,时间推移方向自上而下。
- 垂直虚线: 表示对象生命线。即对象在这段时间里存在。
- 生命线上矩形框:表示对象在此阶段活跃
- 生命线下的:对象生命终结。
- 生命线间的连线:表示对象间消息传输的通信。需要加入
消息名
和消息参数
(可空), 有时也加入顺序号
强调消息时序。-
简单消息:仅仅表示消息在对象间传递,不考虑内部细节。
-
同步消息:消息源发出后,必须等待消息处理过程完成并返回处理结果,才能继续执行。(默认简单消息就是同步消息,
-
异步消息:不必等待即可向下执行
-
返回消息: 返回结果,用虚线箭头表示。(
msg6
)
图截自齐昌治软件工程,感觉书中所采用的箭头表示方式似乎有问题,常见的表示方式如下: -
消息可以自调用。(消息
1.1.1
) -
可以为消息设置条件。(消息
1.2
) -
消息可以对同一类多个对象发送。(消息
1.2.1
)
-
合作图
- 特性:合作图也称协作图,用于描述相互合作对象间的交互关系和链接关系。强调交互链接关系,。
- 实例:
- 元素
- 方框: 参与交互的对象,表示方法与顺序图一样,但可以自由占位。
- 方框间的横线:消息传输的通道。消息由
名称
、参数
、返回值
、***
组成。返回值
,***
可选。
- 顶端水平轴:参与交互的对象。可以用
状态图
- 特性: 状态图(State Diagram)用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。
- 实例:
图截自上课PPT,感觉状态间的迁移信息标注格式有问题,具体格式见下凡 - 元素:
-
1、状态:对象执行了一系列活动的结果,当某个事件发生后,对象状态可能产生变化。
- 初态:状态图的起始点,一个状态图只能有一个初态。
- 终态:状态图终点,终态可以有多个。
- 中间状态:包含3个区域(
名字域
、状态变量
和活动域
)- 状态变量:表示状态图显示类的属性。
- 活动:列出该状态执行事件和动作。
- entry事件:进入该状态时的动作。
- exit事件:退出该状态时的动作。
- do事件:在该状态中的动作。
- 复合状态:可以进一步细化的状态。
-
2、事件:事件是激发状态迁移的条件或者操作。
事件一般作为信息的一部分附加在状态转移边上。一般形式为事件名(事件参数)[条件表达式]/动作
(都是非必须的)。- 事件名: 引发状态迁移的触发事件。
- 条件表达式:状态迁移的条件。
- 动作:状态迁移过程中所要执行的功能。
-
1、状态:对象执行了一系列活动的结果,当某个事件发生后,对象状态可能产生变化。
活动图
- 特性: 活动图是由状态图变化而来的。活动图描述了系统中各种活动的执行的顺序。刻化一个方法中所要进行的各项活动的执行流程。
- 实例:
- 元素:
- 活动: 构成活动图的核心元素,是具有内部动作的状态。由隐含的事件触发活动的转移。
个人认为是状态图中状态的扩展 - 转移: 移描述活动之间的关系, 连接各类活动,用带箭头直线表示.
- 泳道: 一种活动分组机制, 聚合一组活动。
- 等等
- 活动: 构成活动图的核心元素,是具有内部动作的状态。由隐含的事件触发活动的转移。
- 好的资料