Введение в UML. Обзор UML. Зачем нужно использовать платформу J2EE и язык XJML совместно. Проблемы моделирования J2EE в UML, страница 5

·  Компоненты JSP логически имеют гибридный характер, сочетающий аспекты как клиента, так и сервера.

Учитывая требование создавать более высококачественное программное обеспечение за меньшее время, еще одной целью в моделировании J2EE должна быть достаточная точность моделирования, чтобы средства языка UML могли обработать модель и использовать дополнительные возможности платформы J2EE.

Механизмы расширения в языке UML

Мы совершенно уверены, что создатели UML не имели в виду платформу J2EE, когда работали над этой технологией. К счастью для нас, они обладали достаточной степенью предвидения, чтобы понять, что для долговременного признания технология UML должна быть способна развиваться и приспосабливаться к новым языкам и конструкциям.

Язык UML содержит три механизма расширения своих возможностей: стереотипы, меченые значения и ограничения.

Стереотипы

Стереотип (stereotype) позволяет создавать новые, все более отличающиеся от исходных модельные элементы путем изменения семантики существующего модельного элемента UML. В сущности, это приводит к добавлению в язык UML нового словаря.

В UML стереотипный модельный элемент представляется базовым модельным элементом, идентифицируемым строкой текста, заключенной в фигурные кавычки (« »). Эти кавычки могут также изображаться парой знаков "больше" и "меньше" (« и >>).

Стереотипы весьма часто применяются в обычном моделировании на языке UML. Если это способствует ясности, очень желательно создавать стереотипы для понятий и конструкций модели. Например, в самом UML отношения extend (расширение) и include (включение) описываются через стереотипы <<extend>> и <<include>>.

Можно определить стереотип для использования с любым модельным элементом. Например, стереотипы могут использоваться с ассоциациями, классами, операциями и т.д. Пример стереотипа показан на рис. 3.1. При необходимости стереотип может отображаться в виде значка, как показано на рис. 3.2. Следует заметить, что рис. 3.1 и 3.2 эквивалентны. Изображение в виде значков широко используется в этой книге.

Меченые значения

Обычно с модельными элементами языка UML связаны свойства. Например, у класса есть имя. С помощью меченого значения (tagged value) можно определить и связать с модельным элементом новое свойство, чтобы добавить в этот элемент дополнительную информацию.

Меченое значение определяется как пара метки и значения в следующем формате: {метка=значение}. Например, у конструкции UML "класс" есть имя, но обычно нет возможности указать автора класса. Чтобы присоединить к модельному элементу "класс" имя автора, можно воспользоваться меченым значением {author=Khawar}.

Пример меченого значения показан на рис. 3.3.

Ограничения

Как следует из названия, ограничение (constraint) в UML позволяет определять ограничения и отношения, которые не могут быть выражены иначе. Ограничения хорошо подходят для указания правил, как можно или как нельзя строить модель.

Ограничение выражается как строка текста, заключенная в фигурные скобки, например {constraint}.

К примеру, если важен порядок ассоциаций в группе связанных классов, можно наложить на каждую ассоциацию ограничение, чтобы ясно выделить ее порядок в отношении. Пример ограничения показан на рис. 3.4.

Одно дело — иметь возможность что-то сделать, и совершенно другое — действительно сделать это. Главное для языка UML — это дать общий словарь, и поэтому введение по любому поводу в язык расширений противоречит как цели, так и духу UML.