• UML之活动图


    活动图

    一 定义: 活动图是uml的动态模型的一种图形,一般用来描述相关用例图。准确的活动图定义:活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。

    交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流

    活动图是一种表述过程基理、业务过程以及工作流的技术。

    它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模


     

    二 活动图的介绍:

    动作状态(Actions)

    动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。动作状态有如下特点:

    (1)、动作状态是原子的,它是构造活动图的最小单位。

    (2)、动作状态是不可中断的。

    (3)、动作状态是瞬时的行为。

    (4)、动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。

    (5)、动作状态与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。

    (6)、在一张活动图中,动作状态允许多处出现。

    UML中的动作状态图用平滑的圆角矩形表示,如下:


     例子及其元素介绍:

    淘宝退货的活动流程:

              

    1、开始节点(Initial Node)

    开始节点:表示成实心黑色圆点

     

    2、终止节点(Final Node)

    分为活动终止节点(activity final nodes)和流程终止节点(flow final nodes)。

    活动终止节点表示整个活动的结束

     

    而流程终止节点表示是子流程的结束。

     

    3、对象(Objects)

     

    4、数据存储对象(DataStore)

     

    使用关键字datastore

    5、对象流(Object Flows)

    对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或动作对对象的影响。用活动图描述某个对象时,可以把涉及到的对象放置在活动图中并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。

    对象流中的对象有以下特点:

    (1)、一个对象可以由多个动作操作。

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

    (3)、在活动图中,同一个对象可以多次出现,它的每一次出现表面该对象正处于对象生存期的不同时间点。

    对象流用带有箭头的虚线表示。如果箭头是从动作状态出发指向对象,则表示动作对对象施加了一定的影响。施加的影响包括创建、修改和撤销等。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。

    状态图中的对象用矩形表示,矩形内是该对象的名称,名称下的方括号表明对象此时的状态。

     

    6、分支与合并(Decision and Merge Nodes)

    分支与合并用菱形表示

     

    7、分叉与汇合(Fork and Join Nodes)

    分为水平风向和垂直方向。

    对象在运行时可能会存在两个或多个并发运行的控制流,为了对并发的控制流建模,UML中引入了分叉与汇合的概念。分叉用于将动作流分为两个或多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。


    活动图与流程图的区别:

    ⑴ 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系

    活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。

    ⑵ 活动图能够表示并发活动的情形,而流程图不能。

    ⑶ 活动图是面向对象的,而流程图是面向过程的。


     

    活动图与状态图的区别

    活动图与状态图都是状态机的表现形式,但有本质区别:

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

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

     

    参考:灵动生活的BlogsUML建模之活动图介绍(Activity Diagram)、Scott W. Ambler:漂亮的示例: 何时使用 UML 活动图、穷小子wp的博客 uml活动图的概念与作用

  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/Alexkk/p/6946858.html
Copyright © 2020-2023  润新知