我正在学习UML。我对实现和协作感到困惑。
考虑图表(我希望图表是正确的)
“拨打电话”是一种合作。 “连接到目的地”是一个用例。
根据这本书和各种资源,我读到我们说“打个电话”意识到“连接到目的地”。
但据我所知,协作是我们用来对重复模式进行分组的逻辑概念(如设计模式)。用例(具有自己的图表)是实现它们的用户(间接地,因为用例最终将具有相关的类图。这些类必须实现它们)。
那么我们不应该说“用例”实现“协作”吗?
我在这里弄错了什么?
混淆的根源是java,我们有接口和实现它们的类。我们说一个类实现接口。是否与实现相同?
这种混乱的另一个原因是协作图,它似乎与协作无关。
答案 0 :(得分:1)
因为你第一次有用例。它粗略地说明了系统的附加价值。还有一个关于如何实现这一价值的故事。现在,您开始考虑所考虑的系统(SUC)如何实现(因此名称)此用例。因此,您需要构建协作,以展示类设计如何在用例中实现单个目标。您可以进行多次协作,以显示SUC的不同方面或变体。
关于您的图表:您具有从#image-wrapper{
text-align: center
}
.done-button{
float: right;
padding: 20px;
}
到其他两个用例的依赖关系。那不对。用例代表SUC为其参与者带来的个人附加价值。所以他们基本上不能相互依赖。 SUC的所有用例代表总增加值。通常人们会尝试使用用例进行功能分解,并添加许多include / extend依赖项。这不会导致有意义的用例,并且您会失去焦点。也就是说,您不会显示附加值,而是偏离技术可能性。