Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 为什么会这样说;“合作”;实现;“用例”;而不是相反?_Uml - Fatal编程技术网

Uml 为什么会这样说;“合作”;实现;“用例”;而不是相反?

Uml 为什么会这样说;“合作”;实现;“用例”;而不是相反?,uml,Uml,我正在学习UML。我对实现和协作有些困惑 考虑一下图表(我希望图表是正确的) “打电话”是一种协作。“连接到目的地”是一个用例 根据这本书和各种资源,我读到我们说的“打电话”实现了“连接到目的地” 但据我所知,协作是一个逻辑概念,我们用来对重复模式(如设计模式)进行分组。用例(有自己的图表)是实现它们的人(间接地,因为用例最终会有一个相关的类图。这些类必须实现它们) 那么,我们不应该说“用例”实现了“协作”吗 我这里出了什么错 混淆的根源是java,在java中我们有接口和实现它们的类。我们

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

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

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

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

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

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

我这里出了什么错


混淆的根源是java,在java中我们有接口和实现它们的类。我们说类实现接口。实现和实现不一样吗


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

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

关于您的图表:您从
connecttodestination
到另外两个用例有依赖关系。那是不对的。用例代表SUC为其参与者带来的个人附加值。所以他们基本上不能互相依赖。SUC的所有用例都表示总的附加值。通常,人们尝试使用用例进行功能分解,并添加许多包含/扩展依赖项。这不会导致有意义的用例,并且您会失去重点。也就是说,您不会显示附加值,而是在技术可能性方面有所偏差