【UML】状态图(statechart Diagram)
来源:互联网 发布:网络打印共享器价格 编辑:程序博客网 时间:2024/05/17 20:10
目录:
1、什么是状态图
2、状态图的组成
3、状态图--机房收费系统
4、小结
状态图(statechartdiagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应,以及由于各种事件的发生而引起的状态之间的转移。
状态图侧重从行为的结果来描述,只涉及一个特定的对象
2、状态图的组成
(1)状态
状态主要用于描述一个对象在生命周期内的一个时间段。状态包括状态名、内部转移、进入/退出操作、子状态、延迟的事件等
状态的特征:
(2)转换
转换是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态,如下图:
复杂转换:
判定用来表示一个时间依据不同的监护条件有不同的影响,在实际建模的过程中,如果遇到需要使用判定的情况,通常用监护条件来覆盖每种可能,使得一个事件的发生能保证触发一个转换
(4)同步
同步是为了说明并发工作流的分支与汇合。状态图和活动图中都可能用到同步
(5)事件
事件可以分成几种,主要包括:信号事件、调用事件、改变事件和时间事件等
①信号事件(signalevent)信号是作为两个对象之间的通信媒介的命名的实体,它以对象之间显式通信为目的
②调用事件(callevent)调用事件指的是一个对象对调用的接收,这个对象利用状态的转换而不是固定的处理过程实现操作
③改变事件(changeevent)指的是依赖与特定属性值的布尔表达式所表示的条件满足时,事件发生改变
④时间事件(timeevent)表示时间表达式被满足的事件,它代表事件的流逝
3、实用的小例子:手机状态图
状态:空闲状态(idle)、拨号状态(dialing)、通话状态(working)、响铃状态(ringing)
触发事件:呼叫某人(call someone)、完成通话(finish connection)、被呼叫(be called)
监护条件:接听电话(pick up)、用户未做出任何反映(haven't acts)、拒接来电(refused)、电话接通(connected)、呼叫不成功(can't connect)
4、状态图--机房收费系统
在机房收费系统中有明确状态转换的类有学生上下机状态的变化和系统工作状态的变化,主要通过上下机和系统状态这两方面画了状态图,下面是我画的状态图
学生上下机状态图
系统登录状态图
5、小结
状态图重点在于描述对象的状态及其状态之间的转移,状态图的基本元素主要有:状态、转移、判定、同步等,状态中的事件分为调用事件、变化事件、时间事件和信号事件。最后以实例对状态进行了分析。状态图与活动图相似,不同的是状态图侧重从行为的结果来描述,只涉及一个特定的对象。
以上仅为个人对状态图的基本认识,如有不同见解,欢迎指正
- UML状态图(Statechart Diagram)
- 【UML】状态图(statechart Diagram)
- 【UML】状态图Statechart diagram
- UML 状态图 statechart diagram
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- Statechart Diagram(状态图)——UML
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- UML建模之状态图(Statechart Diagram)
- 状态图(Statechart Diagram)
- 状态图(Statechart Diagram)
- 公钥和私钥
- 配置web404,500等异常页面
- Echart3.0报错的解决笔记
- 2016天猫抢红包脚本
- CUDA-Code1-HelloWorld
- 【UML】状态图(statechart Diagram)
- Linux学习35_ Linux ssh 无法登录:Permission denied, please try again 案例分析
- Redis消息队列示例
- [BC#89B]Fxx and game
- 用网站创建,删除用户
- Nsight调试CUDA程序忽略断点
- block:解决成员变量的循环引用的问题
- Hadoop解决内存受限问题
- Java集合之AbstractMap