UML 状态图与活动图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
活动图的优点和缺点
优点:最适合支持并行行为,而且也是 支持多线程编程的有力工具,可用于描 述业务流程。 缺点:很难清楚地描述动作与对象之间 的关系。虽然在活动旁标出对象名或者 采用泳道技术可以定义这种关系,但仍 然没有交互图简单直接。 因此,像大多数建模技术一样,最好把 活动图与其他技术结合使用。
注释体和注释连接
注释体:用于对UML实体进行文字描 述。 注释连接:用于将注释体与要描述的 实体相连,说明该注释体是针对该实 体所进行的描述。
活动图例子
活动图例子
课堂作业
某公司的设备采购流程设置为: A、由业务部门提出需求设备清单; B、将需求设备清单交采购部门建立采购采买单据; C、采购部门建立采购单据后,交财务部门,向财务部门 申请款项,预支零用金; D、财务部门建立应付帐款单据后:核支款项; E、采购部门在收到款项后,进行采买; F、采买完成后,执行: (1)发票和剩余款项交财务部: (2)设备交业务部门; G、(a)采购部门:采购单据结案; (b)财务部门:帐款冲销结案;
活动图的应用-用途
分析Use C源自文库se
在分析Use
Case时需要理解系统将会发生哪些动作, 行为之间的依赖关系是什么,此时可以用活动图来验证 Use Case
理解工作流程
对理解业务处理过程十分有用,可以画出描述业务工作
流的活动图与领域专家进行交流,明确业务处理操作是 如何进行的,将会有怎样的变化
何时可使用活动图
分析用例。能直观清晰地分析用例,了 解应当采取哪些动作以及这些动作之间 的依赖关系。一张完整的活动图是所有 用例的集成图。 理解牵涉多个用例的工作流。在难于区 分不同用例而对整个系统的工作过程又 十分清楚时,可以先构造活动图,然后 用切片技术派生用例图。 处理多线程应用。采用“分层抽象,逐 步细化”的原则描述多线程。
after(2 seconds) / dropConnection() active1
idle
when(date=Jan 1,2000) active2
信号事件:表示对象接收了信号这种情况, 往往会触发状态的转移 在UML中,信号用构造型《signal》表示 信号事件和调用事件的表示格式是一样 的
转移:用实箭线表示,箭尾连接出发状态, 即源状态,箭头连接到达状态,即目标状态 在箭线上可以标示与该转移有关的选项: 事件、保安条件和动作
源状态
事件[ 保安条件 ] / 动作 目标状态
初始状态:是模型元素的初始状态,代表一 个状态图的起始点,是一个伪状态。 初始状态用一个实心的圆表 终结状态:是模型元素的最后的状态,代表 一个状态图的终止点,是一个伪状态。 终结状态用一个圆中套一个实心圆表示
组合状态
简单状态:一个不含有嵌套状态的状态 组合状态:如果一个状态内嵌套了若干个 状态,则称该状态为组合状态或超状态 子状态:嵌套在另一个状态中的状态
发货处理
[未检查完 全部商品]/ 取下一个
检查
do/ 检查商品
[ 全部商品已检查完且全部商品都有 ]
办理发货
do/ 启动发货
[ 全部商品已经检查完,但部分商品缺货 ]
取消
取消
已发货
使用组合状态的优点:避免了转移线交叉, 使图面清晰,简化了状态图,更重要的是 要清楚地表达了状态的结构关系,便于分 清主次,分别对待
顺序状态与并发状态
顺序状态:组合状态的子状态是一个一个执 行的,不是并发存在的
活动 验卡
插卡 休闲 取消 维修完成 维修 维修 结束 挂断 继续 通话 拨号
什么是活动图
活动图是系统的一种行为视图,它描述参 与行为的对象类的活动的顺序,包括依赖 于条件的行为和并发行为
判断条件
人 找饮料
[没有咖啡] [找到咖啡]
判定活动
[没有可口可乐] [找到可 口可乐]
同步条件
将咖啡放到 过滤器中 把过滤器放 到咖啡炉上
加水到 容器中
取出 咖啡杯
取一听 可口可乐
目标状态
源状态
源状态
目标状态 源状态
目标状态
状态
状态(state)是指在对象的生命期中的某 个条件或状况,在此期间对象将满足某些 条件、执行某些活动或等待某些事件
状态属性:对确定对象的状态有重要意义的属
性 一个状态有以下几个部分:状态名(name)、 进入/退出(entry/exit action)、内部转移 (internal transition)、子状态(substate)、 延迟事件(deferred event)
描述复杂过程的算法
此时相当于UML版的程序流程图,常规的顺序、分支过
程在活动图中都能得到充分体现
处理多线程应用
利用活动图支持并发的特点,描述多线程应用的行为
活动图的应用-工作流建模
活动图是一种用于系统的行为建模的工具, 它能支持对并发行为的描述的特点,使其 成为对工作流(业务流)建立模型的强大 工具,尤其适合于多线程的程序的建模 主要缺点:动作与对象之间的连接关系不 够清晰
第八章 状态图与活动图
主讲教师:阿都建华 单位:软件工程系
什么是状态图
UML中的状态图(statechart diagram)主 要用于描述一个对象在其生存期间的动态 行为,表现一个对象所经历的状态序列, 引起状态转移的事件,以及因状态转移而 伴随的动作 状态就是对象生命期中的某个条件或状况, 在此期间对象将满足某些条件、执行某些 活动或等待某些事件 一个状态图表现了一个对象的生存史,着 重描述从一个状态到另一个状态的控制流
活动 停止
H
恢复
暂停
中断
选择
播放
事件
事件是一个有意义的事情的说明,它位于 特定的时间和空间点 在状态图中,事件是一个激励的出现,它 定义一个触发子触发对象改变其状态 在UML中,事件分为4类:调用事件、变化 事件、时间事件、信号事件
调用事件:表示对操作的调度 格式:Event-name’(‘comma-separatedparameter-list’)’
状态图:一部电梯的运行方式
状态图的图形元素
状态:用一个带圆角的矩形框表示,可以进一步划 分为3个分隔框:名称框、内部转移框和嵌套状态 名称 图框 名称框:标出状态的名称 内部转移 内部转移框:规定动作或活动, 但不改变对象的当前状态 嵌套状态图 嵌套状态图:放置被嵌套的子状态图
查询
retrieve(Keywords) 数据操作
变化事件:如果一个布尔表达式中的变量发 生变化,使得该布尔表达式的值相应地变化, 从而满足某些条件,则这种事件称为变化事 件 变化事件用关键字when表示
When(temperature>120) /alarm()
idle
时间事件:指满足某一时间表达式的情况的 事件 时间事件用关键字after或when表示
顺序状态与并发状态
并发状态:子状态是并发存在的 两个并发的子状态图用一条虚线分隔
并发状态图:用于描述一个对象在某
个时刻有多个并发的子状态机的情况, 并发状态图是这些子状态图的组合
等待
取消
商品检查 办理订货
发货
付款检查
已付款
拒绝
历史状态
历史状态是一个伪状态,代表上次离开组 合状态时的最后一个活动子状态,当再次 进入这个组合状态时,可直接进入这个子 状态 历史状态用一个含字母“H”的小圆圈表示
初始状态
终结状态
判定:判定是在状态图中的一个特定的位置, 工作流在此按保安条件的取值而发生分支 判定用空心小菱形表示
[人员齐备]
制定计划 实施
[人员未齐备]
招聘人员
同步:同步可视化地定义了并发工作流的分 劈(fork)与接合(join)
分劈是一个源状态分为两个或两个以上的目标
状态 接合是两个以上的源状态连接为一个目标状态 同步在状态图中用一条粗短线表示,成为同步 杆
收到商品 [部分商品 缺货]
收到商品[ 全部商品都有 ]
等待
取消 取消 已发货
收到商品 [部分商品 缺货]
检查
do/ 检查商品
[ 全部商品已检查完且全部商品都有 ]
办理发货
do/ 启动发货
[ 全部商品已经检查完,但部分商品缺货 ]
收到商品[ 全部商品都有 ]
[未检查完 全部商品]/ 取下一个
等待
取消 取消
活动
点燃 咖啡炉 冲调咖啡
熄灭咖啡炉
终点
倒咖啡 喝饮料
活动图的基本要素
活动; 泳道; 分支; 分叉和汇合; 对象流; 注释体和注释连接。
活动
活动:活动是某件事情正在进行的状 态,表现为由一系列动作组成的非原 子的执行过程。 UML中的表示:
泳道
泳道是活动图中的区域划分,每个 泳道代表一个责任区,一个泳道可由一 个或多个类实现。
动作
动作是一个可执行的原子计算,即动作是 不可被中断的,其执行时间是可忽略不计 的 进入动作和退出动作的例子: Entry/setMode(onTrack) Exit/setMode(offTrack)
小结
状态图的基本概念、用途 状态图的图形元素 状态的定义及分类 组合状态的分类 事件、事件的分类、动作
何时不应使用活动图
显示对象间的合作。用交互图显示对象 间的合作更简单直观。 显示对象在生命周期内的运转情况。活 动图可以表示活动的激活条件,但不能 表示一个对象的状态变换条件。因此, 当要描述一个对象整个生命周期的运转 情况时,应当使用状态图。
活动图与状态图的区别
活动图描述的是响应内部处理的对象类的 行为,状态图描述的是对象类响应事件的 外部行为。 活动图着重表现的是一个活动到另一个活 动的控制流,是内部处理驱动的流程;而 状态图着重表现的是从一个状态到另一个 状态的流程,常用于有异步事件发生的情 况
活动图与交互图的区别
活动图着重表现的是活动的控制流,描述 在对象之间传递的操作;而交互图着重表 现的是对象到对象的控制流,描述对象之 间传递的消息
分支
对于同一触发事件,可以根据不同的 警戒条件转向不同的活动,每个可能 的转移是一个分支。
分叉和汇合
表示系统或对象中的并发行为。分叉表 示一个控制流被两个或多个控制流代替, 经过分叉后,这些控制流是并发进行的; 汇合正好相反。
对象流
在活动图中可以出现对象,对象可以作 为活动的输入或输出。对象流表示活动 与对象之间的关系。