UML2.0对象图

概述:

在统一建模语言(UML) 中,对象图侧重于某些特定的对象和属性值,以及这些实例之间的链接。一组相关的对象图提供了对系统的任意视图如何随时间演变的洞察。

UML2.0对象图_第1张图片

在早期的 UML 规范中,对象图被描述为:"对象图是实例图,包括对象和数据值。静态对象图是类图的实例;它显示了系统在某个时间点的详细状态的快照。对象图的使用是相当有限的,即展示数据结构的例子。”

最新的 UML 2.5 规范没有明确定义对象图但提供了分类器实例的表示法。

对象图和类图密切相关并且使用几乎相同的符号,两个图都是为了可视化系统的静态结构。类图显示类,而对象图显示类(对象)的实例。对象图比类图更具体。它们通常用于提供示例或充当类图的测试用例。对象图中通常只显示当前对模型感兴趣的方面。

由于类图与对象图较为类似,又有区别,因此通过一个订购系统的示例来进一步说明。

  • 首先,订单和客户被确定为系统的两个要素。他们之间存在一对多的关系,因为客户可以拥有多个订单。
  • Order类是一个抽象类,它有两个具体的类(继承关系)SpecialOrder和NormalOrder。
  • 这两个继承的类具有Order类的所有属性。此外,它们还具有dispatch()和receive()等附加功能。

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

UML2.0对象图_第2张图片

下图是特定购买时系统的实例。它具有以下对象。

  • 顾客
  • 订单
  • 特殊订单
  • 正常订单

现在,客户对象(C)与三个订单对象(O1,O2和O3)相关联。这些订单对象与特殊订单和正常订单对象(S1,S2和N1)相关联。对于所考虑的特定时间,客户具有以下三个具有不同数量(12,32和40)的订单。

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

对于订单,值为12,32和40,这意味着当捕获实例时,对象具有特定时刻的这些值(此处是购买时的特定时间被视为时刻)

对于具有20,30和60的订单数量的特殊订单和正常订单对象也是如此。如果考虑购买的不同时间,则这些值将相应地改变。

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

UML2.0对象图_第3张图片

接下来,我们认真思考一个问题:在哪里使用对象图?

首先,必须记住上述提到,将对象图设想为特定时刻正在运行的系统快照。

你可以想象一辆正在运行中的列车,其中包含以下内容:

  • 正在运行的特定状态;
  • 特定数量的乘客。

如果在不同的时间拍摄快照,那么将会改变上述值的对象。

UML2.0对象图_第4张图片

总结:对象图可以应用于:

  1. 制作系统的原型;
  2. 逆向工程;
  3. 建模复杂的数据结构;
  4. 从实践角度理解系统。
  5. 从实践角度理解系统。

你可能感兴趣的:(UML2.0,uml,软件开发,面向对象编程,java,python)