UML之状态图
状态图,英文名曰-Statechart Diagram,她是系统的动态方面建模的五种图之一,一个状态图显示了一个状态机,在为对象的生命期建模中,她发挥着重要的作用,展示了单个对象内从状态到状态的控制流。
从实质上来讲,她是一种由于状态、变迁、时间和活动组成的状态机。一般而言,状态图是对类所描述设施的补充说明,描述了类的所有对象可能具有的状态以及引起状态变化的事件。举个简单的例子,灯有两种状态,开着的状态,关闭着的状态,现在我们一起来学习一下状态图的有关知识,首先,看一下知识概览:
在了解状态图之前,我们首先要弄明白一个问题,那就是状态机,她是什么呢?跟我们的状态图有什么不一样的地方呢?让我们拭目以待:
有了 对状态机的初步了解,能够更好地帮帮助我们理解状态图,接下来,一起来学习一下状态图的相关知识:
状态图的状态到底是什么意思呢,是否像是我们之前理解的那样,灯有两种状态,开着的状态,关闭着的状态,看下图:
接下来,转换的概念:
前面介绍过,状态图用来对一个对象按事件排序的行为建模,以及状态图的一些基本知识,那么建模步骤又是怎样的,以及我们又该如何学以致用,绘制状态图呢?如下图:
学习完状态图的理论知识,我们来应用一下,大家都有乘坐电梯的经历,那么小小的电梯之中,蕴藏着怎样的状态图呢,让我们拭目以待:
生活处处皆学问,编程来自生活,却高于生活,需要的就是我们会发现的眼睛,以及善于思考的大脑,接下来,以机房收费系统为例,从登录系统开始,到退出系统,这个过程之间的状态图又是如何体现的:
机房收费系统中,涉及到的状态比较多,有卡的状态,表的状态,等等,需要我们慢慢去挖掘。初次接触状态图,自己浅浅的理解,比如说有一个投资者,为一座大厦的建造提供资金。投资者未必对建造过程的细节感兴趣。什么材料的选择、贸易计划以及一些细节的问题,投资者都没有必要一一去过问,这些都是建造者的工作。
投资者感兴趣的是对投资的良好回报,投资者真正感兴趣的是大厦的最终状态,对于投资者来说,跟踪大厦状态的变化比跟踪活动流更为重要。UML之旅,未完,待续......
UML之状态图的更多相关文章
- UML-状态图,顺序图,活动图
一.编写用例文档 1.用例的内容: 用例编号 用例名 执行者 前置条件 后置条件 基本路径 扩展路径 字段列表 业务规则 ...
- 【UML】状态图Statechart diagram(转)
前言 UML由动态图和静态图组成,状态图就是属于动态图中较为重要的一张图. 定义 用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移. 目的 ...
- UML学习-状态图
1.状态图概述 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作( ...
- 【UML】状态图介绍
1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...
- (八)UML之状态图
一.概念 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Act ...
- UML的9种图例解析
摘自: http://blog.csdn.net/fatherican/article/details/44966891 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类 ...
- 【转】UML的9种图例解析
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...
- UML的9种图例解析(转)
原帖已经不知道是哪一个,特在此感谢原作者.如有侵权,请私信联系.看到后即可删除. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对 ...
- DDD:建模原语 之 四象图(转载的神文)
“模型.状态和行为特征.场景”和“四象图”,建模观的命名与立象. 建模原语:四象图 作者:achieveidea@gmail.com 命名:模型.结构特征.行为特征.场景(及其规约). 释义:模型,描 ...
随机推荐
- 2016年年终CSDN博客总结
2015年12月1日,结束了4个月的尚观嵌入式培训生涯,经过了几轮重重面试,最终来到了伟易达集团.经过了长达3个月的试用期,正式成为了伟易达集团的助理工程师. 回顾一年来的学习,工作,生活.各种酸甜苦 ...
- ejabberd编译更新脚本
ejabberd编译更新脚本 (金庆的专栏 2016.8) 用rebar编译ejabberd源码,然后复制编译所得beam文件到ejabberd安装目录, 调用ejabberdctl热更新. call ...
- GIF动态图制作
GIF动态图制作 博客写了也有一阵了,一直好奇大牛的博客里demo的动态图是怎么做的,今天抽空研究了一下,找了一个软件,以后再发现有好的工具再继续推荐 GIF制作工具--LICEcap 效果要比下面的 ...
- Scala actor的使用
Actor 为什么需要Actor? Actor的本质即万物皆Actor, Actor之间只有发送消息这一种通信方式.例如,无论是管理员让工作者干活,还是工作者把成果交还给管理员,它们之间也要通过发送消 ...
- 侧滑面板(对viewGroup的自定义)
额,好吧,最近一直在做侧滑的事情,到目前为止一共是学了三种方法了,一个是直接加第三方开源框架SlidingMenu,第二给是用DrawerLayout,今天这个是用谷歌官方提供的在新的support- ...
- Docker教程:Docker镜像导出及迁移
http://blog.csdn.net/pipisorry/article/details/51330126 Docker目录分析 安装docker时,默认的安装位置是/var/lib/docker ...
- HashMap方法介绍
1. Map的遍历方式 (1) for each map.entrySet() Map<String, String> map = new HashMap<String, Strin ...
- 数据库再设计(Database Redesign)
数据库设计有三个来源:(1)可以从现有数据开始设计数据库,例如从excel表格等,这种模式下需要考虑的问题是数据的normalization,最终通常将数据转化为BCNF范式:(2)设计新的数据库,这 ...
- java 判断是否是周末
package untitled7; import java.util.Date; import java.text.SimpleDateFormat; import java.util.Calend ...
- MOAC中“MO:安全性配置文件“对于开发者
1. 获取配置文件的值:应用开发员->配置文件->输入用户配置文件名,找到上面的名称,即可填入fnd_profile.VALUE()中. 2. MO:安全性配置文件有值的话,就代表启用了M ...