【UML用户指南】-15-对高级结构建模-对象图

发布于:2024-06-16 ⋅ 阅读:(22) ⋅ 点赞:(0)

目录

1、对象图的组成

2、 对象图和类图关系

3、对对象结构建模

4、逆向工程

5、对象图构建要求


对象图对包含在类图中的事物的实例建模。

对象图显示了在某一时间点上一组对象以及它们之间的关系。

对象图用于对系统的静态设计视图或静态交互视图建模。

某一时刻的系统快照建模,表示出对象集、对象的状态以及对象之间的关系。

对象之间不会传递消息

对象图不仅对可视化、详述和文档化结构模型是重要的,而且对通过正向工程和逆向工程构

造系统的静态方面也是重要的。

用 UML,可以使用类图来可视化系统构造块的静态方面。还可以使用交互图来可视化系统的

动态方面,交互图由构造块的实例和在它们中间分发的消息组成。对象图包含一组类图中事

物的实例。因此,对象图表达了交互的静态部分,它由协作的对象组成,但不包含在对象之

间传递的任何消息。在这两种情况下,对象图都表示冻结了的系统运动的某一瞬间,

1、对象图的组成

对象、链、注解和约束,有时也把类放在对象图种。

2、 对象图和类图关系

1、类图描述了一般的情形,实例图描述了从类图派生的具体实例。对象图主要包含对象和链。

2、部署图也可以按照一般的和实例的形式出现:

一般形式的部署图描述结点类型,实例形式的部署图描述了由这些类型描述的结点实例的具体配置。
 

3、对对象结构建模

        在构造类图、构件图或部署图时,真正要做的是获取一组感兴趣的抽象,形成一个组,在这

样的语境下,要显现出组中各抽象的语义及其相互之间的关系。这些图只表示出潜在的可能

性。如果类A到类B有一对多的关联,那么类A的一个实例就可能对应着类B的5个实例,类A的

另一个实例还可能只对应着类B的一个实例。此外,在某一给定的时刻,A的实例和相关的B

的实例,它们的属性和状态机都有一定的值。

        如果冻结一个运行的系统,或者只想象被建模的系统的某一瞬间,就会发现这样的一组对象

:每一个对象都处于一个特定的状态,并与其他对象有特定的关系。可以用对象图来可视化

、详述、构造和文档化这些快照的结构。对象图对于复杂的数据结构建模特别有用。

在为系统的设计视图建模时,可以用一组类图完整地详述抽象的语义以及它们之间的关系。

        然而,用对象图则不能完整地详述系统的对象结构。对于一个类,可以有多个可能的实例,

对于相互间存在关系的一组类,对象间可能的配置是相当多的。因此,在使用对象图时,只

能有意义地显示一组感兴趣的具体对象或原型对象。这就是所谓的为对象结构建模,即对象

图显示了在某一时刻相互联系的一组对象。

        识别想为之建模的机制。机制描述了正建模的系统部分的某些功能或行为,它由一组类、接

口和其他事物的交互产生。

        例如,下图显示了取自一个自主机器人的实现中的一组对象。该图关注机器人为了计算一

个在其中移动的世界模型而使用的机制中所涉及的对象。运行系统还涉及更多的对象,但是

这幅图只关注直接涉及到创建这个世界视图的那些抽象。

如图所示,一个对象表示机器人自身(r是 Robot的实例),而 r当前处于被标记为

moving的状态中。这个对象有一个到w(World的一个实例)的链,World表示该机器人的世

界模型的一个抽象。

此时,w被连接到Area的两个实例。其中之一(a2)具有分别连接到3个Wall对象和一个

Door对象的链。Wall的每个对象都标有各自的当前宽度,并且都与相邻的Wall对象相连。

像这个对象图显示的那样,机器人已经识别出其所在的区域,该区域三面有墙,另一面有门
 

4、逆向工程

选择要进行逆向工程的目标。通常将语境设为一个操作的内部,或者与一个特定类的实例相关。

通过使用工具或简单地走查脚本,在特定的时刻停止执行。

识别出在该语境中相互协作的一组感兴趣的对象,并在对象图中表示它们。

按照理解语义的需要,显露这些对象的状态、识别这些对象之间存在的链。

若最终的图过于复杂,则要修剪它——通过删除与需要回答的关于脚本的问题无密切关系的

对象来实现。若图过于简化,则把某些感兴趣的对象的邻居扩充进来,并更深入地显露出各

对象的状态。

通常,必须手工地添加或标记目标代码中非显式的结构。丢失的信息提供了隐含在最终的代

码中的设计意图。

5、对象图构建要求

注重于表达系统静态设计视图或静态交互视图的一个方面。

表示由一个交互图描绘的动态场景中的一个画面。

只包含对理解该方面不可缺少的那些元素。

提供与它的抽象层次相一致的细节,应该只显露出对理解是不可缺少的那些属性值和其他修饰。

不要过分地简化,这样会使读者对重要的语义产生误解。

当绘制一个对象图时,要遵循如下策略。

给出能表达其用途的名称。

对图中元素进行布局,尽量减少线段交叉。

在空间上组织元素,使得在语义上接近的事物在物理位置上也靠近。

用注解和颜色作为可视化提示,以引起对图的重要特征的注意。

根据表达意图的需要,在图中包括每个对象的值和状态。