前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML建模(状态图)

UML建模(状态图)

作者头像
加多
发布2018-09-06 14:42:00
1.2K0
发布2018-09-06 14:42:00
举报

8、状态图

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

8.1 元素介绍

__ 行为状态(Behavioral State)__

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

image.png

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

image.png

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

image.png

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

8.2 行为状态机(behavioral state machine)

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

image.png

8.2 协议状态机(Protocol State Machine)

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

image.png

8.3 官方例子

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

image.png

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 8、状态图
    • 8.1 元素介绍
      • 8.2 行为状态机(behavioral state machine)
        • 8.2 协议状态机(Protocol State Machine)
          • 8.3 官方例子
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档