В языке UML нет четких границ между различными концепциями и конструкциями, а в целях удобства они делятся на несколько представлений. Представление модели – это подмножество конструкций, изображающих один из аспектов моделируемой системы. На самых высоких уровнях абстракции различают три основных области представлений:
· структурная классификация,
· динамическое поведение,
· управление моделью.
Структурная классификация описывает системные сущности и их отношения между собой. Классификатором называется элемент модели, который что-либо описывает. Существует несколько видов основных классификаторов: классы, интерфейсы и типы данных. Поведение описывается другими классификаторами, такими как варианты использования и сигналы. Еще несколько видов классификаторов – подсистемы, компоненты и узлы – описывают аспекты реализации системы (понятие компонента дано выше, а под узлом понимается компьютерный ресурс, который определяет местонахождение исполняемых компонентов и объектов). Классификаторы являются базой, на которой строится динамическое поведение системы. К представлениям классификации относятся статическое представление, представление вариантов использования, представление программной реализации и представление развертывания.
Динамическое поведение описывает поведение системы во времени. Поведение можно определить как ряд изменений в мгновенных снимках системы, полученных со статической точки зрения. Представления моделей динамического поведения включают в себя представление конечных автоматов, представление деятельности и представление взаимодействия.
Представление управления моделью – это описание разбиения модели на иерархические блоки. Групповой организационный блок называется пакетом. Отдельные пакеты включают модели и подсистемы. Представление управления моделью организует все остальные представления моделей.
В табл. № 1 приведены представления модели, используемые в языке UML, а также относящиеся к ним концепции и диаграммы. К ней нужно относиться не как к набору готовых правил, а как к общим указаниям по использованию языка, поскольку четких границ между представлениями нет.
Кооперация, взаимодействие, роль в кооперации, сообщение
Управление моделью
Представление управления моделью
Диаграмма классов
Пакет, подсистема, модель
Все представления модели делятся на логические, отражающие логику функционирования системы, и физические, отражающие структуру реализации программного приложения, включая разбиение программы на компоненты и развертывание ее на аппаратных узлах. Представление реализации и представление развертывания являются физическими представлениями, а все остальные представления являются логическими. Несколько различных представлений одной и той же модели могут существовать параллельно, при этом их элементы будут взаимосвязаны.
Статическое представление модели описывает концепции предметной области системы, а также внутренние концепции, необходимые для ее реализации. Его элементами являются все понятия, существенные для данной системы. Статическое представление модели отражает структуру объектов, а также операции над ними, так как с объектно-ориентированной точки зрения данные и их поведение тесно связаны между собой. Это представление описывает сущности, обладающие определенным поведением, в виде отдельных элементов модели, но при этом не передает информацию о динамическом поведении этих сущностей. Они рассматриваются как некие понятия, у которых есть имя, класс, которому они принадлежат, и методы обращения с ними. Статическое представление изображается на диаграммах классов, в которых основной акцент сделан именно на описании классов и их взаимоотношений. Класс можно описывать с разной степенью детализации. На ранней стадии проектирования модель отражает только логические аспекты системы. В процессе дальнейшей работы в модель вносится информация о различных проектных решениях и деталях реализации системы. Статическое представление - основа языка UML. Оно является центром, вокруг которого строятся все остальные представления модели.
В представлении вариантов использования описывается функционирование системы с точки зрения ее пользователей, которые называются актантами (actors). Вариант использования – это связный функциональный блок, выраженный в виде транзакции между актантом и системой. Назначение представления вариантов использования – выявить всех актантов системы и все варианты ее использования, а также указать, какие актанты в каких вариантах использования фигурируют. Варианты использования также допускают различные уровни детализации. Сложные варианты использования можно разбить на несколько простых составляющих. В моделях взаимодействия варианты использования реализуются как кооперации.
Представление реализации показывает, какие компоненты имеются в программной системе и какие между ними существуют зависимости. Понимание зависимостей между компонентами дает возможность отслеживать на модели результаты изменений в отдельных компонентах.
Представление развертывания отражает расположение работающих компонентов на узлах. Это представление служит для изображения распределения ресурсов и их размещения.
Представление в виде конечного автомата описывает возможные жизненные циклы объекта и состоит из состояний, соединенных переходами. Каждое состояние – это такой период жизненного цикла объекта, когда он удовлетворяет определенным условиям. Некоторое событие может привести к переходу, в результате которого объект окажется в новом состоянии. При переходе может выполняться действие, предписанное данному переходу.
Представление деятельности является вариантом конечного автомата, в котором показаны длительные вычислительные деятельности. Деятельность представляет собой поток работ или выполнение операций. Представление деятельности отображает как последовательные, так и параллельные деятельности.
Представление взаимодействия описывает последовательность обмена сообщениями между ролями, которые реализуют поведение системы. Различают два вида ролей: роль классификатора и роль в ассоциации. Роль классификатора – это описание объектов, которые могут принимать участие в конкретной кооперации. Роль в ассоциации – это описание связей, которые могут принимать участие в данной кооперации. Под кооперацией понимается описание нескольких объектов, которые взаимодействуют между собой для реализации определенного поведения. Представление взаимодействия отражает целостное поведение системы, т.е. показывает потоки управления между объектами.
Представление управления моделью определяет внутреннюю организацию модели. Любая модель состоит из набора пакетов, содержащих ее элементы: классы, конечные автоматы и варианты использования. Одни пакеты могут включать в себя другие пакеты, поэтому модель должна иметь начальный корневой пакет, в котором содержится информация обо всей модели. Пакетами называются блоки для манипуляций содержимым модели, а также для осуществления контроля доступа к ее конфигурации. Каждый элемент модели принадлежит какому-либо пакету или другому элементу модели. Особым видом пакетов является подсистема. Подсистемой называется часть системы, обладающая четким интерфейсом, который может быть реализован как отдельный компонент.