1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,问题:,教学进程,1,、什么叫交互?,?,答案:,教学进程,1,、什么叫交互?,!,用来描述为了完成一项任务,系统中应该参与的对象之间交互信息过程。,问题:,教学进程,2,、交互图有哪几种类型?,?,答案:,教学进程,2,、交互图有哪几种类型?,!,顺序图 ,通信图,问题:,教学进程,3,、下面,4,种图中,(),可以描述一个用例中多个对象之间的相互协作关系以及协作过程中的行为次序关系,.,A,交互图,B,状态图,C,对象图,D,用例图,?,答案:,教学进程,3,、下面,4,种图中,(),可以描述一个用例中
2、多个对象之间的相互协作关系以及协作过程中的行为次序关系,.,A,交互图,B,状态图,C,对象图,D,用例图,!,问题:,教学进程,4,、下面,(),建模元素不能在通信图中表示出来。(多选),A,状态,B,消息,C,活动,D,对象,?,答案:,教学进程,4,、下面,(),建模元素不能在通信图中表示出来。(多选),A,状态,B,消息,C,活动,D,对象,!,问题:,教学进程,5,、指出下面这个图中各个,),建模元素的名称和含义。,?,答案:,教学进程,5,、指出下面这个图中各个,),建模元素的名称和含义。,!,消息,生命线,交互执行,活动图和交互概览图,7.1,概述,7.2,活动,7.3,活动节点
3、7.4,活动边,7.5,活动分区,7.6,可中断活动区间和异常,7.7,交互概览图,第,7,章,状态图和活动图,7.1.1,活动图的例子,7.1.2,几个概念,7.1.3,活动图,7.1.4,活动图的用途,第,7,章,7.1,概述,活动图的例子,7.1.1,处理订单的活动图,活动图的例子,7.1.1,工程建设的活动图,活动图的例子,7.1.1,书店图书入库的活动图,活动图,(activity diagram),通过对一个活动中的各个动作的联系来描述活动的流程。一个活动图描述一个活动。,一个基本的活动图由节点和边构成,节点表示动作或对象,边表示动作之间的联系。,活动图,7.1.3,1.,业务流
4、程建模,可以用活动图对业务流程建模。,活动图的作用,7.1.4,处理订单的活动图,2.,工作流建模,工作流,是计算机化的业务过程。信息系统开发的业务过程重组需要建立详细的工作流模型,用活动图可以有效地建立工作流模型。,活动图的作用,7.1.4,工作流的例子,3.,算法流程建模,可以用活动图描述一个算法的流程,一个类中操作的处理流程。,活动图的作用,7.1.4,算法流程,状态图和活动图,7.2.1,活动的概念,7.2.2,活动的表示,7.2.3,活动的要素,7.2.4,活动的执行,第,7,章,7.2,活动,1.,过程,在工程中,,过程,(process),表示为某项工作进展或某些任务完成的流程,
5、像业务流程、工作流程、操作流程、算法执行流程等都可以称为过程。,过程和功能、对象、结构等,都是软件工程需要关注的重要方面,因此过程建模是软件建模的一项重要的工作。,活动的概念,7.2.1,2.,活动,活动,(,activity,),是指在过程中能够完成一定任务的一组相关动作的集合。一个活动由一组动作组成,动作是活动基本要素。,活动的概念,7.2.1,3.,动作,动作,(,action,),是活动的一个基本执行单位,若干个动作按照一定的流程联系起来,就构成一个活动。活动可以分解为多个动作,但动作一般不再分解。,活动的概念,7.2.1,活动的表示,7.2.2,活动,活动名,活动节点,活动边,输入参
6、数,输出参数,活动的要素主要包括:活动节点和活动边,活动节点:,动作节点,对象节点,控制节点,活动边:,对象流,控制流,活动的要素,7.2.3,活动节点,活动边,1.,令牌,令牌:,是一个可以赋予节点执行权力的数据结构,这个数据结构可以在活动图的各个节点之间进行传递,一个节点只有获得令牌才可以执行。,令牌的分类:,分为,控制令牌,和,对象令牌,两种类型。控制令牌延着控制流移动,对象令牌延着对象流移动。,活动的执行,7.2.4,2.,活动的执行,活动的执行是活动中的动作按照一定的流程的执行过程。一个活动由激发事件启动执行,激发事件把启动执行的令牌首先传送给活动图的起始节点,起始节点把令牌转给它下
7、面第一个节点。,活动的执行表现为活动中每一个节点的执行,这个过程是活动中令牌的一个有序传递过程。,在一个活动的执行过程中,可以有多个令牌同时在传递。表示该活动中同时存在多股控制流的并发执行;也可以存在控制流和对象流同时传递的情况。,活动的执行,7.2.4,活动的执行,状态图和活动图,7.3.1,活动节点的概念,7.3.2,动作节点,7.3.3,控制节点,7.3.4,对象节点,第,7,章,7.3,活动节点,1.,活动节点的概念,活动节点,(,activitynode,):,是活动图中由活动边连接的表示活动单元的节点。一个活动节点是一条活动流程中的一个步骤,通过活动边把多个活动节点联系起来,就表示
8、一个完整的活动。,活动节点的概念,7.3.1,2.,活动节点的类型,活动节点分为三种类型:,动作节点,:描述一个动作,是活动的基本行为单位;,控制节点,:用来控制和协调活动图中动作节点和对象节点的流程;,对象节点,:描述实体或数据结构的节点。,活动节点的概念,7.3.1,3.,活动节点的标示,通过节点名来标示一个活动节点,控制节点可以省略节点名。,活动节点的概念,7.3.1,动作节点,控制节点,对象节点,1.,动作节点的概念,动作,(action),:,是活动的一个基本执行单位,若干个动作按照一定的流程由多个活动边联系起来,就构成一个活动。,动作节点:,动作作为节点出现在活动图里,被称为动作节
9、点,。,动作表示为下图的样式:,:,动作节点,7.3.2,2,动作的执行,一般来说,一个动作的执行需要下面五个步骤:,1,)创建:,指创建该动作的执行。要求该动作输入的所有控制令牌和对象令牌全部提供,方能创建该动作的执行。,2,)启动:,启动这个动作的执行。,3,)操作:,动作的执行过程,执行动作所需的所有操作。,4,)完成:,完成动作的操作,为所有输出对象边提供对象令牌,为所有输出控制边提供控制令牌,并结束该动作的执行。,5,)清理:,回收动作执行所使用的资源。,动作节点,7.3.2,2,动作的执行,一个动作必须等待进入该动作的所有控制边和对象边上的控制令牌和对象令牌全部达到之后,才能启动执
10、行。动作在完成时,需要为从该动作输出的控制边提供控制令牌,为输出的对象边提供对象令牌。,动作节点,7.3.2,1.,控制节点的概念,控制节点,:,是协调活动中动作和对象流程的活动节点。,UML,共定义了,7,种控制节点,分别是起始节点、活动终止节点、流终止节点、判断节点、合并节点、分叉节点、汇合节点。,控制节点,7.3.3,2.,起始节点,一个活动从起始节点开始引发执行。起始节点没有入边,只有出边,用实心小圆表示。,一个活动图中可以有多个起始节点。如果这几个起始节点都开始,意味这个活动同时存在多个控制流,在一个并发的系统中,这是很普遍的情况。,控制节点,7.3.3,3.,活动终止节点和流终止节
11、点,活动终止节点:,用来终止一个活动的节点。在活动中,只要有一个控制流程到达活动终止节点,那么该活动的所有流程将被终止。在一个活动图中,可以有多个活动终止节点,无论那一个流程到达活动终止节点,该活动都会被全部终止。,控制节点,7.3.3,活动终止节点,3.,活动终止节点和流终止节点,一个活动终止节点可以有多个入边,但不能有出边,无论哪一个边上面传来的控制令牌,只要到达活动终止节点,整个活动将被终止,在活动中的所有动作将被终止,对象节点上的所有对象令牌将被撤销。,控制节点,7.3.3,提案流程的活动图,3.,活动终止节点和流终止节点,流终止节点:,用来终止活动中的一个流。一个活动中可以有多个流,
12、当在某一个流上的控制令牌达到流终止节点时,该流被终止。一个活动中出现一个流的终止时,并不影响在该活动中其他流的执行。流终止节点用里面含叉的圆圈表示。,控制节点,7.3.3,流终止节点,4.,分叉与汇合节点,分叉节点:,分叉是一种控制节点,它有一个入边,多个出边。分叉在活动中的作用是把一个流分成为多个并发的流,以实现流并发控制。分叉用一个条棒表示,。,当分叉从入边接收到一个令牌时,分叉为每一个出边生成一个令牌,并把令牌发给出边所连接的节点,这样通过分叉就可以由一股流产生出多股流来,产生出的几股流将在活动中并发执行,因此分叉是产生并发控制流的有效机制。,控制节点,7.3.3,分叉节点,4.,分叉与
13、汇合节点,汇合节点:,汇合是与分叉正好相反的一种控制节点,它有多个入边,一个出边。其作用是把活动中的多股流汇合成为一股流,以实现流的同步控制。,汇合在控制过程中,只有所有入边的令牌全部到达时才给出边发送令牌,因此,通过汇合实现了多个流的同步机制。,控制节点,7.3.3,汇合节点,5.,判断与合并节点,判断节点:,是在活动中实施多流判断的一种控制节点。一个判断节点有一条入边,多条出边,用菱形框表示,。,当令牌从入边到达判断节点时,判断节点需要通过判断把令牌发送给监护条件为真的一个出边所连接的活动节点,。,控制节点,7.3.3,判断节点,5.,判断与合并节点,合并节点:,是把多股有条件的进入控制流
14、合并成为一股控制流。,合并节点与汇合节点的不同在于,汇合节点汇合多股并发的控制流,等待它们的令牌全部到达后,把多个令牌变换为一个令牌传给后续节点;一旦有一个令牌到达合并节点,立刻把令牌传给后续节点,并且不允许存在令牌同时到达的情况。,控制节点,7.3.3,合并节点,小结,教学进程,7.1,概述,7.1.1,活动图的例子,7.1.2,几个概念,7.1.3,活动图,7.1.4,活动图的用途,7.2,活动,7,.2.1,活动的概念,7,.2.2,活动的表示,7.2.3,活动的要素,7.2.4,活动的执行,7.3,活动节点,7,.3.1,活动节点的概念,7,.3.2,动作节点,7.3.3,控制节点,7
15、3.4,对象节点,7.4,活动边,7.4.1,概述,7.4.2,控制边,7.4.3,对象边,7.5,活动分区,7.5.1,活动分区的概念,7.5.2,活动分区的表示,7.6,可中断活动区间和异常,7.6.1,可中断活动区间,7.6.2,异常,7.7,交互概览图,7.7.1,交互概览图的概念,7.7.2,交互概览图的类型,7.7.3,交互概览图的应用,第,7,章 活动图和交互概览图,1.,对象节点的概念,对象节点:,是在活动中描述实体或数据结构的节点。,对象节点有,一般对象节点,、,引脚,、,活动参数节点,、,中心缓冲节点,和,数据存储节点,等类型。,对象节点,7.3.4,2.,一般对象节点,
16、一般对象节点:,是活动图中显式描述对象的节点,这种节点以对象的形式出现在活动中,用来表示对象的某种状态,。,对象节点,7.3.4,3.,活动参数节点,活动参数节点:,可以通过给活动设置参数来提高活动的灵活性。活动参数分为输入参数和输出参数两种类型,作为活动参数的节点被称为活动参数节点,(activity parameter node),,它是一种特殊的对象节点。,对象节点,7.3.4,4.,引脚,(1),引脚的概念,:,引脚,(pin),是用来作为动作参数的对象节点,因此,引脚也被称为,动作参数节点,,因为在动作的两边通过小插脚来表示动作参数节点,这种小插脚和集成电路芯片的引脚很相像,因此被称
17、为引脚。,对象节点,7.3.4,4.,引脚,(2),引脚的表示:,引脚表示为用一个小矩形贴在动作的边线上,如图所示。图中的支付动作有三个引脚,其中“订单”和“卡”是输入引脚,“结果”是输出引脚。,对象节点,7.3.4,(2),引脚的表示:,如果存在一个动作的输出是另外一个动作的输入,可表示为下面的形式。,对象节点,7.3.4,(3),引脚的类型:,引脚有输入引脚,输出引脚和值引脚几种类型。,输入引脚,输入引脚是提供给动作输入值的引脚,输入引脚一定通过对象边来自于其他动作输出的对象节点。输入引脚的作用是用来保存动作的输入值,输入引脚可以表示下图的形式。,对象节点,7.3.4,输出引脚,输出引脚是
18、持有动作产生的输出值的引脚,输出引脚则通过对象边到达动作的输入对象节点。输出引脚的作用是保存动作的输出值,输出引脚表示下图的形式。,对象节点,7.3.4,值引脚,值引脚是一种特殊的输入引脚,该引脚没有输入边,不与任何对象节点或动作节点相连接,由引脚自己提供动作所需要的值。,对象节点,7.3.4,5.,中央缓冲节点,中央缓冲节点,(central buffer node),是一种特殊的对象节点,它可以接收来自不同源的对象流,对接收到的对象进行排序,分拣和缓冲处理,然后分发给不同的对象流。中央缓冲节点用带有,centerBuffer,构造型的对象节点来表示。,对象节点,7.3.4,信件分拣的中央缓
19、冲,5.,数据存储节点,数据存储节点,(data store node),可以接收来自对象流的对象令牌,并把接收到的对象令牌作为对象存放在数据存储节点内。数据存储节点用带构造型,datastore,的对象节点来表示。,对象节点,7.3.4,数据存储节点的例子,状态图和活动图,7.4.1,概述,7.4.2,活动流,7.4.3,对象流,第,7,章,7.4,活动边,1.,活动边的概念,在活动图中,连接两个活动节点之间的线条被称为,活动边,。活动边用一个带箭头的直线表示。,可以给活动边命名,活动边的名字可以放置到接近箭头的一边。,活动边上可以标注警戒条件,只有警戒条件为真,活动流才能通过该活动边。,概
20、述,7.4.1,2.,活动边的类型,活动边分为控制流和对象流两种类型。,控制流,传输控制令牌,,对象流,传输对象或数据。,概述,7.4.1,3.,活动边的权重,一条活动边的权重规定同时通过该条边的令牌的最小数目。可以在活动边上用,weight=x,来规定边的权重,权重的缺省情况是,all,。当边的权重为,x,时,只有令牌数目达到,x,才允许令牌通过,如果在源节点上准备的令牌数目达不到,x,,则所准备的这些令牌将不允许通过该活动边。,概述,7.4.1,1.,控制流的概念,控制流是一种活动边,表示在前一个活动节点执行完成后,把控制传递给下一个活动节点,启动该节点的执行。,控制流,7.4.2,2.,
21、控制流的特性,控制流上不能传递对象或数据,因此控制流不能连接对象节点,可以连接动作节点和控制节点。,在源活动节点执行完成后,将交出控制令牌,通过控制流传递给目标节点。如果连接源节点有多个目标节点,则源节点会通过多个控制流,给每一个目标节点传送一个控制令牌。,控制流,7.4.2,1.,对象流的概念,对象流是另外一种活动边,活动图中的节点通过对象流传送对象或数据。一个对象流连接的两个活动节点中,至少应该有一个是对象节点,也可能两个全是对象节点。,对象流,7.4.3,2.,对象流的特性,如果一个对象节点有多个离开的对象流,在同一时间只能有一个对象流获得对象令牌,并传送到下一节点。,对象流,7.4.3
22、状态图和活动图,7.5.1,活动分区的概念,7.5.2,活动分区的表示,第,7,章,7.5,活动分区,活动分区,(activity partition),是对活动图划分的一个责任区域,把一个活动执行主体所承担的动作放到这个区域之中,这样如果一个活动有多个主体参与,就可以通过活动分区明确表示出各动作所属的执行主体,以及在活动中这些主体之间的动作联系。活动分区也被称为,泳道,(,swimlane,),。,活动分区的概念,7.5.1,活动分区的顶部标写活动分区名,活动分区名就是承担这个分区动作的角色名。在,UML,中,可以根据图的需要在活动图中把活动分区水平或垂直排放,。,活动分区,活动分区的表示
23、7.5.2,活动分区的表示,7.5.2,活动分区,状态图和活动图,7.6.1,可中断活动区间,7.6.2,异常,第,7,章,7.6,可中断活动区间和异常,1.,问题的提出,在活动执行过程中,存在如下需求:如果发生某些特殊事件,需要终止活动图中某些区域中的活动,并立即处理发生的事件,在该区域中被终止的活动将不再继续恢复执行,,UML,通过可中断活动区间来解决这个问题。,可中断活动区间,7.6.1,2.,可中断活动区间的概念,可中断活动区间,是活动图中的一个特殊的活动区域,该区域包括多个活动节点和活动边,该区域还存在一个或多个从外部来的特殊事件,特殊事件一定通过中断边连接到该区域外面的一个活动节
24、点。如果该区域中的动作在执行过程中,发生了外部来的特殊事件,则终止该区域中的所有活动,转去执行特殊事件,并把控制传给中断边所连接的外部节点。,可中断活动区间,7.6.1,3.,可中断活动区间的表示,可中断活动区间用虚线带圆角的矩形来表示,在该区域中存在多个活动节点和活动边。并存在可能激发的特殊事件,该事件将通过中断边连接到该区域外部的一个活动节点。活动边用一个折线箭头来表示。,可中断活动区间,7.6.1,1.,异常的概念,异常,是指软件系统在执行过程中,发生的非正常逻辑情况。软件系统在发生异常后,一般需要终止正常处理逻辑,而转去对异常进行处理。,异常发生的原因是系统出现了引发异常的动作,这种动
25、作的发生可能是因为出现了分母为零、下标越界、溢出等底层错误,也可能是在应用层出现了一个引发异常的动作,例如一个非法输入,传感器送来的一个非法信号等。,异常,7.6.2,2.,异常处理器,异常处理器,是在活动图中表示异常的一种建模元素,是一种特殊的活动节点,一个异常处理器涉及到三方面的要素:,1,)被保护节点:,一个可执行的活动节点,对该节点提供异常保护。当该节点发生异常或其他异常传播到该节点,则由异常处理器对该节点出现的异常提供处理。,2,)异常处理节点:,是异常处理器的主体,当异常处理器捉捕异常之后,由该节点实施异常处理。,3,)异常对象节点:,表示异常的一个对象节点,一般表示为异常处理节点
26、的一个引脚,与被保护节点连接,被保护节点上的异常会作为对象令牌传送给异常对象节点,异常处理节点接收到异常对象节点上的异常,开始对异常进行处理。,异常,7.6.2,异常,7.6.2,多异常处理建模,被保护节点,异常处理节点,异常对象节点,3.,异常处理器的构成,异常处理器的构成见下图,被保护节点通过一个折线箭头连接到异常对象节点,异常对象节点是异常处理节点的一个引脚。当被保护节点上发生异常后,把异常传递给异常对象节点,异常处理节点检测到引脚上的异常对象后,如果识别是该异常处理的类型,就开始异常处理,。,异常,7.6.2,练习:,教学进程,1,、画出图书馆“借书”和“还书,”,过程的活动图。,-,
27、见模型图,练习:,教学进程,2,、画出超市购物的活动图。,练习:,教学进程,3,、画出宾馆旅客入住的活动图,状态图和活动图,7.7.1,交互概览图的概念,7.7.2,交互概览图的类型,7.7.3,交互概览图的应用,第,7,章,7.7,交互概览图,交互概览图,(interaction overview diagram),是把顺序图和活动结合起来描述交互流程和交互细节的一种交互图。,交互概览图的概念,7.7.1,1,以活动图为主线,图的主体是一个活动图,活动图中的部分活动节点可以是一个交互片断,该交互片断可以展开为一个顺序图或者通信图,来描述该活动节点涉及到的对象的交互过程。,这种交互概览图适合对
28、复杂的工作流建模。用活动图描述工作流程,一些复杂的活动节点可以用顺序图来描述该活动所涉及到的对象交互关系。,交互概览图的类型,7.7.2,2,以顺序图为主线,以顺序图为主线的交互概览图,图的主体是顺序图,在顺序图中的某些消息的位置可以展开一个活动图,描述该消息所对应操作的算法流程。,交互概览图的类型,7.7.2,登录的顺序图中增加描述用户验证的活动图,1,组织顺序图,当描述一个复杂交互过程的顺序图涉及到太多的对象和交互消息时,使得顺序图变得过于复杂,为了便于开发人员的阅读和交流,可以把复杂的顺序图分解成为多个交互片断,每一个交互片断是一个顺序图,然后通过交互概览图把分解的多个交互片断组织起来,
29、以反映完整交互过程。,交互概览图的应用,7.7.3,“售书处理”的分析,接收图书信息交互片断的顺序图,接收会员信息交互片断的顺序图,确认收款交互片断的顺序图,2,细化活动细节,交互概览图也可以用在建立软件分析模型时,描述一个活动细节。下面我们通过一个生成订单汇总信息的例子来说明交互概览图在这方面的应用。,交互概览图的应用,7.7.3,生成订单汇总表的活动图,生成订单汇总表的交互概览图,小结,教学进程,7.1,概述,7.1.1,活动图的例子,7.1.2,几个概念,7.1.3,活动图,7.1.4,活动图的用途,7.2,活动,7,.2.1,活动的概念,7,.2.2,活动的表示,7.2.3,活动的要素
30、7.2.4,活动的执行,7.3,活动节点,7,.3.1,活动节点的概念,7,.3.2,动作节点,7.3.3,控制节点,7.3.4,对象节点,7.4,活动边,7.4.1,概述,7.4.2,控制边,7.4.3,对象边,7.5,活动分区,7.5.1,活动分区的概念,7.5.2,活动分区的表示,7.6,可中断活动区间和异常,7.6.1,可中断活动区间,7.6.2,异常,7.7,交互概览图,7.7.1,交互概览图的概念,7.7.2,交互概览图的类型,7.7.3,交互概览图的应用,第,7,章 活动图和交互概览图,END,(1),活动图的作用是什么,?,活动图可以对那些需要建模?,活动图中的泳道有什么作用?,比较两种图。,教学进程,本章作业,






