UML与系统分析设计(第二版) 第8章 活动图.ppt
《UML与系统分析设计(第二版) 第8章 活动图.ppt》由会员分享,可在线阅读,更多相关《UML与系统分析设计(第二版) 第8章 活动图.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、活动图是活动图是UMLUML用于对系统的动态行为建模的图形用于对系统的动态行为建模的图形工具之一。工具之一。UMLUML的活动图综合了以往许多系统建模技术的思的活动图综合了以往许多系统建模技术的思想:想:Jim OdellJim Odell的事件图、的事件图、SDLSDL状态建模技术、状态建模技术、PetriPetri网等。网等。活动图描述活动的序列,并且支持对带条件的行为活动图描述活动的序列,并且支持对带条件的行为和并发行为的表达。和并发行为的表达。活动图实质上也是一种流程图,只不过表现的是从活动图实质上也是一种流程图,只不过表现的是从一个活动到另一个活动的控制流。一个活动到另一个活动的控制
2、流。活动图特别适合描述工作流和并发的处理行为。活动图特别适合描述工作流和并发的处理行为。第第8 8章章 活动活动图图Home第第8 8章章 活动活动图图8 8.1 .1 概述概述8.2 8.2 活动图的基本元素活动图的基本元素8.3 8.3 活动分解活动分解8.8.4 4 并发并发8.8.5 5 活动图活动图的的应用应用Home8.68.6 交互概观图交互概观图活动(活动(ActivityActivity)是做某件事情的状态,它可以是现实世界中的一项工是做某件事情的状态,它可以是现实世界中的一项工作,如写文章、修机器等;或者是执行某个软件的例行程序,如运行作,如写文章、修机器等;或者是执行某个
3、软件的例行程序,如运行对象类中的一个操作等。对象类中的一个操作等。活动图(活动图(Activity DiagramActivity Diagram)是系统的一种行为视图,它描述参与行为的是系统的一种行为视图,它描述参与行为的对象类的活动的顺序,包括依赖于条件的行为和并发行为。对象类的活动的顺序,包括依赖于条件的行为和并发行为。活动图和状态机图都用于为一个对象(或模型元素)的生命周期中的行活动图和状态机图都用于为一个对象(或模型元素)的生命周期中的行为建立模型。为建立模型。活动图与状态机图是不同的,其实质性区别在于,活动图描述的是响应活动图与状态机图是不同的,其实质性区别在于,活动图描述的是响应
4、内部处理的对象类的行为,状态机图描述的是对象类响应事件的外部内部处理的对象类的行为,状态机图描述的是对象类响应事件的外部行为。行为。活动图着重表现的是从一个活动到另一个活动的控制流,是内部处理驱活动图着重表现的是从一个活动到另一个活动的控制流,是内部处理驱动的流程;而状态机图着重表现的是从一个状态到另一个状态的流程,动的流程;而状态机图着重表现的是从一个状态到另一个状态的流程,常用于有异步事件发生的情形。常用于有异步事件发生的情形。活动图与交互图相比也各有侧重点。活动图着重表现的是活动的控制流,活动图与交互图相比也各有侧重点。活动图着重表现的是活动的控制流,描述在对象之间传递的操作;而交互图着
5、重表现的是对象到对象的控描述在对象之间传递的操作;而交互图着重表现的是对象到对象的控制流,描述在对象之间传递的消息。制流,描述在对象之间传递的消息。8.1 8.1 概述概述Home例:一个网上商店处例:一个网上商店处理顾客订货的活动图理顾客订货的活动图示例,如图示例,如图8.18.1所示。所示。8.1 8.1 概述概述Home图8.1 顾客订货处理的活动图 特别要注意的是,不要把活动图与一般软件工程中常用的特别要注意的是,不要把活动图与一般软件工程中常用的程序流程图(程序流程图(Program Flow ChatProgram Flow Chat)混淆。混淆。传统的程序流程图描述的是处理的过程
6、,它的主要控制结传统的程序流程图描述的是处理的过程,它的主要控制结构是顺序、分支和循环,各个处理(构是顺序、分支和循环,各个处理(ProcessProcess)之间有严格之间有严格的顺序和时间关系;而活动图描述的是对象类(或模型元的顺序和时间关系;而活动图描述的是对象类(或模型元素)的活动的顺序关系所遵循的规则,它着重表现的是系素)的活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而不是系统的处理过程,在活动图中也没有通统的行为,而不是系统的处理过程,在活动图中也没有通常的循环控制结构。常的循环控制结构。活动图能够表示并发活动的情形,流程图是不能表示并发活动图能够表示并发活动的情形,流程
7、图是不能表示并发过程的。过程的。活动图是面向对象的,流程图则是面向过程的。活动图是面向对象的,流程图则是面向过程的。8.1 8.1 概述概述Home8.2 8.2 活动图的基本元素活动图的基本元素Home8.2.1 8.2.1 动作状态与活动状态动作状态与活动状态8.2.2 8.2.2 动作流动作流8.2.3 8.2.3 泳道泳道8.2.4 8.2.4 对象流对象流动作状态(动作状态(Action StateAction State)表达原子的或不可中断的动作表达原子的或不可中断的动作或操作的执行。或操作的执行。动作状态用于为实体的原子动作或算法的执行步骤建立动作状态用于为实体的原子动作或算法
8、的执行步骤建立模型。模型。在活动图中的动作状态的图标由上下两条平行线段、两在活动图中的动作状态的图标由上下两条平行线段、两侧圆弧构成的图框表示,框内可以设置动作名称或动作侧圆弧构成的图框表示,框内可以设置动作名称或动作表达式,也可以用自然语言、伪码或程序语言代码描述。表达式,也可以用自然语言、伪码或程序语言代码描述。动作状态与活动状态的图形表示,动作状态与活动状态的图形表示,如如图图8.2 8.2 所示。所示。动作状态是状态的简略表示,该状态有一个内部动作。动作状态是状态的简略表示,该状态有一个内部动作。动作状态所表示的动作,在建模中只看作是瞬间行为,动作状态所表示的动作,在建模中只看作是瞬间
9、行为,不可被中断,动作的持续时间不重要。不可被中断,动作的持续时间不重要。Home8.2.1 8.2.1 动作状态与活动状态动作状态与活动状态动作状态可以有入转移,入转移可动作状态可以有入转移,入转移可以是动作流或对象流。以是动作流或对象流。动作状态至少有一条出转移,它不动作状态至少有一条出转移,它不是基于外部事件的,而是隐含表示是基于外部事件的,而是隐含表示内部动作的完成。内部动作的完成。动作状态不能有入口动作和出口动动作状态不能有入口动作和出口动作,也不能有内部转移。作,也不能有内部转移。动作状态必须指定在单条泳道内,动作状态必须指定在单条泳道内,表明负责该泳道的对象运行该动作表明负责该泳
10、道的对象运行该动作状态中的动作。状态中的动作。在一张活动图中,一个动作状态允在一张活动图中,一个动作状态允许多处出现,实际上这表示同一个许多处出现,实际上这表示同一个动作的不同状态。动作的不同状态。Home8.2.1 8.2.1 动作状态与活动状态动作状态与活动状态图8.2 动作状态与活动状态的图形表示 动作状态必须延迟所有的无关事件。所谓有关事件是指出现在动作动作状态必须延迟所有的无关事件。所谓有关事件是指出现在动作状态的出转移中的事件,无关事件是不出现在动作状态的出转移中状态的出转移中的事件,无关事件是不出现在动作状态的出转移中的事件。的事件。活动状态(活动状态(Activity Stat
11、eActivity State)表达在一个状态机中的一个非原子的运行。表达在一个状态机中的一个非原子的运行。一个活动拥有一组不可中断的动作或操作。一个活动拥有一组不可中断的动作或操作。活动本身是可以被中断的,而且通常需要持续一个时间段才能完成。活动本身是可以被中断的,而且通常需要持续一个时间段才能完成。动作状态图标同样可以表示活动状态,如图动作状态图标同样可以表示活动状态,如图8.28.2(b b)中的中的“制订计制订计划划”是一个简单活动状态。是一个简单活动状态。活动状态可以进一步分解,或者用另一个活动图来表达。活动状态可以进一步分解,或者用另一个活动图来表达。与状态机图中的状态一样,活动状
12、态可以有入口动作和出口动作,与状态机图中的状态一样,活动状态可以有入口动作和出口动作,也可以有内部转移。这些是活动状态与动作状态不同的地方也可以有内部转移。这些是活动状态与动作状态不同的地方 Home8.2.1 8.2.1 动作状态与活动状态动作状态与活动状态动作流(动作流(Action FlowAction Flow)是一个实体的不同动作状态之间的联系,说是一个实体的不同动作状态之间的联系,说明状态之间的控制流。明状态之间的控制流。在活动图中动作流用实箭线表示,箭线从一个动作状态出发指向另在活动图中动作流用实箭线表示,箭线从一个动作状态出发指向另一个动作状态。动作流相当于状态机图中的转移。一
13、个动作状态。动作流相当于状态机图中的转移。动作流可以是无条件的,也可以是有条件的。动作流可以是无条件的,也可以是有条件的。一个无条件的动作流代表无触发转移或完成转移一个无条件的动作流代表无触发转移或完成转移,对它不附加保安对它不附加保安条件,在一个动作状态的动作完成后自动发生动作状态的转移,激条件,在一个动作状态的动作完成后自动发生动作状态的转移,激活下一个动作状态。活下一个动作状态。在表示一个有条件的动作流的实箭线上需要标出在表示一个有条件的动作流的实箭线上需要标出“保安条件保安条件/动动作作”(动作部分可以缺省)。其中方括号中的保安条件是一个布尔(动作部分可以缺省)。其中方括号中的保安条件
14、是一个布尔表达式,当其值为真时,执行斜杠表达式,当其值为真时,执行斜杠“/”“/”后面的动作,发生动作状后面的动作,发生动作状态的转移,进入下一个动作状态。态的转移,进入下一个动作状态。Home8.2.2 8.2.2 动作流动作流条件行为用分支(条件行为用分支(BranchBranch)和合并(和合并(MergeMerge)表达。表达。在活动图中分支和合并用小空心菱形表示。在活动图中分支和合并用小空心菱形表示。一个分支有一个入转移和两个或多个带条件的出转移,一个分支有一个入转移和两个或多个带条件的出转移,而且只有其中一条出转移能被触发。而且只有其中一条出转移能被触发。一个合并有两个或多个带条件
15、的入转移和一个出转移。一个合并有两个或多个带条件的入转移和一个出转移。合并表示从对应的分支开始的条件行为的结束。合并表示从对应的分支开始的条件行为的结束。例:一个例:一个单位发放津贴时处理个人所得税的工作流,如单位发放津贴时处理个人所得税的工作流,如图图8.3 8.3 所示。所示。活动图中的动作流也可以有多条件的分支决策情况。分活动图中的动作流也可以有多条件的分支决策情况。分支决策也可以是链式的和非链式的,如图支决策也可以是链式的和非链式的,如图7.187.18所示那样。所示那样。Home8.2.2 8.2.2 动作流动作流例:活动图中例:活动图中动作流的分支与合并示例,如图动作流的分支与合并
16、示例,如图8.3 8.3 所示。所示。Home8.2.2 8.2.2 动作流动作流图8.3 动作流的分支与合并 泳道(泳道(SwimlanceSwimlance)代表对象对活代表对象对活动的责任。动的责任。泳道把活动图中的活动划分为若干泳道把活动图中的活动划分为若干组,并把这些组指定给对象,这组,并把这些组指定给对象,这些对象必须履行该组所包括的活些对象必须履行该组所包括的活动。泳道明确表示哪些活动是由动。泳道明确表示哪些活动是由哪些对象进行的。哪些对象进行的。在活动图上泳道用垂直实线划出,在活动图上泳道用垂直实线划出,垂直线分隔的区域就是泳道。在垂直线分隔的区域就是泳道。在泳道上方给出泳道的
17、名字或对象泳道上方给出泳道的名字或对象(对象类)名字,该对象(对象(对象类)名字,该对象(对象类)负责泳道内的全部活动。类)负责泳道内的全部活动。例:例:图图8.48.4在图在图8.18.1的基础上增加了的基础上增加了3 3个泳道:个泳道:“顾客服务顾客服务”、“处理处理订货订货”、“财务结算财务结算”。Home8.2.3 8.2.3 泳道泳道图8.4 泳道示例 对象流(对象流(Object FlowObject Flow)是动作状态(或活动状态)与对是动作状态(或活动状态)与对象之间的依赖联系,表示动作使用对象或动作对对象的象之间的依赖联系,表示动作使用对象或动作对对象的影响。影响。在活动图
18、中对象流用虚箭线表示。在活动图中对象流用虚箭线表示。虚箭线可以是从动作状态出发指向对象,表示该动作创虚箭线可以是从动作状态出发指向对象,表示该动作创建或更新了对象流所指向的对象,该对象是动作的输出。建或更新了对象流所指向的对象,该对象是动作的输出。虚箭线也可以是从对象出发指向动作状态,表示该动作虚箭线也可以是从对象出发指向动作状态,表示该动作使用对象流所指向的对象,该对象是动作的输入。使用对象流所指向的对象,该对象是动作的输入。一个对象可以由多个动作操纵。一个动作输出的对象可一个对象可以由多个动作操纵。一个动作输出的对象可以是另一个动作的输入。以是另一个动作的输入。在活动图中同一个对象可以多次
19、出现,它的每一次出现在活动图中同一个对象可以多次出现,它的每一次出现表明该对象处于生存期的不同的时间点。表明该对象处于生存期的不同的时间点。Home8.2.4 8.2.4 对象流对象流例:例:项目与资源管理系统项目与资源管理系统PRMSPRMS中,表达中,表达Use Case“Use Case“指定指定技能给资源技能给资源”的活动图,如图的活动图,如图8.58.5所示。所示。Home8.2.4 8.2.4 对象流对象流图8.5 把技能指定给资源的活动图 一个活动可以分解成若干个子活动(一个活动可以分解成若干个子活动(SubactivitySubactivity)或动作,或动作,这些子活动或动作
20、本身组成一个活动图。这些子活动或动作本身组成一个活动图。一个不含内嵌套活动或动作的活动,称为简单活动。一个不含内嵌套活动或动作的活动,称为简单活动。如果一个活动内嵌套了若干活动或动作,则称该活动为组如果一个活动内嵌套了若干活动或动作,则称该活动为组合活动(合活动(Composite ActivityComposite Activity),),其中的被嵌套的活动称为其中的被嵌套的活动称为子活动。子活动。组合活动有自己的名字和相应的子活动图。组合活动有自己的名字和相应的子活动图。使用活动分解的好处是,在高一层的活动图中只需要给出使用活动分解的好处是,在高一层的活动图中只需要给出组合活动,不必涉及子
21、活动图的内容,组合活动的内部行组合活动,不必涉及子活动图的内容,组合活动的内部行为可以在低一层的活动图中表示,这样便于抓住主要问题,为可以在低一层的活动图中表示,这样便于抓住主要问题,使得图形更为简洁明了。使得图形更为简洁明了。8.3 8.3 活动分解活动分解Home例:例:组合活动示例,组合活动示例,如图如图8.68.6所示。所示。其中,其中,组合活动组合活动“发货发货”用一个子用一个子活动图表示,它活动图表示,它有自己的初始状有自己的初始状态、终结状态和态、终结状态和判定分支。判定分支。Home8.3 8.3 活动分解活动分解图8.6 组合活动示例 8.4 8.4 并发并发Home8.4.
22、1 8.4.1 并发与同步并发与同步8.4.2 8.4.2 条件线程条件线程8.4.3 8.4.3 同步状态同步状态8.4.4 8.4.4 动态并发动态并发并发是常见的现象。在现实世界里,业务处理不一定都是顺序进行并发是常见的现象。在现实世界里,业务处理不一定都是顺序进行的,许多工作可以在同一个时期内并行进行。的,许多工作可以在同一个时期内并行进行。在并行程序设计中常需要处理多线程的执行和同步问题在并行程序设计中常需要处理多线程的执行和同步问题。在活动图中用在活动图中用“分劈分劈”(ForkFork)和和“接合接合”(JoinJoin)来表达并发和来表达并发和同步行为。同步行为。“分劈分劈”和
23、和“接合接合”均用一条粗横线表示,称为同步杆均用一条粗横线表示,称为同步杆(Synchronization barSynchronization bar)。)。“分劈分劈”同步杆有一条入转移箭线和两条或多条出转移箭线,每一条同步杆有一条入转移箭线和两条或多条出转移箭线,每一条表示一个独立的控制流。表示一个独立的控制流。“分劈分劈”表示当入转移被触发时,所有与表示当入转移被触发时,所有与出转移对应的活动就并行进行。出转移对应的活动就并行进行。“接合接合”同步杆有两条或多条入转移箭线和一条出转移箭线,每一条同步杆有两条或多条入转移箭线和一条出转移箭线,每一条表示一个独立的控制流。表示一个独立的控制
24、流。在在“接合接合”之前的所有与入转移对应的活动一直是并行进行的。在之前的所有与入转移对应的活动一直是并行进行的。在“接合接合”点这些并发的控制流实现同步,即只有当所有的入转移全点这些并发的控制流实现同步,即只有当所有的入转移全部完成其活动后才发生一个出转移。部完成其活动后才发生一个出转移。Home8.4.1 8.4.1 并发与同步并发与同步从从“分劈分劈”到到“接合接合”的一条路的一条路径就是一个线程。径就是一个线程。“分劈分劈”和和“接合接合”必须配对必须配对。从一个从一个“分劈分劈”出发的线程本身出发的线程本身也可以有一个也可以有一个“分劈分劈”,从新,从新“分劈分劈”所出发的线程必须在
25、到达所出发的线程必须在到达原配对的原配对的“接合接合”之前接合在一之前接合在一起,也即新起,也即新“分劈分劈”应有一个新应有一个新配对的配对的“接合接合”,它应位于原,它应位于原“接合接合”之前。之前。例:一个例:一个表示日常安排晚餐的活表示日常安排晚餐的活动图,如图动图,如图8.78.7所示,其中表现了所示,其中表现了活动的并发与同步。活动的并发与同步。Home8.4.1 8.4.1 并发与同步并发与同步图8.7 分劈、接合与条件线程示例 对于对于“接合接合”同步的规则:同步的规则:“只有当所有的入转移全部只有当所有的入转移全部完成其活动后才发生出转移完成其活动后才发生出转移”,可以有一种例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML与系统分析设计第二版 第8章 活动图 UML 系统分析 设计 第二 活动
限制150内