UML活动图、状态图
近期写文档逐渐考虑规范化,带上UML图可让开发方案更为直观,也可理清需求
1,安装画图工具Rational Rose 2007:
https://blog.csdn.net/lovelry/article/details/120538050
2,活动图定义
活动图可以在分析系统业务时用来演示业务流,也可以在收集系统需求的时候显示一个用例中的事件流。活动图显示了系统中某个业务或者某个用例中,要经历哪些活动,这些活动按什么顺序发生。
3,创建活动图
(1) 用于分析系统业务:在浏览器中右击Use Case视图,选择new→activity diagram。
(2) 用于显示用例中的事件流:在浏览器中选中某个用例,然后右击这个用例,选择new→activity diagram。
4,增加泳道
泳道是框图里的竖段,包含特定人员或组织要进行的所有活动。
可以把框图分为多个泳道,每个泳道对应每个人员或组织。
在工具栏选择swimlane按钮,然后单击框图增加泳道,最后用人员或组织给泳道命名。
注意:先创建一个活动图,才会有swinlane
5,增加活动并设置活动的顺序
(1) 在工具栏中选择Activity 按钮,单击活动图增加活动,命名活动。
(2) 在工具栏中选择Transition按钮,把箭头从一个活动拖向另一个活动。
6,增加同步
(1)选择synchronization工具栏按钮,单击框图来增加同步棒。
(2)画出从活动到同步棒的交接箭头,表示在这个活动之后开始并行处理。
(3) 画出从同步棒到可以并行发生的活动之间的交接箭头。
(4) 创建另一同步棒,表示并行处理结束。
(5) 画出从同步活动到最后同步棒之间的交接箭头,表示完成所有这些活动之后,停止并行处理。
以上来源: https://blog.csdn.net/gz153016/article/details/49641847
网上找一个完整的流程图
7,个别符号理解
自身转移(Self-Transitions):状态可以有返回自身状态的转移,称之为自身转移;2S后,Poll input事件执行,转移到自己状态【Waiting】
8,活动图和时序图作用对象的区别
活动图泳道的粒度通常比较大,是一个服务,角色,系统;
时序图对象生命线的粒度比较小,通常是一个类
状态和活动(state activity):状态是一种静止的概念(名词),activity是运动的概念(动词)。可以是由activity获得state,也可以根据state去activity某个操作,比如通过增删改操作(activity)获取到设备信息(state)。通过设备信息去进行网关同步(activity)
状态图
状态(state)是指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态发生变化。
活动图和状态图的比较
状态图和活动图元素很像,基本上就少了泳道
活动图粒度大些:
--描述并行的过程或这行为
--描述一个算法
--描述一个跨越多个用例的活动
状态图粒度小些描述了一个具体对象的可能状态以及他们之间的转换。
状态图的一个状态可以将多个行为表示出来
状态图示例:
可参考其他文章: https://blog.csdn.net/xuxixixi_/article/details/120816384
https://www.cnblogs.com/jingwhale/p/4230235.html