1第4章活动图讲授:董兰芳研究方向:科学计算可视化图形、图像处理模式识别Telephone:0551-3603484Email:lfdong@ustc.edu.cnHomepage:~lfdong中国科学技术大学视觉计算与可视化实验室地址:安徽合肥中国科大2012年春2内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图35.1活动图的概念活动图并不是直接来源于三位UML设计者以前的工作,其技术思想主要来源于JimOdell的事件图、SDL状态建模技术和Petri网技术。以上技术可以有效地描述工作流和并行过程的行为。45.1活动图的概念活动图采用类似于状态机的方法来表示工作的流程,描述了需要做的活动以及执行这些活动的顺序。活动图的状态代表了运算执行的状态,而非一般对象的状态。通常活动图架设无外界的基于事件的中断来影响计算过程,否则,一般状态机将更合适。在用例模型中,活动图用来捕捉用例的活动,使用框图的方式显示动作及其结果。活动图着重描述操作(Operation)以及用例实例或对象中的活动。活动图用来描述采取何种动作、做什么(对象状态改变)、何时发生(动作序列)以及在何处发生(泳道)。55.1活动图的概念在UML中,活动图可以用作下述目的:描述一个操作执行过程中所完成的工作(动作)。描述对象内部的工作。显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象。显示用例的实例如何执行动作以及如何改变对象状态。说明一次商务活动中的人(角色)工作流组织和对象是如何工作的。活动图是企事业过程建模的重要工具。65.1活动图的概念活动图和程序流程图比较,活动图给予选择做事顺序的自由。在抽象程度较高的层次上,活动图仅仅列出了那些需要做的事情(即活动)以及那些必须的、不得不遵守的工作顺序,而程序流程图对活动顺序的描述则比较确定,这是活动图与程序流程图的根本区别。程序流程图一般用来表示串行过程,而活动图则常常用来表示并行过程。75.2活动图的基本要素活动图用来描述采取何种动作、做什么、何时发生以及在何处发生。活动图可以用作下述目的:描述一个操作执行过程中所完成的工作(动作)这是活动图最常见的用途。描述对象内部的工作。显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象。显示用例的实例是如何执行动作以及如何改变对象状态。说明一次商务活动中的人(角色)工作流组织和对象是如何工作的。85.2活动图的基本要素起始状态终止状态状态迁移决策守护条件同步棒泳道活动图组成:95.2活动图的基本要素105.2活动图的基本要素活动图中的动作用一个圆角四边形表示,其内部的文本串被用来说明动作或采取的动作。动作之间的转移用箭头来表示,称为转移,用带有箭头的实线表示。箭头上可能还带有守卫条件、发送短句和动作表达式。115.2活动图的基本要素125.2活动图的基本要素守卫条件用来约束转移,可以将一个转移分解成两个或更多的转移,从而导致并发的动作。所有的并行转移在合并之前必须被执行。一条粗黑线表示将转移分解成多个分枝,并发动作同样用粗黑线来表示分枝的合并,粗黑线称为同步棒。13内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图145.3泳道泳道是将活动用虚线分成一些纵向的区域。我们将这些纵向的区域称之为泳道。每个区域代表一个特定类、或者人、或者部门的责任区。155.3泳道16内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图175.4用例的活动图利用文本描述用例的事件流是很有用的,但如果事件流的逻辑复杂且有许多其他事件流,则会让人觉得这种文本形式较难阅读和理解。可以使用流程图来描述事件流,在UML中可以采用活动图,它是事件流的另一种建模方式。185.4用例的活动图在选课系统的用例分析中,选课系统的AddCourse的事件流为:1.管理员选择进入管理界面,用例开始。2.系统提示输入管理员密码。3.管理员输入密码。4.系统验证密码。A1:密码错误。5.进入管理界面,系统显示目前所建立的全部课程信息。6.管理员选择添加课程。7.系统提示输入新课程信息。8.管理员输入信息。9.系统验证是否和已有课程冲突。A2:有冲突。10.系统添加新课程,提示课程添加成功。11.系统重新进入管理主界面,显示所有课程。12.用例结束。195.4用例的活动图因为管理员密码验证可以抽取出来,作为共通的流程,所以,这里对AddCourse事件稍作修改成,将管理员输入课程信息作为起始的活动,内容如下:1.管理员输入信息。2.系统验证是否和已有课程冲突。A2:有冲突。3.系统添加新课程,提示课程添加成功。4.系统重新进入管理主界面,显示所有课程。5.用例结束。202122内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图235.5活动的分解我们可以对活动进一步分解以获得更详细的描述。这种描述可以是正文、程序代码或另一张活动图。当分解一个高层活动时,在其细化的活动图中必须提供一个起始点;同时,当高层活动输出很多触发事件时,应该画同样个数的结束点。这样就可以根据该子图的返回值来决定是哪个触发事件产生的输出。24内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图255.6何时使用活动图在以下几种情况可以使用活动图:分析用例处理多线程应用理解牵涉多个用例的工作流265.6何时使用活动图在下列场合不要使用活动图:显示对象间的合作。显示对象在其生命周期内的运转情况。27内容活动图的概念活动图的基本要素泳道用例的活动图活动的分解何时使用活动图