当前位置:网站首页>UML 状态图
UML 状态图
2022-07-07 12:12:00 【sinat_36789271】
一、状态图
类定义的是一组对象的抽象,而每个对象时类的一个实例,但对于一个对象而言,它在其整个生命周期中有一系列的状态。状态描绘了对象的动态生命周期。
“人” 就是一个类,而“你”、“我”、“张三” 等都是“人”这个类的一个实例,“站着”、“躺着”等都是对象的一个状态。
在对象的整个生命周期中,它的状态是会发生变化的,而状态机就是用来表示一个对象在它的生命周期中响应的时间所发生的状态变化以及对事件的响应。
二、组成元素、状态机
状态机是一个对象的局部视图、一个将对象与其外部世界分离开来并独立考查其行为的视图。状态机是精确描述行为的一种好办法。
如描述烧水器在工作时的详细行为细节:
状态:是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。
开始状态
结束状态
命名状态
在一张状态机图中,最为核心的元素无外乎有两个:一个是用圆角矩形表示的状态;另一个是在状态之间、包含一些文字描述的有向箭头线,这些箭头成为转换。
一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生时且满足条件时进入第二个状态。
三、如何绘制状态图
绘制状态图的理想步骤:寻找主要的状态、确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节
1、寻扎主要状态
在绘制状态机图时,最重要的一个活动就是寻找出主要的状态。对于航班机票预订系统而言,显然包括的状态主要有:
a、在确定飞行计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态
b、对于订座而言,显然有“部分预订”和“预定完”两种状态
c、当航班快要起飞时,显然要“预订关闭”
总结:有四种状态:无预定、部分预订、预定完和预订关闭
2、确定状态之间的关系
确定主状态之后分析状态之间的转换,画出相应的状态机图
边栏推荐
- Laravel5 call to undefined function OpenSSL cipher IV length() error php7 failed to open OpenSSL extension
- Supply chain supply and demand estimation - [time series]
- Excuse me, why is it that there are no consumption messages in redis and they are all piled up in redis? Cerely is used.
- 使用day.js让时间 (显示为几分钟前 几小时前 几天前 几个月前 )
- The difference between memory overflow and memory leak
- 交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
- Laravel form builder uses
- requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
- Seven propagation behaviors of transactions
- js 获取当前时间 年月日,uniapp定位 小程序打开地图选择地点
猜你喜欢
js 获取当前时间 年月日,uniapp定位 小程序打开地图选择地点
Deep understanding of array related problems in C language
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
Redis只能做缓存?太out了!
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
2022-7-7 Leetcode 844.比较含退格的字符串
2022-7-7 Leetcode 34.在排序数组中查找元素的第一个和最后一个位置
Redis can only cache? Too out!
LeetCode简单题分享(20)
How to check the ram and ROM usage of MCU through Keil
随机推荐
请问指南针股票软件可靠吗?交易股票安全吗?
通过 iValueConverter 给datagrid 的背景颜色 动态赋值
Regular expression integer positive integer some basic expressions
Evolution of customer service hotline of dewu
[1] Basic knowledge of ros2 - summary version of operation commands
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
[daily training] 648 Word replacement
Excellent open source system recommendation of ThinkPHP framework
mysql ”Invalid use of null value“ 解决方法
ARM Cortex-A9,MCIMX6U7CVM08AD 处理器应用
[daily training -- Tencent select 50] 231 Power of 2
Supply chain supply and demand estimation - [time series]
Leecode3. Longest substring without repeated characters
最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航
Excuse me, when using Flink SQL sink data to Kafka, the execution is successful, but there is no number in Kafka
"Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?
请问,在使用flink sql sink数据到kafka的时候出现执行成功,但是kafka里面没有数
XML文件的解析操作
Excuse me, why is it that there are no consumption messages in redis and they are all piled up in redis? Cerely is used.
Seven propagation behaviors of transactions