UML状态图的画法



《UML状态图的画法》由会员分享,可在线阅读,更多相关《UML状态图的画法(89页珍藏版)》请在文档大全上搜索。
1、p动态模型描述系统与操作时间和顺序有关的系统方面、影响更改的事件、事件的序列、事件的环境以及事件的组织1234二、状态图(二、状态图(State Diagram)p状态图是系统分析的一种常见工具,用于描述系统的行为。状态图是系统分析的一种常见工具,用于描述系统的行为。p实体的生存期比较复杂时,需要状态图对其建模。实体的生存期比较复杂时,需要状态图对其建模。pUML中的状态图主要用于建立对象类或对象的动态行为中的状态图主要用于建立对象类或对象的动态行为模型,表现模型,表现一个一个对象所经历的对象所经历的状态状态序列,引起状态或活动序列,引起状态或活动转移的转移的事件事件,以及因状态或活动的转移而
2、伴随的,以及因状态或活动的转移而伴随的动作动作。5主要内容主要内容1. 状态机状态机 2. 状态状态3. 转移转移 4. 组合状态组合状态5. 状态图的应用状态图的应用63.1 状态机状态机1 状态机对系统的动态特征建模。状态机对系统的动态特征建模。p状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行动作,引起转移到另一个状态,直到终结状态。动作,引起转移到另一个状态,直到终结状
3、态。p状态机的组成:状态、转移、事件、活动、动作等。状态机的组成:状态、转移、事件、活动、动作等。状态状态(State):):表示一个模型元素在生存期的一种状况,如满足某些条件,表示一个模型元素在生存期的一种状况,如满足某些条件,进行某些活动,或等待某些事件出现等。一个状态在有限的时间段内存在。进行某些活动,或等待某些事件出现等。一个状态在有限的时间段内存在。转移转移/迁移迁移(Transition):表示一个模型元素的不同状态之间的联系。在事表示一个模型元素的不同状态之间的联系。在事件触发下,一个状态可以转移到另一个状态。件触发下,一个状态可以转移到另一个状态。事件事件(Event):):一
4、个有意义的出现(一个有意义的出现(Occurrence)的说明。该出现在某的说明。该出现在某个时间或空间点发生,并且立即触发一个状态的转移。例如,一个信号、一个时间或空间点发生,并且立即触发一个状态的转移。例如,一个信号、一个操作的调用、一个对象的创建或销毁、超时、某个条件的改变等。个操作的调用、一个对象的创建或销毁、超时、某个条件的改变等。动作动作(Action):):一个可执行的原子计算,它导致状态的变更或返回一个值。一个可执行的原子计算,它导致状态的变更或返回一个值。不能被中断。不能被中断。活动活动(Activity):):是在状态机中一系列动作的执行。活动可能被某个事件是在状态机中一系
5、列动作的执行。活动可能被某个事件中断。中断。73.1 状态机状态机2p状态机用于对状态机用于对一个一个模型元素建立行为模型,该模型元素通模型元素建立行为模型,该模型元素通常是一个对象类,也可以是一个子系统,常是一个对象类,也可以是一个子系统,甚至整个系统。甚至整个系统。p在在UML中状态机用状态图可视化表示。中状态机用状态图可视化表示。状态图:状态的节点、转移的弧、事件等组成。状态图:状态的节点、转移的弧、事件等组成。源状态源状态目标状态目标状态事件事件83.2 状态状态p状态:对象全部属性的当前值。状态:对象全部属性的当前值。(问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)(
6、问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)p状态属性:对确定对象的状态有重要意义的属性。状态属性:对确定对象的状态有重要意义的属性。p状态属性一般具有少量的值,而且这些属性的值的转换是有限的。状态属性一般具有少量的值,而且这些属性的值的转换是有限的。并且其属性值反映所属对象的特定状态。并且其属性值反映所属对象的特定状态。 如:对于如:对于“汽车汽车”对象,可能有对象,可能有“型号型号”、“车况车况”、“使用情况使用情况”、“公里数公里数”、“汽油剩余量汽油剩余量”等属性。不应取等属性。不应取“公里数公里数”或或“汽油剩余量汽油剩余量”作为状态属性,可取作为状态属性,可取“使
7、用情况使用情况”作为属性状态。则,作为属性状态。则,“汽车汽车”对象的有对象的有限个不同状态:限个不同状态:“开动开动”、“停车停车”、“维修维修”、“闲置闲置”、“报废报废”等。等。p在在UML中,对一个对象(模型元素)的行为建模时,所选择的该对中,对一个对象(模型元素)的行为建模时,所选择的该对象的生存期中的象的生存期中的状态数量是有限的状态数量是有限的,对象处于每个状态的持续时间对象处于每个状态的持续时间也是有限的。也是有限的。当发生某个事件,或完成某个动作,都会触发状态的当发生某个事件,或完成某个动作,都会触发状态的转移。转移。状态举例状态举例p状态指的是对象的状态。例如:p发票(对象
8、对象)被被支付支付(状态状态)p小车(对象对象)正在正在停着停着(状态状态)p发动机(对象对象)正在正在工作工作(状态状态)p电灯(对象对象)开着开着(状态状态)9103.2.1 状态图标状态图标p 状态图标(状态节点)状态图标(状态节点)一个状态可以加入信息一个状态可以加入信息:进入操作、退出操作、进入操作、退出操作、活动等活动等状态名状态名entry / 动作动作do / 活动活动exit / 动作动作113.2.2 状态行为状态行为1p进入操作(进入操作(entry):):系统进入该状态时要发生的动作,前面加上系统进入该状态时要发生的动作,前面加上entry和和“ / ”。不可中断。不可
9、中断。注:航班进入预定状态时,注:航班进入预定状态时,系统将时刻表发布到系统将时刻表发布到Internet。尽管发布动作在技术上是可以尽管发布动作在技术上是可以中断的,但其速度很快,用户中断的,但其速度很快,用户很难在其发生时取消事物。很难在其发生时取消事物。p活动(活动(do):):系统处于该状态时要发生的活动,前面加上系统处于该状态时要发生的活动,前面加上do和和“ / ”。 活动是可中断行为,活动是可中断行为,可以在对象处于该状态时可以在对象处于该状态时运行完毕,也可以在对象运行完毕,也可以在对象转入另一状态时中断。转入另一状态时中断。航班预定航班预定entry / 将时刻表发布到将时刻
10、表发布到 Internet航班取消航班取消do / 为客户寻找其它航班为客户寻找其它航班123.2.2 状态行为状态行为2p退出操作(退出操作(exit):):系统离开该状态时要发生的动作,前面加上系统离开该状态时要发生的动作,前面加上exit和和“ / ”。不可中断。不可中断。注:飞机着陆时退出飞行状态,注:飞机着陆时退出飞行状态, 系统记录登陆时间。系统记录登陆时间。p发送事件:发送事件:在活动、进入和退出操作的动作中可以是对象内部发生在活动、进入和退出操作的动作中可以是对象内部发生的行为,也可能是向另外的行为,也可能是向另外一个对象发送消息。一个对象发送消息。飞行状态飞行状态exit /
11、 记录登陆时间记录登陆时间状态名状态名entry / 目标对象目标对象.消息名消息名(消息参数消息参数)do / 目标对象目标对象.消息名消息名(消息参数消息参数)exit / 目标对象目标对象.消息名消息名(消息参数消息参数)133.2.3 初始与终结状态初始与终结状态p初始状态:初始状态:是模型元素的初始状况,代表一个状是模型元素的初始状况,代表一个状态图的起始点,是一个伪状态。初始状态是转移态图的起始点,是一个伪状态。初始状态是转移的初始源,而不能是转移的目标。实心圆表示。的初始源,而不能是转移的目标。实心圆表示。p终结状态:终结状态:是模型元素的最后状态,代表一个状是模型元素的最后状态