UML之状态图

一、状态图概要

        状态图是一种行为图。描述一个特定对象的所有可能的状态以及引起状态转换的事件。

        在面向对象的软件系统中,一个对象无论多么简单或者多么复杂,都必然会经历一个从开始创建到最终消亡的完整过程,这个过程通常被称为对象的生命周期。一般来说,对象在其生命周期内是不可能完全孤立的,它必然会接受消息来改变自身,或者发送消息来影响其他对象。而状态机就是用于说明对象在其生命周期中响应时间所经历的状态序列以及其对这些事件的响应。在状态机的语境中,一个事件就是一次激发的产生,每个激发都可以触发一个状态转换。

状态机由状态、转移、事件、活动和动作五部分组成。

二、状态图的组成

状态机注释
状态状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。一个状态的生命周期是一个有限的时间阶段。
转移转移指的是两个不同状态之间的一种关系,表明对象在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态。
事件事件指的是发生在时间和空间上的对状态机来讲有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,如信号、对象额度创建和销毁等。
活动

活动指的是状态机中进行的非原子操作。

动作动作指的是状态机中可以执行的哪些原子操作。所谓原子操作,指的是他们在运行的过程中不能被其他消息中断,必须一直执行下去,以至最终导致状态的变更或者返回一个值。

三、状态图中的事物及解释

1、状态和转移:

起始状态黑色实心
终止状态用一对同心圆(内圆为实心圆)表示
行为转移两个状态之间带箭头的连线箭头指明了转换方向
中间状态:用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。(上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的)

2、事件说明

事件名(参数表)[守卫条件]/动作表达式^发送子句
其中isAuthed为一个guard说明满足该条件才会进行状态转移,然后执行函数auidt。

3、活动

活动表的语法格式:事件名(参数表)/动作表达式
事件名:任何事件的名称。
在活动表中经常使用下述3种标准事件:entry, exitdo

  • entry:事件指定进入该状态的动作,
  • exit : 事件指定退出该状态的动作,
  • do : 事件指定在该状态下的动作。

需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。
 

4、事件表达式

        状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。

语法如下:
        事件说明[守卫条件]/ 动作表达式
        其中,事件说明的语法为:事件名(参数表)。

5、完整符号信息:

四、状态的可选活动表

五、状态图例子

1、对象的状态图

2、网上银行登录系统

  • 86
    点赞
  • 462
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化建模语言,可以用来描述系统中的各种结构和行为。其中,状态图UML中的一种图表,用于描述对象的状态以及状态之间的转换。 状态图是一种特殊的图表,它主要由状态、转移以及事件组成。状态表示了系统或者对象的当前情境,而转移则定义了状态之间的变迁,在特定事件发生时,系统或对象将从一个状态转移到另一个状态。 而有限状态机(Finite State Machine,FSM)是状态图的一种具体实现方式,它用有限个状态以及状态之间的转移来描述对象的行为。有限状态机的特点在于,每个状态都是离散且互斥的,对象只能处于其中一个状态,并在不同事件触发后,根据转移规则执行状态转换。 有限状态机的应用广泛,可以用来描述各种系统,例如自动售货机、电梯控制系统等。它们通常包括多个状态,如待机、运行、出错等,并且根据不同的输入事件和条件,可以在这些状态之间进行转换。 有限状态机的建模方法可以帮助开发人员更好地理解和设计系统的行为。通过将系统的行为转化为状态和转移来描述,有限状态机提供了清晰的视图,使得开发人员可以更好地实现和测试系统。 总之,UML状态图和有限状态机是软件工程领域中常用的建模工具,可以帮助开发人员更好地理解和描述系统的状态和行为,进而实现系统的要求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值