学习了活动图之后,我又学习了流程分析工具之二的状态机图。看上去状态机图和活动图很类似,我也很容易从活动图的角度来理解状态机图。但是学习之后,发现两种图是两种完全不同的分析角度。活动图在流程分析时是玩你玩万能的,但是在流程是围绕某一事物的状态展开时,首选的应该是状态机图。

活动图是将流程分解为一个一个的活动,通过活动的先后顺序来展示流程;但是状态机图是从某个事物的状态是如何变化的角度来展示流程。在分析一个流程时,我们首先分析从头到尾一共经历了什么状态,状态之间是如何变化的。状态与状态之间的箭头叫转换,在状态转换时应该说明什么角色做了什么事情从而导致状态发生变化。在这里,两者的不同就是,状态图各种角色如何参与这个流程、各种角色的动作,都通过“转换”来体现,而活动图是通过“活动”来体现的。这一点是状态机图与活动图的重大差别体现。状态机图的难点和关键在于合适而准确的状态划分,我觉得这需要长时间的的练习和画图。在思考状态机图的流程时,我们首先应该找到整个流程是围绕什么事物展开的,找到这个事物的状态;然后分析,当一个状态可以转换为两个或两个以上状态时,表示分支结构。

紧接着我又学习了流程分析的另一利器顺序图,使用顺序图,我们可以很好的描述我们日常生活中的一些情况。比如去餐厅吃饭这个情况,我们首先会进入餐厅,第二步,坐到一个座位,第三步,从服务员那里拿到菜单,第四步,挑选菜品,最后一步,向服务员点单。这就是我们去餐厅吃饭的一个顺序。我们只需要从该流程中找到角色,并找到角色之间是通过什么事件如何交互的。用箭头表示交互,消息代表做了什么事情,引起了系统反响。我们可以使用顺序图画主要流程,再配合注解或文字说明特殊流程。顺序图强调的是角色之间的交互,信息的传递,并且强调按着时间顺序发生的事情,但是并不适合表达复杂的特殊流程。

这三种图不是限制必须使用某种图,我们可以同时使用来更好地表达我们的流程,我们应该从各个角度来分析,找到最适合而不是说最好的图来表述。

03《UML大战需求分析》之三的更多相关文章

  1. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  2. 《火球——UML大战需求分析》(0.2)——目录

    说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...

  3. UML大战需求分析--阅读笔记01

    本次阅读的书籍是<UML大战需求分析>,看了前两章的内容:1 大话UML,2绞尽脑汁的需求分析.这两章内容关联不大,分开描述. 第一章:大话UML 本章主要概述UML是什么,有什么内容.U ...

  4. UML大战需求分析——阅读笔记04

    读<UML大战需求分析>有感04 开发某系统的重要前提是: 这个系统有谁在用? 这些人通过这个系统能做什么事? 一般搞清楚这件事,再画个业务流程图,就能条例清楚的表达系统的需求了.作为一个 ...

  5. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  6. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  7. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  8. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  9. 《UML大战需求分析》阅读笔记01

    在刚学习软件开发的课程时,首先学习了UML设计,但只是学习了基本的语法,虽然在学期通过课堂练习进行了实践,但并没有真正理解其中作用.为了进一步的理解UML的用法,我阅读了<UML大战需求分析&g ...

  10. 火球-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% ...

随机推荐

  1. C# indexof 注意

  2. C#的split函数分割

    C#的split函数分割 string str = textBox1.Text; string[] strlist = str.Split("\r\n".ToCharArray() ...

  3. Python笔记17---------魔法方法

    魔法方法也为特殊方法,即用两个下划线形成的(__方法__).自己定义的方法最好不要采用这种方式,因为这些方法会在一些特殊的情况下直接被调用. 1.第一个魔法方法:类中常用的__init__()方法:相 ...

  4. 自我介绍About me

    我的github:www.github.com/dcdcbigbig 欢迎来加star!(雾) tm就是个菜逼

  5. PHP中调用Soap/WebService

    关于在PHP中如何调用Soap/WebService的描述,网络上有不少帖子.但是主要讲述了如何用PHP开发服务器端.客户端并加以关联,而很少触及在PHP中调用现成的WebService的情况.在本文 ...

  6. mysql 与 memcache 字段名后面有空格时会产生什么问题(转)

    同事下午遇到一问题,MySQL 和 Memcached 对于同一个key,不能对应起来.最终原因是:PHP将key写入MySQL数据库之前,没有经过trim()过滤首尾空格(关键是尾部空格),结果: ...

  7. mysql数据库增量恢复

    mysqldump -uroot -p -B discuzx -F -x --master-data=2 --events|gzip >/root/discuzx.sql.gz 写入数据 删除数 ...

  8. mknod指令详解

    mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR]    option 有用的 ...

  9. Django入门--模型系统(一):模型基础

    1.Django的ORM介绍 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不 ...

  10. 【codeforces 807B】T-Shirt Hunt

    [题目链接]:http://codeforces.com/contest/807/problem/B [题意] 你在另外一场已经结束的比赛中有一个排名p; 然后你现在在进行另外一场比赛 然后你当前有一 ...