Я столкнулся с парой вопросов о выражениях OCL. После прочтения некоторых университетских слайдов и поиска в Google я все еще не могу правильно понять.
Интересно, знают ли вы, ребята, какие-нибудь хорошие ресурсы, которые я должен прочитать, чтобы разобраться в этом.
Ограничения, которые меня беспокоят:
- Все работающие в отделе имеют одного и того же менеджера.
- Никто в компании не является его менеджером.
- Никто в компании не зарабатывает больше, чем его менеджер.
Для 1-го у меня есть:
отдел контекста
inv self.stuff -> forAll (manager = self.staff.manager)
2-й:
context Компания
inv self.employee -> select (manager = manager.manager) -> isEmpty ()
3-й:
context Компания
inv self.employee -> select (salary> manager.salary) -> isEmpty ()
но я не думаю, что это правильно. Больше всего я не уверен, сравниваю ли я в примерах 2 и 3 отдельных сотрудников с их реальной зарплатой менеджера / менеджера.