今天阅读了UML大战需求与分析第五、六章。
第五章,状态机图(State Machine Diagram),状态机图是通过描述某事物状态的改变来展现流程的。一般适用于流程围绕某个事物展开,例如请假的流程就围绕请假条的展开。语法,开始于结束符号,实心圆表示开始,空心圆加上圆心点表示结束。矩形框的四个角为弧形,叫做状态。状态与状态之间的箭头叫转换,转换一般都要加上文字进行说明,文字表明转换的条件,有时候也可以不加,如转换到结束状态。当出现分支情况时,转换的文字说明中,要加上一个中括号,括号中表明进入此分支的条件,中括号中的内容叫做监护。在绘制状态机图时,要根据流程的目的和当前存在的问题,思考该事物在流程的不同阶段有什么状态,状态为什么会发生变化。
第六章,顺序图(Sequence Diagram),顺序图是用来表示事物的发展顺序的。基本语法:角色,用小人表示,注明角色名称,也可以用矩形框表示,框内格式 【对象名】:类名;生命线:角色或者对象下面的那条虚线;激活框:激活框也叫会话,就是生命线中的细高矩形;消息:实线箭头加上文字说明,由一个角色指向另一个,也可以指向自己,文字表明做什么事;返回值:虚线加上文字,一般作为消息的反馈,文字表明返回的东西。顺序图加入了三种新的结构:循环【loop】、条件分支【alt】、可选分支【opt】,不过不推荐使用。
流程分析三剑客—活动图,状态机图,顺序图。
顺序图的特点:
- 强调角色之间的交互,信息传递很明确
- 强点按时间顺序分别发生了什么事
- 不太适合表达复杂的特殊流程(循环分支、条件分支、可选分支)
活动图的特点:
- 强调每个角色做了什么事,这些事情的先后关系
- 适合表达各种特殊流程,如分支、并发等
状态机图的特点:
- 事情围绕某东西展开
- 该东西有不同的状态,状态会因为发生了一些事情而改变
作者的使用建议:
- 如果事情是围绕某个东西展开的,可以考虑用状态机图
- 如果事情不是围绕某个东西展开的,状态机图可能不适合,可考虑用顺序图或活动图
- 如果没有复杂的特殊流程,可考虑顺序图
- 如果有复杂的特殊流程,可考虑活动图
- 不要限制自己只是用一种图,可同时使用两种或三中图,从多个角度来分析问题,稍后再适当取舍
通讯图(communication Diagram),语法:事物有关的角色,人用小人表示,系统或物品用矩形加上:文字表示,有直接交互的角色之间用实现连接,实线上有各种消息和返回值,实线箭头表示消息,虚线箭头表示返回值,消息与返回值都应用数字注明交互的先后顺序。通讯图强调相互之间的关系。