《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)

时间:2022-06-30 17:23:41

说明:

《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网上书城及书店销售,欢迎你的关注。

------------------------------------------------------------------------------------------------------------------------------

第1章 大话UML

摘要:你只需要阅读完本章,就能从宏观上掌握UML的知识,在你的脑袋中形成一张UML的蓝图。你能全面了解UML的基本知识,UML的各种图的用途和概况,你能和实际工作遇到的问题联系起来,帮助你进一步规划下一步的学习。

1.3 行为型的UML(Behavior Diagram) 

活动图、状态机图、顺序图处于三种不同的角度来描述流程,是分析业务流程的三种不同利器,下面将会逐一说明。

活动图(Activity Diagram)

我们将起床到出门上班这个过程画成活动图,可能是这样的:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.7 起床到出门上班的活动图

活动图中的一个圆边框框表示一个“活动”,多个活动之间的带箭头线条表示活动的先后顺序,该图只是表达了一个顺序流程,活动图还可以表达分支结构。如果你以前曾学过流程图的话,你会发现活动图和流程图很相似。活动图可能是三种能表示流程的UML图中最接近我们思维习惯的一种,下面来学习另外两种能表达流程的图。

状态机图(State Machine Diagram)

状态机图又叫状态图,但状态图这个译名并没有译出Machine的意思。
状态机图从某个物品的状态是如何变化的角度来展示流程,下图某请假条审批流程:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.8 请假处理流程

整个请假审批流程是围绕“请假条”这个物体进行的,随着不同的审批阶段,请假条具备不同的状态。我们分析业务流程时会发现很多流程其实是围绕某个物品进行的,这时可考虑使用状态机图。

顺序图(Sequence Diagram)

你去餐厅吃饭,向服务员点餐到服务员送菜上来,这个过程用顺序图可表示如下:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.9 点菜的顺序图

该图有三个“小人”,每个“小人”下面的文字说明(如:顾客)表示其代表的角色。角色与角色之间有一些线条链接,表示角色之间是如何交互的。该图表示的意思是:顾客向服务员点菜后,服务员将点菜信息传递给厨师,然后厨师做菜,最后再由服务员送菜给你。
点菜过程涉及几个环节,每个环节均由不同的角色来负责,如果遇到类似的情况,你可以考虑使用顺序图来分析。用顺序图来分析的好处是能清晰表达整个过程所参与的角色,角色与角色之间的关系,各角色是如何被卷入这个过程当中的。

通信图(Communication Diagram)

UML1.1时,该图英文名为Collaboration Diagram;UML2.x时,英文名为Communication Diagram。将英文名字直接翻译,原来的英文名字可译为协作图,而新的英文名字译为通信图。

通信图是顺序图的另外一种画法,点菜的顺序图,如果用通信图来画可表示如下:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.10 点菜的通信图

三个“小人”分表表示三种角色:顾客、服务员、厨师;角色之间有直线联系表示他们之间有关系;带序号的文字和箭头,表示角色之间传递的信息。
顺序图更强调先后顺序,通信图更强调相互之间的关系。我觉得顺序图实用性更好一点,比通信图能表达更多的信息,更容易读懂,在需求分析工作中我基本不会使用通信图。

用例图(Use Case Diagram)

下图是用例图的示意图:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.11 用例图

用例图表达的是什么角色通过软件系统能做什么事情,我们可以使用用例图系统地表达软件系统的绝大部分需求。

时序图(Timing Diagram)

时序图也叫时间图,时序图是UML中文术语标准的说法,而时间图不是标准的说法。

时序图是表示某东西的状态随时间变化而变化的一种图,参见下图:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
图 1.12 灯的开关状态随时间变化图

此图表示在0秒到30秒,灯的状态是关的,30-60秒灯的状态为开,60秒后状态为关。
在实际工作中我基本上没有试用过时间图。

下面通过这个表格来总结一下我在需求分析工作中应用各种UML图的情况:

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram) 
表 1.1 各种UML图实际应用情况

上表是根据我的工作经验总结的,相信会适用于很多情况。但每个人的工作经历、情况、环境等不太一样,上表仅作参考。

请看下一节……

作者:张传波

创新工场创业课堂讲师

华为某团队高级顾问

《火球——UML大战需求分析》作者

www.umlonline.org 创办人