序列图中嵌套 alt 是一个好的做法吗?

Ngọ*_*yễn 4 uml sequence-diagram

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

在此输入图像描述

这是好还是坏做法?

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

Chr*_*phe 5

黄金三镖客

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

  • 如果您使用 UML 进行某种可视化编程,其中综合图表应显示特定交互的所有细节,如果没有其他选择,嵌套alt可能是一个很好的实践。由于不同的生命线正在驱动独立的替代方案(FusionAuth外部的altOccupations内部的),因此嵌套适当地代表了行为逻辑。但是,如果同一条生命线可以推动决策,那么扁平化alt可能是一种更具可读性的方式,用更复杂的嵌套与更多但更简单的分支进行交换。

  • 如果您使用 UML 来通信并推理系统,则图表应该很容易理解:嵌套将是一种不好的做法,因为它增加了一定程度的复杂性。

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

嵌套替代品的替代品

UML 的秘密是拥有更多的图表,但更小的图表,每个图表都专注于一个方面。您可以在 Booch、Jacobson 和 Rumbaugh 所著《UML 用户指南》的几乎每一章的末尾找到此建议。

这里适用两种策略:

  • 每个场景的图表:主要的成功场景将是一个图表,不同的失败场景将是其他场景。超级容易阅读。
  • 关注点分离:不同的关注点将在不同的图表中得到解决,例如,您可以将其客户的使用和其业务的Occupations方式分开:将、、、 和、和分别放在两个图表中;您应该避免嵌套,内部的嵌套在第二个图中,并且不一定与相同的受众相关。OccupationsManagerClientOccupationsOccupationsFusionAuthDatabasealt

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