理解对象图:UML 建模入门指南

在软件开发领域,统一建模语言(UML)提供了一种标准化的方式来可视化系统的设计。UML 中的关键图表之一是对象图,它展示了系统在某一特定时刻的实例情况。本文将向您介绍对象图,解释其用途,并指导您使用功能强大的 UML 建模工具 Visual Paradigm 创建对象图。

Class Diagram vs Object Diagram

什么是对象图?

对象图是一种 UML 图表,通过展示类的实例及其在某一特定时刻的关系,呈现系统的静态视图。与提供系统结构蓝图的类图不同,对象图关注的是运行时实际存在的对象及其交互。

主要特性

  1. 快照视图:对象图捕捉系统在某一特定时间的状态,提供真实或典型的视角。
  2. 基于实例:它们关注的是实例(对象)而非类,展示对象如何以特定的属性值进行交互。
  3. 静态设计:尽管它们描绘的是某一时刻的情况,但对象图用于展示系统的静态设计,有助于理解在特定场景下对象之间的相互关系。

为什么要使用对象图?

  • 测试与调试:对象图在测试和调试中非常有价值,因为它们展示了对象在实时场景中的交互方式。
  • 场景说明:它们有助于可视化特定的用例或场景,使系统在特定条件下的行为更容易理解。
  • 原型设计:对象图可用于模拟系统在实际数据下的行为,有助于设计过程。

使用 Visual Paradigm 创建对象图

Visual Paradigm 是一个全面的 UML 建模工具,包括创建对象图的功能。以下是一份逐步指南,帮助您开始使用:

逐步指南

  1. 创建一个新的对象图:

    • 打开 Visual Paradigm 并选择图表 > 新建从应用程序工具栏中选择。
    • 新建图表窗口中,选择对象图.
  2. 创建实例规范:

    • 从图表工具栏中选择实例规范然后点击图表以创建形状。
    • 根据其所代表的对象命名实例规范。
  3. 选择分类器:

    • 右键单击实例规范形状并选择选择分类器 > 选择分类器...从弹出菜单中选择。
    • 选择分类器窗口中,选择将作为实例规范分类器的类。
  4. 定义槽:

    • 要定义槽,请右键单击实例规范形状并选择槽...从弹出菜单中选择。
    • 实例规范规范窗口中,选择用于定义槽的特性,然后单击定义槽.
    • 通过选择已定义的槽并单击编辑值....
  5. 创建链接:

    • 要创建实例规范之间的链接,请将鼠标指针移至源实例规范上。
    • 按下资源目录按钮,并将其拖动到目标实例规范上。
    • 释放鼠标按钮并选择链接从资源目录中选择以创建链接。

示例

让我们考虑一个简单的图书馆系统示例:

  • 图书成员借阅
  • 对象:
    • 图书:“1984” 乔治·奥威尔著
    • 成员:简·多
    • 借阅:简·多借阅“1984”的借阅记录

在 Visual Paradigm 中建模的步骤:

  1. 创建实例规范:

    • 为以下内容创建实例图书成员,以及借阅.
  2. 选择分类器:

    • 为每个实例分配相应的类别(书籍成员借阅)到每个实例。
  3. 定义槽位:

    • 对于书籍:为以下内容定义槽位标题作者,并设置如“1984”和“乔治·奥威尔”之类的值。
    • 对于成员:为以下内容定义槽位姓名并将其值设置为“简·多”
    • 对于借阅:为以下内容定义槽位借阅日期归还日期.
  4. 创建链接:

    • 在……之间创建链接成员(简·多)和借阅以表明简·多借了一本书。
    • 在……之间创建链接借阅书籍以表明《1984》是所借的书。

示例:类图与对象图

该图像展示了面向对象编程中类图和对象图的概念,重点在于类与其实例(对象)之间的关系。以下是详细说明:

What is Object Diagram?

类图(左侧)

  1. 类与属性:

    • 客户类:
      • 属性:姓名(字符串),位置(字符串)。
      • 方法:+发送订单()+接收订单().
    • 订单类:
      • 属性:日期(日期),编号(字符串)。
      • 方法:+确认()+关闭().
  2. 泛化(继承):

    • 订单类是一个泛化为两个子类的超类:普通订单特殊订单.
    • 普通订单类:
      • 从以下类继承属性和方法:订单.
      • 附加方法:+派发()+receive().
    • 特殊订单类:
      • 继承自 订单.
      • 附加方法: +dispatch().
  3. 关系:

    •  和 之间存在一对多关系客户 和 订单,由“1”表示 客户 一侧,而 订单 一侧没有数字,表示一个客户可以有多个订单。

对象图(右侧)

  1. 对象和属性:

    • C1:客户对象:
      •  类的一个实例。客户 类。
    • O1、O2、O3:订单对象:
      • 实例的 订单 类具有特定的 编号 属性: O1 (编号 = 12), O2 (编号 = 61), O3 (编号 = 88)。
    • S1、S2、S3:特殊订单对象:
      • 实例的 特殊订单 类具有特定的 编号 属性: S1 (编号 = 43), S2 (编号 = 50), S3 (编号 = 17)。
  2. 关系:

    • 该 C1 客户对象与多个订单对象关联(O1O2O3) 和特殊订单对象 (S1S2S3).
    • 这反映了类图中展示的一对多关系,即一个客户可以拥有多个订单。

解释

  • 泛化: 订单类作为具有通用属性和方法的基类,而普通订单特殊订单是具有额外功能的特化版本。
  • 实例化: 对象图展示了这些类如何被实例化为具有具体值的特定对象,展示了类结构在实际中的应用方式。
  • 关系: 图表强调了客户与其订单之间的关联,展示了对象如何基于定义的类关系进行交互。

这种可视化有助于理解类是如何设计的,以及它们如何转化为具有特定数据和行为的真实世界对象。

结论

对象图是UML中一种强大的工具,通过具体实例及其交互来可视化系统的运行时行为。使用Visual Paradigm,您可以高效地创建这些图表,有助于软件系统的设计、测试和调试。无论您是初学者还是有经验的开发人员,理解和使用对象图都能显著提升您建模和理解复杂系统的能力。

参考文献

  1. 绘制对象图。Visual Paradigm
  2. 通过 Visual Paradigm 学习类图。Archimetric
  3. Visual Paradigm 教程。来自YouTube
  4. 示例:类图与对象图。Visual Paradigm Circle
  5. UML 中的类图与对象图。Visual Paradigm
  6. 什么是对象图?Visual Paradigm
  7. 对象图。Visual Paradigm
  8. UML 类图教程。Visual Paradigm