Ограничения OCL и правила деривации - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю с этой моделью UML

enter image description here

знаете ли вы, как я мог получить фильм с контентом для взрослых, который можно продать толькоКлиент, у которого есть более 18?Я попробовал это выражение:

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

1 Ответ

0 голосов
/ 05 декабря 2018

Вы можете получить adultContent Film s, вызвав

Film.allInstances()->select(adultContent)

.age >= 18 не имеет значения, поскольку Film.adultContent закрывает его.Или вы можете проверить, что ваша модель соответствует инварианту во многом, как вы написали после исправления опечаток, как уже прокомментировано:

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

.

...