UML: 状态机图
摘自http://www.umlonline.org/school/viewthread.php?tid=39
活动图将流程分解为一个一个的活动,通过活动的先后顺序来展示流程;而状态机图从某个物品的状态是如何变化的角度来展示流程。先看看状态机的简单语法

注意:红色框框及黄色底色的文字并不是状态机图的一部分,仅是用来说明。
状态机图的基本要素如下:
1.一个状态机图是用来表达一个事情的,不要企图在一个状态机图中表达多个事情。
2.有开始与结束标志,这点与活动图很类似。
3.圆角框框表示的是一个一个的状态,这个框框跟活动图的活动框框很类似,要注意活动图的框框是左右两边都是弧形的,而状态机图的框框是4个角是圆角。
4.由一个状态变为另外一个状态,必定是发生了一些事情让其转变,状态之间通过带箭头的线条表示转变的方向,线条上写上让状态变化的事件。
我们以请假审批为例子,请假的过程一般是这样的(假设只有一级审批):
1.请假人填写请假条。
2.请假人提交请假条给上司审批。
3.上司批准或者拒绝请假。
请假的工作是围绕这请假条进行的,在整个过程中,请假条有三种状态:
1.待定(appended):请假人写好请假条,请假条未被上司审阅之前的状态。
2.批准(rejected):上司批准请假后的请假条状态。
3.拒绝(approved):上司拒绝请假后的请假条状态。
用状态图来表示这个过程如下:

怎么样?状态机图简单不?
实际工作中,很多人往往将状态机图与活动图搞混,最常见的原因就是没有把握好状态机图是以状态为中心的,而活动图是以活动为中心,各自表述的角度不一样。活动图往往会更加容易被大家理解,而真正要掌握状态机图还需要脑袋上转过弯来才行。
实际工作中用到活动图的情况居多,实际上同一个流程可以同时用活动图和状态机图来表示的,建议大家多用用两种图来同时分析流程,这样你对流程的认识将会更深。
UML: 状态机图的更多相关文章
- UML状态机图【图3】--☆
UML状态机图 基本概述 状态机图描述的是围绕某一事物状态变化的图.它也是三大流程分析利器之一.它和活动图的区别在于,活动图是描述事物发生的流程,是多个角色参与的,而状态机描述的是事物的状态变化 ...
- 【翻译】What is State Machine Diagram(什么是状态机图)?
[翻译]What is State Machine Diagram(什么是状态机图)? 写在前面 在上一篇学习类图的时候将这个网站上的类图的一篇文章翻译了出来,感觉受益良多,今天来学习UML状态机图, ...
- [UML]UML系列——状态机图statechart diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- 【UML】-NO.43.EBook.5.UML.1.003-【UML 大战需求分析】- 状态机图(State Machine Diagram)
1.0.0 Summary Tittle:[UML]-NO.43.EBook.1.UML.1.003-[UML 大战需求分析]- 状态机图(State Machine Diagram) Style:D ...
- UML之状态机图
状态机图 基本概念: 状态机图,UML 1.x规范中称状态图,是一个展示状态机的图. 状态机图基本上就是一个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征.状态机图显示了一个对象如何根据 ...
- uml精粹——10.状态机图
10.状态机图state machine diagram 状态机图是常见的描写叙述一个系统行为的技术. 在面向对象的方法中,为单个类绘制一个状态机图来展示单个对象的生命周期行为. 见图10.1 图 ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- UML——在Visual Studio 2013/2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
- [转载]UML时序图总结
前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...
随机推荐
- nrf51822-使用16位自定义UUID
以 ble_app_uart为例 工程中创建的nus服务以及其中的两个特性值都是128位的UUID.nordic sdk中使用128位UUID的方式和标准128UUID类似,它是提供一个基准UUID, ...
- Http请求工具
package cn.com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...
- Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)
Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...
- php--yii框架表单验证
在视图层利用表单小部件生成表单时,field只能是数据库中存在的, 例如: use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\capt ...
- partial类与[MetadataType(typeof(类名))]有什么区别?
在MVC的Model中,我们可以定义很多与视图相关的元数据,这些元数据对我们开发视图起着相当重要的作用,特别是在数据验证方面.这些元数据一般情况下我们是不会定义在业务实体(或持久化实体)上面,所以很多 ...
- toggle笔记
<!DOCTYPE html> <!-- saved from url=(0040)http://v3.bootcss.com/examples/carousel/ --> & ...
- iOS:crash崩溃日志分析
一.前言: 作为一个合格的iOS开发者,除了具有规范强悍的编码能力外,还应该具有过硬的查错纠错能力.在项目运行时,程序崩溃是不可避免的,遇到这个问题,有时会出现一大堆的crash日志,艹,貌似看不懂呀 ...
- keepalived对nginx高可用演练脚本
keepalived对nginx高可用演练脚本 参考文章:http://deidara.blog.51cto.com/400447/302402/ .安装nginx.keepalived.epel-r ...
- Shell expr的用法 bc 命令 let命令
Shell expr的用法 bc 命令 let命令 数学运算 let命令 expr命令 bc命令 $(()) $[] http://www.80ops.cn/archives/245. ...
- fakeLoader.js-针对WebApp中的 “假”预加载
在做移动端网站的时候,前端有时候需要一些过渡效果,当然我们肯定首先想到肯定是用css3做一个过渡动画,nice,那我给大家一个好用的jQuery插件吧,让你三行代码实现这种过渡动画效果. 1.由于该插 ...