用于显示对象及其创建的非UML图

时间:2018-01-19 20:08:40

标签: uml

我正在努力了解新项目。我正在绘制UML类图,但在这些图中我缺少一些东西:对象的创建。传统的UML图可以描述的是这些类是如何相互关联的,以及这些类的实例如何与其他类的其他对象相关,但就在它们已经创建的那一刻。有时候创造谁的人并不是那么明显,有时这完全是误导。例如,类A的对象可以创建类B的对象,但是对象只返回此B对象并将其提供给其他人并且不保留对它的任何引用。有时它保持(引用或指针)。有时它对读者来说很重要。所以事实上有两种类型的信息:持有和创造。我想出了自己的可视化方法,但也许这里有标准的东西?你怎么看?我并没有考虑UML对象图,这在阅读C ++或Java代码并尝试理解类和对象的关系时并不是非常有用。而不是序列图,这是一种不同的野兽。

2 个答案:

答案 0 :(得分:1)

如果你想坚持使用类图,你可以使用UML Standard Profile中的«create»用法依赖(UML 2.5规范的第22章)。

  

«创建»|用法|表示客户机分类器创建实例的使用依赖项   供应商分类器。

所以,例如这里A创建一个B的实例,C只引用B。

enter image description here

答案 1 :(得分:1)

通过抽象系统的其他方面,type of UML diagrams仅显示系统的一个特定视图。例如,class diagram仅显示系统的静态方面,但不显示动态行为,例如:

  

创建对象的时间

建模系统的核心思想是尝试一次处理(或关注)某个方面,同时通过忘记系统的其他方面来消除复杂性。

在这种情况下,“在特定时间由谁(另一个对象)创建一个对象”应该处理行为视图,因此,我们可以使用sequence diagram来建模动态行为:

enter image description here

您可以在图中看到序列图的维度:

  1. Horzontally,Objects Lifecycle
  2. 垂直,时间
  3. 您可能会感兴趣,我如何将这些模型联系在一起?它们之间是否会有任何不一致之处?对!如果你对此感到困惑,那你就走在正确的轨道上了!

    看!模型是相互连接的,举个例子,你可以创建一个use case,一个用例可以用很多场景详细说明,然后..每个场景都可以通过一个序列图建模,并且序列图为您提供构建系统所需的对象(以及其中的操作和属性)的提示,对吧?

    enter image description here