📜  UML-对象图

📅  最后修改于: 2020-12-13 15:06:18             🧑  作者: Mango


对象图是从类图派生的,因此对象图取决于类图。

对象图表示类图的实例。类图和对象图的基本概念相似。对象图还表示系统的静态视图,但是此静态视图是特定时刻系统的快照。

对象图用于将一组对象及其关系呈现为实例。

对象图的目的

应当清楚地理解图表的目的,以实际实施它。对象图的用途类似于类图。

不同之处在于,类图表示由类及其关系组成的抽象模型。但是,对象图表示特定时刻的实例,这实际上是具体的。

这意味着对象图更接近实际的系统行为。目的是在特定时刻捕获系统的静态视图。

对象图的目的可以概括为-

  • 正向和反向工程。

  • 系统的对象关系

  • 交互的静态视图。

  • 从实践的角度了解对象的行为及其关系

如何绘制对象图?

我们已经讨论过,对象图是类图的实例。这意味着对象图由类图中使用的事物的实例组成。

因此,两个图都是由相同的基本元素组成的,但形式不同。在类图中,元素以抽象形式表示蓝图,在对象图中,元素以具体形式表示现实世界对象。

为了捕获特定的系统,限制了类图的数量。但是,如果考虑对象图,则可以有无限数量的实例,这些实例本质上是唯一的。仅考虑那些对系统有影响的实例。

从上面的讨论中可以清楚地看出,单个对象图无法捕获所有必要的实例,或者无法指定系统的所有对象。因此,解决方案是-

  • 首先,分析系统并确定哪些实例具有重要的数据和关联。

  • 其次,仅考虑将涵盖功能的那些实例。

  • 第三,进行优化,因为实例数不受限制。

在绘制对象图之前,应牢记并理解以下几点:

  • 对象图由对象组成。

  • 对象图中的链接用于连接对象。

  • 对象和链接是用于构造对象图的两个元素。

此后,在开始构建图之前,需要确定以下几件事:

  • 对象图应具有一个有意义的名称以指示其目的。

  • 要确定最重要的元素。

  • 对象之间的关联应明确。

  • 需要捕获不同元素的值以包含在对象图中。

  • 在需要更加清晰的地方添加适当的注释。

下图是对象图的示例。它代表了我们在类图一章中讨论过的订单管理系统。下图是特定购买时间的系统实例。它具有以下对象。

  • 顾客

  • 订购

  • 特殊订单

  • 正常订单

现在,客户对象(C)与三个订单对象(O1,O2和O3)相关联。这些订单对象与特殊订单和常规订单对象(S1,S2和N1)相关联。在特定的时间段内,客户有以下三个具有不同编号(12、32和40)的订单。

客户将来可以增加订单数量,在这种情况下,对象图将反映出这一点。如果观察到订单,特殊订单和正常订单对象,则您会发现它们具有某些值。

对于订单,值分别为12、32和40,这表示对象在捕获实例的特定时刻(此处将购买的特定时间视为该时刻)具有这些值。

对于特殊订单和正常订单对象(订单数量分别为20、30和60)也是如此。如果考虑了不同的购买时间,则这些值将相应地更改。

考虑到上述所有要点,绘制了以下对象图

UML对象图

在哪里使用对象图?

对象图可以想象为特定时刻正在运行的系统的快照。让我们考虑一个正在运行的火车的例子

现在,如果您对正在运行的火车进行了快照,那么您会发现它的静态图片具有以下内容:

  • 正在运行的特定状态。

  • 特定数量的乘客。如果在不同的时间拍摄快照,它将改变

在这里,我们可以想象正在运行的火车的捕捉是具有上述值的对象。这对于任何现实生活中的简单或复杂系统都是如此。

简而言之,可以说对象图用于-

  • 制作系统原型。

  • 逆向工程。

  • 建模复杂的数据结构。

  • 从实际角度了解系统。