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

Non-UML diagrams to show objects and their creation

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

如果您想坚持使用 class 图,您可以使用 UML 标准配置文件(UML 2.5 规范第 22 章)中的 «create» 使用依赖关系。

«Create» | Usage | A usage dependency denoting that the client classifier creates instances of the supplier classifier.

例如这里 A 创建了 B 的一个实例,而 C 只是引用了 B。

A type of UML diagrams show only one particular view of your system by abstracting the other aspects of a system. For example, a class diagram 仅显示系统的静态方面,而不显示动态行为,例如:

At what time an object was created

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

在这种情况下,"creating an object at a particular time by who (another object)"应该处理行为视图,因此,我们可以使用sequence diagram来建模动态行为:

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

  1. 横向,对象生命周期
  2. 垂直,时间

您可能会感兴趣,我如何将这些模型关联起来?他们之间会不会有不一致的地方?正确的!如果你对此感到困惑,那你就走对了!

看!模型之间是相互联系的,举个例子,你可以创建一个use case,一个用例可以细化为多个场景,然后..每个场景可以用一个序列图来建模,然后序列图提示您构建系统需要哪些对象(以及其中的哪些操作和属性),对吗?