第7章 活 动 视 图

原创 2003年01月06日 10:39:00

7.1 概述

  活动图是一种特殊形式的状态机,用于对计算流程和工作流程建模。活动图中的状态表示计算过程中所处的各种状态,而不是普通对象的状态。通常,活动图假定在整个计算处理的过程中没有外部事件引起的中断,否则,普通的状态机更适于描述这种情况。
  活动图包含活动状态。活动状态表示过程中命令的执行或工作流程中活动的进行。与等待某一个事件发生的一般等待状态不同,活动状态等待计算处理工作的完成。当活动完成后,执行流程转入到活动图中的下一个活动状态。当一个活动的前导活动完成时,活动图中的完成转换被激发。活动状态通常没有明确表示出引起活动转换的事件,当转换出现闭包循环时,活动状态会异常终止。
  活动图也可以包含动作状态,它与活动状态有些相似,但是它们是原子活动并且当它们处于活动状态时不允许发生转换。动作状态通常用于短的记帐操作。
  活动图可以包含并发线程的分叉控制。并发线程表示能被系统中的不同对象和人并发执行的活动。通常并发源于聚集,在聚集关系中每个对象有着它们自己的线程,这些线程可并发执行。并发活动可以同时执行也可以顺序执行。活动图不仅能够表达顺序流程控制还能够表达并发流程控制,如果排除了这一点,活动图很像一个传统的流程图。

7.2 活动图

  活动图是活动视图的表示法(如图7-1)。它包括一些方便的速记符号,这些符号实际上可以用于任何状态图,尽管活动图和状态图的混合表示法多数时候都很难看。
活动状态表示成带有圆形边线的矩形,它含有活动的描述(普通的状态盒为直边圆角)。简单的完成转换用箭头表示。分支表示转换的监护条件或具有多标记出口箭头的菱形。控制的分叉和结合与状态图中的表示法相同,是进入或离开深色同步条的多个箭头。图7-1表示订单处理的活动图。
7-1.gif
图7-1 活动图
  为了表示外部事件必须被包含进来的情景,事件的接收可以被表示成转换的触发器或正在等待某信号的一个特殊内嵌符号。发送可同样表示。然而,如果有许多事件驱动的转换,那么用一个普通的状态图表示更可取。
1. 泳道
  将模型中的活动按照职责组织起来通常很有用。例如,可以将一个商业组织处理的所有活动组织起来。这种分配可以通过将活动组织成用线分开的不同区域来表示。由于它们的外观的缘故,这些区域被称作泳道。图7-2表示了泳道。
图7-2 泳道和对象流
7-2.gif
2. 对象流
  活动图能表示对象的值流和控制流。对象流状态表示活动中输入或输出的对象。对输出值而言,虚线箭头从活动指向对象流状态。对输入值而言,虚线箭头从对象流状态指向活动。如果活动有多个输出值或后继控制流,那么箭头背向分叉符号。同样,多输入箭头指向结合符号。
图7-2表示一个活动和对象流状态都被分配到泳道中的活动图。

7.3 活动和其他图

  活动图没有表示出计算处理过程中的全部细节内容。它们表示了活动进行的流程但没表示出执行活动的对象。活动图是设计工作的起点。为了完成设计,每个活动必须扩展细分成一个或多个操作,每个操作被指定到具体类。这种分配的结果引出了用于实现活动图的对合协的设计工作。

动作视图和动作提供器(Action Views and Action Providers)

首先承认:这篇文章翻译的有点不准确,因为这个action,我拿不准怎么翻译,不知道是翻译成动词还是名词。所以我把有道词典上的翻译结果列在下面。action n. 行动;活动;功能;战斗;情节开始翻译v...
  • leilifengxingmw
  • leilifengxingmw
  • 2016年04月20日 11:26
  • 1879

UML参考手册 第二部分 基 本 概 念 第7章 活 动 视 图

UML参考手册  第二部分 基 本 概 念  第7章 活 动 视 图7.1 概述  活动图是一种特殊形式的状态机,用于对计算流程和工作流程建模。活动图中的状态表示计算过程中所处的各种状态,而不是普通对...
  • CandyCat
  • CandyCat
  • 2001年05月26日 23:01
  • 1453

ACCPHTMLS1第七章上机练习1

无标题文档 li{ list-style-type:none; width:100px; float:left; } a{ background:url(../Desktop/forumMenu...
  • baidu_36074048
  • baidu_36074048
  • 2016年10月19日 14:58
  • 694

活点地图

去年这个时候,我开始做活点地图APP,用了二十几天的时间完成,发布到了各大应用市场,从产品构思到UI设计和代码实现都是一个人完成,可能产品定位也没有考虑太清楚,尝鲜的人很多,但是留存率比较低,...
  • jason0539
  • jason0539
  • 2016年04月17日 09:51
  • 4465

javascript语言精粹笔记 5-7章

继承基于类的语言中,继承有两个好处 1、代码重用。2、包括了一套类型系统的规范。 js是基于原型的弱类型语言,它可以模拟基于类的模式,也可以用其他模式。伪类js不让对象直接从其他对象继承,反而插入...
  • kofforever
  • kofforever
  • 2017年02月08日 11:48
  • 95

iOS 探讨之 动态二维码

阐述 内部测试、对外推广时开发人员往往需要将安装包以二维码的方式进行分发,但通常是苹果App、安卓App各一个二维码。如何实现一个二维码同时支持苹果App下载和安卓App下载呢?(安卓设备扫描下载安卓...
  • yanglei3kyou
  • yanglei3kyou
  • 2016年06月08日 14:00
  • 586

C++Primer第五版 第七章习题答案(1~10)

1:知识点1:类的定义方法:struct和class两种方法的用法和区别。 知识点2:类内成员的初始化方法:成员初始化列表。编译器会调用构造函数初始化成员,可以被重载。 首先举个例子方便于理解: ...
  • misayaaaaa
  • misayaaaaa
  • 2017年02月16日 08:52
  • 3609

C++沉思录读书笔记(7章)-句柄:第二部分

上一回讨论的句柄技术有一个明显的缺点:为了将句柄捆绑到类T的对象上,必须要新定义一个具有类型为T的成员对象的新类。 这个毛病相当麻烦,如果想新设计一个类的句柄类,就需要新定义两个类。 ...
  • yucan1001
  • yucan1001
  • 2011年10月30日 22:12
  • 676

《道德经》第七章

天長地久。天地所以能長且久者,以其不自生,故能長生。 是以圣人后其身而身先;外其身而身存。非以其無私邪?故能成其私。 【易解】 天长地久。天地所以能够长久,是因为它们不去强求一种非其不可的...
  • tskpcp
  • tskpcp
  • 2017年02月13日 10:16
  • 118

c++ Primer Plus(第六版)第七章习题,写代码之路

c++ Primer Plus(习题7.1) //用户输入啷个数,返回调和平均数 //其中一个为0结束程序 #include using namespace std; double t_averag...
  • Robot_x
  • Robot_x
  • 2017年01月20日 11:53
  • 403
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第7章 活 动 视 图
举报原因:
原因补充:

(最多只允许输入30个字)