对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看做是类图在某一时刻的实例。
8.1 对象图的概念
- 一个对象图主要集中在特定的对象实例和其槽,以及实例之间的连接。
- 同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。
与类图的抽象性相比,对象图是具体的,其通常用来提供所对应类图的结构示例,或者作为所对应类图的测试用例。
8.2 对象图的表示
实例的记号和类一样,但是取代顶端区域中仅有的类名,它的名字是经过拼接的: Instance Name : Class Name
对象名:由于对象是一个类的实例,因此其名称的格式是“对象名:类名”,这两个部分是可选的,但如果是包含了类名,则必须加上“:”,另外为了和类名区分,还必须加上下划线。
- 属性:由于对象是一个具体的事物,因此所有的属性值都已经确定,因此通常会在属性的后面列出其值。
关联关系必须与类图的关系相一致,而且关联的角色名字也必须与类图相一致。
8.3 对象图术语
在UML中,对象实例是采用实例规范(instance specification)来表示的,对象实例所具有的结构化特性(feature)是采用槽(slot)来表示的,对象实例与对象实例之间的关系则是采用连接(link)来表示。
与类图相对比实例对应于类对象
- 槽对应于类属性的实例
- 连接则对应于类与类之间关联的实例
- 槽
- 类图:
- 类具有3个分栏(类名、属性及操作);
- 在类的类名分栏中只有类名;
- 类的属性分栏定义了所有属性的特征;
- 类中列出了操作;
- 类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。
- 类具有3个分栏(类名、属性及操作);
- 对象图:
- 对象只有2个分栏(名称、属性);
- 对象的名称形式为“对象名:类名”;
- 匿名对象的名称形式为“:类名”;
- 对象只定义了属性的当前值; 对象图中不包含操作;
- 对象使用链连接,链拥有名称、角色,但是没有多重性。
- 对象只有2个分栏(名称、属性);