《UML精粹》第11章 互动图

第11章 活动图

活动图是一种表述过程机理、业务过程以及工作流的技术。在很多方面,它们所起的作用域流程图类似,但是,与流程图表示法的主要区别是,活动图支持并行行为。

下图表示活动图的一个简例。我们在初始节点动作初开始,随后做订单动作,完成后,便遇上一个分岔。分岔(fork)有一个人流和几个并发的出流。

上图说的是,按订单供货、开发票以及它们的后继动作都是并行发生的。本质上这意味着它们之间的顺序无关紧要。我可以按订单供货,开发票,交付,然后再收款;或者也可以开发票,收款,按订单供货,然后再交付。

活动图允许进行这一过程的任何人来选择做事的顺序。换言之,图仅仅说明应遵循的主要定序规则。这一点对业务建模来说是重要的,这是因为业务过程往往是并行出现的。对于并发算法,它也有用。在并发算法中各个独立的线程可以并行工作。

当你有了并行性,就需要进行同步。在货物交付及付款以前,不能关闭订单。在关闭订单动作前用一个汇合(join)来指明这一点。对一个汇合,仅当其所有的入流均已到达,才能处理出流。因此,仅当收款及交付做完后,才能关闭订单。

活动图上的节点称为动作,而不称为活动。严格说,一项活动指的是一系列动作,因此,图中表明的一项活动是有若干动作构成的。

1、动作的分解

可以把动作分解成子活动。我可以取上图中的交付机理,将它定义为它自己的活动(如下图)。这时就可以将它称为一个动作。

修改后的实施图如下:

2、分划

活动图告诉你发生什么,但未告诉谁做什么。在编程中,这指的是,图并未表达每一个活动由什么类来负责。在业务过程建模中,这并未表达机构的哪一个部门施行什么动作。这并不一定是一个问题;往往,有意义的是,要把注意力集中在做了什么,而不在谁做行为的哪一个部分。

如果要表明谁做什么,就要把一个活动图分成几分划。分划表明一个类或一个机构单位施行那些动作。上图就一个简例,指明订单处理中所含的各个动作如何划分成不同的功能。这种方式常常成为泳道。

3、何时使用活动图

活动图最大的优点是,它们支持并鼓励并行行为。这使得它们称为工作流建模和过程建模的一项重要工具。

时间: 2024-11-12 07:50:31

《UML精粹》第11章 互动图的相关文章

uml精粹——6.对象图 & 7.包图

6.对象图object diagram 一个对象图是系统在某一刻时对象的快照snapshot.他展示的实例而不是类,对象图也经常叫实例图instance diagram. 你可使用对象图来展示对象们的样例配置example configuration.在对象间的连接connection比较复杂的时候很有用. 见图6.1. 你可以看出6.2是实例,因为名字都有下划线.每个名字都用 实例名:类名 的形式.两个部分的名字都是可选的,所以John, :Person, aPerson也是合法的名字.如果你

uml精粹——11.活动图(及整个读书笔记分享)

11.活动图activity diagram 活动图是描述过程化逻辑procedural logic.业务过程business process和工作流work flow的技术.他和流程图flowchart类似,但不同是他们支持并行行为parallel bahavior. 见图11.1 我们从初始节点initial node动作开始,然后做Receive Order的动作.完成后遇到一个fork分叉.一个分叉fork有一个收入流incoming flow和一些外出的并行流outgoing conc

《UML精粹》 第四章 时序图

第四章 时序图 一般来说,我们会在一张时序图中画出某个情节的相关行为,图种会秀出这个使用案例(use case)里面可能出现的一些对象,以及在对象间传送的信息. 本章将通过一个简单情节,做时序图各方面的相关讨论.假设我们现在有一份订单,并且准备调用它的一个命令,算出这份订单的价格.为了达到这个目的,订单需要产看它里面所拥有的一些订单明细.决定它们的价格,价格决定方式是以订单明细中所包含产品之定价规则为基础决定的.对所有订单明细做完上述动作之后,接下来订单要算出整个折扣,这时候它是以跟客户绑在一起

《UML精粹》第三章 -类图的基本概念

第三章 类图:基本概念 类图可用来描述系统中各种对象的类型,也可描绘出对象间各种各样的静态关系.此外,类图中也可以秀出类的性质(property)与操作(operation),以及可应用到对象间连接方式的一些限制(constraint).在UML中,我们用特性(feature)来代表累的性质与操作这两种概念. 1.性质 性质代表类的结构特性(structural feature).虽然只是一个概念,不过它却可以用两种非常不同的表示法来呈现:属性与关联. 2.属性 属性(attributes)表示

《UML精粹》笔记-第一章

第一章 UML简介 1.定义 统一模型语言(Unified Modeing Language,UML)代表同一家族的图形表示法,在这些表示法背后有一个共通的超模型(meta model)存在.它们可以帮助我们描述与设计软件系统,特别是那些用面向对象风格设计的软件系统. 模型背后的基本原因:编程语言无法以够高的抽象度,方便我们讨论设计的相关议题. UML是相当开放的一种标准,有对象管理协会负责管理它,此协会是一个有多家公司所组成的开放性联合组织.成立的宗旨是为了简历支援互通性的相关标准,特别是对象

uml精粹——10.状态机图

10.状态机图state machine diagram 状态机图是常见的描述一个系统行为的技术.在面向对象的方法中,为单个类绘制一个状态机图来展示单个对象的生命周期行为. 见图10.1 图中显示了管理我不同寻常的安全系统的控制类的一个状态机图.它从控制对象被创建时的状态开始:等待状态wait state.图中暗示这个为初始伪状态initial pseudostate,虽然不是状态但又一个箭头指向初始状态. 图中显示控制器可处于3个状态:wait.lock和open.该图还提供规则表示状态间的改

<<UML for Java Programmers>> 第11章读书笔记

这一章提到新手做设计时的常见错误. 我最喜欢这一章,以前看的时候,为了追求所谓的速度,把书中的实例统统略过,真有点买椟还珠的味道.另外说明一下,读书笔记为什么突然跳到第11章. 最简单的原因是因为我对这一章有感觉,觉得有必要做笔记. 常见的如下: 1. 没有方法的类(MissingMethods).没有方法的类是没有存在价值的,"programs are about behavior!",我们应该根据行为来划分软件系统.如果不是根据行为来划分软件,说明用了其它错误的划分方法. 2. 真

文件系统取证分析(第11章:NTFS概念)

/* Skogkatt 开始翻译于2015-01-24,仅作为学习研究之用,谢绝转载. 译注:我翻译这本书的这三章虽然蓄谋已久,但并不是一个计划好的工作.因为之前和vczh.mili.darkfall曾讨论过everything这个软件,也曾想过要写一个开源的everything,于是就出来一个坑.everything这个软件其实是从底层直接parse了NTFS MFT,然后parse类每一个FILE entry,从里面拆出来了每一个文件的信息,这个操作速度远快于Win32 FindFirstF

《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 <TCP/IP详解卷1:协议>第5章 RARP:逆地址解析协议-读书笔记 <TCP/IP详解卷1:协