首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >状态图中的转换顺序是什么?如何使用历史伪态?

状态图中的转换顺序是什么?如何使用历史伪态?
EN

Stack Overflow用户
提问于 2016-01-12 01:45:46
回答 2查看 1.8K关注 0票数 4

我读了很多关于它的文章,但仍然不确定(在复合状态中)执行的顺序是什么,以及历史究竟是如何深浅的?有人能帮我吗?我有一个例子,我不知道如何解决,这里是:

我很感激你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-12 10:23:45

问题1:

..。不确定..。深刻而浅薄的历史究竟是如何运作的?

答1:

请注意:

浅层历史由一个包含"H“的小圆表示。它适用于直接包围它的状态区域。 浅层历史伪状态表示其包含状态的最近的活动子状态(但不表示该子状态的子状态)。..。 来源:http://www.uml-diagrams.org/state-machine-diagrams.html#shallow-history-pseudostate

问题2:

..。我不确定我是否应该总是从起始点开始,这是在所有组合之外的?

回答2:

是。从根状态的初始伪状态开始(本例中为A)。

示例:

对于给定的状态图和事件链,您将得到以下结果(用Rhapsody模拟):

默认转换为后的

  • X(过渡到A)的值:x = 3
  • X(条目A)的值:x = x * 2 = 6
  • 新状态:a

默认转换到A::B后的

  • 新状态: A::B
  • x:x = 6

后e1

  • X值(条目A::C):x = x + 1 = 7
  • 新状态: A::C

默认转换为A::C::g后的

  • X值(条目A::C::G):x = x + 1 = 8
  • 新状态: A::C::G

后e3

  • X值(出口A::C::G):x = x - 2 = 6
  • X的值(条目A::C::H):x = x / 2 = 3
  • 新状态: A::C::H

后e4

  • X值(条目A::C::G):x = x + 1 = 4
  • 新状态: A::C::G

后e6

  • X值(出口A::C::G):x = x - 2 = 2
  • X值(出口A::C):x = x - 1 = 1
  • X(出口A)值:x = x - 1 = 0
  • X(过渡到Y)的值:x = (x * 4) + 2 = 2
  • 新状态:y

后e7

  • X的值(条目A::C,见上文注):x = x + 1 = 3
  • X值(条目A::C::G):x = x + 1 = 4
  • 新状态: A::C::G

e4被丢弃

票数 5
EN

Stack Overflow用户

发布于 2016-01-18 08:29:03

e7后

X(出口Y)值:x = x / 2 = 1

X(条目A)的值:x = x * 2 = 2

X的值(条目A::C见上文注):x = x + 1 = 3

X值(条目A::C::G):x = x + 1 = 4

新状态: A::C::G

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34734278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档