活动图

以下内容部分出至博客园coolstream,主要是自己懒得写了,部分做了修改。
官方连接

活动图(Activity Diagram)简介

活动图描述从一个活动到另一个活动的执行顺序、约束条件、引用对象及状态结果等方面的控制流,适用于对业务用例、工作流程或程序实现建模。

活动图建模步骤

(1)确定活动图的范围和边界,对哪些工作流、哪些活动、哪些对象建模
(2)确定工作流的开始状态和结束状态
(3)确定工作流的各个活动、活动之间的转换、活动涉及的对象
(4)确定工作流中各个活动对应的分支与合并、分叉与汇合关系
(5)找出活动图中的复杂活动集,用相应的子活动图展开描绘
(6)找出活动图中多次重复的活动,抽象为扩展区域

活动图中的主要元素

活动图的核心符号是活动。

  • 活动(Actions):待执行的动作,操作或命令。用圆角矩形标识

    image

  • 状态(State):一系列操作开始处或结束处的标识,称为开始状态和结束状态。与状态图中相同
      开始状态(Start State):起始点。用实心圆表示

    image

      结束状态(End State):终止点。用内部实心的圆环表示
    image

      流结束状态(FlowFinal):控制流终点。用内部叉号的圆环表示。
    这两种结束状态的区别为:
      流结束状态表明单独的控制流的终点。
      活动结束状态是活动图内所有控制流的结束。

  • 控制流( Control Flow):活动之间,或状态与活动,或状态与对象之间的连接。用带箭头的直线标识

    image

    action.PNG

    action-object.PNG

  • 对象流(Object Flows):箭头的两端有特定的数据传输 。
    有的工具中是指与对象之间的连接,但是EA中必须带数据
    一个对象流在它的至少有一个端有一个对象。
    在图中,可以采用带输入输出引脚的速记标柱表示。

    image

  • 中断流(Interrupt Flows):用于连接异常处理或者可中断区域与外部连接。

    image

    image

  • 引脚(Pin):活动的参数信息,表示每个活动节点所需输入的数据或所产生的数据。
    用于输入参数的引脚称为Input Pin, 用于输出参数的引脚称为Output Pin。
    用小正方形标识,并在引脚旁边标明该参数:

    image

  • 异常(Exception): 异常处理在活动图中建模。

    Exception.PNG

  • 对象(Objects):用矩形框+对象名+类名(可有可无)标识,与类图中对象表示法一致

    object.PNG

  • 数据存储(Datastore):显示为带 «datastore» 关键字的对象。

    Datastore.PNG

  • 时间信号(Time Signal EA没有中):指定某个时刻或持续某段时间

    image

  • 信号发送(Send Signal):向外部发送一个信号

    image

  • 信号接收(Receive Signal):从外部接收一个信号,并执行相应的活动

    image

  • 判断(Decision):对活动或状态进行判断,然后选择下一步活动。使用空心菱形标识,与状态图中判定的图标相同

    image

    分支与合并(Decision and Merge):
    分支:是将单个执行路径分成两个或两个以上的分路径,每个分路径都有相应的前置条件和执行结果
    合并:是指两个或两个以上的路径在该处汇集
    image

  • 同步条(Synchronization BarEA中Fork and Join:用于并行执行、成对出现。用加粗线段标识

    image

    并发(concurrency):在同一段时间内,有两个或两个以上的活动被执行
    分叉与汇合(Fork and Join):分叉表示将一个控制流分成两个或两个以上并发执行的分支;汇合表示并发分支该处汇集同步
    image

  • 泳道(SwimlaneEA中Partition):通过将活动图中的活动分成一些纵向区域来给活动进行分组,这些纵向区域就称为泳道。
    泳道可以提取各个对象之间的交互,用来展示对象或活动之间的合作关系。
    标识如图:

    image

  • 扩展区域(Expansion RegionEA中Region选择Expansion Region):
    活动图的一个内嵌套区域,代表一个结构化的活动集,可并发或循环执行。
    用边框为虚线的带圆角大矩形标识

    image

  • 可中断活动区(InterruptibleActivityRegionEA中Region选择InterruptibleActivityRegion):
    可中断活动区环绕一组可以中断的动作。
    在下面非常简单的例子中: 当控制被传递到结束订单 "Close Order" 动作,定单处理"Process Order" 动作会执行直到完成,除非"Cancel Request"取消请求中断被接受,这会将控制传递给"Cancel Order"动作。

    image

  • 注释(Note): 文本描述,帮助理解。

    image

  • 活动(Activity ): 表示当前活动中的子活动。

    activity.PNG

  • 活动参数(Activity Parameter): 子活动接受外界传递的数据
    参照上图中的ActivityParameter1

  • 结构化活动(Structured Activity): 子活动结构化
    有三种类型:Loop Node,Conditional Node,Structured Activity Node ,Sequential Node,Simple Composite Activity
    action设置显示内容

    action.PNG

    1. Loop Node:
      Setup:循环条件使用的变量初始化,只执行一次
      Test: 循环退出判断条件,重复执行
      Body:循环中重复执行的操作


      loop.PNG
    2. Conditional Node:类似if---then
      Test: if条件
      Body:满足条件后执行动作


      conditional.PNG
    3. Structured Activity Node:嵌套其他结构化活动节点


      Structured.PNG
    4. Sequential Node:添加Child Diagram或者Composite


      Sequential.PNG
    5. Simple Composite Activity:即可以添加条件区域也可以添加Child Diagram或者Composite


      simpleComposite.PNG
  • 中心缓冲节点(Central Buffer Node):
    中心缓冲区节点是用于管理来自多个源和目标的流的对象节点。
    它充当来自其他对象节点的多个入流和出流的缓冲区(就是替其他对象管理多个输入流或者输出流)。

    image.png

活动图示例

以下示例可帮助理解活动图中的各个元素及其特性。

  • 带有分支和合并的示例
    以商家订货-发货流程为例
    image
  • 带有分叉和汇合的示例
    image
  • 带有泳道的示例
    以客户-商家-物流为例
    image
  • 带有信号发送和接收的示例
    以电影筹备-开机为例
    image
  • 带扩展区域的示例
    以医院门诊为例
    image
活动图注意事项

(1)活动图一开始需要明确工作流的前置条件、后置条件及边界
(2)如果系统相对复杂的话,建议使用总活动图和若干个子活动图的方式显示系统所有的控制流
(3)确定出系统中重要性高的工作流、对象流、对象,为其中的重要业务对象创建相应的泳道
(4)对于活动节点的转换,先处理顺序动作,再考虑分支和合并,之后才是分叉和汇合等并发场景
(5)具有并发或循环属性的活动集可以考虑将其加入到扩展区域

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。