在IM用例图中包含或扩展“显示聊天窗口”,“接收消息”和“发送消息”的关系?

时间:2015-01-07 09:52:46

标签: uml messenger

我有一个简单的Instant Messenger用例图,这是它的一部分 enter image description here

  1. 如果用户想要发送消息,会显示聊天窗口,所以它是“包含”还是“扩展”?
  2. 如果用户收件人留言,聊天将在用户阅读邮件之前显示,那么它是“包含”吗?

2 个答案:

答案 0 :(得分:0)

关于include和extend之间究竟有什么区别,有很多讨论和很多不同的意见。 关于这个主题的最好的文章之一就是这一篇:Excavating the extension use case

在拥有大量分析师的团队中,通常建议采取务实的方法并仅使用包含。这避免了很多混乱和讨论。我还在等待单独包含无法解决的案例。

答案 1 :(得分:0)

包含和扩展都可以用来表达相同的东西,但语义有些不同,因为你使用的EA有一个简单的选择方法:扩展点。

用例扩展点与源代码中的模板参数非常相似:它表示在更通用的实体中,您事先已决定使其以某种方式可扩展。包含关系没有等效的语义。

如果用例具有扩展点,EA允许您选择扩展用例扩展的点。如果您发现自己难以定义扩展点或在它们之间进行选择,那么使用包含关系可能更好。如果你根本没有定义任何扩展点,我认为没有理由首先使用extend。

因此,在您的示例中,“发送消息”和“接收消息”都应包含“显示聊天窗口”。不过,你已经错误地绘制了连接器。