序列图中嵌套的 alt 是一个好习惯吗?
Is nested alt in sequence diagram a good practice?
我创建了一个序列图,发现它有多个嵌套的 alt。
这是好事还是坏事?
如果这是一种不好的做法,我应该怎么做?
有点。你可以这样做,它会没事的。但是,一旦开始这样做,您就有陷入图形化编程的危险。曾几何时,人们梦想将图形化编程作为 未来的解决方案。很简单,事实并非如此。代码更加密集且更易于阅读。所以不要以这种方式开始编写程序。
现在开始使用该结构。无论何时您想展示一些复杂的协作,参与者的图形概览将是最有帮助的。但前提是您坚持交流中最重要的部分。与其嵌套片段,不如关注不同的 SD。您可以使用消息端点在详细图之间交叉。同样,这取决于您如何拆分。找到黄金比例需要一些经验。
好的、坏的和丑的
如果没有 objective 标准,很难就好的和坏的做法给出建议,这将取决于 图表的目的:
如果您将 UML 用于某种 可视化编程,其中综合图表应显示特定交互的所有细节,嵌套 alt
如果别无选择,这可能是一种 好的 做法。由于不同的生命线正在驱动独立的替代方案(FusionAuth
外部 alt
,Occupations
内部),嵌套适当地代表了行为逻辑。但是,如果相同的生命线会推动决策,则扁平化 alt
可能是一种更具可读性的方式,将更复杂的嵌套与更多但更简单的分支进行交易。
如果您使用 UML 交流和推理 系统,图表应该很容易理解:嵌套将是 不好练习,因为它增加了一定程度的复杂性。
幸运的是,我们避免了丑陋的:相同的嵌套alt
在几个分支中。
嵌套 alt 的替代方法
UML 的秘诀是多图少图,每个图只关注一个方面。您可以在 Booch、Jacobson 和 Rumbaugh 的书 UML 用户指南.
几乎每一章的结尾处找到这条建议。
此处适用两种策略:
- 每个场景的图表:主要的成功场景将是一张图表,而不同的失败场景将是其他图表。超级易读。
- Separation of concerns:不同的图表将解决不同的问题,例如,您可以将
Occupations
的客户使用和 Occupations
开展业务的方式分开:分开 [= 18=、Client
、Occupations
、Occupations
、FusionAuth
、Database
两个图;您应避免嵌套 alt
,第二张图中的内部嵌套不一定与同一受众相关。
备注:我不太喜欢可视化编程。但如果你是,第二种策略与它完全兼容,优点是可以防止 丑陋 在几个地方重复相同的嵌套片段。
我创建了一个序列图,发现它有多个嵌套的 alt。
这是好事还是坏事?
如果这是一种不好的做法,我应该怎么做?
有点。你可以这样做,它会没事的。但是,一旦开始这样做,您就有陷入图形化编程的危险。曾几何时,人们梦想将图形化编程作为 未来的解决方案。很简单,事实并非如此。代码更加密集且更易于阅读。所以不要以这种方式开始编写程序。
现在开始使用该结构。无论何时您想展示一些复杂的协作,参与者的图形概览将是最有帮助的。但前提是您坚持交流中最重要的部分。与其嵌套片段,不如关注不同的 SD。您可以使用消息端点在详细图之间交叉。同样,这取决于您如何拆分。找到黄金比例需要一些经验。
好的、坏的和丑的
如果没有 objective 标准,很难就好的和坏的做法给出建议,这将取决于 图表的目的:
如果您将 UML 用于某种 可视化编程,其中综合图表应显示特定交互的所有细节,嵌套
alt
如果别无选择,这可能是一种 好的 做法。由于不同的生命线正在驱动独立的替代方案(FusionAuth
外部alt
,Occupations
内部),嵌套适当地代表了行为逻辑。但是,如果相同的生命线会推动决策,则扁平化alt
可能是一种更具可读性的方式,将更复杂的嵌套与更多但更简单的分支进行交易。如果您使用 UML 交流和推理 系统,图表应该很容易理解:嵌套将是 不好练习,因为它增加了一定程度的复杂性。
幸运的是,我们避免了丑陋的:相同的嵌套alt
在几个分支中。
嵌套 alt 的替代方法
UML 的秘诀是多图少图,每个图只关注一个方面。您可以在 Booch、Jacobson 和 Rumbaugh 的书 UML 用户指南.
几乎每一章的结尾处找到这条建议。此处适用两种策略:
- 每个场景的图表:主要的成功场景将是一张图表,而不同的失败场景将是其他图表。超级易读。
- Separation of concerns:不同的图表将解决不同的问题,例如,您可以将
Occupations
的客户使用和Occupations
开展业务的方式分开:分开 [= 18=、Client
、Occupations
、Occupations
、FusionAuth
、Database
两个图;您应避免嵌套alt
,第二张图中的内部嵌套不一定与同一受众相关。
备注:我不太喜欢可视化编程。但如果你是,第二种策略与它完全兼容,优点是可以防止 丑陋 在几个地方重复相同的嵌套片段。