UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008

上传人:w****i 文档编号:94466744 上传时间:2019-08-07 格式:PPT 页数:41 大小:740KB
返回 下载 相关 举报
UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008_第1页
第1页 / 共41页
UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008_第2页
第2页 / 共41页
UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008_第3页
第3页 / 共41页
UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008_第4页
第4页 / 共41页
UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008》由会员分享,可在线阅读,更多相关《UML与系统分析设计 第二版 教学课件 ppt 作者 张龙祥 uml008(41页珍藏版)》请在金锄头文库上搜索。

1、活动图是UML用于对系统的动态行为建模的图形工具之一。 UML的活动图综合了以往许多系统建模技术的思想:Jim Odell的事件图、SDL状态建模技术、Petri网等。 活动图描述活动的序列,并且支持对带条件的行为和并发行为的表达。 活动图实质上也是一种流程图,只不过表现的是从一个活动到另一个活动的控制流。 活动图特别适合描述工作流和并发的处理行为。,第8章 活动图,Home,第8章 活动图,8.1 概述,8.2 活动图的基本元素,8.3 活动分解,8.4 并发,8.5 活动图的应用,Home,8.6 交互概观图,活动(Activity)是做某件事情的状态,它可以是现实世界中的一项工作,如写文

2、章、修机器等;或者是执行某个软件的例行程序,如运行对象类中的一个操作等。 活动图(Activity Diagram)是系统的一种行为视图,它描述参与行为的对象类的活动的顺序,包括依赖于条件的行为和并发行为。 活动图和状态机图都用于为一个对象(或模型元素)的生命周期中的行为建立模型。 活动图与状态机图是不同的,其实质性区别在于,活动图描述的是响应内部处理的对象类的行为,状态机图描述的是对象类响应事件的外部行为。 活动图着重表现的是从一个活动到另一个活动的控制流,是内部处理驱动的流程;而状态机图着重表现的是从一个状态到另一个状态的流程,常用于有异步事件发生的情形。 活动图与交互图相比也各有侧重点。

3、活动图着重表现的是活动的控制流,描述在对象之间传递的操作;而交互图着重表现的是对象到对象的控制流,描述在对象之间传递的消息。,8.1 概述,Home,例:一个网上商店处理顾客订货的活动图示例,如图8.1所示。,8.1 概述,Home,图8.1 顾客订货处理的活动图,特别要注意的是,不要把活动图与一般软件工程中常用的程序流程图(Program Flow Chat)混淆。 传统的程序流程图描述的是处理的过程,它的主要控制结构是顺序、分支和循环,各个处理(Process)之间有严格的顺序和时间关系;而活动图描述的是对象类(或模型元素)的活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而不是系统

4、的处理过程,在活动图中也没有通常的循环控制结构。 活动图能够表示并发活动的情形,流程图是不能表示并发过程的。 活动图是面向对象的,流程图则是面向过程的。,8.1 概述,Home,8.2 活动图的基本元素,Home,8.2.1 动作状态与活动状态,8.2.2 动作流,8.2.3 泳道,8.2.4 对象流,动作状态(Action State)表达原子的或不可中断的动作或操作的执行。 动作状态用于为实体的原子动作或算法的执行步骤建立模型。 在活动图中的动作状态的图标由上下两条平行线段、两侧圆弧构成的图框表示,框内可以设置动作名称或动作表达式,也可以用自然语言、伪码或程序语言代码描述。 动作状态与活动

5、状态的图形表示,如图8.2 所示。 动作状态是状态的简略表示,该状态有一个内部动作。 动作状态所表示的动作,在建模中只看作是瞬间行为,不可被中断,动作的持续时间不重要。,Home,8.2.1 动作状态与活动状态,动作状态可以有入转移,入转移可以是动作流或对象流。 动作状态至少有一条出转移,它不是基于外部事件的,而是隐含表示内部动作的完成。 动作状态不能有入口动作和出口动作,也不能有内部转移。 动作状态必须指定在单条泳道内,表明负责该泳道的对象运行该动作状态中的动作。 在一张活动图中,一个动作状态允许多处出现,实际上这表示同一个动作的不同状态。,Home,8.2.1 动作状态与活动状态,图8.2

