如何绘制状态图

状态图

6

子状态机

?将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它

引用C状态机

?如何绘制状态机图 绘制状态机图

?绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节

?寻找主要状态:对于航班机票预订系统而言,显然包括的状态主要有

-- 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态

-- 对订座而言显然有“部分预订”和“预订完”两种状态 -- 而当航班快要起飞时,显然要“预订关闭”

总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭 ?确定状态间转换 表格横向是转出 表格纵向是转入 源目标

状态图

7

无预订 部分预订 预订完 预订关闭 无预订

预订()

不直接转换 关闭() 部分预订

退订(),使预订人=0 预订(),无空座 关闭()

预订完 不直接转换 退订() 关闭()

预订关闭 无转换 无转换 无转换

?细化状态内的活动与转换

状态图

8

?使用复合状态

?状态机图应用说明

?对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响

?对反应型对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,

以及每个状态改变时发生的动作

?状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁 ?本章小结

?首先介绍了“状态”的概念和UML表示法,然后引入了状态机的概念

?通过三个例子逐一说明简单状态机图、包含复杂转换的状态机图以及包含复合状态的状态机图的阅读方法,紧接着通过一个航班机票预订系统来阐述了状态图的绘制过程:确定状态,

状态图

9

分析状态间的转换,细化活动与内部转化,通过复合状态来组织

?简明地点出状态图的两大功能:对对象的生命周期建模以及对反应型对象的行为建模

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4