繁体   English   中英

UML关系

[英]UML Relationships

问题是将给定的UML图片与所有可能的描述结合起来。

UML图

[1]

一种。 可以从B导航到A。

b。 可以从A导航到B。

C。 B对A的裁判很少。

d。 A是B的一部分。

e。 B是A的一部分。

F。 A和B之间没有不确定的关系。

G。 当B不再存在时,就没有理由A存在。

H。 当B不再存在时,仍然有理由A存在。

一世。 B使用A,但没有对A的引用。

我的尝试...

好吧,我记不清尝试了多少次。 但是在我看来,描述有些含糊。 你可能会说它适用与否...最后我这样研究...

  1. 组成:g,e
  2. 汇总:e,h
  3. 行:f,a,b,h
  4. 相关性:c,h
  5. 关联:a,h

而且,ofc仍然不正确……也许我肯定持有的东西错了。 但是我们的导师显然没有为我们提供足够的材料来解决这个问题,并且拒绝给出任何提示。 这就是我从Google阅读帖子和文章的距离...有人可以帮忙指出什么地方是错的或遗漏的吗? 我觉得我要吐...

从UML 2.5角度来看:

(¹)我将假设,用于绘制图表的工具没有明确显示关联端所有权或不可导航的端,因此我将坚持“通用解释”:

  • 如果没有箭头,则两端由各自的分类器拥有,并且可以导航
  • 如果仅存在一个箭头,则该方向归分类器所有并且可以导航; 另一端归协会所有,不可通行

先进的UML工具可以通过在末尾或小十字上添加黑点来明确区分,以分别说明谁拥有该关联以及该关联是否可导航。

  • A)是4-5,是1-3(¹)
  • B)4-5(¹)否,1-3(¹)是
  • C)没有一个仅基于图中的信息
  • D)没有
  • E)1-2
  • F)没有; 3只是一个常规关联,在前面所述的上下文中,并不需要任何额外的内容
    • uml-diagrams.org将此称为未指定的可导航性,但是只有当图表工具支持(或未取消)所有上述标记(叉号,点号)时,这种情况才会成立
  • G)没有; 与D并驾齐驱)
  • H)全部; 基本上与G相反)
  • 我)全部; 出于相同的原因与A)并驾齐驱

结论:我强烈建议查看UML 2.5规范的 11.5.5节中的示例。 整个章节(11.5)可以为您提供更多的见解,但是如果您仅将UML视为图表而不是模型,则可能会让人感到不知所措。


更新:依赖

模型中依赖关系的存在不具有任何运行时语义含义。

我更仔细地研究了Specs,这是Dependency元模型

在此处输入图片说明

据此,客户和供应商之间都不相互了解。 严格来讲,模型确实声明​​NamedElement(Class的超类)知道它依赖谁(clientDependency),但是定义如下:

{OCL} result = (Dependency.allInstances()->select(d | d.client->includes(self)))

我称其为胡说八道,因为然后可以使用相同的方法使每个不可通航的目的地都可以通航。

因此,鉴于此,对于依赖项:

  • A)是,按技术
  • B)并非出于技术上的考虑,但是没有什么能真正阻止我使用相同的方法,为什么A可以导航,而B也可以导航

因此,A + B都可以接受解释。

  • C)是和否; 取决于解释

根据该模型,它不直接引用,但是该模型还表示

依赖关系意味着没有供应商,客户的语义是不完整的。 ...用法是一种依赖关系,其中一个NamedElement 需要另一个NamedElement [...]来实现其完整实现或操作。

所以我不会称其为弱引用,因为客户需要它。 实际上,UML 2.5在规范的相关部分中并未使用“ ”一词(更不用说“ 引用”)了,因此该术语本身没有任何意义(也许是在UML的旧版本中使用的)。

  • I)是和否,出于同样的原因; 参考是派生出来的(从其他信息中计算得出的),但规范也指出

涉及派生属性的动作的行为与非派生属性相同。

简介:依赖关系是思想的表示,而不是实现的表示。 因此,实际的解释对使用它的人以及在特定情况下最有意义的解释是开放的。

我保留了原来的答案,在这一部分中,我或多或少地提出了非常机械和无意识的约束应用程序,这通常不是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM