指针/引用的C ++特定UML建模

时间:2015-09-25 11:59:19

标签: c++ uml

在C ++值类型中,隐含的是最强的关联,但是我可以想象当使用指针/引用时,类之间的五个关系(通过聚合强度排序):

 information level     +------+------+------+------+
 v           ownership>| none | weak |shared|unique|
+----------------------+------+------+------+------+
|knows/includes/uses   |  2   |  3   |  4   |  5   |
+----------------------+------+------+------+------+
|passes/forward declare|  1   |  --  |  --  |  --  |
+----------------------+------+------+------+------+

其中一些可能不符合UML的意图(例如1)。但是,我希望看到我设计的耦合度量。这五种类型的关联如何适合类图。表示这种关联的常见做法是什么?

这是我到目前为止的想法:

  1. ...
  2. 指导协会 - 箭头。
  3. 聚合 - 空心钻石。[1]
  4. 聚合 - 空心钻石。[1]
  5. 成分 - 填充钻石。
  6. [1]不清楚。如果有一颗钻石,所有空心钻石都表明所有权较弱。但如果没有专门的所有者弱,则无法区分共享引用。或者弱所有权在概念上与没有所有权相同?

2 个答案:

答案 0 :(得分:0)

UML故意不提供特定于语言的概念。使用UML,您应该为给定的问题域建模您的系统。语言细节留给实施该模型的人。

答案 1 :(得分:0)

UML中没有关于如何解释各种类型关系之间的语义差异的严格规则,特别是没有关于如何将某种编程语言中的构造转换为UML的规则。

但业内有一些最佳实践。我已经在我的网站上记录了一些最佳实践。

在你的情况下,我也会考虑使用依赖。这可能是UML中最薄弱的环节。当我想在视觉上强调其中一个参数或属性

中使用类型时,我经常使用它