【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram

一、活动图

1、简述

活动图和流程图很相似,但是流程图不属于UML图的一种。
类图是一种静态图,属于结构建模;活动图是一个动态图,属于行为建模。

2、元素

2.1 开始、结束、判读、活动、合并

流程图的元素很简单:圆表示开始或结束、圆角矩形框表示一个行为节点(活动)、菱形表示判断分支、箭头线表示流程走向。如下图所示:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no

活动图的示例如下,和流程图的不同点:开始和结束的表示方法、用于判断的菱形中文字描述没有在菱形里面、和判断对应的有合并菱形。
【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram_第1张图片

2.2 泳道、分叉

泳道:将不同的角色使用类似游泳比赛的泳道划分到不同方格里,可以很好的区分参与者;
分叉:菱形判断分支一次只能走一个分支,使用“粗短棒”可以引出多个分支,对应的还有汇合
【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram_第2张图片

2.3 对象

活动图中也有对象的概念,即某个活动产生的结果,使用方框表示。对象可以是活动的输出、也会是下个活动的输入。活动使用动词短语表示、对象使用名词表示

3、使用活动图的建议

1)一张活动图无法表示整个项目流程;
2)一张活动图只表示一个事情;
3)思考一个活动的所有参与者,主角有哪些;
4)先画正常情况的主干,后补充异常情况;
5)主干中的活动对应的主角是谁
6)逐步增加分支,很复杂的分支可以使用文字描述来代替
7)适当控制活动的粒度
8)先画出当前情况的流程,再画优化后的流程,比对前后差异

二、状态机图

1、简述

活动图是对行为流程的描述;状态机图是对属性值(状态)变化的描述。

2、元素

开始:使用实心圆表示
结束:使用圆环表示
状态:使用圆角矩形表示
状态转换:使用箭头表示

状态机图没有泳道的概念
【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram_第3张图片

3、建议

1)可以同时使用活动图和状态机图,从不同角度分析问题
2)尝试用状态图表达出当前流程的情况
3)注意不要用活动图的思维去分析状态机图

三、顺序图

1、简述

顺序图也称为序列图。顺序图的每一竖表示一种角色,读顺序图时,从左到右、从上到下一次了解事情的发生过程。

2、元素

对象:每一竖表示一个对象,在上面用文字描述对象的名称,一般用“[对象名]:类名”的格式表达。
生命线:对象下面的虚线
激活框:生命线上的细高矩形,也称为会话
消息:实线箭头
返回值:虚线箭头
循环、条件、可选分支:使用框将这段顺序框住
【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram_第4张图片

【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram_第5张图片

四、活动图、状态机图、顺序图取舍

如果事情是围绕某个东西展开,优先尝试使用状态机图;
如果没有复杂的流程,优先考虑使用顺序图;
如果有复杂的流程,优先考虑使用活动图;

顺序图强调对象之间的信息传递、事情发生的时间顺序;
活动图强调某件事情的流程分支;
状态机图强调某件事情本身的状态变化。

你可能感兴趣的:(设计模式,uml)