zoukankan      html  css  js  c++  java
  • 活动图activity diagram

    活动图activity diagram

    系列文章

    [UML]UML系列——用例图Use Case

    [UML]UML系列——用例图中的各种关系(include、extend)

    [UML]UML系列——类图Class

    [UML]UML系列——类图class的关联关系(聚合、组合)

    [UML]UML系列——类图class的依赖关系

    [UML]UML系列——类图class的泛化关系

    [UML]UML系列——类图class的实现关系Realization

    [UML]UML系列——包图Package

    活动图的引入:先上实例

          实例描述:假如现在有一个简单的音乐盒,用户根据歌曲名称搜索自己喜爱的音乐,找到后,用户可以以MP3模式播放(同步显示歌词),也可以以MV模式播放。由于音乐和歌词都来自于互联网,因此在播放之前应连接这些文件。

          根据上述描述,该音乐盒的用例图如下:

          描述MP3播放功能:

    实例引入:活动图的作用

            求最大分数:

         该过程的代码描述:

    复制代码
     1  public class assistant 
     2 {
     3         public int id;
     4         ……
     5          public int max(int score1, int score2, int score3)
     6         {
     7             int temp;
     8             temp = score1;
     9             if (score2 > temp)
    10                 temp = score2;
    11             if (score3 > temp)
    12                 temp = score3;
    13             return temp;
    14         }
    15     }
    复制代码

    活动图的概念及作用    

          概念

          活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流。

          活动图的作用

          描述用例,描述类的操作,另外,可以用来描述算法(单独使用)。

    活动图的基本符号

         活动(动作)

         1、活动的概念

         表示工作流过程中命令的执行或活动的进行。

         2、活动的符号

         状态

          注意:一个活动图中只能有一个开始状态,但可以有多个结束状态。(例如上面的MP3活动图,就有2个结束状态)

         转移(动作流)

         活动之间、活动与状态之间的转换。

         分支与合并

         分支

         根据条件的取值决定动作的流向。

     

          合并

          合并将俩条路径连接到一起,合并成一条路径。

    活动图的其他符号

         分叉和汇合

          分叉

          用于将一个控制流分为两个或多个并发运行的分支。

     

          汇合

          用于将两个或多个控制流合并到一起形成一个单向的控制流,符号与分叉相同。

          如果一个控制流在其他控制流到达之前到达了连接,它将会等待,知道所有控制流都到达了才会向连接传递控制权。

         实例:销售合同从签订到履约的过程

         销售合同签订后,要进行核对。如果发现错误,则终止履约;如果没有错误,则要核对货物清单确定是否有货,还要核对付款单确定对方是否已经付款,只有这两项都完成,才可以发货。如果无货或对方尚未付款,则终止履约。则活动图如下:

         泳道

         泳道表明每个活动是由哪些人或哪些部门负责完成。

          在活动图中泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。

          在包含泳道的活动图中每个活动只能明确地属于一个泳道。

         简单模拟卓越网的购物流程

         添加泳道之后:

        

    从左到右:顾客、运输部、财务部   

         对象流

         用活动图描述某个对象时,可以将涉及到的对象放到活动图中,并用一个依赖将其连接到活动或状态上,对象的这种使用方法就构成对象流。

        上面的购物过程的活动图加入对象流之后:

    活动图的Rose建模

    一、创建活动图

    右击use case view ->new->activity diagram”

    二、重命名活动图并双击打开活动图窗口

    三、绘制活动图的关键步骤

    1、添加泳道

    (1)添加泳道:单击工具栏上的泳道按纽,在活动图窗口中单击。

    (2)重命名泳道:双击泳道标签,弹出如下窗口

    (3)调整泳道的宽度:拖动泳道间的调整线

     

    (4)删除泳道

     方法1:右击泳道->delete

    此删除操作产生的效果:
    泳道被删除(非彻底删除,可恢复)
    泳道内的图形也会同时被删除(非彻底删除,可恢复)

    方法2:在浏览器中右击泳道->delete

    此删除操作产生的效果:
    泳道被删除(彻底删除,不可恢复)
    泳道内的图形也会同时被删除(非彻底删除,可恢复)

    2、设置转移条件

    3、添加对象与对象流

    (1)将对象与对象流按纽显示在绘图工作栏中

    右击绘图工具栏空白处,选择“Customize”,弹出如下窗口,将这两项添加到绘图工具栏。

    (2)添加与设置对象

    注意:
    在同一步活动图中,同名的对象只能通过复制来创建

    总结

          活动图就总结到这里,这章内容有点多,涉及到的名词特别多,其实照着文章中的实例自己画一遍,就印象深刻了。活动图用的还是比较多的。

  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3433750.html
Copyright © 2011-2022 走看看