前页 | 后页 |
使用StateMachines建模变更
随着“事物”的变化或演变,我们的世界不断变化,从一种状态过渡到另一种状态。水冻结,冰川变形和流动,冰融化,交通信号灯在绿色,琥珀色和红色之间循环,飞机起飞,爬升,巡航,下降和降落。 SysML StateMachine用于以块形式描述结构如何在有时间限制的生命周期中改变其状态。我们关注的不是块实例的结构,而是其行为,而行为又会影响其结构。我们对“事物”可能处于的每个状态都不感兴趣,而对重要状态感兴趣。因此,水分子的重要状态可能是固体 , 液体或气体,但我们通常对67度的液态水不感兴趣。如果我们正在看一个物体生命周期的电影胶片,StateMachine会挑选出发生重要和相关变化的重要帧。
确定相关的是建模工程师的特权和特权,并且同一块可以具有由相同或不同的工程师定义的任意数量的StateMachines。可以从乘客登机和下机的角度,从其维护计划的角度,从升力的角度或许多其他角度来模拟飞机的状态。
该StateMachine图描述了SUV机动车的运行状态。该图使用复合状态,这些状态将状态嵌套在其他状态中。有三个高级状态-“关闭”,“操作”和未命名的“结束状态”。操作状态具有许多子状态,即空闲,加速/巡航和制动。与过渡一起,它描述了车辆的启动,加速,断裂,停止以及最终在点火开关关闭时的状态。
工程师可以使用Enterprise Architect创建StateMachines,并定义从一种状态到另一种状态的转换,包括触发状态改变的事件和触发的动作。除了这些标准的建模表示外,该工具还具有一系列强大的功能,可以帮助可视化和推理这种将结构和行为联系在一起的重要语言机制。这些功能之一(我们将在本主题中介绍)是“可执行状态机”,可从Simulate功能区获得。
StateMachines可以在任何粒度级别上定义,因为它们是Block行为的表达。 SysML的许多新手对此感到困惑。因为块可以代表非常简单的事物(例如,潜艇控制面板上的开关)或诸如潜艇本身的复杂事物,所以StateMachine也可以代表开关和潜艇的状态。两个StateMachine模型可能具有相同的复杂性,即使涉及复杂性的情况下,被建模的事物本身显然处于频谱的两端。
StateMachine图对于经验不足的建模者而言可能看起来非常简单,但是它们是描述和分析无法通过其他方式解决的复杂问题的强大工具。它采用不同的思维方式和方法,并且问题的核心通常集中在选择Block级别,其上下文和StateMachine的角度上,而不是在图表的细节上。通常,最好的结果是由许多工程师一起努力地获得的。这可以使用Enterprise Architect强大的协作功能来完成,允许分散在各地的工程师通过桌面客户端或在智能手机,平板电脑或笔记本电脑上的浏览器中通过邮件,讨论,聊天和正式评论在模型内进行通信。 。
StateMachine起源于离散事件驱动的行为,它使用基于David Harel StateCharts形式主义的面向对象变体的有限StateMachine。