2.7 UML状态图
问题的引出
顺序图是对对象的动态行为进行建模,有多个对象的参与、协作
问题:
当需要考察单个实体的动态行为时, 用UML如何来建模呢?
什么是单个实体:一个软件系统?一个子系统?一个模块、一个构件?
选择单个对象
软件系统中核心的、需要进行详细分析的单个实体
从不同的视点(ViewPoint)可有不同的选择
类的对象、构件、整个系统
原则:从选定的角度,把要考察的实体看作一个整体
UML提供了建模机制
状态图, 单个对象的动态行为
状态图的概念
状态(state):
是对象的生命期中的一个条件或状况
在此期间,对象可以响应事件、执行某活动等
例如,灯,有几个状态?
例如类,color,
状态机(state machine) :
是一种行为,
说明对象在它的生命期中, 响应事件所经历的状态序列 以及它们对每个事 件的响应
状态图(state diagram, State Chart ):
状态机可以用状态图来可视化。
状态图显示了一个状态机,它强调从状态到状态的控制流
状态有以下几个部分组成:
1)名称(name)
每个单词首字母大写
2)进入/退出动作(entry/exit action)
3)内部迁移(internal transition)
Transitions that are handled without causing a change in state
4)子状态 (substate)
5)延迟事件 (deferred event)
事件 Event
是对一个在时间和空间上占有一定位置的有意义的事情的描述
在状态机的语境中,一个事件是一个激励的发生,它能够触发一个状态迁移
UML 对4种事件进行建模
参量变化 change event
布尔表达式值变化、定时器、溢出:是内部事件
信号 signal (异步)
调用 call (同步)
时间事件 time event
时间事件 是表示一段时间的推移
用关键字after 后面跟着时间表达式
用关键字at 表示某个绝对时间点上发生的时间事件
变化事件 表示状态的一个变化或某些条件得到满足的事件
用关键字 when后跟一个布尔表达式,当条件满足,则引发变化事件
迁移Transition
在状态A,发生事件并满足一定条件,转到状态B
一个迁移由5部分组成
源状态 source state
事件触发器 event trigger (触发事件名称)
触发条件 guard condition
效应(effect) (或称,迁移动作)
可执行的动作
目标状态
特殊的迁移
自身迁移 self transition
从状态A迁移到状态A
内部迁移 internal transition
在状态A内部 行为
状态图的建模元素
状态
一般状态:圆角矩形
初始状态:实心圆
结束状态:“牛眼” (bull’s eye)
事件
触发事件名[触发条件]/迁移动作
这三个部分都是可以省略的,但至少有一部分
事件依附于表示迁移的箭线
迁移
叉形箭头实线
从初始状态指向目标状态

