OCL限制和推导规则

OCL restrictions and derivations rules

我正在使用这个 UML 模型

你知道我怎样才能获得只能卖给 18 岁以上客户的成人内容电影吗?。我试过这个表达式:

context Film inv:
  self.adultContent->notEmpty () implies
  self.Customer.age >=18

您可以通过调用

获得 adultContent Films
Film.allInstances()->select(adultContent)

age >= 18 无关紧要,因为 Film.adultContent 遮挡了它。或者您可以通过不变量来验证您的模型是否一致,正如您在更正已经评论的拼写错误后所写的那样:

self.adultContent implies self.Customer->forAll(age >=18)

.