zhjr07- 第五章 活动图_第1页
zhjr07- 第五章 活动图_第2页
zhjr07- 第五章 活动图_第3页
zhjr07- 第五章 活动图_第4页
zhjr07- 第五章 活动图_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

授课:张金荣Email:zhjr2000@163.comzhjr@QQ:zhjr@(即1211460305)电话:13983103704107030803、04班《统一建模语言与建模工具》教学要求掌握:活动图的作用,活动图建模元素掌握:活动图建模的方法第

5

章活动图2一个完整的模型必然描述系统的静态和动态两个方面1.x静态模型的组成结构结构模型2.x1.x动态模型描述系统的行为行为模型2.xUML提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图

状态图用来描述某一特定对象所有可能的状态及状态间的转移,是对类图的补充顺序图用来描述对象间的动态交互关系,着重体现对象间消息传递的时间顺序协作图用来描述相互协作的对象的交互关系和关联关系,着重体现对象间的静态关联关系活动图主要用于描述用例内部的工作流程3UML1.x和2.x四种动态图的比较活动图1.x2.xactivitydiagram名字一样但改动较大顺序图1.x2.x又叫时序图/序列图

sequencediagram协作图1.x--2.x通信图

collaboration-----communicationdiagram状态图1.x2.x

statediagram--2.x交互概观图(顺序图和协作图)

interactionoverviewdiagram

4活动图和交互图是UML中对系统动态方面建模的两种主要形式交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模

UML2.0而言,去除了“活动图是状态图

的一种特例”这一规定5先看一个实例:ATM机“登录”用例6ATM机“登录”用例的活动图7用例图?事件流?活动图?三个有什么联系吗??85.1活动图的概述5.1.1从实例开始:910(1)(2)(3)(4)(5)(6)(7)动作结点活动结点转换transition

