1.定义及作用
状态图说明对象在它的生命期中响应事件所经历的状态系列,以及对那些事件的响应
状态图可是说是用例图的一种扩充。用于Actor、类、子系统和组件的复杂特性.为实时系统建立模型
2.状态图的组成
2.1 状态:对象的状态是指在这个对象的生命期中的一个条件或状况。在此期间对象满足某些条件、执行某些活动,或等待某些事件.
2.2 转移:转移指的是对象由一种状态到另外一种状态的迁移。而这种迁移由事件来触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化操作的结果。
3.状态图中事物及解释
状态 | 上格放置名称,下格说明处于该状态时,系统或对象要做的工作(见可选活动表)
|
|
转移 | 转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移 |
|
开始 | 初始状态(一个) | 黑圆圈 |
结束 | 终态(可以多个) | 黑圆圈外还有个圆圈 |
4.状态图的可选活动表
转换种类 | 描述 | 语法 |
入口动作 | 进入某一状态时执行的动作 | entry/action |
出口动作 | 离开某一状态时执行的动作 | exit/action |
外部转换 | 引起状态转换或自身转换,同时执行一个具体的动作,包括引起入口动作和出口动作被执行的转换 | e(a:T)[exp]/action |
内部转换 | 引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行 | e(a:T)[exp]/action |
5.一个简单的例子
电梯开始在第一层,然后经过上升到达了上升状态,它可能上升在某一层的时候停下,此时电梯就达到了空闲状态。随后它可能继续上升/下降,上升依然是上升状态,下降可以下降到某层或者直接下降到一层了哈。。。电梯就是三个状态如此反复循环运行中的。。。
如果以上例子不是特别明白的,可以看看下面的一个哦.
图中包含以下状态
初始状态
Available状态
Locked状态
Sold状态
状态间的转移
初始状态àAvailable状态
票被预订(lock):AvailableàLocked
预定后付款(buy):LockedàSold
预定解除(unlock):LockedàAvailable
预定过期(time out):LockedàAvailable
直接购买(assigned to):AvailableàSold
换其它票(exchang) ,该票重有效:SoldàAvailable
写到这里了基本也完了,最后祝大家天天开心。。。