资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,9,章 活动图,9.1,概述,9.2,活动图的组成元素,9.3,活动的分解,9.4,活动图建模技术,9.5,实例,图书馆管理系统的活动图,1,9.1,概述,活动是某件事情正在进行的状态。,活动在状态机中表现为一个由一系列动作组成的非原子的执行过程。,活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。,活动图与状态图都是状态机的表现形式。,2,9.1,概述,活动图与状态图的区别:,活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。,状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。,3,9.1,概述,9.1.1,活动图的图形表示,9.1.2,活动图与流程图的区别,4,9.1.1,活动图的图形表示,在,UML,中,活动表示成圆角矩形。,如果一个活动引发下一个活动,两个活动的图标之间用带箭头的直线连接。,活动图也有,起点和终点,,表示法和状态图中相同。,活动图中还包括,分支与合并,、,分叉与汇合,等模型元素。分支与合并的图标和状态图中的判定的图标相同,而分叉与汇合则用一条加粗的线段表示。,5,9.1.1,活动图的图形表示,6,9.1.2,活动图与流程图的区别,流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理之间有严格的顺序和时间关系;而活动图描述的则是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。,活动图能够表示并发活动的情形,而流程图做不到。,活动图是面向对象的,而流程图是面向过程的。,7,9.2,活动图的组成元素,动作状态(,Action State,),活动状态(,Activity State,),动作流(,Action Flow,),分支(,Branch,)与合并(,Merge,),分叉(,Fork,)与汇合(,Join,),泳道(,Swimlane,),对象流(,Object Flow,),8,9.2,活动图的基本组成元素,9.2.1,动作状态,9.2.2,活动状态,9.2.3,动作流,9.2.4,分支与合并,9.2.5,分叉与汇合,9.2.6,泳道,9.2.7,对象流,9,9.2.1,动作状态,动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。,动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。,10,9.2.1,动作状态,动作状态的特点:,动作状态是原子的,它是构造活动图的最小单位,已经无法分解为更小的部分。,动作状态是不可中断的状态,它一旦开始运行就不能中断,一直运行到结束。,动作状态是瞬时的行为,它所占用的处理事件极短,有时甚至可以忽略。,动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关。,动作状态和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。,在一张活动图中,动作状态允许多处出现。,11,9.2.2,活动状态,活动状态用于表达状态机中的一个非原子的运行。,活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息。,12,9.2.2,活动状态,活动状态的特点:,活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。,活动状态的内部活动可以用另一个活动图来表示。,和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。,动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。,13,9.2.3,动作流,所有动作状态之间的转换流称之为动作流。,与状态图的转换相同,活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向。,14,9.2.4,分支与合并,分支一般用于表示对象类所具有的条件行为。,条件行为用分支和合并表达。,在活动图中分支与合并用空心小菱形表示。,一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发。,一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。,15,9.2.4,分支与合并,16,9.2.5,分叉与汇合,分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。,分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。,汇合代表两个或多个并发控制流同步发生后,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换。,分叉和汇合都使用加粗的水平线段表示。,17,9.2.5,分叉与汇合,18,9.2.6,泳道,泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织即对象。,泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。,每个活动只能明确地属于一个泳道。,泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(类)的名字,该对象(类)负责泳道内的全部活动。,泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。,19,9.2.6,泳道,20,9.2.7,对象流,对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。,对象流中的对象特点:,一个对象可以由多个动作操纵。,一个动作输出的对象可以作为另一个动作输入的对象。,在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点。,21,9.2.7,对象流,对象流用带有箭头的虚线表示。如果箭头从动作状态出发指向对象,则表示动作对对象施加了一定的影响。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。,22,9.2.7,对象流,23,9.3,活动的分解,一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。,一个包含子活动的活动和嵌套了子状态的组合状态类似,概念上也相对统一。,一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套了若干活动或动作的活动称之为组合活动,组合活动有自己的名字和相应的子活动图。,24,9.3,活动的分解,25,9.4,活动图建模技术,识别要对其工作流描述的,类或对象,。,确定工作流的初始状态和终止状态,明确工作流的边界。,对动作状态或活动状态建模。,对动作流建模。,对对象流建模。,对建立的模型进行精化和细化。,26,9.5,实例,图书馆管理系统的活动图,9.5.1,使用,Rational Rose,绘制活动图的步骤,9.5.2,图书馆管理系统的活动图,27,9.5.1,使用,Rational Rose,绘制活动图的步骤,1.,创建活动图,2.,活动图工具栏按钮简介,3.,加入初态和终态,4.,增加动作状态,5.,增加活动状态,6.,增加动作流,7.,增加分支与合并,8.,增加分叉与汇合,9.,增加泳道,10.,增加对象与对象流,28,9.5.2,图书馆管理系统的活动图,1.,借阅者的活动图,2.,图书管理员的活动图,3.,系统管理员的活动图,29,1.,借阅者的活动图,30,2.,图书管理员的活动图,31,3.,系统管理员的活动图,系统管理员维护借阅者帐户的活动图,系统管理员进行书目信息维护的活动图,系统管理员维护书籍信息的活动图,32,(,1,)系统管理员维护借阅者帐户的活动图,33,(,2,)系统管理员进行书目信息维护的活动图,34,(,3,)系统管理员维护书籍信息的活动图,35,
展开阅读全文