状态图建模
建模步骤
1、选择对象及视点
简单类的实例
构件
整个系统 或子系统
用例
2、定义 对象在生命期内可能存在的状态
状态要有意义
状态持续一定的时间
3、在每种状态下可以接受的事件及将要转去的新的状态
状态图建模注意事项:
不允许孤立的状态存在
不允许只进不出的状态迁移 (“黑洞”)
不允许只出不进的状态迁移 (“奇迹”)
不允许没有事件发生的迁移
或者“迁移” 没有指明具体的事件
比较状态图与交互图、活动图
交互
对共同工作的对象群体的行为建模
动态行为
状态机
对单个对象的行为建模
有时,可以对单个“完整系统”的行为建模
说明对象在它的生命期中响应事件所 经历的状态序列以及对那些事件的响应
动态行为建模
活动图
强调从活动到活动的控制流,多个业务角色
状态图是强调 对象潜在的状态和这些状态之间的迁移
UML工具小结
建模、模型
统一建模语言 UML,Unified Modeling Language
工具包
用例模型 UseCase Model
活动图 Activity Diagram
类图 Class Diagram
顺序图 Sequence Diagram
通信图 Communication Diagram
状态图 State Diagram
2.7 UML状态图的更多相关文章
- UML状态图和活动图
UML状态图和活动图 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对 ...
- 时序扩展的UML状态图的测试用例生成研究
一.基本信息 标题:时序扩展的UML状态图的测试用例生成研究 时间:2014 出版源:西南大学 领域分类:时序扩展:UML状态图:测试用例:需求规格说明:模型 二.研究背景 问题定义:时序扩展的UML ...
- UML状态图(转载)
概述: 图表本身的名称,阐明该图的目的和其他细节.它描述了在一个系统中的一个组成部分不同的状态.状态是特定的一个系统的组件/对象. 状态图描述了一个状态机.我们阐明的状态机可以被定义为一台机器,它定义 ...
- Python设计模式 - UML - 状态图(State Machine Diagram)
简介 状态图主要用于描述对象在其生命周期中各种状态.状态之间的转换过程.触发状态转换的各种事件(条件)及执行的动作. 状态图构建步骤 - 找出适合用状态图描述的类.确定类中需要做状态图的重要对象 - ...
- UML状态图
状态图(Statechart digram)是系统分析的一种经常使用工具,系统分析员在对系统建模时,最先考虑的不是基于活动之间的控制流,而是基于状态之间的控制流,由于系统中对象的状态变化最易被发现和理 ...
- UML——状态图
状态图(Statechart Diagram),主要用于描述对象在其生命周期中基于事件的动态行为,显示了对象如何根据当前的状态对不同的事件(Events)作出反应(Action).一般我们用状态机来对 ...
- 【UML】状态图Statechart diagram(转)
前言 UML由动态图和静态图组成,状态图就是属于动态图中较为重要的一张图. 定义 用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移. 目的 ...
- UML简介
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型 ...
- UML(统一建模语言)
最近看了一个UML图,所以特意来了解一下UML 统一建模语言 锁定 同义词 UML(统一建模语言)一般指统一建模语言 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . Unified Mo ...
随机推荐
- 再谈fedora23下Virutalbox的安装. --问题的关键在于 安装kernel-devel包
首先, 要使用 virutalbox的 rpm 安装包 进行安装. 在安装的过程中, 如果提示 有一些包, 没有, dependencies not resolved, 比如libQt..libvpx ...
- BZOJ 4159 [Neerc2009]Business Center
思路 简单的模拟,答案就是\(min\{(\lfloor\frac{d\times n}{u+d}\rfloor+1)\times(u+d)-d\times n\}\) 代码 #include < ...
- P2163 [SHOI2007]园丁的烦恼(cdq分治)
思路 其实是cdq的板子 题目要求询问对于每个给出的xi,yi,xj,yj形如xi<=x<=xj.yi<=y<=yj的x,y对数有多少组 改成四个询问,拆成四个前缀和的形式后就 ...
- Git回顾
抄自廖雪峰的官方网站 完整图文请访问https://github.com/Mrlution/study/tree/master/git 关于repository 我认为repository是一个存放代 ...
- Log4j日志依赖
<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency> <groupId>log4j ...
- 无损录制acestream直播流
很多人选择用acestream收看一些频道,往往比较高清,但很多人不知道如何录制. 其实方法很简单,用ace自带的播放器播放后: 1.打开potplayer,右击->打开链接 2.把当前播放的a ...
- 转 代码修改buildoption
using System;using System.IO;using UnityEditor;using UnityEngine; public class BuildPlayer : Scripta ...
- JS基础---Dom的基本操作
DOM的增删改查 增: 1.创建一个元素节点 document.createElement() 创建新的<p> 元素:var para=document.createElement(&qu ...
- go 内嵌对象类型
demo1 // Sample program to show how to embed a type into another type and // the relationship betwee ...
- Abode Audition 的使用
讲一下音频的合并,音量放大,音频截取,音频删除等. 我下载的是Abode Audition 3.0的试用版本,可以免费使用30天. 1. 将抖音中小视频保存下来,成为mp4文件,然而Audition ...