UML - 对象图

  • 简述

    对象关系图派生自类图,因此对象关系图依赖于类图。
    对象关系图表示类图的实例。类图和对象图的基本概念类似。对象图也表示系统的静态视图,但此静态视图是系统在特定时刻的快照。
    对象图用于将一组对象及其关系呈现为一个实例。
  • 对象图的用途

    应清楚地理解图表的目的,以便实际实现它。对象图的用途类似于类图。
    不同之处在于,类图表示由类及其关系组成的抽象模型。但是,对象图表示特定时刻的实例,这本质上是具体的。
    这意味着对象图更接近实际的系统行为。目的是捕获系统在特定时刻的静态视图。
    对象图的目的可以概括为 −
    • 正向和逆向工程。
    • 系统的对象关系
    • 交互的静态视图。
    • 从实际角度理解物体行为及其关系
  • 如何绘制对象图?

    我们已经讨论过,对象图是类图的实例。这意味着对象图由类图中使用的事物的实例组成。
    因此,两个图都由相同的基本元素组成,但形式不同。在类图中,元素以抽象形式表示蓝图,在对象图中,元素以具体形式表示现实世界的对象。
    为了捕获特定的系统,类图的数量是有限的。但是,如果我们考虑对象图,那么我们可以拥有无限数量的实例,这些实例本质上是唯一的。仅考虑那些对系统有影响的实例。
    从上面的讨论中可以清楚地看出,单个对象图无法捕获所有必要的实例,或者更确切地说,不能指定系统的所有对象。因此,解决方案是 −
    • 首先,分析系统并确定哪些实例具有重要数据和关联。
    • 其次,仅考虑那些将涵盖该功能的实例。
    • 第三,进行一些优化,因为实例数量是无限的。
    在绘制对象图之前,应清楚地记住并理解以下事项 -
    • 对象图由对象组成。
    • 对象图中的链接用于连接对象。
    • 对象和链接是用于构造对象图的两个元素。
    在此之后,在开始构建图表之前,将决定以下事项 -
    • 对象图应具有有意义的名称以指示其用途。
    • 最重要的因素有待确定。
    • 应澄清对象之间的关联。
    • 需要捕获不同元素的值才能包含在对象图中。
    • 在需要更清晰的地方添加适当的注释。
    下图是对象关系图的示例。它代表了我们在类图一章中讨论过的订单管理系统。下图是特定购买时的系统实例。它具有以下对象。
    • Customer
    • Order
    • SpecialOrder
    • NormalOrder
    现在,Customer 对象 (C) 与三个 Order 对象(O1、O2 和 O3)相关联。这些订单对象与特殊订单和普通订单对象(S1、S2 和 N1)相关联。客户在考虑的特定时间内有以下三个具有不同编号(12,32和40)的订单。
    客户将来可以增加订单数量,在这种情况下,对象图将反映这一点。如果观察到顺序,特殊顺序和正常顺序对象,那么您会发现它们具有一些值。
    对于订单,值为 12、32 和 40,这意味着对象在特定时刻(此处将进行购买的特定时间视为捕获实例时)具有这些值
    对于订单数为 20、30 和 60 的特殊订单和普通订单对象也是如此。如果考虑不同的购买时间,则这些值将相应地更改。
    考虑到上述所有要点,绘制了以下对象图
    UML 对象图
  • 在哪里使用对象图?

    对象图可以想象为正在运行的系统在特定时刻的快照。让我们考虑一个运行中的火车的例子
    现在,如果你拍一张正在运行的火车的照片,那么你会发现它的静态图片有以下内容 -
    • 正在运行的特定状态。
    • 特定数量的乘客。如果在不同的时间拍摄快照,这将发生变化
    在这里,我们可以想象正在运行的火车的快照是一个具有上述值的对象。对于任何现实生活中的简单或复杂系统都是如此。
    简而言之,可以说对象图用于 −
    • 制作系统的原型。
    • 逆向工程。
    • 对复杂的数据结构进行建模。
    • 从实际的角度理解系统。