UML及软件建模 主讲人 :李 唯 clx7000@163.com 1
第十章 活动图 (activity diagram) 什么是活动图 如何运用活动图 如何应用泳道
1、概述 活动图是状态机的一个变体,用来描述执行算法的工作流程中涉及的活 动。活动状态代表了一个活动:一个工作流步骤或一个操作的执行。活 动图描述了一组顺序的或并发的活动。
2、活动图在UML中的表示方法 活动图包括一些方便的速记符号,这些符号实际上可以用于任何状态图,尽管活动图和状态图的混合表示法多数时候都很难看。 活动状态表示成带有圆形边线的矩形,它含有活动的描述(普通的状态盒为直边圆角)。简单的完成转换用箭头表示。和状态图相似,活动图也有起点和终点符号,表示法和状态图一样。 ● 活动1 活动2 ● Core Message: Modeling captures essential parts of the system Key Point 1: Computer system basically automate business processes. However, it’s not easy to build software systems on time and within budget. Key Point 2: Building a complex software system requires blueprint. You don’t construct a building without a blueprint. Visual modeling is the blueprint for software systems. Conclusion: VM is a key to successful software development 活动图图符集 3
2.1、判定 一个活动序列几乎总是要到达某一点,在这一点处要做出判定。一组条件引发一条执行路径,另一组条件则引发另一条执行路径,并且这两条执行条件是互斥的。 可以用两种方式表示判定点。 一种方式是从一个活动直接引出可能的路径。 另一种方式是将活动的转移引到一个小的菱形图标,然后从这个菱形的图标中再引出可能的路径。 无论用哪中方式,都必须在相关的路径附近指明引起这条路径被执行的条件,条件表达式要用方括号括起来。
● ● 闹钟响 闹钟响 ◇ [饿了] [没饿] [没饿] [饿了] 接着睡觉 接着睡觉 吃早餐 吃早餐 ● ● 判定的两种表示方式
2.2、并发路径 在对活动建模时,往往要将一个转移划分成两个单独的同时(并发)执行的路径,而后它们再合并在一起。 要表示这种活动路径的划分,可以用一个与路径垂直的黑色粗实线条表示,并发的路径从这个实线条引出。而并发路径的合并也使用另一个粗实线条表示。
● 做完工作 听歌 放松 ● 并发活动的表示法
2.3、对象流 活动图能表示对象的值流和控制流。对象流状态表示活动中输入或输出的对象。对输出值而言,虚线箭头从活动指向对象流状态。对输入值而言,虚线箭头从对象流状态指向活动。如果活动有多个输出值或后继控制流,那么箭头背向分叉符号。同样,多输入箭头指向结合符号。
2.4、泳道 将模型中的活动按照职责组织起来通常很有用。例如,可以将一个商业 组织处理的所有活动组织起来。这种分配可以通过将活动组织成用线分 开的不同区域来表示。由于它们的外观的缘故,这些区域被称作泳道。
3、活动图实例 下图是售票处的活动图。它表示了上演一个剧目所要进行的活动(这个例子仅供参考,不必太认真地凭着看戏的经验而把问题复杂化)。箭头说明活动间的顺序依赖关系—例如,在规划进度前,首先要选择演出的剧目。加粗的横线段表示分叉和结合控制。例如,安排好整个剧目的进度后,可以进行宣传报道、购买剧本、雇用演员、准备道具、设计照明、加工戏服等,所有这些活动都可同时进行。在进行彩排之前,剧本和演员必须已经具备。 这个例说明了活动图的用途是对人类组织的现实世界中的工作流程建模。对事物建模是活动图的主要用途,但活动图也可对软件系统中的活动建模。活动图有助于理解系统高层活动的执行行为,而不涉及建立协作图所必须的消息传送细节。
4、小结 UML活动图很像流程图。它显示出工作步骤、判定点和分支。 每个活动的图标被表示为圆角矩形,比状态图标更扁更接近椭圆。活动 图的起始点和终止点的图符和状态图一样。 当一个活动路径分成两个或多个路径时,可以用一个与路径垂直的粗实 心线来代表路径的分支,两个并发路径的合并可以用相同的方式表达。 在活动图中还可以表示出执行每个活动的角色。这是通过将活动划分为 泳道-------代表每个角色的平行段。