Ограничения
Каждый элемент языка UML имеет свою семантику. В обобщениях используется принцип подстановки Лискова; множественные ассоциации, связанные с одним классом, обозначают разные отношения. С помощью ограничений можно создавать новую семантику или изменять существующие семантические правила. Ограничение определяет условия, которые должны выполняться, чтобы модель была хорошо оформлена. Например, на рис. 6.7 показано, как отразить тот факт, что информация, передаваемая вдоль данной ассоциации, зашифрована. Аналогично можно специфицировать, что из совокупности ассоциаций только одна про- -является в данный момент времени. При моделировании систем реального времени часто используются временные и пространственные ограничения (см. главу 23).
Рис. 6.7 Ограничение
Примечание: Ограничения могут записываться в свободном формате. Если надо определить семантику более точно, следует воспользоваться входящим в состав UML языком объектных ограничений (Object Constraint Language, OCL). Более подробно он описывается в книге "The Unified Modeling Language Reference Manual". Предопределенные в UML ограничения рассмотрены в "Приложении В".
Ограничение изображается в виде строки в фигурных скобках, расположенной рядом с соответствующим элементом. Эта нотация также используется как дополнение к базовой нотации элемента для визуального представления тех частей его спецификации, которые не имеют графического образа. Например, с помощью нотации ограничений изображаются некоторые свойства ассоциаций (порядок и изменяемость). Ограничение можно присоединять сразу к нескольким элементам с помощью отношений зависимости (см. главу 5).
Приведенные ниже ограничения определены как стандартные элементы UML. Для каждого помеченного значения в таблице указывается имя, символ UML, к которому оно применимо, и назначение.
В большинстве случаев ограничение размещается рядом с элементом и заключается в фигурные скобки, например {complete}. Можно изображать ограничение и по-другому - помещая в примечание, соединенное с элементом зависимостью.
Ограничение | Символ, к которому оно применимо | Назначение (о чем говорит данное ограничение) |
complete | Обобщение (generalization) | В модели специфицированы все потомки в данном обобщении (хотя некоторые могут быть скрыты на диаграммах), и дополнительных потомков определять не разрешается |
destroyed | Экземпляр (instance), связь (link) | Экземпляр или связь уничтожаются до завершения выполнения объемлющего взаимодействия |
disjoint | Обобщение (generalization) | Объекты данного родителя могут иметь не более одного заданного потомка в качестве типа |
implicit | Ассоциация (association) | Отношение является не явно выраженным, а концептуальным |
incomplete | Обобщение (generalization) | Специфицированы не все потомки в обобщении (учитывая и скрытых). Разрешается определять дополнительных потомков |
new | Экземпляр (instance), связь (link) | Экземпляр или связь создаются в процессе выполнения объемлющего взаимодействия |
or | Ассоциация (association) | Из множества ассоциаций ровно одна является явно выраженной для каждого ассоциированного объекта |
overlapping | Обобщение (generalization) | Объекты данного родителя могут иметь более одного заданного потомка в качестве типа |
transient | Экземпляр (instance), связь (link) | Экземпляр или связь создаются в процессе выполнения объемлющего взаимодействия, но уничтожаются до его завершения |
[Предыдущая глава]
[Содержание]
[Следующая глава]