控制流注:虚线表示该处是复杂活动图中的元素(UML并无此分类,这里仅仅是为了行课方便而作此划分);双红线表示是UML1.x里面的称谓,UML2.x已经用其右面的称谓11活动图并不是直接来源于三位UML设计者以前的工作,其技术思想主要来源于JimOdell的事件图、SDL状态建模技术和Petri网技术。这些技术可以有效地描述(a)工作流和(b)并行过程的行为。5.1.2活动图思想12(a)活动图是用例事件流的另一种建模方式。由于活动图显示的信息与文本事件流相同,所以可在业务模型中用活动图描述业务过程的工作流。在用例模型中,活动图用来捕捉用例的活动,并使用框图的方式显示动作及其结果。活动图着重描述操作(Operation)及用例实例或对象中的活动。13(b)活动图是企事业过程建模的重要工具,具有较强的并行表达能力,对企事业过程中业务活动的建模非常重要,可以方便地表示业务活动中常见的并行过程。采用并行过程来描述一个业务过程具有重要的意义,它鼓励人们在建立业务过程模型时自然地保留那些业务过程中际存在的并发行为,不必过早地去考虑如何用一个只能处理顺序事务的计算机来实现这些并发行为的种种细节。实际上,在模型中保留这种并行行为的描述,对于在实现阶段充分发现那些可以并行的工作非常有利,这样可以大大提高业务过程中的办事效率和反应的灵敏程度。14活动图采用类似于状态机的方法来表示工作的流程,描述了需要做的活动以及执行这些活动的顺序。活动图用来描述:何种动作、做什么(对象状态改变)、何时发生(动作序列)在何处发生(泳道)。活动图用来描述动作和动作导致对象状态改变的结果,而不考虑引发状态改变的事件。5.1.3活动图定义155.1.4活动图目的活动图可以用作下述目的:1)描述一个操作执行过程中所完成的工作(动作),这是活动图最常见的用途。2)描述对象内部的工作。3)显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象。4)显示用例的实例如何执行动作以及如何改变对象状态。5)说明一次商务活动中的人(角色)工作流组织和对象是如何工作的。165.1.5活动图与流程图的区别虽然活动图描述系统使用的活动、判定点和分支,看起来和流程图没什么两样,并且传统的流程图所能表示的内容,大多数情况卞也可以使用活动图表示,但是两者是有区别的,不能将两个概念混淆。(1)流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系;而活动图描述的是对象活动的顺序夭糸所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。(2)活动图能够表示并发活动的情形,而流程图不能(3)活动图是面向对象的,而流程图是面向过程的。171.动作结点(actionnode)一个动作结点表示一步计算,是最小的行为单位,属于一种可执行结点。2.控制结点(controlnode)起始结点(initialnode)终止结点(finalnode)分叉汇合(fork&joinnode)判断合并(decision&merge—node)3.对象结点(objectnode)流入和流出被调用的行为,表示对象或数据,或者表现令牌的集聚4.对象流(objectflow)由一个结点产生的数据,由其他结点使用。5.控制流(controlflow)表示结点间执行的序列。6.分区(partition)和泳道(swimlane)依照各种协作方式来组织较低层次的活动,如同现实世界中的各个机构或角色各司其责。7.可中断区间(region)和异常表示控制流偏离正常执行的轨道。活动结点活动边5.2活动图的基本要素18活动的建模在UML2.x中已经经历了完整的修订。也许可以这么说,(至少对偶然使用)效果和外观可能非常相似,这取决于UML1.5(以及更早版本)中建模的形式,根据UML1.x规则构造的模型的严格解释和执行结果可能与UML2.x中不同。因此,我们提醒建模人员注意,即使UML1.x活动模型不作更改似乎对UML2.x也可以接受,但它可能无法同样执行-特别是在更复杂的模型涉及并行的情况下。单个可执行步骤的活动或活动状态动作或动作结点;活动(将显示在活动图中)是行为作为下级单元的协调排序所作的指定,下级单元的单个元素就是动作。我们可能已经把UML1.x活动图中的单个可执行步骤称为活动或活动状态,或者正确地称为操作状态:现在,UML2.x活动中的这些步骤被称为动作-这些动作在活动中不再进一步分解。状态的含义在UML2.x中已经消失结点状态的含义在UML2.x中已经消失,因为活动不再是一种状态机(在UML1.x中为状态机)。在UML2.x中,活动由节点组成(动作就是一种节点);其它的是控制节点和对象节点。19【1】动作(Action)是原子性的动作或操作的执行,它不能被外部事件的转换中断。动作的原子性决定了动作要么不执行,要么就完全执行,不能中断,如发送一个信号、设置某个属性值等。动作不可以分解成更小的部分,它是构造活动图的最小单位。从理论上讲,动作所占用的处理时间极短,甚至可以忽略不计。而实际上,它需要时间来执行,但是时间要比可能发生事件需要的时间短的多。5.2.1动作和活动20动作通常用于对工作流执行过程中的步骤进行建模。在一张活动图中,动作允许在多处出现。常见动作如下:(1)基本功能,如算术运算。(2)行为调用,如调用另一个活动或者操作。(3)通信动作,如发送一个信号,或者等待接收某个信号,或者等待某个时间点。(4)对象处理,如对属性值或关联值的读写。21动作结点actionnode(原先称为activitystate)动作结点可以有转入,转入可以是对象流或者动作流。动作结点通常有一个输出的完成转换,如果有监护条件也可以有多个输出的完成转换。在UML中,动作结点使用平滑的圆角矩形表示,写在矩形内部22【2】活动和活动结点活动用于表达状态机中的非原子的运行。活动的特点如下。(1)活动可以分解成其他子活动或动作,由于它是一组不可中断的动作或操作的组合,所以可以被中断。(2)活动的内部活动可以用另一个活动图来表示。(3)和动作不同,活动可以有入口动作和出口动作,也可以有内部转移。虽然和动作有诸多不同,活动结点的表示图标却和动作结点相同,都是圆角矩形。稍有不同的是活动结点可以在图标中给出入口动作和出口动作等信息。23注意:UML定义的动作和活动结点都是用上面的圆角矩形表示.但在rose2003里面,圆角矩形表示状态,圆端矩形表示活动(没有动作的概念)Uml2里面动作还引入了引脚的概念,这里略过可以说,动作是活动的一种特殊情况,因此,除非特殊说明,后面课件中的活动称谓,含动作.245.2.2控制结点(controlnode)起始结点(initialnode)终止结点(finalnode)分叉汇合(fork&joinnode)分支(判断)合并(decision&mergenode)25initialnode&finalnode1.x称为起始状态(startstate)和终止状态(endstate)起始结点:用一个实心圆表示初始结点一个活动图只能有一个起始结点终止结点:用一个圆圈内加一个实心圆来表示活动终点可以有多个终结结点(1)起始结点和终止结点26fork&joinnode并发(Concurrency)指的是在同一时间间隔内有两个或者两个以上的活动执行。对于些复杂的大型系统而言,对象在运行时往往不只存在一个控制流,而是存在两个或者多并发运行的控制流。为了对并发的控制流建模,在UML中引入了分叉和结合的概念。用于表示将一个控制流分成两个或者多个并发运行的分支,结合用来表示并行分支在此得到同步。(2)分叉与汇合2728结合汇合了两条或两条以上的并行控制路径。在执行过程中,所有路径都要走过先到的控制流要等其他路径的控制流到达后才能继续运行。29branch&merge分支是用菱形表示的它有一个进入转换(箭头从外指向分支符号)一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件(guardcondition),用来表示满足什么条件的时候执行该转换(3)分支(判定)与合并30分支在活动图中很常见,它是转换的一部分,它将转换路径分成多个部分,每一部分都有单独的监护条件和不同的结果。当动作流遇到分支时,会根据监护条件(布尔值)的真假来判定动作的流向。分支的每个路径的监护条件应该是且斥的,这样可以保证只有一条路径的转换被激发。分支应该尽可能地包含所有的可能,否则可能会有一些转换无法被激发。这样最终会因为输出转换不再重新激发而使活动图冻结。31合并指的是两个或者多个控制路径在此汇合的情况。合并和分支常常成对使用,合并表示从对应分支开始的条件的行为结束。合并汇合了两个以上的控制路径,在任何执行中每次只走一条,不同路径之间是互斥的关系。325.2.3(动作流)控制流与状态图不同,活动图的转换一般都不需要特定事件的触发。一个活动执行完本状态需要完成的动作后会自发转换到另外一个活动。一个活动图有很多动作或者活动,活动图通常开始于初始结点,然后自动转换到活动图的第一个活动结点,该结点的动作完成后,控制就会不加延迟地转换到下一个结点。重复进行,碰到一个分支或者终止结点为止。所有动作状态之间的转换流称之为动作流活动图的转换也用带箭头的直线表示,箭头的方向指向转入的结点表示的活动335.2.3对象结点和对象流活动有时需要输入值和输出值,这些输入输出需要对象的实例来定义.这些对象的实例构成活动图中的对象结点.对象结点表示活动中输入或输出的对象。对象结点的本质是一个实例或一组同类型的实例,在活动中主要表示在流中的实例状态如何变化从活动指向对象结点的流或从对象结点指向活动的流称为对象流。对输出值而言,虚线箭头从活动指向对象结点。对输入值而言,虚线箭头从对象结点指向活动。34对象结点和对象流的表示:355.3泳道(swimlane)活动图告诉人们发生了什么,但是不能告诉该项活动由谁来完成。这就是说,在程序设计中,活动图无法描述出每个活动是由哪个类来完成的。而在领域建模中,它无法描述出每个活动由哪个人或部门来负责。泳道技术是解决这个问题的一种方法。所谓泳道技术,是将活动用虚线分成一些纵向的域,将这些纵向的区域称之为泳道。每个区域代表一一个特定类、或者人、或者部门的责任区。将模型中的活动按照职责组织起来通常很有用。例如,可以将一个商业组织处理的所有活动组织起来。这种分配可以通过将活动组织成用线分开的不同区域来表示。由于它们的外观的缘故,这些区域被称作泳道。36带泳道的活动图375.4用例的活动图如果事件流的逻辑复杂且有许多其他事件流,则利用文本方式描述用例的事件流就让人觉得较难阅读和理解。如果使用流程图来描述事件流,则直观易懂。UML中的活动图是事件流的另一种建模方式。因为活动图显示的信息与文本事件流相同,所以可在业务模型中用活动图描述业务过程的工作流。385.5活动的分解可以对活动进一步分解以获得更详细的描述。这种描述可以是正文、程序代码或另一张活动图。当分解一个高层活动时,在其细化的活动图中必须提供一个起始点;同时,当高层活动输出很多触发事件时,应该画同样个数的结束点。这样就可以根据该孑图的返回值来决定是哪个触发件产生的输出。39组合活动40组合活动和简单活动的区别:组合活动是可任意按大小分解的,而简单活动虽然是系列的动作组成,但这些动作全执行完才算一个完整的活动;只含有一个动作的活动是元活动,即动作.如上例的Login是组合活动,returncard是动作415.6活动图实例分析42复杂活动图(不要求,自己查阅资料)发送信号与接收信号:43引脚:表示活动节点的相应参数扩展区:445.7活动图建模实例(1)定义活动图范围,确定开始、结束状态。(2)添加活动,建模主路径。(3)寻找分支和并行的情况,建模扩展路径。(4)根据需要划分游泳道。45“餐馆订餐”系统的用例图46“记录预约”用例的事件路径如下:1.接待员输入要预约的日期2.系统显示该日的预约3.有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐

温馨提示

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

评论

0/150

提交评论