问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

状态机图教程 (UML State Diagram)

发布网友 发布时间:2023-04-27 20:06

我来回答

1个回答

热心网友 时间:2023-10-24 14:55

状态机图用于模拟各个类对象,用例和整个系统的动态行为。换句话说,当一个状态机创建它所附着的对象,该对象成为状态机的所有者时,例如,状态机附加的对象可以是类,用例甚至整个系统。

状态机图是一种行为,它指定对象在其生命周期中响应事件所经历的状态序列。状态机用于指定必须响应异步刺激或其当前行为取决于其过去的对象的行为。状态机用于模拟对象,用例甚至整个系统的行为,尤其是反应系统,它们必须响应来自系统外部的参与者的信号。

在UML中,状态机除了传统的起始图表符号之外还引入了两个新概念:

- 复合和嵌套状态

- 正交区域

在图形上,状态呈现为具有圆角的矩形。转换呈现为实线直线。

试试吧!

寻找在线状态机图工具?只需单击下面的“绘制”按钮即可在线创建状态机图。Visual Paradigm Online是免费*且直观的。在开始之前,您还可以通过此State Machine Diagram教程了解State Machine Diagram。

现在画画

状态是对象生命期间的条件,它可以满足执行某些活动的某些条件,或者等待接收某些事件。

一个状态有五个部分:

1. 状态名 - 状态名称

2. 进入 - 进入状态的行动

3. 做活动 - 在进入状态时执行的行动

4. 退出状态 - 在离开状态下执行的操作

5. Deferrable Trigger - 在该状态下未处理的事件列表,而是被推迟并排队等待另一个状态的对象处理

对象在有限的时间内保持状态。例如,家中的加热器可能处于以下四种状态中的任何一种:空闲,冷却,加热,启动和活动。

过渡

- 转换是两个状态之间的关系,指示处于第一状态的对象将执行某些动作并且当指定事件发生并且满足指定条件时进入第二状态。

- 过渡火灾意味着发生状态变化。在转换触发之前,对象处于源状态; 它发射后,据说处于目标状态。

- 过渡分为五个部分:

    - 来源状态 - 受过渡影响的状态

    - 事件触发器 - 一种可以触发源状态以满足保护条件的激励,

    - 保护条件 - 在接收事件触发器触发转换时计算的布尔表达式,

    - 操作 - 可执行的原子计算,可以直接作用于拥有状态机的对象,并间接作用于对象可见的其他对象,

    - 目标状态 - 转换完成后处于活动状态。

来源状态和目标状态

源状态 (Source State) :受转换影响的状态;如果对象处于源状态,则当对象接收到转换的触发事件并且满足保护条件(如果有)时,可以触发传出转换。

目标状态 (Target State) :过渡完成后处于活动状态。

事件是在某个时间点发生的离散信号。它也被称为刺激和对象的一种输入。以下是事件的特征:

- 可能会导致状态发生变化

- 可以触发操作 - 操作可以是内部操作或外部操作

- 可能有相关的条件

- 信号事件可用于在状态机之间进行通信

- 状态过渡标签 - 事件[警卫条件]

- Condition是一个布尔函数

    - 条件在状态机上是可选的

    - 条件适用于有限的时间段

- 发生事件时,条件必须为true才能发生状态转换。如果condition为false,则不会发生状态转换。

由于状态转换的瞬间执行动作。状态转换标签可以表示为以下格式

- 活动/行动

- 事件[条件] /行动

- 进入/退出行动

决策节点 用于表示测试条件,以确保控制流或对象流仅沿一条路径下降。

Fork节点 是伪状态,用于将进入的转换分成两个或多个终止于正交目标顶点的转换。从fork顶点传出的段不得有保护或触发器,并且它必须只有一个传入和至少两个传出转换。

Join节点 是伪状态,用于合并从不同正交区域中的源顶点发出的若干转换。进入连接顶点的过渡不能有保护或触发,它必须至少有两个传入过渡和一个传出过渡。

合并节点 (Merge Node) 用于将使用决策节点创建的不同决策路径重新组合在一起。

选择 (Choice)  是一种伪状态,当达到该状态时,导致动态评估其传出转换的触发器的保护。这实现了动态条件分支。它允许将转换分成多个传出路径,以便决定采用哪条路径。

示例:状态机图的选择节点

Terminate 是伪状态,表示状态机的生命线已经结束。终止伪状态由十字表示。

与最终状态不同,终止伪状态意味着由于上下文对象被终止而终止状态机。除了与导致终止状态的转换相关联的操作之外,状态机不执行任何状态的退出,也不执行任何退出操作。

简单状态是没有子结构的状态。复合状态可以进一步细分为子状态(在状态内或单独的图中)。具有子状态(嵌套状态)的 状态 称为 复合状态 。

子状态可以嵌套到任何级别。

嵌套状态机可以具有至多一个初始状态和一个最终状态。

