OCL中的UML聚合

时间:2014-06-09 19:53:14

标签: uml aggregation diagram ocl

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;

但我不知道如何处理汇总,而且我似乎无法在谷歌上找到有关这方面的任何有用信息。

1 个答案:

答案 0 :(得分:0)

Agreggation不是一个自主的UML元素,它只是一种类型的双向关联(带有"共享" end),因此适用于关联的所有内容是有效的。

同样适用于作文,只有结尾是"复合")。

一个小小的修正 - 我注意到你在OCL表达式中使用了关联名称("有"," relatedTo"等)。为了完全符合OCL规范,您应该使用关联结束'角色名称而不是。