7

When drawing state diagrams, how do you know which states get put in boxes and which states are for the transition arrows? I noticed that transitions are states too.

I'm looking at figure 1 on this page:

enter image description here

4

4 回答 4

6

转换不是状态。转换是将对象从一种状态移动到下一种状态的事件。状态由对象中的变量值和对象的行为定义。以具有“新等待批准”值的 Student 对象为例。该学生不得注册或上课。但是,如果值更改为“已批准”,则可能允许同一学生注册和上​​课。有什么不同?学生对象实际上有两种状态。

是什么导致 Student 对象从一种状态移动到另一种状态?事件“批准到达”可能。所以批准到达在两个状态之间的箭头上。

于 2009-12-15T17:55:59.467 回答
2

图中的“过渡箭头”不是状态,它们是“TRANSITION/ACTION/HAPPENING”。例如,在提到的图中,“Scheduled”是状态,open 是动作,之后它进入“Open for registration”状态。这种“打开”转换可以更详细地替换为“正在打开” 不幸的是,像计划/打开这样的转换操作也很容易与状态混淆,但这不是意图。

于 2009-12-15T17:57:05.313 回答
0

我同意一点,在规范中,在某些示例中,转换看起来像状态。 状态图

对我来说,“selectAmount”并不完全是一个州名......

于 2017-03-03T17:02:24.557 回答
0

首先,您需要识别系统中的对象。在这些对象中,您需要选择具有随时间变化的概率的对象。然后您需要为所有这些选定的对象分别绘制状态图。框表示该对象的状态,箭头表示导致状态改变的活动特定对象的。

于 2016-07-14T14:32:12.980 回答