UML学习笔记之状态图

状态图用于建模对象状态的变化,与活动图不同,它关注单个对象的行为。状态定义了对象行为的转折点,如计算机的开机、启动等状态。状态图通过状态、转移、决策点等组件描述对象状态变化,包括事件触发的行为和动作如Entry、Exit等。建模时需标识实体、事件,并考虑开始和结束状态,以及可能的子状态和同步操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

状态图(Statechart

         状态图和活动图的区别:活动图用来建模不同区域的工作如何彼此交互,而状态图用来表示单个的对象,以及对象的行为如何改变其状态。

         什么是状态?状态定义为对象行为在某一个时刻的快照(snapshot)或者转折点(milestone)。例如计算机的状态可以分为开机、启动、工作中、空闲、关机和离线。状态图的任务就是描述计算机如何从离线状态进入启动状态,以及如何从处理进入空闲。

         为什么建模状态图?用来建模对象状态的改变,也可以用于建模复杂的用例行为。

 

状态图标记符组件:

u       状态:普通的用圆角矩形。开始用实心点。结束用带圈的实心点。状态图中,不必同时具有开始和结束状态,开始状态和结束状态都可以有0个到多个。

u       转移:表示从一个状态到另一个状态的处理流。

u       决策点:一个分成多个

u       同步:许多个状态同时有效。

u       事件:一个放在转移上的藐视,指示状态改变的原因。

u       动作:由状态中的条件或者事件触发的行为。说明当事件发生时发生了什么行为。状态初始时有5种基本动作类型:

1.         Entry 用来指定进而状态时发生的动作。

2.         Exit 用来指定状态被另一个状态取代时发生的动作。

3.         Do 用来指定出于状态时的活动。

4.         Include 调用另一个状态图表示的子机器。

5.         Event 用来指定当特定的事件触发时执行的动作。

标记符:action-label / action。例如:entry / numberOfStudents = 0。标在转移上。

 

         一个对象可以通过同步操作同时拥有多个状态。有时,当单个状态具有独有的附加子状态时,可以在状态中使用层次结构的状态。如何使用合成状态?

u       子状态:状态图中的某个状态独有的状态,可以使用单个状态图来建模。

u       合成状态:另一种演示子状态的方法。在大状态的框中画小状态,小状态也是一套状态图。

 

如何建模状态图:

1.         标识出需要进一步建模的实体。状态图应该用于复杂的实体,而不是用于具有复杂行为的实体,具有复杂行为的实体用活动图更好。

2.         标识出每一个实体的开始状态和结束状态。确定开始和结束状态要什么信息?(如何创建和销毁实体)

3.         确定与每一实体相关的事件。确定事件时需要哪些信息?(实体的任务是什么)

4.         从开始状态开始创建状态图。

5.         如果必要则指定合成状态。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值