# UML
**Унифицированный язык моделирования** (UML) в настоящий момент является стандартом де-факто при описании (документирования) результатов проектирования и разработки объектно-ориентированных систем. Начало разработки UML было положено в 1994 г. Гради Бучем и Джеймсом Рамбо, работавшим в компании Rational Software. Осенью 1995 г. к ним присоединился Ивар Якобсон и в октябре того же года была выпущена предварительная версия 0.8 унифицированного метода. С этого времени было выпущено несколько версий спецификации UML.
## Нотация UML
Нотация представляет собой графическую интерпретацию семантики для ее визуального представления.
В UML определено три **типа сущностей**:
- структурная – абстракция, являющаяся отражением концептуального или физического объекта;
- группирующая – элемент, используемый для некоторого смыслового объединения элементов диаграммы;
- поясняющая (аннотационная) – комментарий к элементу диаграммы.
**Диаграмма** представляет собой группировку элементов нотации для отображения некоторого аспекта разрабатываемой информационной системы. Диаграммы представляют собой, как правило, связный граф, в котором сущности являются вершинами, а отношения – дугами. В следующей таблице дана краткая характеристика диаграмм UML:
Диаграмма | Назначение
----------|-----------
[Вариантов использования](../articles/5_1_1_10_uml_use_case.md)
(use case) | Отображает функции системы, взаимодействие между актерами и функциями
[Классов](../articles/uml_class.md)
(class) | Отображает набор классов, интерфейсов и отношений между ними
Пакетов
(package) | Отображает набор пакетов и отношений между ними
Автоматов
(state machine) | Отображает состояния сущности и переходы между ними в процессе ее жизненного цикла
[Деятельности](../articles/uml_activity.md)
(activity) | Отображает бизнес-процессы в системе (описание алгоритмов поведения)
[Последовательности](../articles/uml_sequence.md)
(sequence) | Отображает последовательность передачи сообщений между объектами и актерами
[Коммуникации](../articles/uml_communication.md)
(communication) | Аналогична диаграмме последовательности, но основной акцент делается на структуру взаимодействия между объектами
Компонентов
(component) | Отображает компоненты системы (программы, библиотеки, таблицы и т.д.) и связи между ними
Развертывания
(deployment) | Отображает размещение компонентов по узлам сети, а также ее конфигурацию
Часть диаграмм после их построения требует развития и уточнения в рамках разработки следующей модели (технологического процесса). Так, например, диаграммы вариантов использования должны быть уточнены при разработке модели анализа. В моделях вариантов использования и анализа разрабатывается и уточняется диаграмма классов анализа, а в модели проектирования – итоговая детализированная диаграмма классов. Как правило, диаграмма классов анализа и диаграмма классов существуют независимо.