[OOAD]---状态图
来源:互联网 发布:王者荣耀刷武则天软件 编辑:程序博客网 时间:2024/05/16 16:15
2010-12-23 作者:佚名 来源:网络
状态和状态机
状态、状态表示法及状态机
状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况
一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成 状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,是用来展示状态与状态之间转换的图
如何阅读状态机图
阅读最简单的状态?
最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换
转换的五要素
源状态:即受转换影响的状态
目标状态:当转换完成后对象的状态
触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件
监护条件:布尔表达式,决定是否激活转换、
动作:转换激活时的操作
读图小结
与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作。
而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了
转换类型
描述
语法
外部转换 对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换 事件(参数)[监护条件]/动作 内部转换 对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换 事件(参数)[监护条件]/动作 进入转换 当进入某一状态时,执行相应活动 entry/活动 退出转换 当离开某一状态时,执行相应活动 exit/活动 只有动作描述,进入和退出和操作方法写在了里面各种转换的区别
进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示
内部转换:用来处理一些不离开该状态的事件
活动与延迟事件
活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件
复合状态表示法
顺序复合状态图
监护条件为“应答音”,代表已连接。
并发复合状态图
三种评测方式
历史
“一个圆圈中加上字母H”,是用来表示历史状态的。它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物车或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。
子状态机
将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它
引用C状态机
如何绘制状态机图
绘制状态机图
绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节
寻找主要状态:对于航班机票预订系统而言,显然包括的状态主要有
-- 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态-- 对订座而言显然有“部分预订”和“预订完”两种状态
-- 而当航班快要起飞时,显然要“预订关闭”
总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭
确定状态间转换
部分预订
不直接转换
关闭()预订关闭表格横向是转出预订完关闭()预订完无转换表格纵向是转入
预订关闭部分预订不直接转换无转换源目标
无预订退订(),使预订人=0退订()无转换无预订
预订()预订(),无空座关闭() 细化状态内的活动与转换
使用复合状态
状态机图应用说明
对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响
对反应型对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁
本章小结
首先介绍了“状态”的概念和UML表示法,然后引入了状态机的概念通过三个例子逐一说明简单状态机图、包含复杂转换的状态机图以及包含复合状态的状态机图的阅读方法
紧接着通过一个航班机票预订系统来阐述了状态图的绘制过程:确定状态,分析状态间的转换,细化活动与内部转化,通过复合状态来组织
简明地点出状态图的两大功能:对对象的生命周期建模以及对反应型对象的行为建模
- [OOAD]---状态图
- OOAD
- OOAD
- OOAD
- OOAD
- OOAD
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- 状态图
- [OOAD]class diagram
- android 实现Listview左右滑动删除Item
- [软件工程]关于“学生毕业论文选题”的需求描述
- c# async、await的使用,异步方法
- Entrepreneur\'s Credo of the American 美国的企业家宣言
- [OOAD]---状态图
- [OOAD]---活动图
- [OOAD]----之时序图(Sequence Diagram)
- js 屏蔽object标签的点击动作
- [OOAD]---组件图
- [OOAD]---区分 UML 类图中的几种关系
- [软件工程]毕业设计选题软件
- 关于cocos2dx多点触控的问题
- UBUNTU 12.04 U盘安装
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
汽车代驾服务公司
代驾公司那个好
汽车代驾收费
云代驾
嘀嘀代驾电话
代驾公司收费标准
39代驾
代驾 app
陪练代驾
代驾 收费
360代驾
干代驾怎么样
1018代驾
代驾怎么做
的的代驾
免费代驾
代驾网
代驾用车
怎么申请滴滴代驾司机
如何加入滴滴代驾
怎么成为滴滴代驾司机
令仪
令克
饰终令典
盛宠令北倾
北倾盛宠令番外怀孕
盛宠令 北倾
令吉
令名不终
限韩令名单42名艺人
令狐姓男孩起名
韩国人看陈情令名场面
令哥
令堂
令妃
令妃娘娘
令妃娘娘原型
令媛
令嫒和令媛
令媛是什么意思
令媛和令爱的区别