OCL限制和派生规则

时间:2018-12-04 22:07:26

标签: uml ocl

我正在使用此UML模型

enter image description here

您知道我如何获得成人内容的电影,该电影只能出售给18岁以上的客户吗?我尝试过以下表达式:

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

1 个答案:

答案 0 :(得分:0)

您可以通过调用

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

age >= 18是无关紧要的,因为Film.adultContent遮挡了它。或者,您可以按照修正后的错别字来验证模型的一致性,就像您写的一样:

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