OCL — различия между версиями
Admin (обсуждение | вклад) м |
Admin (обсуждение | вклад) м (→Функции) |
||
Строка 9: | Строка 9: | ||
# навигация по элементам модели (классам, атрибутам, ассоциациям); | # навигация по элементам модели (классам, атрибутам, ассоциациям); | ||
# задание условий и ограничений на элементы модели. | # задание условий и ограничений на элементы модели. | ||
+ | |||
+ | == Альтернативы == | ||
+ | * Schematron (но только для XML-деревьев, для [[MOF]] и [[XMI]] не подойдёт) | ||
+ | * Alloy | ||
+ | * NL2OCL | ||
[[Категория:Языки]] | [[Категория:Языки]] |
Текущая версия на 22:31, 6 апреля 2017
Object Constraint Language (OCL, объектный язык ограничений) - это текстовый язык, который служит для определения ограничений и запросов. Он не предназначен для написания действий или выполнимого кода. OCL предназначен для создания навигационных выражений, логических и прочих запросов. Его можно использовать для описания ограничений, сторожевых условий, действий, пред- и постусловий, формальных утверждений и прочих выражений, принятых в языке UML.
Любое выражение OCL возвращает некоторое значение, при этом средствами OCL невозможно изменять ни диаграммы классов UML, ни значения атрибутов классов. OCL не является языком программирования в обычном смысле и не предназначен для управления логикой функционирования модели.
UML диаграммы, такие как диаграммы классов, обычно не достаточно прозрачны для определения всех аспектов описания. Существует необходимость в описании дополнительных ограничений на объекты в данной модели. Такие ограничения часто определены на обычном языке. Практика показала, что это всегда даёт результат в случае двусмысленности. Формальные языки были созданы как раз для описания двусмысленных ограничений. Неудобство традиционных формальных языков в том, что они могут быть использованы только людьми хорошей математической базой, но сложны для обычных разработчиков приложений. OCL был разработан для избежания этого неудобства. Это формальный язык на котором легко писать и легко читать. Он был разработан, как язык для бизнес-моделирования отделении IBM Insurance, и имеет свои начала в методе Syntropy.
Функции
Язык OCL играет чрезвычайно важную роль, выполняя следующие основные функции:
- навигация по элементам модели (классам, атрибутам, ассоциациям);
- задание условий и ограничений на элементы модели.