《(38)--10 UML活动图 面向对象与UML.pdf》由会员分享,可在线阅读,更多相关《(38)--10 UML活动图 面向对象与UML.pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 面向对象与面向对象与UML Object-Oriented and UML UML图图 -UML活动图活动图 Activety Diagram 活动图活动图 1 概述概述 2 活动图的组成元素活动图的组成元素 3 活动的分解活动的分解 4 活动图的用途活动图的用途 5 活动图建模技术活动图建模技术 1 概述概述 用例图用例图建模系统的功能需求,建模系统的功能需求,活动图活动图则指明了系统将如何实现它的用例则指明了系统将如何实现它的用例功能。功能。用活动图描述某个(某几个)用例实现的流程。用活动图描述某个(某几个)用例实现的流程。活动图在用例图之后提供了系统分析中对系统的进一步描述。活动图在用
2、例图之后提供了系统分析中对系统的进一步描述。活动图可以为用例建模工作流,更可以理解为用例图具体的细化。活动图可以为用例建模工作流,更可以理解为用例图具体的细化。活动图对业务过程、工作流、数据流和复杂算法进行建模。活动图对业务过程、工作流、数据流和复杂算法进行建模。什么是活动图什么是活动图?活动图是活动图是UML用于对系统的用于对系统的动态行为建模的常用工具,动态行为建模的常用工具,描述系统的工作流程和并发描述系统的工作流程和并发行为。行为。活动图中的每一个活动代表活动图中的每一个活动代表一个操作步骤。一个操作步骤。活动图中一个活动结束后将活动图中一个活动结束后将自动进入下一个活动。自动进入下一
3、个活动。活动图实例:活动图实例:银行存款银行存款 活动图的图形表示活动图的图形表示 在在UML中,活动表示成圆角矩形,中,活动表示成圆角矩形,并列出活动的名称。并列出活动的名称。两个活动的图标之间用带箭头的直两个活动的图标之间用带箭头的直线(动作流或控制流)连接。线(动作流或控制流)连接。活动图也有起点和终点,表示工作活动图也有起点和终点,表示工作流的开始和结束。流的开始和结束。活动图中还包括活动图中还包括分支分支与与合并合并、分叉分叉与与汇合汇合等模型元素。等模型元素。2 活动图的组成元素活动图的组成元素(1)活动()活动(activity)动作状态(动作状态(Action State)活动
4、状态(活动状态(Activity State)(2)动作流(控制流)(动作流(控制流)(Action Flow)(3)分支()分支(Branch)与合并()与合并(Merge)(4)分叉()分叉(Fork)与汇合()与汇合(Join)(5)泳道()泳道(Swimlane)(6)对象流()对象流(Object Flow)(1)活动()活动(activity)活动表示某流程中任务的执行过程,也可以表示某算法过程中语句活动表示某流程中任务的执行过程,也可以表示某算法过程中语句的执行。的执行。在活动图中要区分在活动图中要区分动作状态(动作状态(action state)和和活动状态(活动状态(acti
5、vity state)这两个概念。这两个概念。活动状态活动状态 动作状态动作状态 动作状态动作状态 (2)动作流(转换、转移)动作流(转换、转移)活动图中,活动图中,活动之间由边(活动之间由边(Edge)相连接。)相连接。活动之间的转换流称之为动作流(控制流),表示活动活动之间的转换流称之为动作流(控制流),表示活动之间的之间的执行顺序,它在一个活动结束后启动另一个活动。执行顺序,它在一个活动结束后启动另一个活动。活动图的转换也用带箭头的直线表示,箭头的方向指向活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向。转入的方向。(3)分支与合并)分支与合并 对象类所具有的条件行为用对象类所
6、具有的条件行为用分支分支和和合并合并表达。表达。在在活动图中分支与合并用空心小菱形表示。活动图中分支与合并用空心小菱形表示。一个一个分支分支有一个入转换和多个带条件的出转换,有一个入转换和多个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发。一条出转换能够被触发。一个一个合并合并有多个入转换和一个出转换,合并表示有多个入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。从对应的分支开始的条件行为的结束。分支与合并分支与合并 (4)分叉与汇合)分叉与汇合 分支分支表示的是从多种可能的活动转移中选择一个。表示的是从多
7、种可能的活动转移中选择一个。如果要表示系统或对象的并发行为,则可以使用如果要表示系统或对象的并发行为,则可以使用 分叉(分叉(fork)和汇合()和汇合(join)这两种建模元素。这两种建模元素。分叉分叉用于将动作流分为两个或者多个并发运行的分支,而用于将动作流分为两个或者多个并发运行的分支,而汇合汇合则用于同则用于同步这些并发分支,以达到共同完成一项事务的目的。步这些并发分支,以达到共同完成一项事务的目的。分叉与汇合分叉与汇合 分叉分叉可以用来描述并发线程,每个分可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的输出转
8、换,每个转换都可以是独立的控制流。控制流。汇合汇合代表两个或多个并发控制流同步代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个合可以有两个或多个输入转换和一个输出转换。输出转换。分叉与汇合分叉与汇合 分叉和汇合都使用加粗的水平或垂直分叉和汇合都使用加粗的水平或垂直线段表示。线段表示。网上订购商品的活动图网上订购商品的活动图 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕(5)泳道()泳道(swimlane)泳道是活动图中的区域划分,每个泳道泳道是活
9、动图中的区域划分,每个泳道代表一个责任区。代表一个责任区。泳道将活动图中的活动划分为若干组,泳道将活动图中的活动划分为若干组,并把每一组指定给负责这组活动的业务并把每一组指定给负责这组活动的业务组织即对象。组织即对象。泳道区分了负责活动的对象,明确地表泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象示了哪些活动是由哪些对象进行进行的。的。泳道用垂直实线绘出,垂直线分隔的区泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。象(对象类)
10、负责泳道内的全部活动。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 活动图表示业务流程实例:活动图表示业务流程实例:考虑一个咨询公司会见一个客户时的业务过程。考虑一个咨询公司会见一个客户时的业务过程。(1)公司公司业务员业务员打电话给客户,确定一个约定(打电话给客户,确定一个约定(Call client setup appointment)。)。(2)如果约定地点时在公司之内(如果约定地点时在公司之内(appointment onsite),那么公司中的),那么公司中的技技术人员术人员就要为会面准备一间会议室(就要为会面准备一间会议室(Prepare a conference roo
11、m)。)。(3)如果约定地点在公司之外(如果约定地点在公司之外(appointment offsite),那么,那么咨询顾问咨询顾问就要用就要用笔记本电脑准备一份陈述报告(笔记本电脑准备一份陈述报告(Prepare a report)。)。(4)咨询顾问咨询顾问和和业务员业务员与客户在约定的时间和地点见面(与客户在约定的时间和地点见面(Meet with the client)。)。(5)业务员业务员随后给他们准备好会议用纸(随后给他们准备好会议用纸(salesperson follow-up letter)。(6)如果会议产生了一个问题陈述(如果会议产生了一个问题陈述(state of pr
12、oblem),),咨询顾问咨询顾问就根据问就根据问题陈述建立编写一个提案(题陈述建立编写一个提案(Create proposal)并把该提案发给客户()并把该提案发给客户(Send proposal to client)。)。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 活动图表示业务流活动图表示业务流程实例:程实例:考虑一个考虑一个咨询公司会见一个咨询公司会见一个客户时的业务过程。客户时的业务过程。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 活动图表活动图表示业务流示业务流程实例:程实例:考虑一个考虑一个咨询公司咨询公司会见一个会见一个客户时的客户时的业务过程。业务过程
13、。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 网上订购商品的活动图网上订购商品的活动图 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 注意:注意:泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,发进行,动作流动作流和和对象流对象流允许穿越分隔线。允许穿越分隔线。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕(6)对象流)对象流 对象流用带有箭头的虚线表示。对象流用带有箭头的虚线表示。对象流描述活动与对象之间的依赖关系,表示活动使对象流描述活动与对象之间的依赖关系,表示活动使用对象(输入)或者活动对对象
14、的影响(输出)。用对象(输入)或者活动对对象的影响(输出)。如果箭头从活动出发指向对象,则表示活动对对象施如果箭头从活动出发指向对象,则表示活动对对象施加了一定的影响加了一定的影响(包括创建、修改、撤销等包括创建、修改、撤销等)。此时的此时的对象作为活动的输出。对象作为活动的输出。如果箭头从对象指向活动,则表示该活动使用对象流如果箭头从对象指向活动,则表示该活动使用对象流所指向的对象。所指向的对象。此时的对象作为活动的输入。此时的对象作为活动的输入。活动活动 对象名和对象名和 对象状态对象状态 对象流对象流 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕(6)对象流)对象流 对象流中对
15、象流中的对象的对象特点特点 一个对象可以由多个活一个对象可以由多个活动操纵。动操纵。一个活动输出的对象可一个活动输出的对象可以作为另一个活动输入以作为另一个活动输入的对象。的对象。在活动图中,同一个对在活动图中,同一个对象可以多次出现,它的象可以多次出现,它的每一次出现表明该对象每一次出现表明该对象正处于对象生存期的不正处于对象生存期的不同时间点。同时间点。发货付款已付款已发货未付款订单对象订单对象的状态图的状态图 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 注意注意 计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 3
16、 活动的分解活动的分解 一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。组成一个活动图。一个不含内嵌活动或动作的活动称之为一个不含内嵌活动或动作的活动称之为简单活动简单活动;一个嵌套了若干活;一个嵌套了若干活动或动作的活动称之为动或动作的活动称之为组合活动组合活动,组合活动有自己的名字和相应的子,组合活动有自己的名字和相应的子活动图。活动图。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 例:在书店买书的活动图例:在书店买书的活动图 组合活动组合活动 3 活动的分解活动的分解 计算机与控制工程学院计
17、算机与控制工程学院 郭艳燕郭艳燕 4.活动图的用途活动图的用途 活动图对表示并发行为很有用,经常用于对系统的工作流程建模,即活动图对表示并发行为很有用,经常用于对系统的工作流程建模,即对系统的业务过程建模。对系统的业务过程建模。在在UML中没有流程图的概念,活动图从某种意义上包含了流程图的中没有流程图的概念,活动图从某种意义上包含了流程图的功能,可以用来描述算法。功能,可以用来描述算法。活动图也可以对具体的操作建模,用于描述计算过程的细节,即对算活动图也可以对具体的操作建模,用于描述计算过程的细节,即对算法建模。法建模。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 对过程算法建模对过
18、程算法建模 对数组排序对数组排序 i=1j=1交换aj和aj+1 j排序元素个数 ajaj+1 排序元素个数 i=-1 排序元素个数 i=j+-i i+计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 活动图与流程图的区别活动图与流程图的区别 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理之间有严格的顺序和时间关系;各个处理之间有严格的顺序和时间关系;而活动图描述的则是对象活而活动图描述的则是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统动的顺序关系所遵循的规则,它着重表现的是系统的行为
19、,而非系统的处理过程的处理过程。活动图能够表示并发活动的情形,而流程图做不到活动图能够表示并发活动的情形,而流程图做不到。活动图是面向对象的,而流程图是面向过程的。活动图是面向对象的,而流程图是面向过程的。可以可以用活动图来描述流程图。用活动图来描述流程图。活动图活动图的应用更广,可以对业务过程、工作流、数据流和复杂算法进的应用更广,可以对业务过程、工作流、数据流和复杂算法进行建模。行建模。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 状态图和活动图的比较状态图和活动图的比较 都是对系统的动态行为建模。都是对系统的动态行为建模。两者描述重点不同。状态图描述的是对象的状态及状态之间的转
20、移,两者描述重点不同。状态图描述的是对象的状态及状态之间的转移,活动图描述的是从活动到活动的控制流。活动图描述的是从活动到活动的控制流。两者使用的场合不同。若是为了显示一个对象在其生命周期内的行为,两者使用的场合不同。若是为了显示一个对象在其生命周期内的行为,则使用状态图较好,若为了分析用例、理解涉及多个用例的工作流程则使用状态图较好,若为了分析用例、理解涉及多个用例的工作流程或处理多线程应用等,则使用活动图较好。或处理多线程应用等,则使用活动图较好。计算机与控制工程学院计算机与控制工程学院 郭艳燕郭艳燕 如果要显示多个对象之间的交互情况,用状态图和活动图都不合适,如果要显示多个对象之间的交互
21、情况,用状态图和活动图都不合适,这时可以用顺序图和协作图描述。这时可以用顺序图和协作图描述。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。动的流程。状态图着重描述从一个状态到另一个状态的流程,主要有外部事件状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。的参与。5 活动图建模技术活动图建模技术 识别该工作流的目标。(用例)识别该工作流的目标。(用例)识别要对其工作流描述的类或对象。识别要对其工作流描述的类或对象。确定工作流的初始状态和终止状态,明确工作流的边界。确定工作流的初始状态和终止状态,明确工作流的边界。对动作状态或活动状态建模。对动作状态或活动状态建模。对动作流建模。对动作流建模。对对象流建模。对对象流建模。对建立的模型进行精化和细化。(分支、合并、分叉、汇合、泳道)对建立的模型进行精化和细化。(分支、合并、分叉、汇合、泳道)本章小结本章小结