1.9. Общие механизмы UML 41
UML определяет Объектный язык ограничений (Object Constraint Lan
guage, OCL) как стандартное расширение. Введение в OCL изложено
вглаве 25.
1.9.4.2. Стереотипы
Стереотипы позволяют определять новые элементы модели.
В книге «The UML Reference Manual» [Rumbaugh 1] утверждается:
«Стереотип представляет разновидность существующего элемента мо
дели, имеющего ту же форму (например, атрибуты и отношения), но
другое назначение».
Стереотипы позволяют создавать новые элементы модели на основании
существующих. Для этого к имени нового элемента добавляется имя
стереотипа во французских кавычках («…»). Число стереотипов каждо
го элемента модели может изменяться от нуля до некоторого значения.
Каждый стереотип может определять ряд помеченных значений и ог
раничений, которые применяются к элементу, помеченному стереоти
пом. Также со стереотипом можно ассоциировать пиктограмму, цвет
или текстуру. Обычно следует избегать применения цвета или тексту
ры в моделях UML, поскольку у некоторых читателей (например,
дальтоников) могут возникнуть сложности с восприятием диаграмм.
Кроме того, зачастую диаграммы распечатываются в чернобелом ва
рианте. Обычно со стереотипом ассоциируют новую пиктограмму. Это
позволяет контролировать расширение системы графических изобра
жений UML.
Поскольку стереотипы вводят новые элементы модели с иным назна
чением, гдето должна быть определена семантика этих элементов.
Как это сделать? Если инструмент моделирования не предоставляет
встроенную поддержку документирования стереотипов, большинство
разработчиков моделей просто помещают примечание в модель или
вставляют ссылку на внешний документ, в котором описываются сте
реотипы. В настоящее время поддержка стереотипов инструментами
моделирования не выполняется безоговорочно – большинство инстру
ментальных средств поддерживают стереотипы в той или иной степе
ни, но не все из них предоставляют возможность записи семантики.
С помощью элемента класс (глава 7) со специальным предопределен
ным UMLстереотипом «стереотип» можно самостоятельно моделиро
вать стереотипы. При этом создается метамодель вашей системы сте
реотипов. Это метамодель, потому что она является моделью элемен
тов модели и находится на совершенно другом уровне абстракции, чем
обычная UMLсистема или бизнесмодели. Метамодель ни в коем слу+
чае нельзя объединять с обычными моделями. Она всегда должна на
ходиться в отдельной модели. Создавать новую модель, предназначен
ную исключительно для стереотипов, имеет смысл, только если стерео