zoukankan      html  css  js  c++  java
  • 【StarUML】 活动图


    AlienSmile with tongue outCrying face


    StarUML中的活动图本质上是流程图,活动图相对来说,更加专业,它有对信号的处理,对状态动作、数据区别表示,使得更清晰地了解控制流的走向。

    1、基本元素

         a、活动状态图(Activity)、动作状态(Actions)

             活动和动作使用同一个图表示,活动状态与状态机的状态是同一个意思,代表着一种状态,它是由别的状态流转而来,也可以流转到别的状态,同时也可以自流转,流转到自己;动作状态代表的就是一个动作。

             批注 2020-02-28 110327

             活动状态图,是可以细化的,所以有时候会先画一个大的活动状态图,然后将该活动暴露的接口和所使用到的接口都在这个图里标识好,然后再在这个活动图里细化相应的逻辑。

             image

             内部填充具体的支付系统逻辑,更详细的案例,见文末案例e。


          b、动作流(Control Flow)

              即动作之间的转化,由一根连线将两个动作状态图连接起来。

              image

       

          c、开始节点(Initial)

             即活动开始的节点。

             image

         

          d、终止节点(Final nodes)

             终止节点分为活动终止节点和流程终止节点;

             活动终止节点,代表着整个活动结束了,不会有其他的分支在跑。

             image

             流程终止节点,代表着某个流程结束了,其他流程还在跑,整个活动还没有终止。

             image

     

        e、对象(object)

           对象属于数据流的一部分,用矩形框表示。

           image

     

        f、数据存储对象(DataStore)

            使用关键字<<datastore>>。

            image


        g、对象流(Object Flow)

            对象流实际上是控制流中插入对象,以表达对象、动作和状态之间的关系。

            具有以下特征:

            (1) 一个对象可以由对个动作操作;

            (2) 一个动作输出的对象可以作为另一个动作的输入对象;

            (3) 在活动图中,一个对象可以出现多次,它的每一次出现代表着对象分处于生命周期的不同状态。

            对象流中的对象名称分为两部分,一部分是对象名,下面是对象的状态,如果一个对象不存在多个状态,那么下面的状态表示可以去除掉。(暂时不知道怎么将状态写到下面,只能写在右边)

           image

      

        h、分支和合并(Decision Merge)

            分支和合并公用一个图形,该图形有多个出口也有多个入口,每个出口都用对应的条件标识,类似于编码中的if  else 或者 switch case,每个分支都是条件的。

            1582872387(1)


        i、分叉和汇合(Fork Join)

           分叉和汇合与分支和合并类似,但有本质区别,否则是状态流转与条件挂钩,一次只能走一条路,但是分叉和汇合则是并行的,每次每条路都要走,它表示的不是说多条路选一条的意思,而是多条路要同时走。

           分支和分叉因为前者入口都标有条件而后者没有标,所以容易区分,但是合并和汇合非常类似,入口都是没有条件的,区分的方法就是 所有入口是不是相斥的,如果是就是合并,后者就是汇合

           image

      

        j、信号(Signal)

            信号分为两种,一种是接收信号,一种是发出信号,还有一种比较特殊,时间事件,有的地方也把这个叫做时间信号

            image

             时间信号,本质上是在表示一种时间动作,一般是表示等待

             接收信号大部分情况下不用画,直接由发出信号指向活动或者动作图。


    2、泳道

         泳道图出自 跨职能图,每个泳道代表着不同的组织、系统或者是个人,泳道里的图代表着该组织所负责的逻辑,在活动图里也是一样,在信号部分,就用到了泳道。

         image  


    3、案例

       a、购物用例图

             image

        b、 带有发送信号与接收信号的活动图

          image

           这个案例中,左上角用的是汇合,用错了,应该采用合并,因为有空位和没有空位是相斥的,才能采用合并。


        c、带对象流的活动图

          image

           d、辅助活动图

           image


        e、典型案例

            image

            画得好的图,图在兼顾清晰明了的基础之上,尽量让图更加紧凑些。


    本文学习对象:https://www.cnblogs.com/xiaolongbao-lzh/p/4591953.html

  • 相关阅读:
    [BZOJ3757] 苹果树
    [WC2013]糖果公园
    [SCOI2005]王室联邦
    luogu P2709 小B的询问
    [国家集训队]小Z的袜子
    [SDOI2009]HH的项链(莫队)
    [国家集训队]数颜色 / 维护队列(莫队)
    setting>SSH>sessions setting>勾选ssh Keepalive[ MobaXterm】设置保持SSH连接
    解决SSH自动断线,无响应的问题。
    Linux下使用bcwipe擦除磁盘空间
  • 原文地址:https://www.cnblogs.com/jimmyai/p/star_uml_activity.html
Copyright © 2011-2022 走看看