状态图(Statechart Diagram)
是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
状态图的组成
1.状态:对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。
2.转移;转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。
状态图中的事物
状态:上格放置名称,下格说明处于该状态时,系统或对象要做的工作
转移:转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在原状态的内部活动执行完毕后自动触发转移。
结束:终态(可以多个)
状态的可选活动表
1.入口动作:进入某一状态时执行的动作(entry/action)
2.出口动作:离开某一状态时执行的动作(exit/action)
3.外部转换:引起状态转换或自身转换,同事执行一个具体的动作,包括引起入口动作和出口动作被执行的转换(e(a:T)[exp]/action)
4.内部转换:引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行(e(a:T)[exp]/action)
下面先来看看网上订票的过程的状态图
图中包含以下状态
初始状态、Available状态、Locked状态、Sold状态
状态间的转移
初始状态->Availabel状态
票被预定(lock):Locked->Sold
预定后付款(buy):Locked->Available
预定解除(unlock):Locked->Available
预定过期(time out):Locked->Available
直接购买(assingned to):Available->Sold
是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
状态图的组成
1.状态:对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。
2.转移;转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。
状态图中的事物
状态:上格放置名称,下格说明处于该状态时,系统或对象要做的工作
转移:转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在原状态的内部活动执行完毕后自动触发转移。
开始:出事状态(一个)
结束:终态(可以多个)
状态的可选活动表
1.入口动作:进入某一状态时执行的动作(entry/action)
2.出口动作:离开某一状态时执行的动作(exit/action)
3.外部转换:引起状态转换或自身转换,同事执行一个具体的动作,包括引起入口动作和出口动作被执行的转换(e(a:T)[exp]/action)
4.内部转换:引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行(e(a:T)[exp]/action)
下面先来看看网上订票的过程的状态图
图中包含以下状态
初始状态、Available状态、Locked状态、Sold状态
状态间的转移
初始状态->Availabel状态
票被预定(lock):Locked->Sold
预定后付款(buy):Locked->Available
预定解除(unlock):Locked->Available
预定过期(time out):Locked->Available
直接购买(assingned to):Available->Sold
换其他票(exchange),该票重有效:Sold->Available
下面是我自己画的机房收费系统中上下机过程的状态图,仅供参考,有不足之处,希望大家给我指出来