第6章 系统动态分析与行为模型[1]
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态图
➢ 日常生活中,事物状态的变化无处不在。 ➢ 面向对象分析与设计中,对象的状态、状态的转换、触
发状态转换的事件、对象对事件的响应(即事件的行为)等 都可以用状态图来描述。
状态图
➢ 状态图通过建立类对象的生命周期模型来描述对象随时 间变化的动态行为。
状态图
➢ 状态图(statechart diagram):用来描述一个特定的 对象所有可能的状态,以及由于各种事件的发生而引起 状态之间的转移和变化。
• 序列(顺序、时序)图(Sequence Diagram)
• 协作图(Collabboration Diagram)
概述
➢ 行为图——主要用来设计程序的行为。 • 状态图(Statechart Diagram) • 活动图(Activity Diagram)
概述
动态分析模型包括下列模型图:
➢ 序列图 ➢ 协作图 ➢ 状态图 ➢ 活动图
概述
➢ 序列图:注重表达交互作用的时间顺序,没有明确表示对 象间的关系。
(对象之间的交互或对象外部的交互行为) ➢ 协作图:协作图注重表示对象间的关系,时间顺序可以
从消息的序号中获得。 ➢ 状态图:状态图主要描述系统行为的结果。 (表示对象内部的状态变化) ➢ 活动图:活动图主要描述系统动态行为的过程。
事件
➢ 信号事件(signalEvent) 信号是作为两个对象之间的通信媒介的命名的实体,信号的接收 是接收对象的一个事件。 发送对象明确地创建并初始化一个信号实例并把它送到一个或一 组对象。
事件
➢ 改变事件(ChangeEvent) 改变事件指的是依赖与特定属性值的布尔表达式所表示的条件满 足时,事件发生改变。 如: when(number<100)
➢ 状态图通过判定可以更好地描述工作流因为不同的条件 发生的分支。
状态图的构成要素
➢ 状态图:由状态、转换、判定、同步、事件等组成:
状态图--状态
状态指的是对象在其生命周期中的一种状况,处于某个 特定状态中的对象必然会满足某些条件、执行某些动作或 者是等待某些事件。
状态用于对实体在其生命周期的各种状况进行建模,一 个实体总是在有限的一段时间内保持一个状态。
状态图--状态
➢ 状态图中的状态一般是给定对象中的一组属性值。这组 属性值是对象所有属性的子集。
➢ 若对象的任何一个属性值都是一个状态,全部的状态构 成一个庞大的状态空间。
➢ 事实上,并非状态空间的每一个状态都是值得关注的。 ➢ 在对系统建模时,我们只关心那些明显影响对象行为的
属性,以及由它们表达的对象状态,而不理睬那些与对 象行为无关的状态。
状态图的UML表示
初始状态 简单状态
终止状态 添加动作的状态
状态图的UML表示
1.状态名 状态名指的是状态的名字。
2.初始状态 每个状态图都应该有一个初始状态,它代表状态图的起始位置。
初始状态是一个伪状态(一个和普通UML中一个状态图只能有一个初始状态。
状态图--状态
对“飞机”对象来说: ➢ 累计飞行10000km与15000km在行为上并无实质性的区别 ➢ 建模时,也许系统关心的只是飞机的当前使用状况,如
飞行、着陆、机场停放、维修和报废等。 ➢ 可以根据飞机使用的几种情况将建立状态图,其中可以
建立“飞行”、“着陆”、“机场停放”、“维修”、 “报废”等几种状态。
状态图的UML表示
5.组合状态 嵌套在另外一个状态中的状态称之为子状态(sub-state),一
个含有子状态的状态被称作组合状态(Compound States)。
状态图的UML表示
5.历史状态 历史状态是一个伪状态,其目的是记住从组合状态中退出时所处
的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再 次从组合状态的初态开始。
状态图的UML表示
3.终止状态 终止状态是一个状态图的终点,一个状态图可以拥有一个或者多
个终止状态。对象可以保持在终止状态,但终止状态不可能有任何形 式的触发转换。
有些特殊的状态图,可以没有终止状态。
状态图的UML表示
4.入口动作和出口动作 在特定的状态下对象可执行的动作包括: 1. entry/EntryAction 进入状态时执行的动作 2.do/DoAction 状态激活时一直执行的动作 3.exit/ExitAction 离开状态时执行的动作
状态图的UML表示
5.历史状态 历史状态分为两种: ➢ 浅历史状态 只记住最外层组合状态历史 ➢ 浅历史状态 可以记录任意深度的组合状态的历史。
状态图的UML表示
6.同步(并发) 同步是为了说明并发工作流的分支与汇合。
状态图的UML表示
7.判定
有判定示例
无判定示例
状态图的UML表示
7.判定
状态图的UML表示
状态图--状态
➢ 例:飞机对象 ➢ 所有飞机的属性值的笛卡儿积构成了“飞机”对象庞大
的状态空间
飞机每飞行1km,就处 于一个全新的状态
飞机每使用1年就会处 于一个新的状态
状态图--状态
显然,列出对象的全部状态并绘制状态图是不现实的 (也没有必要)。
建模的时候只需要考虑与对象当前行为有关的属性状态 即可。
第6章 系统动态分析与行为模型
概述
需求捕获——用例图
静态分析——类图、对象图
动态分析——序列图等
…
概述
动态分析模型描述系统的动态行为,显示对象在系统 运行期间不同时刻的动态交互,主要是建立系统的交互图 和行为图。
概述
➢ 交互图——对象之间的合作在UML里被称作交互。 ➢ 交互体现了对象之间的作用、对象之间的联系。
一个机器的状态图
状态图的作用
➢ 状态图清晰地描述了状态转换时所必须触发的事件、监 护条件和动作等影响转换的因素,有利于程序员避免程 序中非法事件的进入。
➢ 状态图清晰地描述了状态之间的转换顺序,通过状态的 转换顺序可以清晰看出事件的执行顺序。
➢ 清晰的时间顺序有利于程序员在开发程序时避免出现事 件错序的情况。
7.事件 一个事件的发生能触发状态的转换。UML中的事件有: 调用事件、信号事件、改变事件、时间事件。
事件
➢ 调用事件(CallEvent) 调用事件至少涉及两个及以上的对象,一个对象请求调用另一个
对象的操作。 调用事件一般为同步调用,也可以是异步调用。如果调用者需等 待操作的完成,则是同步调用,否则是异步调用。