【问题标题】:Trying to understand the conversion process from Class diagram to Object diagram试图理解从类图到对象图的转换过程
【发布时间】:2020-01-12 15:08:48
【问题描述】:

我试图了解如何从类图转到对象图。我已经阅读了几个教程,在线观看了一些视频,但我无法理解它。我发现的很多例子都是类和对象图属性和场景不同的地方。我发现相同的那些太基本了。

我了解对象图显示了类和属性的实例,但我不明白如何使用附图正确地从类转换为对象。

【问题讨论】:

  • Wealthy Scout 将继承 Scout。 Scout 与露营旅行和徽章奖相关联。露营之旅与露营地相关联,获得的徽章与徽章规范相关联。

标签: java class object uml diagram


【解决方案1】:

正如您所描述的,对象是实例。因此,您需要考虑如何在运行时实例化您的类模型。您在运行时拥有的实例可能会根据您的软件遇到的实际场景而有所不同,这就是为什么不同的对象图在结构上会有所不同,即使它们都绑定到相同的类。

  • 如果您有一个类的多个实例,则每个实例将使用 UML 中的单独对象表示。
  • 任何在类术语中抽象的东西都不能(根据定义)实例化,因此您将只有具体子类型的实例(例如,如果 Scout 是抽象的)。
  • 即使一个类有多个属性,也只有其中一些属性可以在运行时接收值,因此您只能为您的对象定义一个 运行时状态,它是一个班级。

这是一个基于您的类模型的示例,但根据场景可能会有很多这样的化身:

【讨论】:

  • 您写道:“只有其中一些属性可能在运行时接收值”。我认为属性默认具有多重性1。如果您需要没有特定属性值的实例,则该属性应具有多重性[0..1]
【解决方案2】:

因此,在您的类图中,您有需要作为类的一部分的名称。在您的对象图中,您将扩展您的类图,但列出您需要的字段的类型/对象。

在您提供的示例中,让我们看一下营地,您有两个字段,名称和位置。现在在您的对象图中,您将如何表示这些字段,您将使用什么数据类型的对象。它们很可能会存储为每个字符串,或者您可能有一个浮点列表来表示经度和纬度。从本质上讲,这就是您计划如何实施该类,以便看到图表的人可以复制和理解您的设计实践。

这是一个简单的解释,我们可以进一步解释如何转换所有内容,但它遵循相同的一般格式。

【讨论】:

  • 我不这么认为。对象图不是用来详细说明字段的数据类型,而是显示可能存在的实例的示例情况。如果您想详细说明数据类型,那么您应该在类图中进行。
猜你喜欢
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2014-12-23
  • 1970-01-01
  • 2019-06-24
  • 2010-10-10
相关资源
最近更新 更多