uml-状态机图

目录

一、相关概念

1.定义:

2.基本元素:

3.状态

1)名称

2)进入退出动作

3)内部转换

4)子状态

5)延迟事件

6)转换

二、构建状态机图

三、例子

1.打电话的行为建模

2.航班预定

3.登陆系统


一、相关概念

1.定义:

状态机图描述单个对象随时间变化的行为的动态模型

包含一个类的对象在其生命周期期间的所有状态的序列以及对象对接收到的事件所产生的反应

2.基本元素:

状态,转换

状态用圆角矩形表示,初态是一个实心圆,终态是一个圆形内嵌原点

3.状态

由名称,进入退出动作,内部转换,子状态和延迟事件构成

1)名称

状态可以没有名称

2)进入退出动作

顾名思义在进入和退出这个状态所执行的动作,可以没有参数

动作具有原子性(即不可以中途中断,可以理解为在较少的时间内完成)

通过这个操作可以不必精确将操作放在输入或输出转移上

3)内部转换

就是事件的执行不会引起状态的变化

可能会带有参数或警戒条件

通常在出入口事件没必要的情况下使用

比如,一个状态的出入口事件分别为关闭和打开某文件,当我只想修改文件名时根本不需要这两个事件

4)子状态

嵌套在另一个状态中的状态

简单状态是没有子结构的状态,组合状态(复合状态)是具有子状态的状态

嵌套的状态最多只有一个初态和一个终态

顺序子状态:按顺序一个一个来

并发子状态:并发状态同时进行

                        两并发状态间用虚线隔开

5)延迟事件

就是有这么个事件不能让它立刻就执行,就延迟它,直到它不是延迟状态了才会被拿出来执行

6)转换

就是在源状态那本来干着个事但是突然触发了什么事件,就进入了目标状态

由源状态,触发事件,监护条件,动作,目标状态组成

源状态:激发前的状态

触发条件:引起转变的事件,可以带参数

监护条件:触发事件发生后对监护条件进行求值,真则转移,假则不转移

                    方括号括起来放在触发条件后面

动作:转换发生时动作就被执行,是一个原子性的(就是要么一下都执行完,要么不执行,不存在执行一半的现象)

目标状态:转换完成后的状态

二、构建状态机图

步骤:

寻找主要状态

确定状态之间的转换

细化状态内的活动与转换

在这个过程中可以把自己想象成这个不停变换状态的系统来找状态,然后再把自己作为一个操作者来找动作

三、例子

1.打电话的行为建模

电话空闲时,用户拨号进入拨号状态,呼叫成功则电话接通处于通话状态,呼叫不成功,则回到空闲状态

电话空闲时被呼叫,进入响铃状态,用户接听则处于通话状态,完成后回到空闲状态,用户不接听则继续响铃,用户挂断则回到空闲状态

可见总共有空闲,拨号,通话,响铃四种状态

有拨号,拨号不通,接通电话,通话完毕,来电,拒接电话无人接听这几种动作

可以绘制状态机图如下:

d825d12f145b478cab740beae1c6416f.png

2.航班预定

一开始肯定是无预定的状态,在订票的过程中肯定是部分预定状态,逐渐订满则是预定完状态,最后起飞要是预定关闭状态

其中肯定要有预定和退订这个动作,以及最后起飞时要关闭的操作,还有如果没有人坐这个飞机了那肯定要取消航班

4cfb63b0899b4c1c997b81b3d4ce2fa9.png

3.登陆系统

回想一下登陆流程,输入账号,密码,现在把你自己想象成这个系统,首先你要获取到用户输入的账号,进行验证,然后获取到密码再进行验证,最后验证成功就通过,不成功就拒绝(这里可以设置成一个类似循环的存在

所以这里就存在获取账号状态,获取密码状态,验证状态,拒绝状态

35adf0339be84d15bd869ff98cec9db4.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值