0

给定问题的 UML 图

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

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;

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

4

1 回答 1

0

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

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

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

于 2014-06-10T05:46:12.170 回答