Мне известно следующее:
- OCL — это язык ограничений, который указывает ограничения на мои модели диаграмм классов.
- Я знаю, что в мире OMG для диаграмм классов есть 3 уровня моделей: M1 (модель), M2 (мета-мода), M3 (мета-мета-модель)
- M3: определяет, что такое диаграмма классов и из чего она состоит.
- M2: метамодель моей проблемы/области (например, метамодель полки с книгами)
- M3: экземпляр модели (например, полка с двумя определенными книгами)
Что я хотел бы знать:
- Существует ли общая метамодель для диаграмм классов и OCL; в основном то, что определяет отношения между элементами модели и ограничениями
- Я полагаю, это должно быть как-то определено на уровне M1
Я спрашиваю, потому что:
- Я хотел бы определить метамодель для языка ограничений (облегченного OCL), которая позволила бы мне рассуждать об элементах моей модели (книги на полке).
- Как мне связать метамодели моей области и моего языка ограничений?