【问题标题】:UML aggregation in OCLOCL 中的 UML 聚合
【发布时间】:2014-07-30 10:39:24
【问题描述】:

UML Diagram for given problem

我的任务是为操作创建前置条件和后置条件:

getInformation(givenTitle:String):Integer

该操作应返回指定标题项目的所有错误报告的数量。至于前提条件,我已经想通了:

context Company::getInformation(givenTitle:String):Integer
    pre: has->size() > 0 and has->exists(title = givenTitle);

但是我有一个大问题如何处理项目中的工件聚合

如果它只是一个关联,我会这样做:

    post: has->select(title = givenTitle)->first().Artifact.relatedTo->size() = result;

但我不知道如何处理聚合,而且我似乎无法在 google 上找到任何有用的信息。

【问题讨论】:

    标签: uml aggregation diagram ocl


    【解决方案1】:

    聚合不是一个自治的 UML 元素,它只是一种双向关联(具有“共享”端),因此适用于关联的所有内容都是有效的。

    作曲也一样,只是结尾是“合成的”)。

    还有一个小修正——我注意到您在 OCL 表达式中使用了关联名称(“has”、“relatedTo”等)。为了完全符合 OCL 规范,您应该改用关联端的角色名称

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 2013-06-22
      • 1970-01-01
      • 2014-08-05
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      相关资源
      最近更新 更多