状态图

一:什么是状态图?

1,状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件

2,描述哪些状态之间可以转换

3,不同的状态下有不同的行为



二:下图是某航空订票系统中订单对象的状态图




三:状态图组成元素
初始状态、终止状态、状态、转移、守护条件、事件、动作

1,状态图用初始状态(Initial State)表示对象创建时的状态,每一个状态图一般只有一个初始状态,用实心的圆点表示。
2,每一个状态图可能有多个终止状态(Final State),用一个实心圆外加一个圆圈表示。

3,状态图中可有多个状态框,每个状态框中有两格:上格放置状态名称,下格说明处于该状态时,系统或对象要进行的活动(Action)


>entry/action:表示进入该状态时执行的动作。

>exit/action:表示退出该状态图时执行的动作。

>do/action:表示处于该状态时执行的动作。

>event/action:表示处于内部迁移状态时响应某个事件所执行的动作。


4,从一个状态到另一个状态之间的连线称为转移(Transition)。状态之间的过渡事件(Event)对应对象的动作或活动(Action)。事件有可能在特定的条件下发生,在UML中这样的条件称为守护条件(Guard Condition),发生的事件可通过对象的动作(Action)进行处理。状态之间的转移可带有标注,由三部分组成(每一部分都可省略),其语法为:事件名 [条件] / 动作名



四:状态图高级技巧

简单状态:不包含其他状态的状态称为简单状态。
复合状态:又称为组合状态,可以将若干状态组织在一起可以得到一个复合状态,包含在一个复合状态中的状态称为子状态。


1,复合状态
   汽车状态:




2,带同步条的状态图(分支与合并)

   请假条状态:




五:状态图绘制技巧

1,状态图适合用于表述在不同用例之间的对象行为

2,系统设计中可能有多个对象,但并不需要给出每个对象的状态图,实际的做法是把注意力集中在整体系统或少数关键的对象上,特别是那些状态比较多的对象。




六:案例

某信用卡系统账户具有使用状态和冻结状态,其中使用状态又包括正常状态和透支状态两种子状态。如果账户余额小于零则进入透支状态,透支状态时既可以存款又可以取款,但是透支金额不能超过5000元;如果余额大于零则进入正常状态,正常状态时既可以存款又可以取款;如果连续透支100天,则进入冻结状态,冻结状态下既不能存款又不能取款,必须要求银行工作人员解冻。用户可以在使用状态或冻结状态下请求注销账户。根据上述要求,绘制账户类的状态图。



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值