1

我是 UML 的新手,我正在尝试记录我的软件开发过程。我用 PlantUML 制作了下图:

在此处输入图像描述

在内部状态中,我想表明,一旦发布了它们各自的版本(即次要/补丁),就应该返回到下一个最高级别的状态。

例如,在 之后PatchReleasePatch应该退出到EvalStory。同上MinorRelease --> EvalEpic。我应该如何展示这个?(提供 PlantUML 代码的答案不是必需的,但会很好)

[*] --> Major
state Major {
[*] --> CreateEpic
note right : An 'Epic' describes the set of desired\nfeatures the end-user would like to see
CreateEpic --> EvalEpic
EvalEpic --> Minor : unfulfilled
EvalEpic --> MajorRelease : fulfilled
MajorRelease --> [*]

state Minor {
[*] --> CreateStory
CreateStory --> EvalStory
EvalStory --> Patch : unfulfilled
EvalStory --> MinorRelease : fulfilled
MinorRelease --> DeployLive

state Patch {
[*] --> Testing
Testing --> DeployTest
DeployTest --> EvalTest
EvalTest --> Testing : bugs found
EvalTest --> PatchRelease: no bugs found

state Testing {
[*] --> WriteTests
WriteTests --> RunTests

RunTests --> WriteCode: test(s) failed
RunTests  -left-> WriteTests: tests passed
WriteCode --> RunTests
}
Patch --> EvalStory

}
Minor --> EvalEpic

}



}
4

2 回答 2

2

例如,在 PatchRelease 之后,Patch 应该退出到 EvalStory

这已经在发生,因为这是默认行为。

一旦PatchRelease完成,就无处可去,因此Patch完成了它的操作,然后您可以再次查看它,就好像Patch内部没有状态一样。

如果你想明确,你可以

  1. 在 EvalStory 之后添加一个最终状态,这样读者就知道你真的打算在那里结束,这不是一个意外遗漏
  2. 使用进入/退出状态;不幸的是,PlantUML 不支持这些

例如,您可以在此处阅读进入/退出状态http://www.uml-diagrams.org/state-machine-diagrams.html#exit-point-pseudostate

于 2017-08-17T07:48:33.823 回答
1

在复合状态中的最后一个状态之后添加最终伪状态。

例如,如果您添加代码

补丁发布 --> [*]

这意味着在 PatchRelease 完成后,整个 Patch 也已完成,因此它可以移动到下一个状态(即 EvalStory)

于 2017-08-17T07:52:46.613 回答