《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)
说明:
《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网上书城及书店销售,欢迎你的关注。
------------------------------------------------------------------------------------------------------------------------------
第1章 大话UML
摘要:你只需要阅读完本章,就能从宏观上掌握UML的知识,在你的脑袋中形成一张UML的蓝图。你能全面了解UML的基本知识,UML的各种图的用途和概况,你能和实际工作遇到的问题联系起来,帮助你进一步规划下一步的学习。
1.3 行为型的UML(Behavior Diagram)
活动图、状态机图、顺序图处于三种不同的角度来描述流程,是分析业务流程的三种不同利器,下面将会逐一说明。
活动图(Activity Diagram)
我们将起床到出门上班这个过程画成活动图,可能是这样的:
图 1.7 起床到出门上班的活动图
活动图中的一个圆边框框表示一个“活动”,多个活动之间的带箭头线条表示活动的先后顺序,该图只是表达了一个顺序流程,活动图还可以表达分支结构。如果你以前曾学过流程图的话,你会发现活动图和流程图很相似。活动图可能是三种能表示流程的UML图中最接近我们思维习惯的一种,下面来学习另外两种能表达流程的图。
状态机图(State Machine Diagram)
状态机图又叫状态图,但状态图这个译名并没有译出Machine的意思。
状态机图从某个物品的状态是如何变化的角度来展示流程,下图某请假条审批流程:
图 1.8 请假处理流程
整个请假审批流程是围绕“请假条”这个物体进行的,随着不同的审批阶段,请假条具备不同的状态。我们分析业务流程时会发现很多流程其实是围绕某个物品进行的,这时可考虑使用状态机图。
顺序图(Sequence Diagram)
你去餐厅吃饭,向服务员点餐到服务员送菜上来,这个过程用顺序图可表示如下:
图 1.9 点菜的顺序图
该图有三个“小人”,每个“小人”下面的文字说明(如:顾客)表示其代表的角色。角色与角色之间有一些线条链接,表示角色之间是如何交互的。该图表示的意思是:顾客向服务员点菜后,服务员将点菜信息传递给厨师,然后厨师做菜,最后再由服务员送菜给你。
点菜过程涉及几个环节,每个环节均由不同的角色来负责,如果遇到类似的情况,你可以考虑使用顺序图来分析。用顺序图来分析的好处是能清晰表达整个过程所参与的角色,角色与角色之间的关系,各角色是如何被卷入这个过程当中的。
通信图(Communication Diagram)
UML1.1时,该图英文名为Collaboration Diagram;UML2.x时,英文名为Communication Diagram。将英文名字直接翻译,原来的英文名字可译为协作图,而新的英文名字译为通信图。
通信图是顺序图的另外一种画法,点菜的顺序图,如果用通信图来画可表示如下:
图 1.10 点菜的通信图
三个“小人”分表表示三种角色:顾客、服务员、厨师;角色之间有直线联系表示他们之间有关系;带序号的文字和箭头,表示角色之间传递的信息。
顺序图更强调先后顺序,通信图更强调相互之间的关系。我觉得顺序图实用性更好一点,比通信图能表达更多的信息,更容易读懂,在需求分析工作中我基本不会使用通信图。
用例图(Use Case Diagram)
下图是用例图的示意图:
图 1.11 用例图
用例图表达的是什么角色通过软件系统能做什么事情,我们可以使用用例图系统地表达软件系统的绝大部分需求。
时序图(Timing Diagram)
时序图也叫时间图,时序图是UML中文术语标准的说法,而时间图不是标准的说法。
时序图是表示某东西的状态随时间变化而变化的一种图,参见下图:
图 1.12 灯的开关状态随时间变化图
此图表示在0秒到30秒,灯的状态是关的,30-60秒灯的状态为开,60秒后状态为关。
在实际工作中我基本上没有试用过时间图。
下面通过这个表格来总结一下我在需求分析工作中应用各种UML图的情况:
表 1.1 各种UML图实际应用情况
上表是根据我的工作经验总结的,相信会适用于很多情况。但每个人的工作经历、情况、环境等不太一样,上表仅作参考。
请看下一节……
作者:张传波
创新工场创业课堂讲师
华为某团队高级顾问
《火球——UML大战需求分析》作者
《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)的更多相关文章
- 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.4 如何学好UML?
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.5 小结和练习
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.8 小结与练习
摘要:类图(Class Diagram)可能是用得最多的一种UML图.类图的基本语法并不复杂,你可能最多学习两三天就可以掌握,然而要真正做到活用类图则可能需要几年的功力.类图是锻炼面向对象分析(OOA ...
- 《火球——UML大战需求分析》(第2章 耗尽脑汁的需求分析工作)——2.1 需求分析面面观
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(0.1)——开篇废话
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(0.2)——目录
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- 火球-UML大战需求分析(体验版3.0.2).pdf
火球-UML大战需求分析(体验版3.0.2).pdf http://files.cnblogs.com/files/happlyonline/%E7%81%AB%E7%90%83-UML%E5%A4% ...
随机推荐
- hdu4726贪心
Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- [置顶] 应广大童鞋的要求提供一个封装模块,直接和ADB 服务进程交互
很多童鞋在用ADB 的时候都是直接启动ADB 的进程,然后通过管道的方式获取输出,这样多个线程同时使用ADB 的时候任务管理器一闪一闪的,是不是很不爽啊,原先介绍过可以直接和ADB 服务进程通信,不用 ...
- oracle表连接------>排序合并连接(Merge Sort Join)
排序合并连接 (Sort Merge Join)是一种两个表在做连接时用排序操作(Sort)和合并操作(Merge)来得到连接结果集的连接方法. 对于排序合并连接的优缺点及适用场景例如以下: a,通常 ...
- Python 学习入门(20)—— 循环
1. for 循环 for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次. 基本构造是 for 元素 in 序列: statement 举例来说,我们编辑一个叫forDemo.py ...
- 结构体的序列和还原(使用Move方法)
// 定义结构体 typeTmyRec= recordname:string[10];password:string[10];end; function RawToBytes(const AValue ...
- 关于SIGSLOT的一个简单的程序
废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白SIGSLOT是怎么回事.至于深入研究自己去百度吧. #include "sigslot.h" using nam ...
- 5.中文问题(自身,操作系统级别,应用软件的本身),mysql数据库备份
第一层因素: mysql的自身的设置 mysql有六处使用了字符集.分别为:client .connection.database.results.server .system. mysql&g ...
- 全局忽略编译警告(设置QMAKE_CXXFLAGS )
msvc编译器从2010 sp1开始就已经支持UTF-8的源码文件了,然后到vs2012又不支持了,官方表示是BUG.到目前最新的vs2013就解决了这个问题... 但是在编译时仍然会出现4819的警 ...
- Lucene.Net 2.3.1开发介绍 —— 二、分词(一)
原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(一) Lucene.Net中,分词是核心库之一,当然,也可以将它独立出来.目前Lucene.Net的分词库很不完善,实际应用价值不高.唯 ...
- hdu1427之速算24点
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...