【问题标题】:Why is it said "Collaboration" realizes "Use case" rather than vice versa?为什么说“协作”实现“用例”而不是相反?
【发布时间】:2016-11-06 06:03:41
【问题描述】:

我正在学习 UML。我对实现和协作有些困惑。

考虑图表(我希望图表是正确的)

“拨打电话”是一种协作。 “连接到目的地”是一个用例。

根据这本书和各种资源,我读到我们说“拨打电话”实现“连接到目的地”。

但据我了解,协作是我们用来对重复模式(如在设计模式中)进行分组的逻辑概念。用例(有自己的图表)是实现它们的人(间接地,因为用例最终会有一个相关的类图。这些类必须实现它们)。

那么我们不应该说“用例”实现“协作”吗?

我在这里做错了什么?


混淆的根源是java,我们有接口和实现它们的类。我们说一个类实现了接口。实现不就是实现吗?

增加这种混乱的是协作图,它似乎与协作无关。

【问题讨论】:

    标签: uml


    【解决方案1】:

    因为您首先拥有用例。它大致说明了系统的附加价值是什么。还有一个故事是如何实现这个价值的。现在您开始考虑考虑中的系统 (SUC) 如何实现(因此得名)这个用例。因此,您构建了协作,展示了类设计如何实现用例中的单一目标。您可以进行多次合作以展示 SUC 的不同方面或变体。

    关于您的图表:您有从 Connect to destination 到其他两个用例的依赖项。这是不正确的。用例代表了 SUC 为其参与者带来的个人附加值。所以他们基本上不能互相依赖。 SUC 的所有用例代表总附加值。人们经常尝试对用例进行功能分解,并添加大量包含/扩展依赖项。这不会导致有意义的用例,并且您会失去焦点。也就是说,您没有展示附加值,而是绕开了技术可能性。

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 2012-10-23
      相关资源
      最近更新 更多