面向对象方法uml分析第4章_第1页
面向对象方法uml分析第4章_第2页
面向对象方法uml分析第4章_第3页
面向对象方法uml分析第4章_第4页
面向对象方法uml分析第4章_第5页
免费预览已结束,剩余17页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第4章 活动图 用例图显示系统应该做什么,活动图则指明了系统将如何实现它的目标。活动图显示链接在一起的高级动作,代表系统中发生的操作流程。活动图是融合了Jim Odell的事件流图、SDL状态建模、工作流建模以及Peri网等技术,用来在面向对象系统的不同组件之间建模工作流和并行过程行为。例如,可以使用活动图描述某个用例的基本操作流程。 活动图的主要作用就是来描述工作流,其中每个活动都代表工作流中一组动作的执行。活动图可用来为不同类型的工作流建模,一个工作流是能产生一个可观测值或在执行时生成的一个实体的动作序列。2本章学习要点:理解活动图的功能了解创建活动图的步骤掌握活动图基本标记符掌握条件的

2、使用掌握分叉和连结的使用掌握泳道概念及其标记符理解对象流概念及标记符34.1 定义活动图 活动图本质上是一种流程图,其中几乎所有或大多数的状态都处于活动状态,它描述从活动到活动的控制流。用来建模工作流时,活动图可以显示用例内部和用例之间的路径;活动图还可以向读者说明需要满足什么条件用例才会有效,以及用例完成后系统保留的条件或者状态;在建模活动图时,常常会发现前面没有想到、附加的用例。在某些情况下,常用的功能可以分离到它们自己的用例中,这样便大大减少了开发应用程序的时间。 活动图在用例图之后提供了系统分析中对系统的进一步充分描述。活动图允许读者了解系统的执行,以及如何根据不同的条件和刺激改变执行

3、方向。 44.2 认识活动图标记符除了标记符略微不同之外,活动图保留了许多传统的流程图特征。活动图中有三种主要的标记组件:活动、状态和转移。另外,还有判断、分叉和汇合等多种标记符,只有综合熟练地使用它们才能完成优秀的活动图。活动也称为动作状态(action state),它是活动图中指示要完成某项工作的指示符;状态指示内部的值,它可以指示每个域是否为脏,也可以指示成功或者失败。转移可以组合活动和状态,显示活动图的迁移和路径。图4-1演示了简单的活动图。4.2.1 活动活动(动作状态)是活动图的核心符号,它表示工作流过程中命令的执行或活动的进行。与等待事件发生的一般等待状态不同,活动状态用于等待

4、计算处理工作的完成。当活动完成后,执行流程转入到活动图的下一个活动。活动具有以下特点:原子性 活动是原子的,它是构造活动图中最小单位,已经无法分解为更小的部分。不可中断性 活动是不可中断的,它一旦开始运行就不能中断,一直运行到结束。瞬时行为性 活动是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略。存在入转换 活动可以有入转换,入转换可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关。4.2.2 状态状态通常使用一个批示系统当前状态的词来或短语来标识。状态可以在活动图中为读者说明转折点的转移,或者用来标记工作流中以后的条件。状态具有以下特

5、点:状态可以分解成其他活动或状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。状态内部活动可以用另一个活动图来表示。和活动不同,状态可以有入口动作和出口动作,也可以有内部转移。活动是状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个活动。64.2.3 转移 一个活动图有很多动作或者活动状态,活动图通常开始于初始状态,然后自动转换到活动图的第一个动作状态,一旦该状态的动作完成后,控制就会不加延迟地转换到下一个动作状态或者活动状态。所有活动之间的转换称之为转移。转移不断重复进行,直到碰到一个分支或者终止状态为止。 本章前面的活动图中已经多次用到了转移。转移是状态图重要组成部

6、分,是活动图中不可缺少的内容,它指定了活动之间、状态之间或活动与状态之间的关系。 74.2.4 控制点从活动转移到其他活动或状态时都可以有转移条件,这些条件是让转移修改任何工作流方向所必需的。如果没有这些条件任何事件都会从开始状态一直到结束状态,这里把控制转移方向的条件称为控制点。控制点(guard)标记两个活动或状态之间的转移条件,用来允许控制流仅沿着满足预置条件的方向转移。 84.2.5 判断节点与合并节点 当想根据不同条件执行不同动作序列时,可以使用判断点。在UML的活动图中,使用菱形作为判断的标记符。菱形标记符除了标记判断外还能表示多条控制流的合并。本节将详细讲解有关菱形标记符进行判断

