uml - 序列图中嵌套的 alt 是一个好习惯吗?

标签 uml sequence-diagram

我创建了一个序列图,发现它有多个嵌套的 alt。

enter image description here

这是好事还是坏事?

如果这是一种不好的做法,我应该怎么做?

最佳答案

好的、坏的和丑的

如果没有客观的标准,很难就好的和坏的做法给出建议,这些将取决于图表的目的:

  • 如果您将 UML 用于某种可视化编程,其中综合图表应显示特定交互的所有细节,嵌套的 alt 可能是 如果别无选择,请实践。由于不同的生命线正在驱动独立的替代方案(FusionAuth 是外部的 altOccupations 是内部的),嵌套适本地代表了行为逻辑。但是,如果相同的生命线会插入决策,则扁平化的 alt 可能是一种更具可读性的方式,将更复杂的嵌套与更多但更简单的分支进行交易。

  • 如果您使用 UML 来交流和推理一个系统,图表应该很容易理解:嵌套是不好的 实践,因为它增加了一定程度的复杂性。

幸运的是,我们避免了丑陋:在多个分支中嵌套相同的 alt

嵌套 alt 的替代方法

UML 的秘诀在于拥有更多图表但更小的图表,每个图表都专注于一个方面。您可以在 Booch、Jacobson 和 Rumbaugh 的书 The UML User guide 的几乎每一章的末尾找到这条建议。

这里有两种策略:

  • 每个场景的图表:主要的成功场景将是一个图表,而不同的失败场景将是其他场景。 super 容易阅读。
  • Separation of concerns :不同的问题将在不同的图表中得到解决,例如,您可以将其客户端对 Occupations 的使用和 Occupations 开展业务的方式分开:单独的 ManagerClientOccupationsOccupationsFusionAuthDatabase 两个图表;您应避免嵌套的 alt,内部的位于第二个图表中并且不一定与相同的受众相关。

备注:我不太喜欢可视化编程。但如果你是,第二种策略与它完全兼容,其优点是可以防止在多个地方丑陋重复相同的嵌套片段。

关于uml - 序列图中嵌套的 alt 是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70527413/

相关文章:

C#类图动态更新

java - 使用序列图编码

uml - UML中的序列图绘制try catch block

associations - 我的讲师对协会类(class)的看法是正确的还是错误的?

uml - UI 选择是功能性需求还是非功能性需求?

eclipse - 如何为Eclipse安装UML插件?

uml - 序列图 (SD) 和系统序列图 (SSD) 之间的区别?

constructor - 如何在 UML 序列图中绘制来自构造函数的调用?

c - 您如何在序列图中将函数调用表示为 if 条件语句?

uml - UML规范中的时间观察