На этом шаге рассмотрим ограничения в UML.
Все элементы UML обладают определенной семантикой. Обобщения, как правило, воплощают принцип подстановки Лискова, а множественные ассоциации, соединенные с одним классом, символизируют различные связи. Благодаря ограничениям вы можете добавить новую семантику к существующим правилам. Ограничения (constraints) определяют условия, которым должна удовлетворять система времени исполнения, чтобы соответствовать модели.
Например, вам надо показать, что взаимодействие по некоей ассоциации должно быть безопасным (рис. 1); конфигурации, нарушающие это ограничение, не соответствуют модели. Аналогичным образом вы можете указать, что определенный экземпляр может иметь связь только с одной из множества ассоциаций, соединенных с неким классом.
Рис.1. Пример ограничений в UML
Ограничения могут быть записаны в виде текста произвольного формата. Если вы хотите специфицировать вашу семантику более точно, можете использовать язык объектных ограничений UML (Object Constraint Language – OCL).
Ограничения представлены строками, заключенными в фигурные скобки и помещенными рядом с ассоциированным элементом. Эта нотация применяется и для дополнения базовой нотации элемента с целью изображения спецификаций элемента, допускающих графическое представление. Например, некоторые свойства ассоциаций (порядок и изменчивость) изображаются с помощью ограничений.
На следующем шаге рассмотрим стандартный стереотип в UML.