在 UML 状态图中作为状态的动作
action as state in UML state diagram
在 this 视频中可以看到 UML 状态图的一部分:
但是,"provide funds"状态是一个动作。这有什么意义?
状态有可能是动作(动词)吗?
"provide funds" 动作不应该是过渡吗?
像下面这样的东西是不是更有意义?
Provide Funds
在这种情况下也是一个与动作同名的状态。所以它们并不相同。他们只是有相同的名字。有时很难避免这种情况。从建模的角度来看,我会说这种状态简直是多余的。您可以在资金为 > 0
时从 Funds Available
进行自我转换,并在资金为零时退出。
P.S。哦,我看到你最后一张图片正是我所说的:-)
所以基本上 [funds avail >[=13=]]
转换会在提供资金操作完成后自动触发?
是也不是。 [funds avail >[=13=]]
是守卫。触发器是 request fund
。只有当守卫不会阻挡时才会执行此转换(因此如果有钱)。
所以这是某种"transient"状态?这么说吧。
此外,提供资金的状态也称为 Provide Funds
(不仅仅是动作),我说得对吗?因此,状态的更好名称是:机器的状态 while providing funds ?
没错。
这只是糟糕的命名。应该叫"Providing Funds"。这将清楚地表明在该州发生了什么以及它是一个州的事实。
在 this 视频中可以看到 UML 状态图的一部分:
但是,"provide funds"状态是一个动作。这有什么意义?
状态有可能是动作(动词)吗?
"provide funds" 动作不应该是过渡吗?
像下面这样的东西是不是更有意义?
Provide Funds
在这种情况下也是一个与动作同名的状态。所以它们并不相同。他们只是有相同的名字。有时很难避免这种情况。从建模的角度来看,我会说这种状态简直是多余的。您可以在资金为 > 0
时从 Funds Available
进行自我转换,并在资金为零时退出。
P.S。哦,我看到你最后一张图片正是我所说的:-)
所以基本上
[funds avail >[=13=]]
转换会在提供资金操作完成后自动触发?是也不是。
[funds avail >[=13=]]
是守卫。触发器是request fund
。只有当守卫不会阻挡时才会执行此转换(因此如果有钱)。所以这是某种"transient"状态?这么说吧。
此外,提供资金的状态也称为
Provide Funds
(不仅仅是动作),我说得对吗?因此,状态的更好名称是:机器的状态 while providing funds ?没错。
这只是糟糕的命名。应该叫"Providing Funds"。这将清楚地表明在该州发生了什么以及它是一个州的事实。