我正在学习UML。我对实现和协作有一些困惑。
考虑一下图表(我希望图表是正确的)

“打个电话”是一种协作。“连接到目的地”是一个用例。
根据这本书和各种资料,我读到我们说“打个电话”实现了“连接到目的地”。
但据我所知,协作是一个逻辑概念,我们使用它来分组重复模式(如在设计模式中)。用例(它们有自己的图)是实现它们的人(间接地,因为用例最终会有一个相关的类图)。这些类必须实现它们)。
那么,我们不应该说“用例”实现了“协作”吗?
我在这里出什么错了?
混淆的根源是java,在这里我们有接口和实现它们的类。我们说一个类实现了接口。实现不等于实现吗?
增加这种混乱的是协作图,它似乎与协作无关。
发布于 2016-11-06 09:34:58
因为你首先有用例。它粗略地说明了系统的附加价值。还有一个故事,这个价值是如何实现的。现在,您开始思考所考虑的系统(SUC)是如何实现这个用例的(因此也就是它的名字)。因此,在构建协作时,您将展示类设计是如何实现用例中的单个目标的。您可以有多个协作来显示SUC的不同方面或变体。
关于您的图表:您有从Connect to destination到另外两个用例的依赖关系。这不对。用例表示SUC为其参与者带来的单独增值。所以他们基本上不能互相依赖。SUC的所有用例都表示总附加价值。通常,人们尝试用用例进行功能分解,并添加大量的包含/扩展依赖项。这不会导致有意义的用例,而且您会失去焦点。也就是说,你没有表现出附加的价值,而是在技术可能性上迷失了方向。
https://stackoverflow.com/questions/40446502
复制相似问题