对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。下图显示了对象图的模型。其中节点可以是对象也可以是类,连线表示对象之间的关系:
二、类图和对象图的区别
类图 | 对象图 |
类具有3个分栏:名称、属性和操作 | 对象只有两个分栏:名称和属性 |
在类的名称分栏中只有类名 | 对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名” |
类的属性分栏定义了所有属性的特征 | 对象则只定义了属性的当前值,以便用于测试用例或例子中 |
类中列出了操作 | 对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的 |
类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 | 对象使用链连接、链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |
对象图建模技术
一、对对象结构建模
对系统的设计视图建模时,可以使用一组类图完整地描述抽象的语义以及它们之间的关系。但是使用对象图不能完整地描述系统的对象结构。对于一个个体类,可能存在多个实例,对于相互之间存在关系的一组类,对象间可有的配置可能是相当多的。所以,在使用对象图时,只能在一定意义上显示感兴趣的具体或原型对象集。这就是对对象结构建模,即一个对象图显示了某一时刻相互联系的一组对象。
对对象结构建模,要遵循以下策略:
(1)、识别将要使用的建模机制。该机制描述了一些正在建模的部分系统的功能和行为,它们由类、接口和其他元素的交互而产生。
(2)、对于各种机制,识别参与协作的类、接口和其他元素,同时也要识别这些事物之间的关系。
(3)、考虑贯穿这个机制的脚本。冻结某一时刻的脚本,并且汇报每个参与这个机制的对象。
(4)、按照需要显示出每个对象的状态和属性值,以便理解脚本。
(5)、显示出对象之间的链,以描述对象之间关联的实例。