该篇文章是UML知识的扩充。
什么是对象图
源文链接:https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/
对象是运行时特定时刻的类实例,它可以有自己的状态和数据值。同样,静态UML
对象图是类图的一个实例。它显示了系统在某个时间点的详细状态的快照。因此对象图包含对象及其关系,可以将其视为类图或通讯图的特殊情况。
一、对象图的目的
对象图的使用相当有限,主要是为了展示数据结构的例子。
- 在项目的分析阶段,您可能回创建一个类图来表述系统的结构,然后创建一组对象图作为测试用例来验证类图的准确性和完整性。
- 在创建类图之前,您可能会创建一个对象图来发现有关特定模型元素及其链接的具体i情况,或者说明所需类的特定示例。
二、对象图概览
对象图显示了实例化类与定义类之间的这种关系,以及系统中这些对象之间的关系。当您的系统类图非常复杂时,它们对于解释系统的较小部分很有用,有时还可以在途中建模递归关系。
说明对象图的最佳方式是显示从相应类图派生的对象图。
以下订单管理系统显示了它们的关系。这个小类图显示了一个大学部门可以包含许多其他部门,下面的对象图实例化了类图,并用一个具体的例子替代了它。
类到对象图示例-订单系统
三、对象图的符号
3.1 对象名称
- 每个对象实际上都像一个矩形一样被符号化,它提供了对象的名称及其来自的类,用冒号分隔,底部加上下划线,对象名称在左,来自的类在右。
3.2 对象属性
- 与类类似,您可以在单独的方框中列出对象属性。但是与类不同的是,对象的属性应该明确它们的数值。
3.3 关联关系
- 您可以使用类图中使用的线条来绘制对象图的关联关系。
四、类图与对象图
在UML
中,对象图提供系统中类实例的快照以及类实例之间的关系。通过在类图中实例化模型元素,您可以探索系统在某个时间点的行为。
- 对象图是现实模型中类实例的
UML
结构图。 - 对象图使用类似于类图中使用的符号。
- 类图显示系统中的类及其关系。
- 对象图显示了这些类的特定实例以及在某个时间点这些实例之间的链接。
- 您可以通过在类、部署、组件和用例图中实例化类来创建对象图。
五、对象图示例
5.1 对象图示例1-公司结构
5.2 对象图示例2-POS
5.3 对象图示例3-编写器
5.4 对象结构建模的步骤
没有消息的通讯图(在以前版本的UML中称为协作)也称为对象图,对象之间的关系称为链接。对象关系图必须是静态类图的有效实例化。对象必须具有类,对象之间的链接必须是类之间关联的实例。这可以用作快速一致性检查。为此,我们可以使用以下步骤开发对象图:
- 确定要建模的机制。机制表示您正在建模的系统部分的某些功能或行为,这些功能或行为来自于类,接口和其他事物之间的交互。
- 对于每个机制,确定参与此协作的类、接口和其他元素,以及识别它们之间的关系。
- 请考虑一个演练此机制的方案,在某个时刻冻结该场景,并渲染参与该机制的每个对象。
- 根据需要公开每个此类对象的状态和属性值,以了解方案。
5.5 对象图实例4-机器人移动行为
同样,公开这些对象之间的链接,表示它们之间的关联实例。
如图果实,一个对象表示机器人本身(r:Robot的一个实例),r当前处于标记为移动的状态。这个对象有一个连接到(W:World)的实例,它表示机器人世界模型的抽象。此对象具有指向多个对象的链接,该对象由Element实例组成,这些实例表示机器人已标识但尚未在其他世界视图中分配的实体。这些元素被标记为机器人全局状态的一部分。
此时此刻,W连接到Area的两个实例。其中一个(a2)显示有指向三个墙和一个门对象的连接。这些墙中的每一个都有标上其当前宽度,并且每个墙都显示与其相邻的墙的相关联。正如这个对象图所指示的那样,机器人已经识别出这个封闭的区域,该区域的三面都有墙壁,第四面有一扇门。
5.6 对象图示例5-派生类似于通讯图的对象结构
处理显示对象在特定时间点的状态外,对象图还可用于标识运行时类之间交互的发生次数。结果看起来有点像通讯图。下图提供了此类类图及其相应对象图的示例。