问题标签 [statechart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
uml - 具有多个转换的状态机,具有相同的触发器/事件但不同的保护
如果我的状态 S1 有 2 个转换都由事件“A”触发,但其中一个有作为警卫x !=0
,另一个没有。当警卫有效()时,预期的行为是x ==1
什么?
- 不可预料的
- 采取带守卫的过渡
- 无防护过渡
我不记得读过关于不能在同一个事件中进行 2 次转换的文章。
uml - 具有从初始状态传出的多个转换的 Uml 状态图
我是 Uml 新手,我想知道在状态图中是否可以有多个从初始状态传出的转换
concurrency - 并行区域中的 UML 状态图或状态机
我现在正在寻找一本主要关注并行区域中的UML状态图的书。很难找到一个。大多数书只包含很少的信息,我想知道是否有一本专注于这个主题的书。如果有的话,我真的很感激你们能告诉我!并行区域中的 UML 状态图或并发状态图都可以!
太感谢了!
uml - 您如何表示可以在状态图中修改程序状态的异步操作?
我有一个做两件事的动作,首先它会改变应用程序的状态,其次它会调用一个 web 服务。当 web 服务发送它的响应时,它将影响当前的应用程序状态。
可以说我有上述设置。Method1()
调用 Web 服务并导致状态从 更改A
为B
。Method1()
调用到调用后Finish()
,状态可以从B
to C
、B
toSuccess
等变化。
如果B
更改为Success
,则也可以从更改Success
为C
。
当状态可以在操作后的任何时候设置时,我将如何绑定Success
和状态?Fail
Method1()
line - StarUML 状态图转换线重叠
我正在尝试在 StarUML 中绘制状态图,发现过渡线重叠。我想要一些像这样分开的过渡线:
但总是让过渡线与一个双箭头重叠:
请告诉我哪里做错了或者我应该怎么做,谢谢
c++ - 在 UML 工具中从 StateCharts 生成代码的要求
我们需要从 UML 工具中绘制的 StateCharts 生成 c++ 和 Java 代码。
以前我们使用“Rational Rose”,但由于一些许可错误,我们不能再使用它了。在rose 中有一个可用的插件,它可以从与我们的框架集成的 stateChart 中生成一个文本文件。
所以现在我们需要评估和选择满足以下要求的标准 UML 工具。
@易于使用。易于绘制状态图。
@ 在 GNU Linux 环境中从 C++ 的 stateCharts 生成代码的能力。[所有队列,线程需求由生成的代码处理。让用户只能专注于业务逻辑]
@ OR 插件或工具的可用性来生成捕获交易的文本文件。
有两种工具作为强有力的竞争者出现——IBM 的 Rhapsody 和 SparxSystems EnterpriseArchitect。
让我知道您在这方面的建议和经验。提前致谢
uml - 当并非所有到连接伪状态的转换都被启用时,哪些状态是活动的
考虑以下状态图:
客户获得状态已确认,资源处于未分配状态。没有为从 Confirmed 到 Join 伪状态的转换定义保护。
在这种情况下,状态 Confirmed 是否保持活动状态,直到 NotAssigned 转换为 Assigned?(即我可以发送触发器“取消”,以便客户进入“未确认”状态,这是我想要获得的行为)。还是我没有使用正确的方法来建模?(然后状态图会如何)
编辑(在评论 Gangnus 之后)我所追求的是理解
- 连接伪状态如何起作用
- 连接到连接的状态何时失去其活动状态
所以我想要获得的是对加入状态的更深入的了解。我查看了 UML 规范(formal-1108-06.pdf 第 15 章),但没有找到上面提到的我的场景的清晰描述:如果我输入 Confirmed,并且 Confirmed 使用没有保护的转换连接到 Join 或触发器指定,而 NotAssigned 在资源区域中处于活动状态,何时确认其活动状态:
- 进入状态后立即
- 当 NotAssigned 转换为 Assigned 时(然后两个状态都变为非活动状态并转换为 ExecutionAllowed。
statechart - 事件和状态之间是否有明显的区别
这个问题有点哲学,就像“数据和代码是否相同”。
事件(信号)和状态之间有什么明显的区别吗?
例子:
例如,有一辆汽车经过马路。当汽车按喇叭时,一个man_A
过马路的人 ( ) 突然停下来。喇叭是信号,“man_A
突然停止”是状态man_A
。
另一个人(man_B
)也在同一时间,同一地点过马路。
让我们认为那man_B
是聋子,所以他听不到喇叭。但意识到“man_A
突然停止”对他来说是一个信号。他会突然停下来,仿佛听到喇叭声。
所以我会说“一个状态可能是另一个进程的信号。一个信号将一个进程置于另一个状态。这就是为什么它们完全相同的原因”
我错了,它们之间有明显的区别吗?
信号是状态变化。我们可以定义具有两种状态的任何信号。
uml - cd 刻录机的状态机
作为一个新手,我正在尝试使用 Visio 为 cd 编写器开发一个状态机。下面是设备操作/交易并附上,是我到目前为止所做的图表,不确定它是否准确表示。
加载按钮 - 使抽屉打开并在打开时关闭(加载空 cdr)
刻录按钮 - 开始在 cdr 上刻录文件,刻录过程中绿灯亮,
完成后熄灭。一旦 cdr 被烧毁,writer 就会停止。验证按钮 - 验证之前记录在 cdr 上的文档,过程中绿灯亮,完成后熄灭,然后设备停止
取消按钮 - 在录制或验证期间随时停止进程
取消按钮 - 如果 cd writer 为空或不忙于验证或录制,则无效当加电时 - CD Writer 将确保抽屉关闭
刻录按钮——当 cd writer 为空时以及在录制或验证过程中时无效。
只有在刻录机不忙于刻录时才能开始验证。