Общая структура языка UML
В связи с этим стало практически невозможным последовательное рассмотрение основных конструкций языка UML, т. к. одни и те же понятия могут использоваться при построении различных диаграмм или представлений. В то же время каждое из представлений модели обладает собственными семантическими особенностями, которые накладывают отпечаток на семантику базовых понятий языка в целом.
За свою недолгую историю язык UML претерпел определенную эволюцию, в результате которой описание языка стало нетривиальным, поскольку семантика базовых понятий включает в себя целый ряд перекрестных связей с другими понятиями и конструкциями языка.
С самой общей точки зрения описание языка UML состоит из двух взаимосвязанных и дополняющих друг друга частей:
· Семантика языка UML. Представляет собой метамодель, определяющую абстрактный синтаксис и семантику понятий объектного моделирования на UML.
· Графическая нотация языка UML. Представляет собой систему обозначений для визуального представления элементов языка на UML-диаграммах.
Семантика языка определяется для двух категорий объектных моделей: структурных моделей и моделей поведения.
· Структурные (статические) модели описывают структуру сущностей или компонентов некоторой системы, включая их классы, интерфейсы, атрибуты и отношения.
· Модели поведения (динамические) описывают поведение или функционирование объектов системы, включая их методы, взаимодействие и сотрудничество между ними, а также процесс изменения состояний отдельных компонентов и системы в целом.
Язык UML имеет довольно сложную структуру, которая включает в себя более двух сотен элементов, используемых для описания моделей: порядка 90 метаклассов, более 100 метаассоциаций и почти 50 стереотипов, число которых возрастает с появлением новых версий языка. Чтобы справиться с этой сложностью языка UML, все его элементы организованы в логические блоки – так называемые пакеты.
Пакет – основной способ организации элементов модели в языке UML. Каждый пакет владеет всеми включенными в него элементами, при этом каждый элемент может принадлежать только одному пакету.
Для графического изображения пакетов на диаграммах применяется специальный графический символ – большой прямоугольник с небольшим прямоугольником, присоединенным к левой части верхней стороны первого (рисунок 2). Внутри большого прямоугольника может записываться информация, относящаяся к данному пакету. Если такой информации нет, то внутри большого прямоугольника записывается имя пакета, которое должно быть уникальным в пределах рассматриваемой модели. Если же такая информация имеется, то имя пакета записывается в верхнем маленьком прямоугольнике.
Рисунок 2 - Графическое изображение пакета в языке UML
Перед именем пакета может помещаться строка текста, содержащая некоторое ключевое слово. Подобными ключевыми словами являются заранее определенные в языке UML слова, которые получили название стереотипов. Такими стереотипами для пакетов являются слова facade, framework, stub и topLevel.
В качестве содержимого пакета могут выступать имена его отдельных элементов и их свойства, такие, например, как видимость элементов за пределами пакета. Как видим, пакеты содержат лишь информацию о входящих в их состав элементах модели.
Между пакетами может быть задано иерархическое отношение вложенности: подчиненные пакеты ("подпакеты") могут быть вложены в другие пакеты ("метапакеты" или "контейнеры") - в этом случае все элементы подпакета будут принадлежать метапакету.
Как и в теории графов, для визуализации отношений в языке UML применяются отрезки линий, внешний вид которых имеет определенное смысловое содержание.
На рисунке 3 показано графическое изображение вложенности пакетов. Контейнер "Пакет_1" изображается в верхней части рисунка, а его подпакеты "Пакет_2" и "Пакет_3" – уровнем ниже. Контейнер соединяется с подпакетами сплошной линией, на конце которой, примыкающей к Контейнеру, изображается специальный символ Å. Этот символ означает, что подпакеты являются "собственностью" или частью контейнера, и, кроме этих подпакетов, контейнер не содержит никаких других подпакетов.
Рисунок 3 – Графическое изображение вложенности пакетов
Это же отношение между пакетами может быть изображено и без использования линий - простым размещением одного пакета-прямоугольника внутри другого пакета-прямоугольника (рисунок 4).
Рисунок 4 – Другой вариант графического изображения вложенности пакетов