菜鸟实战UML——状态图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whc888666/article/details/82929970

状态图

状态图(Statechart Diagram):是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。

理解:状态图其实就是用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。

在这里插入图片描述

状态图的图符

-状态

-转移

-起点

-终点

状态

状态:是指在对象的生命周期中满足某些条件,执行某些活动或等待某些事件时的一个条件或状态。

举例:

发票(对象)被支付(状态)
小车(对象)正在停着(状态)
发动机(对象)正在工作(状态)
点灯(对象)开着(状态)

一个状态有以下几部分内容:

1、名称Name
2、进入协作和退出动作Entry action/exit action
3、内部转换Internal transition
4、子状态Substate
5、延迟事件 Deferred event

子状态和组合状态

子状态:被嵌套在另一个状态中的状态
-组合状态:含有子状态的状态,组合状态也可以有初态和终态

并发状态和并发中的同步

并发状态:指一个对象在同一时刻可以处在多种状态
-并发中的同步:并发状态之间需要通信,或具有确定的时序关系,称为并发中的同步。

转移

转移(transition):是一个状态向另一个状态的转换,对象处在源状态时,发生一个时间,如果条件满足,则执行相应的动作 ,对象由源状态转移到目标状态。

在这里插入图片描述

-转移用箭头表示,如果没有标注事件,则本转移为自动转移。

转移的组成

1、源状态source state
2、事件触发event trigger
3、监护条件guard condition
4、动作action
5、目标状态target state

转移类型

1、自转移:源状态和目标状态为同一状态的转移。

在这里插入图片描述

2、自动转移:一个状态根据本状态的有关情况,自动触发进入目标状态,在转移上没有事件。

在这里插入图片描述

3、条件转移:通过分支判断所确定的转移。

在这里插入图片描述

状态机

状态机是一种行为,它描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。
-单个类或一组类之间协作的行为可以用状态机来描述。
-一个状态机涉及到一些其他元素,包括状态、转换(从一个状态到另一个状态的流)、事件(触发转移的流)

事件

事件(event):是指在确定的时间和位置所发生的对对象起作用的事情,事件的发生将引起一些动作,使对象发生状态的转移。

动作:动作是对象类中的一个操作的执行,动作具有中间性和不可中断特性。

事件的类型

1、调用事件:是表示对操作的调度
2、变化事件:因为满足某种条件而引起的事件,变化条件用When表示
3、时间事件:满足某一时间表达式而引起的事件,时间事件用after,when表示

在这里插入图片描述

状态图的作用

状态图是用来描述一个对象在其生命周期中所表现出来的状态和行为。当在系统建模过程中需要描述某个事物或对象的不同状态,以及状态之间转移的事件和动作时,用状态图。但是状态图并不是对每一个对象都需要的。

实战——机房收费系统

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/whc888666/article/details/82929970