7、和合并的相关知识。94.2.6 综合应用前面我们讲到了活动图的几种基本标记符,这里就来使用这些标记符来建造一个很简单的物流查询系统查询并显示货物信息的活动图。该系统需要键入货物号,依据货物号进行查找货物相关信息,图为完整的活动图。104.3 其他标记符 除了前面讲到的基本标记符外,活动图还具有其他一些标记符。如分叉、汇合、泳道和对象流等,它们也是活动图中不可缺少的标记符。这些标记符与基本标记符一起构建了活动图的丰富内容,综合使用它们能增强绘图技术丰富了活动图表达能力。114.3.1 事件和触发器事件(event)和触发器(trigger)的用法和控制点相似,区别是它们不是通过表达式的控制工作流

8、,而是被触发来把控制流移到对应的方向。事件非常类似于操作和方法与其对应的操作相比是较高层的分析标记符组件(本书大部分章节还处理分析阶段)。事件是动作发生的指示符,它可以包含一个或多个参数,参数放在事件名后的括号中,图演示了事件的使用方法。124.3.2 分叉和汇合在前面曾经讲过菱形标记符,它能根据条件不同将控制流分为多个方向,也可以将多个控制流合并成一个路径。但对象在运行时可能会存在两个或多个并发运行的控制流,此时菱形标记符,但不能完成这些功能。为了对并发的控制流建模,UML中引入了分叉和汇合的概念。分叉和汇合与转移形影不离。分叉是用于将一个控制流分为两个或多个并发运行的分支,它可以用来描述并

9、发线程,每个分叉可以有一个输入转移和两个或多个输出转移,每个转移都可以是独立的控制流。 134.3.3 泳道对于程序设计而言,活动图没有指出每个活动是由哪个类负责。而对于建模而言,活动图没有表达出某些活动是由哪些人或哪些部门负责。虽然可以在每个活动上标记出其所负责的类或者部门,但难免带出诸多麻烦。泳道的引用解决了这些问题。泳道将活动图划分为若干组,每一组指定给负责这组活动的业务组织,即对象。在活动图中泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。在包含泳道的活动图中每个活动只能明确地属于一个泳道。 144.3.4 对象流用活动图描述某个对象时,可以将涉及到的对象放到活动图

10、中并用一个依赖将其连接到进行创建、修改和撤销的活动或状态上,对象的这种使用方法就构成了对象流。对象流是活动图中活动或状态与对象之间的依赖关系,表示活动使用对象或者活动或状态对对象的影响。在活动图中,对象流标记符用带箭头的虚线表示。如果箭头从活动出发指向对象,则表示该活动对对象施加了一定的影响,施加的影响包括创建、修改和撤销等;如果箭头是从对象指向活动,则表示该活动对使用对象流所指示的对象。 154.4 建造活动图模型本书在第二章中曾经给出了图书馆管理系统的用例图,在第三章中给出了图书馆管理系统的类图,本节就在前面两章的基础上综合运用讲到活动图的相关知识,并分析用例图,画出图书馆管理系统的活动图

11、。用例图分为两部分,一部分是图书管理员的用例图,而另外一部分则是图书馆系统的系统管理员用例图。本节选取两个用例图中某一个基本用例,并逐步实现其状态图,让读者了解绘制活动图的基本步骤和技术要领。164.4.1 建模活动图步骤活动图描述用例图,用活动流来描述系统参与者和系统之间的关系。建模活动图也是一个反复的过程,活动图具有复杂的动作和工作流,检查修改活动图时也许会修改整个工程。所以有条理的建模会避免许多错误,从而提高建模效率。建模活动图时,可以按照以下五步来进行:(1)标识需要活动图的用例。(2)建模每一个用例的主路径。(3)建模每一个用例的从路径。(4)添加泳道来标识活动的事务分区。(5)改进

12、高层活动并添加到更多活动图。174.4.2 标识用例建模活动图时,首先要确定对谁进行建模。在图书馆中,图书管理员用到最多的应该就是借书操作和还书操作。这里单以借书用例为例,来建模借书用例的活动图。在例图一章中曾经给出了完整的用例图,这里把图书管理员借书用例从完整的用例图中独立出来,如图 184.4.3 建模主路径 建模用例的活动图时,往往利用一条显示的路径执行工作,然后从该路径进行扩展。前面曾给出独立的借书用例图,这里就建模该用例的活动图主路径。 4.4.4 建模从路径活动图的主路径描述了用例图的主要工作流,此时的活动图没有任何转移条件或错误处理。建模从路径的目标就是进一步添加活动图的内容,包括判断、转移条件和错误处理等。在主路径的基础上完善活动图。例如,在Check这一活动的作用包括了对借阅者是否存在超期图书和借书数量是不否超过规定要求的判断。如果两种判断同时满足条件,才开始下面活动的进行。 4.4.5 添加泳道 前面曾经讲到过泳道的相关知识,在活动图中加入泳道能够清晰地表达出各个活动所由哪些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论