6、 动作状态与活动状态的图形表示,动作状态必须延迟所有的无关事件。所谓有关事件是指出现在动作状态的出转移中的事件,无关事件是不出现在动作状态的出转移中的事件。 活动状态(Activity State)表达在一个状态机中的一个非原子的运行。 一个活动拥有一组不可中断的动作或操作。 活动本身是可以被中断的,而且通常需要持续一个时间段才能完成。 动作状态图标同样可以表示活动状态,如图8.2(b)中的“制订计划”是一个简单活动状态。 活动状态可以进一步分解,或者用另一个活动图来表达。 与状态机图中的状态一样,活动状态可以有入口动作和出口动作,也可以有内部转移。这些是活动状态与动作状态不同的地方,Home

7、,8.2.1 动作状态与活动状态,动作流(Action Flow)是一个实体的不同动作状态之间的联系,说明状态之间的控制流。 在活动图中动作流用实箭线表示,箭线从一个动作状态出发指向另一个动作状态。动作流相当于状态机图中的转移。 动作流可以是无条件的,也可以是有条件的。 一个无条件的动作流代表无触发转移或完成转移,对它不附加保安条件,在一个动作状态的动作完成后自动发生动作状态的转移,激活下一个动作状态。 在表示一个有条件的动作流的实箭线上需要标出“保安条件/ 动作”(动作部分可以缺省)。其中方括号中的保安条件是一个布尔表达式,当其值为真时,执行斜杠“/”后面的动作,发生动作状态的转移,进入下一

8、个动作状态。,Home,8.2.2 动作流,条件行为用分支(Branch)和合并(Merge)表达。 在活动图中分支和合并用小空心菱形表示。 一个分支有一个入转移和两个或多个带条件的出转移,而且只有其中一条出转移能被触发。 一个合并有两个或多个带条件的入转移和一个出转移。合并表示从对应的分支开始的条件行为的结束。 例:一个单位发放津贴时处理个人所得税的工作流,如图8.3 所示。 活动图中的动作流也可以有多条件的分支决策情况。分支决策也可以是链式的和非链式的,如图7.18所示那样。,Home,8.2.2 动作流,例:活动图中动作流的分支与合并示例,如图8.3 所示。,Home,8.2.2 动作流

9、,图8.3 动作流的分支与合并,泳道(Swimlance)代表对象对活动的责任。 泳道把活动图中的活动划分为若干组,并把这些组指定给对象,这些对象必须履行该组所包括的活动。泳道明确表示哪些活动是由哪些对象进行的。 在活动图上泳道用垂直实线划出,垂直线分隔的区域就是泳道。在泳道上方给出泳道的名字或对象(对象类)名字,该对象(对象类)负责泳道内的全部活动。 例:图8.4在图8.1的基础上增加了3个泳道:“顾客服务”、“处理订货”、“财务结算”。,Home,8.2.3 泳道,图8.4 泳道示例,对象流(Object Flow)是动作状态(或活动状态)与对象之间的依赖联系,表示动作使用对象或动作对对象

10、的影响。 在活动图中对象流用虚箭线表示。 虚箭线可以是从动作状态出发指向对象,表示该动作创建或更新了对象流所指向的对象,该对象是动作的输出。 虚箭线也可以是从对象出发指向动作状态,表示该动作使用对象流所指向的对象,该对象是动作的输入。 一个对象可以由多个动作操纵。一个动作输出的对象可以是另一个动作的输入。 在活动图中同一个对象可以多次出现,它的每一次出现表明该对象处于生存期的不同的时间点。,Home,8.2.4 对象流,例:项目与资源管理系统PRMS中,表达Use Case“指定技能给资源”的活动图,如图8.5所示。,Home,8.2.4 对象流,图8.5 把技能指定给资源的活动图,一个活动可

