OCL — различия между версиями

м
м (Функции)
 
Строка 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 играет чрезвычайно важную роль, выполняя следующие основные функции:

  1. навигация по элементам модели (классам, атрибутам, ассоциациям);
  2. задание условий и ограничений на элементы модели.

Альтернативы

  • Schematron (но только для XML-деревьев, для MOF и XMI не подойдёт)
  • Alloy
  • NL2OCL