UML系列文章(14)---对象图

在UML中可以使用类图来可视化系统构造块的静态方面。还可以使用交互图来可视化系统的动态方面,交互图由构造块的实例和在它们之间分发的消息组成。对象图包含一组类图中事物的实例。因此,对象图表达了交互的静态部分,由协作的对象组成。但不包含在对象之间传递的任何消息。对象图表示冻结了的系统运动的某一瞬间,如图所示,

UML系列文章(14)---对象图_第1张图片

1.术语和概念

对象图(object diagram)表示在某一时间点上一组对象以及它们之间的关系的图。在图形上,对象图是顶点和弧的集合。对象图一般包括:对象和链。对象图可包含注解和约束。有时也要把类放在对象图中,特别是要把各实例背后的类可视化时。

对象图和类图相关:类图描述了一般的情形,实例图描述了从类图派生的具体实例。对象图主要包含对象和链。部署图也可以按照一般的和实例的形式出现:一般形式的部署图描述结点类型,实例形式的部署图描述了由这些类型描述的结点实例的具体配置。

2.常用建模技术

  • 对对象结构建模

在构造类图、构件图或部署图时,真正要做的是获取一组感兴趣的抽象,形成一个组,在这样的语境下,要显现出组中各抽象的语义和相互之间的关系。这些图只表示出潜在可能性。如果类A到类B有一对多的关联,那么类A的一个实例就可能对应B的5个实例;而类A的另一实例可能只对应着类B的一个实例。此外,在某一给定的时刻,A的实例和相关的B的实例,它们的属性和状态机都有一定的值。

      在为系统的设计视图建模时,可以用一组类图完整地详述抽象的语义以及它们之间的关系。然而,用对象图则不能完整地详述系统的对象结构。在使用对象图是,只能有意义的显示一组感兴趣的具体对象或原型对象。这就是所谓的为对象结构建模,即对象图显示了在某一时刻相互联系的一组对象。下图是自主机器人实现的一组对象图。

UML系列文章(14)---对象图_第2张图片

 

  • 逆向工程

    为对象图进行逆向工程(从代码创建模型)是有用的。事实上对系统调试时,这是有人或工具来做的。例如,要寻找一个虚悬的链,就要从文字或脑海中勾画一个受影响对象的对象图。以考察在给定时刻对象的状态或者与其他对象的关系在哪里被损坏了。为对象图进行逆向工程,要遵循如下策略:

  • 选择要进行逆向工程的目标
  • 通过使用工具在特定时刻停止执行
  • 识别出语境中相互协作的一组感兴趣的对象,并在对象图中表示他们
  • 按照理解语义的需要,显露这些对象的状态
  • 按照理解语义的需要,识别这些对象之间的链
  • 若最终的图过于复杂,则要修剪它

3. 提示和技巧

一个结构良好的对象图,应满足如下要求:

  • 注重于表达系统静态设计视图或静态交互视图的一个方面
  • 表示由一个交互图描绘的动态场景中的一个画面
  • 只包含对理解改方面不可或缺的那些元素
  • 提供与它的抽象层次一致的细节,只显露对理解不可缺少的那些属性值和修饰
  • 不要过分简化以免对重要的语义产生误解

绘制对象图要点:

  • 给出名称
  • 对图中元素布局,减少线段交叉
  • 在空间组织元素时,语义上接近的事物在物理位置上也靠近
  • 用注解和颜色作为可视化提示
  • 根据表达意图的需要,在图中包括每个对象的值和状态。

你可能感兴趣的:(UML,uml)