11、以分解成若干个子活动(Subactivity)或动作,这些子活动或动作本身组成一个活动图。 一个不含内嵌套活动或动作的活动,称为简单活动。 如果一个活动内嵌套了若干活动或动作,则称该活动为组合活动(Composite Activity),其中的被嵌套的活动称为子活动。 组合活动有自己的名字和相应的子活动图。 使用活动分解的好处是,在高一层的活动图中只需要给出组合活动,不必涉及子活动图的内容,组合活动的内部行为可以在低一层的活动图中表示,这样便于抓住主要问题,使得图形更为简洁明了。,8.3 活动分解,Home,例:组合活动示例,如图8.6所示。 其中,组合活动“发货”用一个子活动图表示,它有自己

12、的初始状态、终结状态和判定分支。,Home,8.3 活动分解,图8.6 组合活动示例,8.4 并发,Home,8.4.1 并发与同步,8.4.2 条件线程,8.4.3 同步状态,8.4.4 动态并发,并发是常见的现象。在现实世界里,业务处理不一定都是顺序进行的,许多工作可以在同一个时期内并行进行。 在并行程序设计中常需要处理多线程的执行和同步问题。 在活动图中用“分劈”(Fork)和“接合”(Join)来表达并发和同步行为。 “分劈”和“接合”均用一条粗横线表示,称为同步杆(Synchronization bar)。 “分劈”同步杆有一条入转移箭线和两条或多条出转移箭线,每一条表示一个独立的控

13、制流。“分劈”表示当入转移被触发时,所有与出转移对应的活动就并行进行。 “接合”同步杆有两条或多条入转移箭线和一条出转移箭线,每一条表示一个独立的控制流。 在“接合”之前的所有与入转移对应的活动一直是并行进行的。在“接合”点这些并发的控制流实现同步,即只有当所有的入转移全部完成其活动后才发生一个出转移。,Home,8.4.1 并发与同步,从“分劈”到“接合”的一条路径就是一个线程。 “分劈”和“接合”必须配对。 从一个“分劈”出发的线程本身也可以有一个“分劈”,从新“分劈”所出发的线程必须在到达原配对的“接合”之前接合在一起,也即新“分劈”应有一个新配对的“接合”,它应位于原“接合”之前。 例

14、:一个表示日常安排晚餐的活动图,如图8.7所示,其中表现了活动的并发与同步。,Home,8.4.1 并发与同步,图8.7 分劈、接合与条件线程示例,对于“接合”同步的规则:“只有当所有的入转移全部完成其活动后才发生出转移”,可以有一种例外情况,就是条件线程(Conditional Thread)。 条件线程是在一个从“分劈”发出的线程上加上条件,在执行时,如果该线程的条件取值为“假”,则就“接合”而论认为该线程已经完成了。 在图8.7中,活动“打开啤酒”的入转移是一个条件线程,它带有保安条件“想喝酒”。,Home,8.4.2 条件线程,同步状态用于同步一个状态机中的并发区域。 同步状态的含义和

15、表示法与在第7章中所述的相同。 在活动图中有时也需要表达并发区域的同步行为。 同步状态用一个内含上界的小圈表示。但是在活动图中,当一个同步状态有一个入转移和一个出转移,而且同步的上界不受限制时,同步状态的图标可以省略。 例:图8.8是一个建造住宅的活动图,它是状态机图7.20的活动图版本。,Home,8.4.3 同步状态,图8.8 活动的同步状态示例,动态并发(Dynamic Concurrency)可以表现重复,而无须构造循环结构。 动态并发是指一个动作或活动可以并发执行多次行为,其并发执行的次数由运行时的并发表达式确定,该表达式为一组参数列表求值。 例:在图8.9中的活动“填写货色品名”的

16、图标的右上角带有一个多重性标记“*”,表示它是一个动态并发的活动。,Home,8.4.4 动态并发,图8.9 动态并发示例,8.5 活动图的应用,Home,8.5.1 用途,8.5.2 工作流建模,8.5.3 UML2.0中的相关变化,活动图是一种用于系统的行为建模的工具,它能支持对并发行为的描述,使其成为对工作流(业务流)建立模型的强大工具。 在下列情况可以使用活动图: 1分析Use Case 2理解工作流程 3描述复杂过程的算法 4处理多线程应用 活动图尤其适合于多线程(Multithreaded)的程序的建模。 活动图的一个主要缺点是,动作与对象之间的连接关系不够清晰。 在下列情况不应使用活动

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号