前言

        UML由动态图和静态图组成,状态图就是属于动态图中较为重要的一张图。

定义

        用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。

目的

        研究类、角色、子系统、或组件的复杂行为。

组成元素

状态

定义:指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。
表示方法:圆角矩形。
初态和终态(Initial and Final States):初态用实心圆点表示,终态用圆形内嵌圆点表示。
 

转移

定义:两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态(Target State)。

事件标记(Trigger):是转移的诱因,可以是一个信号,事件、条件变化(a change in some condition)和时间表达式。
警界条件(Guard Condition):当警界条件满足时,事件才会引发转移(Transition)。
结果(Effect):对象状态转移后的结果。

动作

        UML状态图中的动作(Actions)是一个可执行的原子操作,也就是说动作是不可中断的,其执行时间是可忽略不计的。

自身转移

        状态可以有返回自身状态的转移,称之为自身转移(Self-Transitions)。

组合状态

         嵌套在另外一个状态中的状态称之为子状态(sub-state),一个含有子状态的状态被称作组合状态(Compound States)。

进入节点

        由于一些原因并不会执行初始化(initialization),而是直接通过一个节点进入状态【Ready】,则此节点称之为进入节点(Entry Point)。

退出节点

历史状态

        历史状态是一个伪状态(Pseudostate),其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初态开始。

并发区域

        状态图可以分为区域,而区域又包括退出或者当前执行的子状态。说明组合状态在某一时刻可以同时达到多个子状态。

状态机

        描述一个对象或一个交互在生命期内响应事件所经历的状态序列。单个类或一组类之间的协作行为可用状态机描述。

机房收费系统状态图

        欢迎大家提出宝贵建议。

总结

        不难发现,在UML图中,各个图都是相互关联的,尤其有两个图之间联系紧密,比如协作图和序列图,同为交互图,构件图和部署图同为实现图,对象图和类图之间为实例化,状态图和活动图之间也是相关联的。
两个图的之间的区别:
状态图从行为的结果来描述。
活动图从行为的动作来描述。
        状态图描述了一个具体对象的可能状态以及他们之间的转化。

【UML】状态图Statechart diagram(转)的更多相关文章

  1. 状态图 Statechart Diagram

    一.状态图(Statechart Diagram):用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化. 一个机器的状态图: TIP:在需求分析和系统设计时都可以 ...

  2. UML状态图和活动图

    UML状态图和活动图 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对 ...

  3. UML建模之状态图(Statechart Diagram)

     状态图目录: 一.状态图简介(Brief introduction) 二.状态图元素(State Diagram Elements) 1.状态(States) 2.转移(Transitions) 3 ...

  4. 《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)

    说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...

  5. 状态机图statechart diagram

    [UML]UML系列——状态机图statechart diagram 系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend ...

  6. 2.7 UML状态图

    问题的引出 顺序图是对对象的动态行为进行建模,有多个对象的参与.协作 问题: 当需要考察单个实体的动态行为时, 用UML如何来建模呢? 什么是单个实体:一个软件系统?一个子系统?一个模块.一个构件? ...

  7. UML——状态图

    状态图(Statechart Diagram),主要用于描述对象在其生命周期中基于事件的动态行为,显示了对象如何根据当前的状态对不同的事件(Events)作出反应(Action).一般我们用状态机来对 ...

  8. 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)

    说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...

  9. 时序扩展的UML状态图的测试用例生成研究

    一.基本信息 标题:时序扩展的UML状态图的测试用例生成研究 时间:2014 出版源:西南大学 领域分类:时序扩展:UML状态图:测试用例:需求规格说明:模型 二.研究背景 问题定义:时序扩展的UML ...

随机推荐

  1. 数据库路由中间件MyCat - 源代码篇(5)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 如之前所述,MyCat的连接分为前端和后端,下面是连接基本相关类图: 3.1 Closabl ...

  2. es6常用方法

    一.let 和 constlet 声明变量,只在所在的块区有效,不存在变量提升:var 存在变 量提升const 声明常量,只在所在块区有效 二.变量的解构赋值1.数组的解构赋值let [a, b, ...

  3. Unable to load EJB module

    http://stackoverflow.com/questions/12414526/unable-to-load-ejb-module

  4. Centos 6.x 安装 Redis

    本文以Centos6.8为例子,来进行演示. 1:下载最新版的Redis,比如我们安装在根目录下的redis文件下中 tar zxvf http://download.redis.io/release ...

  5. [题解](组合数学/gcd)luogu_P3166数三角形

    首先转化为ans=所有的组合方式 - 在同一水平/竖直线上 - 在同一斜线上 主要考虑在同一斜线上的情况 首先想到枚举斜率然后在坐标系内平移,以(0,0)为起点,每条线上的点数应该是gcd(x,y)比 ...

  6. HDU-1498-50years,50colors(最大匹配, 枚举)

    链接:https://vjudge.net/problem/HDU-1498#author=634579757 题意: 撞气球游戏,一个n*n的矩阵中,有不同颜色的气球,气球的颜色最多50种(从1到5 ...

  7. 湖南大学新生赛C,G,J题解

    C: 思路:做几组数据就基本能发现规律,奇数为-1,偶数为1 代码: #include<cstdio> #include<iostream> #include<cstri ...

  8. 送气球.jpg(模拟)

    链接:https://ac.nowcoder.com/acm/contest/318/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  9. Python列表与元组

    一.列表 1.列表的介绍: 列表lst = [    ] 是python的基本数据类型之一,其他编程语言也有类似的数据类型,比如JS中的数组,java中的数组等等,它是以[]括起来,每个元素用逗号隔开 ...

  10. 使用CSS3的translate和transition功能,控制一个两个div块的联动

    之前的工作有接触到一些css3的新特性.div块的移动和回到初始位置,可以利用在开发中的很多地方.这里记录下来,下次就不用辛苦的灾区百度了. <html> <head> < ...