我被赋予了为操作创建前置条件和后置条件的任务:
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;
但我不知道如何处理汇总,而且我似乎无法在谷歌上找到有关这方面的任何有用信息。
答案 0 :(得分:0)
Agreggation不是一个自主的UML元素,它只是一种类型的双向关联(带有"共享" end),因此适用于关联的所有内容是有效的。
同样适用于作文,只有结尾是"复合")。
一个小小的修正 - 我注意到你在OCL表达式中使用了关联名称("有"," relatedTo"等)。为了完全符合OCL规范,您应该使用关联结束'角色名称而不是。