对象图是从类图派生的,因此对象图依赖于类图。
对象图表示类图的一个实例。类图和对象图的基本概念是相似的。对象图也表示系统的静态视图,但这个静态视图是系统在特定时刻的快照。
对象图用于呈现一组对象及其关系作为实例。
对象图的目的
图表的目的应该清楚地理解为实际实施。对象图的目的与类图相似。
不同之处在于类图表示由类及其关系组成的抽象模型。然而,一个对象图代表了特定时刻的一个实例,它本质上是具体的。
这意味着对象图更接近实际的系统行为。目的是在特定时刻捕获系统的静态视图。
对象图的目的可以概括为:
- 正向和逆向工程。
- 系统的对象关系
- 交互的静态视图。
- 从实践角度理解对象行为及其关系
对象图与类图
说明对象图是什么样子的最好方法是显示从相应类图派生的对象图。
以下订单管理系统显示它们之间的关系。这个小类图表明大学部门可以包含许多其他部门,下面的对象图实例化类图,并用一个具体的例子来代替它。
-
寻找免费的UML工具?
Visual Paradigm,国际IT奖获奖者,是您的最终选择UML建模。Visual Paradigm Community Edition -完全免费!全世界数以百万计的用户,没有时间限制和跨平台采用。Visual Paradigm 是国际IT奖获奖者,是您的UML建模最终选择。
立即下载
Visual Paradigm 社区版-完全免费!全世界数以百万计的用户没有时间限制和跨平台采用。
如何绘制对象图?
我们已经讨论过一个对象图是类图的一个实例。它意味着一个对象图由类图中使用的事物的实例组成。
所以两个图都是由相同的基本元素组成,但形式不同。在类图中,元素以抽象形式表示蓝图,而在对象图中元素以具体形式表示现实世界对象。
为了捕获一个特定的系统,类图的数量是有限的。但是,如果我们考虑对象图,那么我们可以拥有无限数量的实例,这些实例在本质上是独一无二的。只考虑那些对系统有影响的实例。
从上面的讨论可以清楚看出,单个对象图不能捕获所有必要的实例,或者不能指定系统的所有对象。因此,解决方案是 -
- 首先,分析系统并确定哪些实例具有重要的数据和关联。
- 其次,仅考虑那些将涵盖功能的实例。
- 第三,由于实例的数量是无限的,因此进行一些优化。
在绘制对象图之前,应该清楚地记住以下事情 -
- 对象图由对象组成。
- 对象图中的链接用于连接对象。
- 对象和链接是用于构造对象图的两个元素。
之后,在开始构建图表之前,需要确定以下事项 -
- 对象图应该有一个有意义的名称来表明它的用途。
- 最重要的因素是待确定。
- 对象之间的关联应该澄清。
- 需要捕获不同元素的值以包含在对象图中。
- 在需要更清晰的地方添加适当的注释。
下图是一个对象图的例子。它代表了我们在类图中讨论的订单管理系统。下图是特定购买时系统的一个实例。它有以下几个目的。
- 顾客
- 订购
- 特殊订单
- NormalOrder
现在客户对象(C)与三个订单对象(O1,O2和O3)相关联。这些订单对象与特殊订单和正常订单对象(S1,S2和N1)相关联。在特定的时间内,客户有以下三个不同号码(12,32和40)的订单。
客户可以增加未来的订单数量,在这种情况下,对象图表会反映这一点。如果观察到订单,特殊订单和正常订单对象,那么您会发现它们有一些值。
对于订单,值为12,32和40,这意味着对象在特定时刻具有这些值(这里是购买时的特定时间被认为是时刻),当实例被捕获时
订单数量为20,30和60的特殊订单和普通订单对象也是如此。如果考虑不同的购买时间,那么这些值将相应地改变。
考虑到上面提到的所有要点,已经绘制了以下对象图
uml_object_diagram.jpg
在哪里使用对象图?
对象图可以想象为特定时刻正在运行的系统的快照。让我们考虑一个正在运行的列车的例子
现在,如果你拍下正在运行的火车,那么你会发现它具有以下的静态图片 -
- 正在运行的特定状态。
- 特定数量的乘客。如果在不同的时间拍摄,这将会改变
在这里,我们可以想象运行中的列车的捕捉是具有上述值的对象。对于任何现实生活中的简单或复杂系统来说都是如此。
简而言之,可以说对象图用于 -
- 制作一个系统的原型。
- 逆向工程。
- 建模复杂的数据结构。
- 从实践角度理解系统。
uml建模阅读列表
- 什么是UML?
- 为什么使用UML建模?
- 14个UML图类型概述
- 什么是类图?
- 什么是组件图?
- 什么是部署图?
- 什么是对象图?
- 什么是包图?
- 什么是复合结构图?
- 什么是轮廓图?
- 什么是用例图?
- 什么是活动图?
- 什么是状态机图?
- 什么是序列图?
- 什么是通信图?
- 什么是交互概览图?
- 什么是时序图
- UML协会vs聚合vs组合
- UML类图教程
- 状态机图与活动图