uml状态图_UML建模(状态图)

8、状态图

状态机图是一种行为图,它通过使用有限的状态转移展示了一个系统中一个模块的一些离散的行为,在UML2.4里面有两种状态机图:行为状态机(behavioral state machine),协议状态机(protocol state machine)。

8.1 元素介绍

__ 行为状态(Behavioral State)__

  • 简单状态(Simple State)
  • 简单状态没有子状态机和域,UML中使用带拐点的矩形标示简单状态,并且状态名字写在矩形内部。
b67318b66b396f483294aa5e700c9159.png

image.png

  • 组合状态(Composite State)
  • 组合状态被定义为用用子状态或者嵌套状态的状态行为,子状态可以是顺序发生的也可以是并发发生,组合状态里至少有一个域,如下图含有一个域
1bc6dcf6c8f6060bb82998aa4a983b2a.png

image.png

__ 起始状态(Initial Pseudostate),终止状态(Final State),(行为转移)Behavioral Transition

__

7cefd70ab60b5ded8e66dc0b7e067086.png

image.png

如图黑色实心为起始状态,末端双环圆为终止状态,中间连接线为行为转移,其中isAuthed为一个guard说明满足该条件才会进行状态转移,然后执行函数auidt。

8.2 行为状态机(behavioral state machine)

使用有限状态转移表示一个系统中的离散行为的变换,行为被建模为通过一系列转移线连接起来的状态。

一个简单的行为状态机:

e6235198cf4d5280cf37d9ef649f52ff.png

image.png

8.2 协议状态机(Protocol State Machine)

协议状态机是行为状态机的一个子类,是行为状态的扩展,用来描述一个类的生命周期和协议,他描述一个类的哪一个动作可以被哪一个状态下的规定条件下被调用。

21b7a1ffa2cc9daae4301a103169995c.png

image.png

8.3 官方例子

如下图是一个Java线程状态机图(协议状态机图)

75b46a9e9fd4e7406d3eb3c6497b76f3.png

image.png

如图 New状态是一个线程被创建但是没有执行start()方法时候状态。

在JVM看来当一个线程在Runnable时候它是在运行,但是在os看来却未必,因为线程可能没有获取到处理器。所以可以考虑把Runnable看为一个内部有两个子状态的组合状态,当一个线程状态进入Runnable时候,首先进入Ready状态(其他资源已经就绪,就差cpu),由线程调度策略决定何时把这个线程从Ready转变为running状态,函数Thread.yield() 则知识线程调度暂定当前线程执行,把线程从running状态转变为Ready状态...

欢迎关注微信公众号:技术原始积累 获取更多技术干货

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值