为什么说“协作”意识到“用例”而不是反过来?

时间:2016-11-06 06:03:42

标签: uml

我正在学习UML。我对实现和协作感到困惑。

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

UML diagram for collaboration

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

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

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

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

我在这里弄错了什么?

混淆的根源是java,我们有接口和实现它们的类。我们说一个类实现接口。是否与实现相同?

这种混乱的另一个原因是协作图,它似乎与协作无关。

1 个答案:

答案 0 :(得分:1)

因为你第一次有用例。它粗略地说明了系统的附加价值。还有一个关于如何实现这一价值的故事。现在,您开始考虑所考虑的系统(SUC)如何实现(因此名称)此用例。因此,您需要构建协作,以展示类设计如何在用例中实现单个目标。您可以进行多次协作,以显示SUC的不同方面或变体。

关于您的图表:您具有从#image-wrapper{ text-align: center } .done-button{ float: right; padding: 20px; }到其他两个用例的依赖关系。那不对。用例代表SUC为其参与者带来的个人附加价值。所以他们基本上不能相互依赖。 SUC的所有用例代表总增加值。通常人们会尝试使用用例进行功能分解,并添加许多include / extend依赖项。这不会导致有意义的用例,并且您会失去焦点。也就是说,您不会显示附加值,而是偏离技术可能性。