03《UML大战需求分析》之三

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

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

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

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

原文地址:https://www.cnblogs.com/yyting/p/5998229.html