《UML及软件建模》第七章 状态图

UML及软件建模 主讲人:李唯 Clx7000@163.com
Page 1 UML及软件建模 主讲人 :李 唯 clx7000@163.com

第七章状态图 什么是状态图,如何使用它 如何使用事件,动作和保护条件 如何对子状态,历史状态和连接点建模
Page 2 第七章 状态图 什么是状态图,如何使用它 如何使用事件,动作和保护条件 如何对子状态,历史状态和连接点建模

概述 状态视图通过对类对象的生存周期建立模型来描述对象随时间变化的动 态行为。每一个对象都被看作是通过对事件进行探测并做出回应来与外 界其他部分通信的独立的实体。 事件表示对象可以探测到的事物的一种运动变化如接受到从一个对象 到另一个对象的调用或信号、某些值的改变或一个时间段的终结。任何 影响对象的事物都可以是事件,真实世界所发生的事物的模型通过从外 部世界到系统的信号来建造的。 状态是给定类的对象的一组属性值这组属性值对所发生的事件具有相同 性质的反应。换而言之,处于相同状态的对象对同一事件具有同样方式 的反应,所以当给定状态下的多个对象当接受到相同事件时会执行相同 的动作,然而处于不同状态下的对象会通过不同的动作对同一事件做出 不同的反应。例如,当自动答复机处于处理事务状态或空闲状态时会对 取消键做出不同的反应
Page 3 1、概述 状态视图通过对类对象的生存周期建立模型来描述对象随时间变化的动 态行为。每一个对象都被看作是通过对事件进行探测并做出回应来与外 界其他部分通信的独立的实体。 事件表示对象可以探测到的事物的一种运动变化—如接受到从一个对象 到另一个对象的调用或信号、某些值的改变或一个时间段的终结。任何 影响对象的事物都可以是事件,真实世界所发生的事物的模型通过从外 部世界到系统的信号来建造的。 状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同 性质的反应。换而言之,处于相同状态的对象对同一事件具有同样方式 的反应,所以当给定状态下的多个对象当接受到相同事件时会执行相同 的动作,然而处于不同状态下的对象会通过不同的动作对同一事件做出 不同的反应。例如,当自动答复机处于处理事务状态或空闲状态时会对 取消键做出不同的反应

状态用于描述类的行为,但它们也描述用例、协作和方法的动态行为。对 这些对象方面而言,一个状态代表了执行中的一步。我们通常用类和对象 来描述状态,但是它也可以被其他元素所直接应用 状态描述了一个类对象生命期中的一个时间段。它可以用三种附加方式说 明:在某些方面性质相似的一组对象值;一个对象等待一些事件发生时的 段时间;对象执行持续活动时的一段时间。虽然状态通常是匿名的并仅 用处于该状态时对象进行的活动描述,但它也可以有名字 在状态机中,一组状态由转换相连接。虽然转换连接着两个状态(或多个 状态,如果图中含有分支和结合控制),但转换只由转换出发的状态处理 当对象处于某种状态时,它对触发状态转换的触发器事件很敏感。 状态用具有圆形拐角的矩形表示。如图所示 Initialization
Page 4 状态用于描述类的行为,但它们也描述用例、协作和方法的动态行为。对 这些对象方面而言,一个状态代表了执行中的一步。我们通常用类和对象 来描述状态,但是它也可以被其他元素所直接应用。 状态描述了一个类对象生命期中的一个时间段。它可以用三种附加方式说 明:在某些方面性质相似的一组对象值;一个对象等待一些事件发生时的 一段时间;对象执行持续活动时的一段时间。虽然状态通常是匿名的并仅 用处于该状态时对象进行的活动描述,但它也可以有名字。 在状态机中,一组状态由转换相连接。虽然转换连接着两个状态(或多个 状态,如果图中含有分支和结合控制),但转换只由转换出发的状态处理 。当对象处于某种状态时,它对触发状态转换的触发器事件很敏感。 状态用具有圆形拐角的矩形表示。如图所示。 Initialization

状态间带箭头的实线代表状态的迁移,箭头指向目标状态。 图中的实心圆代表状态转移的起点,带圆圈的实心圆代表终 点 Initialization Canceled
Page 5 Initialization 状态间带箭头的实线代表状态的迁移,箭头指向目标状态。 图中的实心圆代表状态转移的起点,带圆圈的实心圆代表终 点。 Canceled

