《第6章 活动图.ppt》由会员分享,可在线阅读,更多相关《第6章 活动图.ppt(48页珍藏版)》请在优知文库上搜索。
1、第第6章章 活动图活动图内容提纲内容提纲1.活动图活动图2.活动图的应用活动图的应用1.活动图活动图1.1 活动图活动图1.2 活动图组成元素活动图组成元素1.活动图活动图活动图活动图(Activity Diagrams)为为系统的动态方面建模的系统的动态方面建模的5个图之一。它主要是一个图之一。它主要是一个流图,描述从活动到活动的流。个流图,描述从活动到活动的流。活动活动是在状态机中进行的一个非原子的执行,它由是在状态机中进行的一个非原子的执行,它由一系列的动作组成。一系列的动作组成。动作动作是由可执行的不可分的计算组成,这些计算引是由可执行的不可分的计算组成,这些计算引起系统的状态发生变化
2、或返回一个值起系统的状态发生变化或返回一个值。1.1 活动图活动图1.活动图活动图活动图活动图(Activity Diagrams)通常通常,活动图记录单个操作或方法的逻辑、单个用,活动图记录单个操作或方法的逻辑、单个用例或商业过程的逻辑流程。例或商业过程的逻辑流程。在在UML中,活动的起点用来描述活动图的开始状中,活动的起点用来描述活动图的开始状态,用黑的实心圆表示。活动的终止点描述活动图的态,用黑的实心圆表示。活动的终止点描述活动图的终止状态,用一个含有实心圆的空心圆表示。活动图终止状态,用一个含有实心圆的空心圆表示。活动图中的活动既可以是手动执行的任务,也可以是自动执中的活动既可以是手动
3、执行的任务,也可以是自动执行的任务,用圆角矩形行的任务,用圆角矩形表示表示。1.活动图活动图活动图活动图区别于其它动态建模图区别于其它动态建模图 (1)交互作用图强调从对象到对象的控制流;交互作用图强调从对象到对象的控制流;(2)时序图强调消息的时间顺序;时序图强调消息的时间顺序;(3)协作图强调交互作用的对象的结构关系;协作图强调交互作用的对象的结构关系;(4)交互作用图着眼于传递消息的对象,活动图则交互作用图着眼于传递消息的对象,活动图则着眼于在对象间传递的操作;着眼于在对象间传递的操作;(5)活动图根据对象状态的变化来确定动作与动作活动图根据对象状态的变化来确定动作与动作的结果。在活动图
4、中,一个动作结束后自动进入下一的结果。在活动图中,一个动作结束后自动进入下一个动作;而在状态图中,状态的跃迁可能需要事件的个动作;而在状态图中,状态的跃迁可能需要事件的触发。触发。1.活动图活动图活动图的作用活动图的作用 (1)描述一个操作执行过程中所完成的工作。说明角色、工作描述一个操作执行过程中所完成的工作。说明角色、工作流、组织和对象是如何工作的流、组织和对象是如何工作的。(2)活动图对用例描述尤其有用,它可建模用例的工作流,显活动图对用例描述尤其有用,它可建模用例的工作流,显示用例内部和用例之间的路径。它可以说明用例的实例是如何示用例内部和用例之间的路径。它可以说明用例的实例是如何执行
5、动作以及如何改变对象状态。执行动作以及如何改变对象状态。(3)显示如何执行一组相关的动作,以及这些动作如何影响它显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。们周围的对象。(4)活动图对理解业务处理过程十分有用。活动图可以画出工活动图对理解业务处理过程十分有用。活动图可以画出工作流用以描述业务,有利于与领域专家进行交流。通过活动图作流用以描述业务,有利于与领域专家进行交流。通过活动图可以明确业务处理操作是如何进行的,以及可能产生的变化。可以明确业务处理操作是如何进行的,以及可能产生的变化。(5)描述复杂过程的算法,在这种情况下使用的活动图和传统描述复杂过程的算法,在这种情况下
6、使用的活动图和传统的程序流程图的功能是差不多的。的程序流程图的功能是差不多的。1.活动图活动图活动图活动图主要组成元素主要组成元素 (1)活动状态或动作状态;活动状态或动作状态;(2)跃迁;跃迁;(3)对象;对象;活动图与状态机活动图与状态机 活动图活动图是一种特殊的状态机,大部分的状态都是活是一种特殊的状态机,大部分的状态都是活动状态,大部分跃迁都是由源状态活动的完成类触发动状态,大部分跃迁都是由源状态活动的完成类触发的。的。1.2 活动图组成元素活动图组成元素1.活动图活动图典型案例典型案例 1.活动图活动图动作状态动作状态活动状态活动状态跃迁跃迁分支分支分叉和联结分叉和联结泳道泳道对象流
7、对象流1.2 活动图组成元素活动图组成元素1.活动图活动图动作状态动作状态 可可执行的、不可分的计算,代表动作的执行。如为执行的、不可分的计算,代表动作的执行。如为属性赋值、调用一个对象的操作、发送一个信号给一属性赋值、调用一个对象的操作、发送一个信号给一个对象等。个对象等。动作状态动作状态不能被分解,即事件可以发生,但动作状不能被分解,即事件可以发生,但动作状态的工作没有被打断。态的工作没有被打断。完成完成动作状态中的工作花费相当短的执行时间。动作状态中的工作花费相当短的执行时间。1.活动图活动图动作状态实例动作状态实例 1.活动图活动图活动活动状态状态 非非原子的,可以分解,可以被打断,通
8、常需要一段原子的,可以分解,可以被打断,通常需要一段时间才能完成。时间才能完成。动作状态动作状态可看作活动状态的特例,活动状态可看作可看作活动状态的特例,活动状态可看作一个组合,由其他活动状态和动作状态构成。一个组合,由其他活动状态和动作状态构成。活动活动状态可以有入口、出口动作和子状态机的规定。状态可以有入口、出口动作和子状态机的规定。1.活动图活动图活动状态实例活动状态实例 1.活动图活动图活动状态实例活动状态实例组合活动组合活动 购物购物,当选购完商品后就需要付款。虽然付款只是,当选购完商品后就需要付款。虽然付款只是一个活动状态,但是付款却可以包括不同的情况。对一个活动状态,但是付款却可
9、以包括不同的情况。对于会员来说,一般是打折后付款,而一般的顾客就要于会员来说,一般是打折后付款,而一般的顾客就要全额付款了。这样,在付款这个活动状态中,就又内全额付款了。这样,在付款这个活动状态中,就又内嵌了两个活动,所以付款活动状态就是一个组合活动嵌了两个活动,所以付款活动状态就是一个组合活动。1.活动图活动图跃迁跃迁 用来用来表示从一个动作或活动状态传递到下一个动作表示从一个动作或活动状态传递到下一个动作或活动状态的路径。或活动状态的路径。一一项操作可以描述为一系列相关活动。一个活动仅项操作可以描述为一系列相关活动。一个活动仅一个起始点,但可有多个结束点。一个起始点,但可有多个结束点。判断
10、判断标志可以有多个输入和输出跃迁,但在活动的标志可以有多个输入和输出跃迁,但在活动的运作中仅触发一个满足条件的跃迁。运作中仅触发一个满足条件的跃迁。1.活动图活动图分支分支 规定规定了基于布尔表达式的替换路径。了基于布尔表达式的替换路径。分支分支起始于判定,有一个输入,两个或多个输出。起始于判定,有一个输入,两个或多个输出。每个输出跃迁上的布尔表达式为真时,跃迁触发。所每个输出跃迁上的布尔表达式为真时,跃迁触发。所有护卫条件不重复,且能覆盖所有的可能性。有护卫条件不重复,且能覆盖所有的可能性。1.活动图活动图分支迭代分支迭代 用用一个活动状态来设置迭代因子的初始化值,另一一个活动状态来设置迭代
11、因子的初始化值,另一个活动状态来增加迭代因子的值,用一个分支来判断个活动状态来增加迭代因子的值,用一个分支来判断迭代是否结束。迭代是否结束。1.活动图活动图活动图实例活动图实例1.活动图活动图分叉分叉和联结和联结(Forking and Joining)UML中使用同步条来规定并行控制流的分叉和联中使用同步条来规定并行控制流的分叉和联结。结。同步同步条是一条粗的水平线或垂直线。条是一条粗的水平线或垂直线。1.活动图活动图分叉分叉和联结和联结(Forking and Joining)1.活动图活动图分叉分叉和联结和联结(Forking and Joining)1.活动图活动图分叉分叉 分叉分叉表
12、示将单一的控制流分为两个或多个并发的控表示将单一的控制流分为两个或多个并发的控制流。分叉有一个输入跃迁和多个输出跃迁,每个输制流。分叉有一个输入跃迁和多个输出跃迁,每个输出代表一个独立的控制流。出代表一个独立的控制流。在在分叉下面,与每个输出路径相关的活动是并行进分叉下面,与每个输出路径相关的活动是并行进行的。行的。并发分为真正并发并发分为真正并发(多多CPU)和交叉并发和交叉并发(单单CPU)。1.活动图活动图联结联结 代表代表了两个或多个并发控制流的同步,联结有多个了两个或多个并发控制流的同步,联结有多个输入跃迁和一个输出跃迁。输入跃迁和一个输出跃迁。联结联结以上,与各路径有关的活动是并行
13、的。在联结以上,与各路径有关的活动是并行的。在联结处,并发的流同步,所有的输入流到达同步流后,同处,并发的流同步,所有的输入流到达同步流后,同步条将多个输入控制流合并,输出一个控制流,进而步条将多个输入控制流合并,输出一个控制流,进而执行后面的活动。执行后面的活动。1.活动图活动图1.活动图活动图描述系统的行描述系统的行为,不描述具为,不描述具体的处理过程。体的处理过程。允许并发活动。允许并发活动。1.活动图活动图描述各种活动描述各种活动的顺序关系。的顺序关系。1.活动图活动图泳道泳道(Swimlanes)泳道泳道说明活动由谁来完成,将活动图的逻辑描述说明活动由谁来完成,将活动图的逻辑描述与顺
14、序图、合作图的责任描述结合起来。与顺序图、合作图的责任描述结合起来。泳道泳道用矩形框来用矩形框来表示(表示(泳道名唯一泳道名唯一),),属于某个属于某个泳道的活动置于该矩形框中,将对象名置于举行框的泳道的活动置于该矩形框中,将对象名置于举行框的顶部,表示泳道中的活动由该对象负责。顶部,表示泳道中的活动由该对象负责。前前两活动图中皆含两个两活动图中皆含两个泳道,后两活动图含三个泳道,后两活动图含三个泳道。泳道。1.活动图活动图泳道泳道(Swimlanes)1.活动图活动图对象对象流(流(Object Flow)与与活动图有关的控制流可能涉及到对象。可将对活动图有关的控制流可能涉及到对象。可将对象
15、置于活动图中,用依赖关系将对象和产生、修改或象置于活动图中,用依赖关系将对象和产生、修改或破坏该对象的活动或跃迁连接。依赖关系和对象的使破坏该对象的活动或跃迁连接。依赖关系和对象的使用称为对象流。用称为对象流。活动图活动图除可说明对象流,还可说明对象的角色、状除可说明对象流,还可说明对象的角色、状态和属性值的变化。态和属性值的变化。1.活动图活动图对象流对象流1.活动图活动图对象流对象流2.活动图的应用活动图的应用2.1 为工作流建模为工作流建模 2.2 为操作建模为操作建模 2.3 JAVA代码建模代码建模2.活动图的应用活动图的应用工作工作流流 工作工作流常用于可视化、规范、构建和文档化系
16、统的流常用于可视化、规范、构建和文档化系统的商业过程。商业过程。为工作流建模为工作流建模 (1)确定工作流的中心。确定工作流的中心。针对复杂系统建模。针对复杂系统建模。(2)选择与工作流有关的商业对象。选择与工作流有关的商业对象。为每个对象创为每个对象创建一个泳道。建一个泳道。(3)识别工作流初始状态的前置条件和工作流最终识别工作流初始状态的前置条件和工作流最终状态的后置条件。状态的后置条件。2.1 为工作流建模为工作流建模2.活动图的应用活动图的应用为为工作流建模工作流建模 (4)从工作流的初始状态开始,规定随时间发生的从工作流的初始状态开始,规定随时间发生的活动和动作,置于活动图中。活动和动作,置于活动图中。(5)对于复杂动作或多次出现的动作集合,可将它对于复杂动作或多次出现的动作集合,可将它们折叠为活动状态,再提供一个单独的活动图来展开们折叠为活动状态,再提供一个单独的活动图来展开活动状态。活动状态。活动图的粗细粒度活动图的粗细粒度 (6)用跃迁连接活动状态和动作状态,从工作流中用跃迁连接活动状态和动作状态,从工作流中的顺序流开始,后考虑分支,再考虑分叉和联结。的顺序流开始,后考