看网上有很多关于 UML 图的介绍,但都不完整,于是参考了一些 UML 书籍、博客、视频、官网,并基于最新的 UML 2.5 版本(涵盖了 UML 14 种图),总结了这篇文章,希望能给系统分析设计的同学一点参考。
上篇《一文读懂14种 UML 图业务建模&系统分析的设计方式(上)》中,讲解了前7种 UML 核心图的结构和设计示例,偏向于操作介绍,下篇将继续讲解另外7种动态行为图及其案例。
组成要素 | 符号 | 作用 |
参与者 | 通过系统边界与系统进行有意义交互的外部实体, 用一个小人表示 注意,参与者位于系统边界之外,而不是系统的一部分 | |
用例 | 系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用椭圆表示 用例是参与者在系统中做某件事从开始到结束的一系列活动的集合。是外部可见的系统功能,对系统提供的服务进行描述。 | |
系统边界 | 用于描述系统边界,用一个长方形框表示 | |
注释 | 用于注释,通过虚线连接 | |
关系 | 包含关系 | 包含关系。表示参与者与参与者之间、参与者与用例之间、用例与用例之间的联系。 由一个带箭头(非三角箭头)的虚线表示,虚线中间有 <<include>>,由基用例(整体)指向被包含用例(部分) |
扩展关系 | 扩展关系。由一个带箭头(非三角箭头)的虚线表示,虚线中间有 <<extend>>,由扩展用例指向基用例 例子 | |
泛化关系 例子: 参与者之间的泛化关系 用例之间的泛化关系 | 泛化关系。表示子父关系,由子对象指向父对象,这里的对象可以是参与者,也可以是用例。 由一个带“空心三角箭头”的实线表示,由子对象(参与者或用例)指向父对象(参与者或用例) | |
关联 | 一般用于参与者和用例之间的关联 | |
注释连接 | 用于连接注释块 |
组成元素 | 符号 | 作用 |
活动/动作 | 表示流程中的动作,一般用一个一个动词短语表示 | |
对象 | ||
发送事件 | ||
接受事件 | ||
分区(泳道) | 活动分区用于识别具有相同特性的一组动作,这些动作被放入相同的区间 分区之间没有顺序,不同分区中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线 在业务模型或需求中,往往按照组织机构的单位或系统角色进行分区,一个单位或角色负责分区中所有节点的行为。而在设计模型中,可以按照不同的类(或构件)进行分区,一个类(或构件)负责执行该分区中所有节点的行为。分区条可以水平或垂直放置,各个动作按照其执行主体放到相应的分区中,这样可以很清楚地界定动作的执行主体。 | |
决策点 |
在实际使用时,由三个元素组成,分别是菱形(决策点)、箭头和条件。 其中箭头分为两种:一种是进入箭头(由外指向菱形);还有一种是离开箭头(由菱形指向外面),离开箭头上都有一个条件,用来表示满足什么条件的时候执行该转换 | 在活动图中,对于同一个触发时间,可以根据不同的条件转向不同的活动,每个可能的转移是一个分支(branch) |
分叉/合并 | 元素 水平方向 垂直方向 | 用于分开或汇聚控制流 |
起点 | 活动开始节点 | |
终点 | 活动结束节点 | |
流结束 | 活动子流程节点 | |
控制流 | 控制流用来连接两个动作或控制节点,前一个节点动作执行完成后,通过控制流进入下一个动作。控制流不传递对象或数据,只传递控制令牌,源节点所有令牌都将会传递给目标节点 | |
对象流 | (在 UML 1.x 中为虚线) | 对象流连接一个动作节点和一个对象节点(或直接连接两个对象引脚),用来传递对象或数据,表示源动作“生产”对象,或由目标动作“消费”对象 |
组成元素 | 符号 |
状态(Stage) | |
浅度历史(Shallow History) | |
深度历史(Deep History) | |
选择(Choice) | |
初态(Initial State) | |
终态(Final State) | |
转移(Transition) | |
分叉/合并(Fork/Join) |
组成元素 | 符号 |
对象/生命线 (Object/lifeline) | |
交互片段 (Interaction Frame) | UML 2 中新增 |
执行发生 (Execution Occurrence) | |
状态不变式 (State Invariant) | |
同步消息 (Synchronous Message) | |
异步消息 (Asynchronous Message) | |
返回消息 (Return Message) | |
创建消息(Create Message) |
组成元素 | 符号 |
对象/生命线 (Object/Lifeline) | |
链接 (Link) | |
同步消息 (Synchronous Message) | |
异步消息 (Asynchronous Message) | |
返回消息 (Return Message) |
组成元素 | 符号 |
状态/条件实践线 (State/Condition Timeline) | |
取值生命线 (General Value Lifeline) | |
生命线 (Lifeline) | |
消息 (Message) |
组成元素 | 符号 |
片段(Frame) | |
交互引用(Interaction Use) | |
决策点(Decision) | |
起点(InitialNode) | |
终点(FinalNode) | |
控制流(ControlFlow) |