通过显示某些状态仅在特定上下文(封闭状态)内可能,子状态用于简化复杂的平面状态机。

除了复合状态,还有另一个称为子机状态的符号,它在语义上等同于复合状态。

甲 复合状态 具有两个或更多个区域被称为 正交 。与复合状态不同,子机状态旨在对状态进行分组,因此您可以重用它们。正交状态分为由虚线分隔的两个或更多个区域:

每个区域的一个状态在任何时间点始终是活动的,即同时的基板

进入:转换到正交状态的边界激活所有区域的初始状态

退出:必须在所有区域达到最终状态才能触发完成事件

您可以使用并行和同步节点来指定不同的子状态。Concurrent Substates是独立的,可以在不同的时间完成。

历史状态 - 浅/深

历史状态允许状态机重新进入在离开复合状态之前处于活动状态的最后一个子状态。历史状态使用的示例如下图所示:

您可以在以下情况下使用状态机:

- 在业务建模期间,您可以创建状态机来为用例场景建模。

- 在分析和设计过程中,您可以对事件驱动的对象建模,这些对象会响应对象上下文之外的事件。

- 在分析和设计过程中,您可以使用多个状态机图来显示同一状态机及其行为的不同方面。

可以通过以下步骤开发用例模型。

1. 识别具有复杂行为的实体或标识参与其生命周期将被指定的行为的类

2. 模型状态 - 确定实体的初始状态和最终状态

3. 模型转换

4. 模型事件 - 识别影响实体的事件

5. 从初始状态开始,跟踪事件的影响并确定中间状态

6. 确定状态的任何进入和退出操作

7. 必要时使用子状态扩展状态

8. 如果实体是一个类,请检查该类的操作和关系是否支持该状态中的操作,如果不扩展该类

9. 根据需要进行细化和精心制作

你也可以:

- 为抽象目的绘制用于逻辑分类状态的子状态

下面的数字时钟状态机图示例显示了简单数字时钟的接口:

附加类的状态机图:

用于建模DigitalClock行为的状态图:

下面提供了一些更多的State Machine Diagram示例。

状态机图示例:烤面包机

状态机图示例:烤箱

状态机图示例:计算机测试

此示例通过使用两个区域表示两组并发子状态。

状态机器图例子:人生

此示例通过使用两个区域表示两组并发子状态。

可在在线状态机图软件中编辑的自由状态机图示例和模板:Visual Paradigm Online。使用模板作为起点来创建自己的状态机图。

烤箱

数码时钟

正交状态

复合状态

加热器

烤面包机

售票系统

电话
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老板用老公的身份和他注册了一家公司,实际上只是挂名但他只是一个打工... fraps录制的魔兽视频,然后我用绘声绘影X4做的后期,可是渲染成MP4格式... 极少数人知道的氨基酸态氮 工装夹克什么牌子的好? 有哪些质量好的工装夹克推荐? 什么品牌的工装夹克质量好? 有什么质量好的工装夹克值得推荐? 哪些牌子的工装夹克值得入手? 哪些品牌的工装夹克质量好? 哪些品牌的工装夹克质量比较好? (事情)多而杂乱 。标准词语 UML状态图(state model) <UML基础、案例与应用>-状态图 辨换个边旁成新字再组词 滨州中考录取分数线 平度一九录取分数线2021 酒吧里好多蚊子,石家庄有了解灭蚊蝇公司这方面的吗给推荐一下? 小细胞肺癌晚期做化疗对身体有什么危害吗 如何写关于鸡蛋仔冰淇淋作文70字? 孩子缺锌吃什么药效果最好 怎样养殖青蛙? 儿童缺锌吃什么药好 上弦月是什么样的? 《庶命难违》txt全集下载 《庶命》txt全集下载 梦见欧芹是什么意思 vivoX20这个微信锁的图标这么解开 vivoX20卡顿 接消息延迟 如何解决 艽怎么读 市区哪里有卖防水沥青涂料的 合成树脂与尿素的区别 契丹人究竟分布在哪些地方,契丹族还存在吗? 阿里巴巴国际站p4p出价思路是什么样的呢? 手表里进了雾气怎么办 8k纸画防疫手抄报 8k手抄报 防艾滋病海报怎么制作 80克柠檬好吃吗 柠檬好吃吗?我觉得好吃,你呢? 柠檬生吃好吃吗? 用伦字取男孩名字,带伦字的男孩名字库 airpodspro2突然变音 over和open变音是正确的吗? 架子鼓嗵嗵鼓的调音问题 钻豹摩托车变音了,不是以前的声音了 格物致知诚意正心修身齐家治国平天下是什么意思? 丙烷压力表计量类别 怎么设置联通的短信视频彩铃? 城市立交桥是属于建筑业还是交通运输业 智能宽带口径,指 拯救者手机录音剪辑怎么弄