你必须把扩展放在序列图中吗?

Do you have to put extend in a sequence diagram?

我想知道您是否必须在序列图中添加扩展。假设我有一个注册用例图。我已经包括了一个重新输入密码的扩展。是否必须在序列图中,或者我不把它放在?

谢谢

SD 用于显示特定上下文中的特定消息序列。如果您对协作进行建模,您会告诉您这种协作发生在哪个上下文中。如果您的上下文是您重新输入密码的地方,那么您会显示那里发生的那些消息。如果你的上下文是 "sunny day" 那么你就跳过那部分。

您设计的系统没有单独的 SD。有多少SD就让你清楚系统是如何工作的。

已经有的优秀回答了。尽管如此,我还是想补充一些信息:

  • UML 图不必代表具有所有细节的完整系统。 决定你想展示什么。你的模型就是你解释设计的故事。
  • 通常,一些图表显示大图,而另一些图表则侧重于相关细节。因为把所有东西都放在一张图上会让人很难阅读。
  • UC diagram 应该关注对用户重要的事情:浏览目录、购买电影、结帐购物车……它应该显示用户感兴趣的事情。就我个人而言,我不'知道许多真正对输入或重新输入密码感兴趣的用户。因此,它不应该出现在 UC 图上(除非它是为学校设计的,而老师在要求你这样做时被误导了)。
  • UC 图不应表示用户界面。 Ivar Jacobson, the creator of UC, has repeated it many times and even documented it in a book:UC 不适合建模用户界面交互;其他技术更合适。
  • 如果将 UC 转换为 class 图或序列图,您可能最终会得到 ECB。所以 1 个 UC 意味着序列图中至少有 2 个参与者。 2 UC 表示至少有 4 名参与者。它已经是一个非常详细的图表,包含许多交互。是的你可以。但也许让第一个 SD 专注于为用户增加价值的真正 UC 会更具可读性。然后,第二个 SD 可能会专注于重新输入密码的详细交互,而不会显示主 SD 的所有细节。这样每个 SD 都会更容易理解。