预订演示
前页 后页

用状态机建模更改

随着“事物”的变化或演变,我们的世界不断变化,从一种状态转移到另一种状态。水结冰,冰川变形和流动,冰融化,交通信号灯在绿色、琥珀色和红色之间循环,飞机起飞、爬升、巡航、下降和着陆。 SysML状态机用于描述结构如何以 Blocks 的形式在时间盒的生命周期中改变其状态。我们关心的不是块实例的结构,而是它的行为,这反过来会影响它的结构。我们不是对“事物”可能处于的每一个状态感兴趣,而是对重要状态感兴趣。因此,水分子的重要状态可能是固体液体气体,但我们通常对 67 摄氏度的液态水不感兴趣。如果我们正在查看object生命周期的电影卷轴,状态机将挑选出发生重要和相关变化的重要帧。

决定什么是相关的是建模工程师的特权和特权,同一个块可以有相同或不同工程师定义的任意数量的状态机。可以从乘客登机和下机的角度、维修计划的角度、升降机的角度或任何数量的其他角度对飞机的状态进行建模。

该状态机图描述了 SUV 机动车辆的运行状态。复合州,嵌套在其他州内使用哪个州。共有三个高级状态 - Off、Operate 和未命名的结束状态。运行状态有多个子状态,即怠速、加速/巡航和制动。连同转换一起,这描述了车辆在启动、加速、制动、停止以及最后点火关闭时的状态。

使用Enterprise Architect ,工程师可以创建状态机并定义从一个状态到另一个状态的转换,包括触发状态变化的事件和行动的动作。除了这些标准建模表示之外,该工具还具有一系列特征,可以帮助可视化和推理这种将结构和行为联系在一起的重要语言机制。我们将在本主题中看到的这些功能之一是可执行状态机功能,可从仿真区获得。

状态机可以在任何粒度级别定义,因为它们是块行为的表达。许多 SysML 新手对这一点感到困惑。因为块可以表示非常简单的东西——比如潜艇控制面板上的开关——或者像潜艇本身这样复杂的东西,所以状态机也可以同时表示开关和潜艇的状态。两个状态机模型可能具有相同的复杂性,即使被建模的事物本身在复杂性方面显然处于光谱的两端。

对于没有经验的建模者来说,状态机图可能看起来非常简单,但它们是描述和分析无法通过其他方式解决的复杂问题的高效工具。它采取了不同的思维方式和方法,问题的核心往往集中在块的层次、上下文和状态机的视角的选择上,而不是图的细节。通常,最好的结果是由许多工程师一起工作以启发式方式实现的。这可以使用Enterprise Architect的协作特征来完成,允许分散在地理上的工程师通过桌面客户端的邮件、讨论、聊天和正式评论,或在智能手机、平板电脑或笔记本电脑上的浏览器中在模型中进行通信.

状态机起源于离散的事件驱动行为,使用基于 David Harel 的 StateCharts 形式主义的面向对象变体的有限状态机。