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时序图总结
前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...
随机推荐
- myeclipse调式与属性显示
最近做项目的时候发现一个奇怪的东西,当我用myeclipse调式时,调式窗口显示实体user所关联的role的对象属性是空的,但是,从syst打印出来是有的,最近感到很奇怪,后来发现这只是调式的一种显 ...
- Bluetooth数据包捕获
目录 1. 前提 2. 开启功能 3. 抓包 这里介绍一种在Android上捕获蓝牙数据包的方法 1. 前提 首先你要有一部Android手机 然后你的Android系统版本要在4.4及以上 我没有做 ...
- HTML5的新事件
HTML 元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个 HTML 元素时启动一段 JavaScript. HTML 元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击 ...
- 【Android开发学习笔记】【第四课】基础控件的学习
通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...
- Objdump-查看汇编指令
作用 Objdump可以用来看汇编指令 查看汇编指令 测试文件 编译指令 gcc -g -o objtest 1.8.c objdump -S objtest |more /main 查看结果
- OO之美4(好代码与坏代码)
前言:写代码不仅仅要做到能与机器交流,更要做到能和人交流 编码规范:编码规范就是最佳实践,是前辈在编码这件事上的积累和总结,是智慧的延续和工业的实践,如下: ⑴命名规范 ⑵避免行数过多的方法 ⑶代码缩 ...
- thinkPHP 接支付宝及时到账接口
支付宝及时到帐接口,现在整理以下: 1.先将支付宝提供的公共类库函数库文件防盗thinkPHP的Vender目录下建的一个alipay文件下,以便之后的调用. //四个文件我分别给他们改了下名字,因为 ...
- 链表之求链表倒数第k个节点
题目描述:输入一个单向链表,输出该链表中倒数第k个节点,链表的倒数第0个节点为链表的尾指针. 最普遍的方法是,先统计单链表中结点的个数,然后再找到第(n-k)个结点.注意链表为空,k为0,k为1,k大 ...
- Infinity loop in cursor iteration
原始代码如下: begin DECLARE @SQL_STMT NVARCHAR(300), @V_CLIENT_ID INT, @V_PGNAME VARCHAR(1000), @V_LOGID I ...
- 每日目标——HTML 头部标签学习 2015-8-27
<head> <title>bp</title> <meta http-equiv="Content-Type" content=&quo ...