UML-状态图、活动图和交互图

   行为图:系统建模需要从系统的结构和行为两个方面来描述,其中系统的行为是通过状态图、活动图、序列图和协作图来描述。描述了系统的动态模型和组成对象间的交互关系。包含有状态图、活动图、交互图(时序图、协作图)

  一、状态图


     1.定义为对象行为在某一个时刻的快照或者转折点

       例如:计算机的状态可以定义为开机、启动、工作中、空闲、关机、离线等。


     2. 任务:用来描述一个特定的对象的所有肯能状态以及由于各种事件的发生所引起的状态之间的转移。表示某

个类所处的不同状态及其转换信息,介于此会有疑问每个类都有状态,但不是每一个类都有一个状态图。


     3.状态机:描述了一个对象或一个交互在生命期内相应事件所经历的状态序列,包含状态、转移和事件组成。

联合使用状态和转移可能方便建模。状态的符号显示为圆角矩形。状态的名称放在矩形中,表示模型中满足条件的一

个点。例如:诊断及的状态示例可能开、关、诊断和空闲等。标准状态的名称只是满足的条件。初始状态(实心点)

和终止状态(带圆圈的实心点)指示模型的开始和结束状态。转移显示状态转变的处理流,用箭头来表示。事件用来

指示是什么出发了模型中状态的改变。

      UML-状态图、活动图和交互图_第1张图片

     4.画图的注意事项:初始起点用实心圆来画;状态之间的转换,具有开箭头的线段来绘制;状态,使用圆角矩

形来绘制;判断点,使用空心圆来绘制;以及一个或者多个终止点,使用内部包含实心圆的圆来绘制。要想绘制状态

图,首先绘制起点和一条指向该类的初始状态的转换线段。状态本身可以在图上的任意位置绘制,然后只需使用状态

线条将它们连接起来。


  二、活动图-团队沟通利器


     1.概念:建立算法模型是一种工作流程图,使用流程图可以表示一个算法执行序列、过程、判断点、分支和循

环。与流程图不同之处是支持并行活动。主要是描述动作及对象的改变结果,与状态图不同的是状态的转变不要事件触发。

       UML-状态图、活动图和交互图_第2张图片

       针对活动图的组成下部连接做了详细的说明,我还不清楚就不敢妄言。

        http://www.cnblogs.com/jams742003/archive/2011/08/12/2135665.html


             2.绘制活动图

      首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者,然后尽量使用分支、分岔和汇等基本的建模元素来描述活动控制流程,如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息

      活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充。

      比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图

          

     3.活动图与流程图的区别

      前者描述的是顺序关系所遵循的规则,着重表现系统的行为,后者表示处理的过程。

      活动图能表示并行行为,但是流程图不能。前者面向对象的,后者是面向过程的。

     

      4.活动图和状态图的区别

        状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。

        图形表示方法不同,前者是圆角矩形,后者是鱼缸形。

        状态图着重描述从一个状态到另一个状态的流程,主要是外部事件的参与。

        活动图则侧重表现从一个活动到另一个活动的控制流,是内部处理的流程。

            UML-状态图、活动图和交互图_第3张图片 

  三、序列图


      1.定义:序列图是对对象之间传送消息的时间顺序的可视化表示。序列图的主要用途是把用例表达的需求,转

化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分

配各个类的职责以及各类具有相应职责的原因。


      2.构成:对象、生命线、激活、消息、分支与从属流等元素。对象就是实例.(激活、运行、销毁);生命线是

一条垂直的虚线,表示的是序列图中对象在短时间内的存在;激活是对象操作的执行,表示一个对象直接或通过从属

操作来完成操作的过程;消息就是对象之间的通信机制;分支与从属流:分支是指从同一点发出的多个消息并指向不

的对象,根据条件是否互斥,可以有条件和并行两种结构,从属流指的是从同一点发出多个消息指向同一个对象的

同生命线。

              

  四、协作图

      1.定义:是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构,使用协

作图来说明系统的动态情况。协作图显示了系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。 

通过描绘对象之间消息的移动情况来反映具体的方案。显示对象及其交互关系的空间组织结构,而非交互的顺序。

      

      2.作用:对象间消息的传递来反映具体的使用语境的逻辑表达,一个使用情境的逻辑可能是一个用例的一部分

或是一条控制流;它的交互关联显示对象交互的空间组织结构,显示一种对象间的关系,而不注重顺序  

      

      3.组成:协作图由对象,消息,链等构成。对象:类的实例。对象的角色表示一个或一组对象在完成目标的过

程中所起的部分作用。对象是角色所属类的直接或间接实例,在协作图中,一个类的对象可能充当多个角色。消息:

消息用来描述系统动态行为,它是从一个对象向另一个或几个对象发送信息,或由一个对象调用另一个对象的操作。


      4.协作图与序列图的区别

       系统系统对象通讯和交互为主。对象之间的交互作用,但是侧重点不同。序列图清楚的宝石对象之间的关系,俩者之间可以相互转换。

                UML-状态图、活动图和交互图_第4张图片

【总结】

      上述的四种图都可以用来描述系统的动态行为 ,描述系统在执行期间不同时间点是如何动态交互的。状态图和活动图以描述系统状态转移为主,而序列图和协作图则是描述系统对象通讯、交互为主。活动图描述了动作及对象状态改变的结果,状态图描述事件对对象状态的影响。序列图强调时间,协作图中是空间。 

你可能感兴趣的:(UML-状态图、活动图和交互图)