2、在状态图中增加细节 ①中提供了在状态图中增加细节的选项。可以把状态图标 分成两个区域。最上面的区域保存状态名(必要),下面的区 域保存在该状态中发生的活动。如下图所示 Initialization Do/ Initialize course 常见的三个活动是: 1、入口动作( entry):进入某一状态时执行的动作 2、动作(do):系统处于该状态时要发生的动作。 3、出口动作(exit):离开某一状态时执行的动作
Page 6 2、在状态图中增加细节 UML中提供了在状态图中增加细节的选项。可以把状态图标 分成两个区域。最上面的区域保存状态名(必要),下面的区 域保存在该状态中发生的活动。如下图所示: Initialization Do/ Initialize course 常见的三个活动是: 1、入口动作(entry ) :进入某一状态时执行的动作。 2、动作(do):系统处于该状态时要发生的动作。 3、出口动作(exit ):离开某一状态时执行的动作

Faxing entry输入传真号 ext完成传送 do/传真纸进入 do/逐页传真 状态图中增加细节示例图
Page 7 状态图中增加细节示例图 Faxing entry/输入传真号 do/逐页传真 exit/完成传送 do/传真纸进入

3、触发器事件( trigger event 触发器事件是引起转换的事件。事件可以有参数,以供转换 的动作使用。 添加的事件和动作写在转移线上。 有时候一个事件会引起没有相关动作的状态转移,或者有时 个转移是由于某个状态完成了它的活动所引起(而不是由 于事件引起)。这种类型的状态转移被称为无触发器转移( trigglerless transition 初始化 打开计算机 工作关机 关机中 Do/启动
Page 8 3、触发器事件 (trigger event 触发器事件 ) 是引起转换的事件。事件可以有参数,以供转换 的动作使用。 添加的事件和动作写在转移线上。 有时候一个事件会引起没有相关动作的状态转移,或者有时 一个转移是由于某个状态完成了它的活动所引起(而不是由 于事件引起)。这种类型的状态转移被称为无触发器转移( trigglerless transition)。 初始化 关机中 Do/启动 打开计算机 工作 关机

增加转移的细节:保护条件 转换可能具有一个保护条件,保护条件是一个布尔表达式。保护条件可以引 用对象的属性值和触发事件的参数。当一个触发器事件被触发时,监护条件 被赋值。如果布尔表达式的值为“真”,那么触发事件即,使转换有效。如 果布尔表达式的值为“假”,则不会引起转换。保护条件只能在触发事件发 生时被赋值一次。如果在转换发生后保护条件由原来的“假”变为“真”, 则因为赋值太迟而不能触发转换。 从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具 有不同的保护条件。当其中一个保护条件满足时,触发器事件会引起相应的 转换。通常,保护条件的设置要考虑到各种可能的情况以确保一个触发器事 件的发生应该能够引起某些转换。如果有些情况没有考虑到,一个触发器事 件没有引起任何转换,那么在状态机视图中要忽略这个事件。一个事件的发 生只能同时引起一个转换(在一个控制线程中)。如果一个事件可能引起多 个转换,那么其中只有一个转换有效。如果两个相互矛盾的转换同时有效 则无法确定到底发生了哪个转换。这两个转换随机地发生一个,或者由系统 的实现细节决定究竟发生哪一个,但是对建模者来说,无法预料这种转换产 生的后果
Page 9 转换可能具有一个保护条件,保护条件是一个布尔表达式。保护条件可以引 用对象的属性值和触发事件的参数。当一个触发器事件被触发时,监护条件 被赋值。如果布尔表达式的值为“真”,那么触发事件即,使转换有效。如 果布尔表达式的值为“假”,则不会引起转换。保护条件只能在触发事件发 生时被赋值一次。如果在转换发生后保护条件由原来的“假”变为“真”, 则因为赋值太迟而不能触发转换。 从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具 有不同的保护条件。当其中一个保护条件满足时,触发器事件会引起相应的 转换。通常,保护条件的设置要考虑到各种可能的情况以确保一个触发器事 件的发生应该能够引起某些转换。如果有些情况没有考虑到,一个触发器事 件没有引起任何转换,那么在状态机视图中要忽略这个事件。一个事件的发 生只能同时引起一个转换(在一个控制线程中)。如果一个事件可能引起多 个转换,那么其中只有一个转换有效。如果两个相互矛盾的转换同时有效, 则无法确定到底发生了哪个转换。这两个转换随机地发生一个,或者由系统 的实现细节决定究竟发生哪一个,但是对建模者来说,无法预料这种转换产 生的后果。 4、增加转移的细节:保护条件

初始化 打开计算机 工作关机 关机中 Do启动 设定 键盘或 时间 鼠标 移动 屏幕 保护 保护条件示例图
Page 10 保护条件示例图 初始化 关机中 Do/启动 打开计算机 工作 关机 屏幕 保护 设定 时间 键盘或 鼠标 移动
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《UML及软件建模》第六章 用例.ppt
- 《UML及软件建模》第五章 聚集、组成、接口和实现.ppt
- 《UML及软件建模》第四章 类之间的关系.ppt
- 《UML及软件建模》第三章 类图和对象图.ppt
- 《UML及软件建模》第二章 UML的构成.ppt
- 《UML及软件建模》如何获取用例.ppt
- 《UML及软件建模》第十三章 在建模过程中运用UML(3/3).ppt
- 《UML及软件建模》第一章 理解面向对象.ppt
- 《UML及软件建模》第十三章 在建模过程中运用UML(2/3).ppt
- 《UML及软件建模》第十三章 在建模过程中运用UML(1/3).ppt
- 《UML及软件建模》课堂习题.ppt
- 《UML及软件建模》第十二章 UML的总结.ppt
- 《UML及软件建模》第十三章 扩展组件.ppt
- 《UML及软件建模》第十二章 模型管理视图.ppt
- 《UML及软件建模》第十一章 物理视图(physics view).ppt
- 《UML及软件建模》第十章 活动图(activity diagram).ppt
- 《UML及软件建模》第九章 协作图(sequencediagram).ppt
- 《UML及软件建模》第一章 概述(李唯).ppt
- 武汉大学:《计算机组成与结构》课程教学资源(教学大纲)Principles of Computer Construction.doc
- 武汉大学:《计算机组成与结构》课程教学资源(练习题)运算方法与运算器课堂练习题.doc
- 《UML及软件建模》第八章 交互视图概论.ppt
- 《Photoshop CS3案例教程》项目一制作漂亮的贺卡 ——初识Photoshop CS3.ppt
- 《Photoshop CS3案例教程》项目七 制作手提袋 ——形状与路径.ppt
- 《Photoshop CS3案例教程》项目三 合成照片 ——选区制作(下).ppt
- 《Photoshop CS3案例教程》项目九 数码照片处理 ——图像修复与色彩调整.ppt
- 《Photoshop CS3案例教程》项目二 制作化妆品广告——选区制作(上).ppt
- 《Photoshop CS3案例教程》项目五 制作电影海报——强大的图层.ppt
- 《Photoshop CS3案例教程》项目八 制作房地产广告——应用文字.ppt
- 《Photoshop CS3案例教程》项目六 打造精美电脑桌面——绘画与修饰工具.ppt
- 《Photoshop CS3案例教程》项目十 制作茶叶包装盒——神奇的滤镜.ppt
- 《Photoshop CS3案例教程》项目十一 制作折页广告——应用通道.ppt
- 《Photoshop CS3案例教程》项目十三 制作旅游网页界面——应用进阶.ppt
- 《Photoshop CS3案例教程》项目十二 制作下雪的圣诞节动画——动作与动画.ppt
- 《Photoshop CS3案例教程》项目四 制作图书封面——图像编辑.ppt
- 山东大学:高性能感应电机电流控制研究(硕士学位论文,程金路).pdf
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》(计12个实验).doc
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》.doc
- 山东大学:《Visual C++程序设计》第1章 C++概述(张晓如).ppt
- 山东大学:《Visual C++程序设计》第7章 结构体、共同体 和枚举类型(张晓如).ppt
- 山东大学:《Visual C++程序设计》第3章 简单的输入/输出(张晓如).ppt