UML状态图详解

上篇文章,介绍了uml的基础知识,并详细介绍了uml中类图的知识点与画法。
本篇,来继续介绍uml中的另一种图——状态图。
1 uml状态图简介状态图,显示一个状态机,属于uml活动图。
uml具有许多不同类型的图表,包括:
静态图:用例图、类图、包图动态图:活动图、状态图、时序图、协作图状态机用于对模型元素的动态行为进行建模,或是说对系统中受事件驱动的方面进行建模。
2 状态图基本要素2.1 状态状态是状态机的重要组成部分,描述了状态机所在对象动态行为的执行所产生的结果
2.1.1 初始/最终/选择状态这三个都是****伪状态 (pseudostate):
初始状态:用一个实心圆形表最终状态:用一个圆圈内嵌实心圆点表示选择状态:用一个菱形表示,条件分支上方括号内的文字表示****监护条件 (guard conditions)
2.1.2 一般状态uml中使用一个圆角矩形表示一个一般状态
状态的组成部分:
名称:由一个字符串组成,用以识别不同状态。可匿名,一般放置在状态图符顶部入口/出口动作:表示进入/退出这个状态所执行的动作,动作可以是原子动作,也可是动作序列内部转换:内部转换不会引起状态变化的转换,此转换的触发不会导致状态的入口/出口动作被执行。语法:事件/动作表达式2.1.3 复合状态复合状态,或称组合状态,是指包含有子状态的状态。
如下图,“复合状态2”即为复合状态,内部的“状态2-1”、状态2-2为子状态。
也可用以下形式表示,将复合状态的内容单独画出。
注:图中的圆圈内一个h字母,表示****历史状态 ,它也是一个伪状态,其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初态开始
2.2 转换转换(transition)是两个状态之间的关联。表示对象在第一个状态(source state)中执行一定的动作,并在某个特定事情发生并且某个特定的条件满足时进入下一个状态(target state)。
2.2.1 一般转换一般情况下的状态转换是两个不同状态之间的转换,示意图如下:
转换的组成部分:
源状态(source state):源状态就是被转换影响的状态。某对象处于源状态,当它接收到触发事件或满足监护条件,就会激活一个转换目标状态(target state):转换完成后,对象状态发生变化,这时对象所处的状态就是转换的目标状态触发事件(trigger):引起转换的事件,这里所指的事件可以是信号、调用、时间段或状态的一个改变监护条件(guard condition):是一个方括号括起来的布尔表达式,它被放在触发事件的后面。监护条件可以引用对象的属性值和触发事件的参数结果(effect):对象状态转移后的结果2.2.2 自身转换自身转换(self-transitions),是指状态可以有返回自身状态的转换。
2.2.3 本地转换与外部转换对于复合状态之间的转换,需要注意本地转换(local transition)与外部转换(external transition)的不同。
上图中,左边是本地转换,右边是外部转换。
上面两个,源状态包含了目标状态,这种情况两种转换的区别在于:本地转换不会从源状态退出(不会执行退出动作),而外部转换会退出再重新进入源状态。下面两个,目标状态包含了源状态,这种情况两种转换的区别在于:本地转换不会再次进入目标状态(不会执行进入动作),而外部转换会退出再重新进入目标状态。3 一个uml状态图实例3.1 使用visio绘制uml状态图新建一个visio文件,打开后会自动提示选择创建某种类型的图,这里选择软件和数据库 ->uml状态机
点击确定之后,会进入uml状态图的编辑界面,左侧可以看到用于uml状态图编辑的基本元素,将这些元素拖拽到右侧的编解面板中,可以看到这些元素的基本结构形式:
3.2 实例讲解下面是一个uml状态图的实例:
这是一个全自动洗衣机的uml状态图,主要包括“设置”、“工作中”、“暂停”这3个状态。
开机时,会先进入“设置”状态,可以设置洗衣模式以及水量等,触发启动后,会进入“工作中”状态。“工作中”是一个复合状态,内部包括“加水”、“清洗”、“排水”、“甩干”这4个子状态。进入该状态后,从“加水”子状态开始执行,然后会执行“清洗”、排水子状态,排水完成后,根据清洗次数是否足够,跳转到“加水”或“甩干”子状态。在“工作中”状态时,无论处于哪个子状态,只有按了暂停键,都会进入“暂停”状态,再按继续,则会进入“工作中”继续执行,注意继续时指向的是历史状态(圆圈内一个h字母),表示继续指向刚才暂停时的子状态。4 总结本篇介绍了uml状态图的基础知识,并通过visio绘制一个全自动洗衣机的uml状态图实例,来介绍uml状态图的画法与所表达的含义。


TWH9250雷达探测模块的新型防盗报警器中文资料及电路图
ARM史上第一次公开发布了一份CPU规划路线图
通过UDE 4.10简化多核调试和系统分析
三大电流电压控制模式的详解与优缺点
谍照说 iPhone 8 指纹识别后置?其中有疑点
UML状态图详解
国家电投集团宣布已有能力规模生产电子级多晶硅 将打破国外公司垄断的格局
又一国产激光雷达厂商准备上市,现在谁才是产业老大哥?
使用深度学习的在线学习中的错误发音检测
基于FPGA系统Register和Memory的复位
电梯智能相机精准预防事故发生
如何使用DCF分析加密资产的估值
简易芯片的制造过程及制作芯片的原料
小麦中真菌毒素重金属快速定量检测解决方案
苏州博智慧达激光视觉传感器
荣耀的首款5G手机有望在今年下半年发布
BOE(京东方)移动健康管理平台,用科技守护健康
我国的工业机器人还有哪些需要改进的
改进的电荷泵 可以从数字信号中提取功率
TCL物联网智能锁K6X发布 采用行业首个“5D安全防护”技术