UML之活动图

原文地址: https://blog.csdn.net/dwarcheng/article/details/52449168

活动图介绍

1. 简介

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

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

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

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

2. 活动图示例

下图是个简单的活动图例子,里面包括了大部分活动图的相关元素,大家应该都能看的差不多吧,有不明白的可以继续看,下面有针对各个元素有介绍啦,相信大家看完后面的,看这个图就不会有问题的。

另外,若想学会画活动图,必须先看大量的图,看明白别人的图,在慢慢画,慢慢一个图形就弄明白了。

其实uml包括了各种各样的图形,把每种图形都会画啦,基本uml也就会啦。


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

活动图描述系统使用的活动、判定点和分支,看起来和流程图没什么两样,并且传统的流程图所能表示的内容,大多数情况下也可以使用活动图表示,但是两者是有区别的,不能将两个概念混淆。


2.jpg

活动图与流程图的区别

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

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

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

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

4. 活动图与状态图区别

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

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


3.jpg

上图是一个典型的状态图

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


4.jpg
5. 活动图基本元素
  1. 初始节点和活动终点:


    5.jpg

    实心圆表示初始节点(只有一个),圆圈内加一个实心圆来表示活动终点(可有多个)。

  2. 活动节点:

用来表示一个活动


6.jpg
  1. 转换:


    7.jpg

    一条带箭头的直线来表示。 一旦前一个活动结束马上转到下一个活动(无触发转换)。

  2. 分支与监护条件:

分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。


8.jpg
  1. 分叉与汇合:

分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。

分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。

汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。


9.jpg

每个汇合可以有两个或多个输入转换和一个输出转换。

汇合将两条路径连接到一起,合并成一条路径。汇合指的是两个或者多个控制路径在此汇合的情况。汇合是一种便利的表示法,省略它不会丢失信息。汇合和分支常常成对的使用,合并表示从对应分支开始的条件行为的结束。

分叉和汇合都使用加粗的水平线段表示。


10.jpg
6. 抽象的活动图示例
11.jpg

UML的活动图中包含的图形元素有动作状态、活动状态、动作流、分支与合并、分叉与汇合、泳道和对象流等。

7. 带泳道的活动图

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


12.jpg

每个泳道代表特定含义的状态职责的部分。在活动图中,每个活动只能明确的属于一个泳道,泳道明确的表示了哪些活动是由哪些对象进行的。

每个泳道都有一个与其他泳道不同的名称。

每个泳道可能由一个或者多个类实施,类所执行的动作或拥有的状态按照发生的事件顺序自上而下的排列在泳道内。


13.jpg

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

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

上图是一个未采用泳道的活动图


15.jpg

上图是采用泳道技术后的活动图

从两幅图的对比中,我们可以了解泳道技术是非常重要的,可以更明确表达出活动图的意图。

泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织,即对象。

16.jpg

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

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

在活动图中,泳道用垂直实线绘出,垂直线分隔的区域就是泳道。


17.jpg

在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。

泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行。

动作流和对象流允许穿越分隔线。

8. 带对象流的活动图

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


18.jpg

19.jpg

对象流是动作状态或者活动状态与对象之间的依赖关系

对象流表示动作使用对象或者动作对对象的影响。

对象流中对象的特点:

⑴ 一个对象可以由多个动作操纵;

⑵ 一个动作输出的对象可以作为另一个动作输入的对象;

对象流中对象的特点:

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

在活动图中,对象流用带有箭头的虚线表示。

如果箭头从动作状态出发指向对象,则表示动作对对象施加了一定的影响。

施加的影响包括创建、修改和撤销等。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。

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

还可以在对象名称的下面加一个分隔栏表示对象的属性值。

9. 信号发送和接收

发送信号与接收信号

QQ截图20180821124824.jpg
10. 引脚

是一个对象节点,代表活动连接输入、输出值的连接点

                        未找到图片

用来标明每个活动节点所需输入的数据或者所产生的数据(建模业务流时则可表示产生或者消耗的资源)

11. 扩展区

表示重复或循环

                        未找到图片
12. 辅助活动图

当活动图过于复杂时可以用活动的分解来处理

                        未找到图片

一个活动可以分为若干个动作或子活动,这些动作和子活动本身又可以组成一个活动图。

不含内嵌活动或动作的活动称之为简单活动;

嵌套了若干活动或动作的活动称之为组合活动,组合活动有自己的名字和相应的子活动图

25.jpg

26.jpg

活动图绘制要点

⑴ 识别要对工作流描述的类或对象。找出负责工作流实现的业务对象,这些对象可以是显示业务领域的实体,也可以是一种抽象的概念和事物。找出业务对象的目的是为每一个重要的业务对象建立泳道。

⑵ 确定工作流的初始状态和终止状态,明确工作流的边界。

⑶ 对动作状态或活动状态建模。找出随时间发生的动作和活动,将它们表示为动作状态或活动状态。

⑷ 对动作流建模。对动作流建模时可以首先处理顺序动作,接着处理分支与合并等条件行为,然后处理分叉与汇合等并发行为。

⑸ 对对象流建模。找出与工作流相关的重要对象,并将其连接到相应的动作状态和活动状态。

⑹ 对建立的模型进行精化和细化。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容