### 6. Интегрированная модель системы в нотации UML

Канонический набор диаграмм языка UML

Особенности изображения диаграмм языка UML

Правила графического изображения диаграмм

Рациональный унифицированный процесс

Контрольные вопросы

### Канонический набор диаграмм языка UML

В рамках языка UML все представления о модели системы фиксируются в виде специальных графических конструкций, получивших название диаграмм. В терминах языка UML определены следующие виды диаграмм (РИСУНОК):

- Диаграмма вариантов использования (use case diagram)
- Диаграмма классов (class diagram)
- Диаграммы поведения (behavior diagrams)

- Диаграмма состояний (statechart diagram)
- Диаграмма деятельности (activity diagram)
- Диаграммы взаимодействия (interaction diagrams)

- Диаграмма последовательности (sequence diagram)
- Диаграмма кооперации (collaboration diagram)

- Диаграммы реализации (implementation diagrams)

- Диаграмма компонентов (component diagram)
- Диаграмма развертывания (deployment diagram)

В качестве самостоятельных представлений в языке UML используются следующие диаграммы:

1. Диаграмма вариантов использования — для моделирования основных процессов предметной области и требований к создаваемой системе;
2. Диаграмма классов — для моделирования статической структуры классов системы и отношений между ними;
3. Диаграмма состояний — для моделирования поведения объектов системы при переходе из одного состояния в другое;
4. Диаграмма деятельности — для моделирования поведения системы в рамках различных вариантов использования, или моделирования деятельностей объектов системы;
5. Диаграмма последовательности — для моделирования последовательности действий и обмена сообщениями между объектами
6. Диаграмма кооперации — для более наглядного моделирования процесса обмена сообщениями между объектами;
7. Диаграмма компонентов — для моделирования иерархии компонентов (подсистем) проектируемой системы;
8. Диаграмма развертывания — для моделирования физической архитектуры системы.

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

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

Диаграмма классов является, по своей сути, логической моделью, отражающей статические аспекты структурного построения сложной системы.

Диаграммы поведения также являются разновидностями логической модели, которые отражают динамические аспекты функционирования сложной системы.

Диаграммы реализации служат для представления физических компонентов сложной системы и поэтому относятся к ее физической модели.

### Особенности изображения диаграмм языка UML

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

Для диаграмм языка UML существуют три типа визуальных обозначений, которые важны с точки зрения заключенной в них информации:

- Связи, которые представляются различными линиями (со стрелками или без) на плоскости. Связи в языке UML обобщают понятие дуг и ребер из теории графов, но имеют менее формальный характер.
- Текст, который содержится внутри границ отдельных геометрических фигур на плоскости. При этом форма этих фигур (прямоугольник, эллипс) соответствует некоторым элементам языка UML (класс, вариант использования и т.д.) и имеет фиксированную семантику.
- Графические символы, изображаемые вблизи от тех или иных визуальных элементов диаграмм.

В языке UML используется четыре основных вида графических конструкций:

- Значки или пиктограммы. Графические фигуры фиксированного размера и формы. Они не могут увеличивать свои размеры, чтобы разместить внутри себя дополнительные символы. Значки могут размещаться как внутри других графических конструкций, так и вне их. Например, окончания связей элементов диаграмм или некоторые другие дополнительные обозначения (украшения).
- Графические символы на плоскости. Двумерные символы, изображаются с помощью некоторых геометрических фигур и могут иметь различную высоту и ширину с целью размещения внутри этих фигур других конструкций языка UML. Наиболее часто внутри таких символов помещаются строки текста, которые уточняют семантику или фиксируют отдельные свойства соответствующих элементов. Информация, содержащаяся внутри фигур, имеет важное значение для конкретной модели проектируемой системы, поскольку регламентирует реализацию соответствующих элементов в программном коде.
- Пути, которые представляют собой последовательности из отрезков линий, соединяющих отдельные графические символы. При этом концевые точки отрезков линий должны обязательно соприкасаться с геометрическими фигурами, служащими для обозначения вершин диаграмм, как принято в теории графов. С концептуальной точки зрения путям в языке UML придается особое значение, поскольку они являются простыми топологическими сущностями. С другой стороны, отдельные части пути или сегменты могут не существовать сами по себе вне содержащего их пути. Пути всегда соприкасаются с другими графическими символами на обеих границах соответствующих отрезков линий.
- Строки текста. Служат для представления различных видов информации в некоторой грамматической форме. Предполагается, что каждое использование строки текста должно соответствовать синтаксису в нотации языка UML.

### Правила графического изображения диаграмм

При графическом изображении диаграмм следует придерживаться следующих основных рекомендаций:

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

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

### Рациональный унифицированный процесс

Процесс построения отдельных типов диаграмм имеет свои особенности, которые тесно связаны с семантикой элементов этих диаграмм. Сам процесс ООП в контексте языка UML получил специальное название — рациональный унифицированный процесс (Rational Unified Process, RUP). Концепция RUP и основные его элементы разработаны А. Джекобсоном в ходе его работы над языком UML.

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

1 этап. Строятся логические представления статической модели структуры системы,

2 этап. Строятся Логические представления модели поведения,

3 этап. Строятся физические представления модели системы.

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

### Контрольные вопросы

1. Перечислите канонический набор диаграмм UML.
2. Перечислите правила графического изображения текстов на диаграммах UML.
3. Перечислите основные компоненты диаграмм UML?
4. Каковы основные отличия между разновидностями диаграммам поведения UML?
5. Что представляет собой рациональный унифицированный процесс?