Перейти к содержанию

Занятие 2#

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

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

Внутренности макетной платы

Если бы все могли общаться на одном универсальном, однозначном и понятным для всех участников языке, то это бы упростило весь процесс... И оказывается такой язык есть!

Что такое UML#

UML (Unified Modeling Language, Унифицированный Язык Моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения, который также можно применять для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.

Note

UML (Unified Modeling Language) — это унифицированный язык моделирования в бизнес-среде и рабочих процессах. Он помогает визуализировать сложные понятия, многосоставные системы, изображать их в виде понятных схем. По схемам участники команды — продакты, аналитики, программисты — говорят… вернее, видят на одном языке и понимают друг друга без погружения в код.

UML вообще не привязан к языкам программирования. Команда может кодить на Java, Python, C# — всё равно. Более того, ни языка программирования, ни программирования вовсе может не быть. Поэтому UML используют в разных сферах — не только в разработке.

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

Вот пример последовательности действий клиента (пользователя) в интернет-магазине:

Внутренности макетной платы

Расшифровка аббревиатуры UML:#

  • U — Unified (Унифицированный)
    Большой набор элементов, входящих в нотацию, позволяет покрывать много задач на этапе анализа и проектирования.
    Ещё одна версия происхождения этого слова кроется в том, что нотация объединила в себе несколько разнородных нотаций, существовавших ранее.

  • M — Modeling (Моделирование)
    Создание диаграмм заключается в разработке моделей, содержащих наполненные информацией и связанные между собой графические объекты.

  • L — Language (Язык)
    UML является искусственным языком и обладает свойствами языка:

  • словарь (графические символы),
  • семантика (смысловые значения элементов),
  • синтаксис (правила построения конструкций).
    В нотацию также заложена возможность генерации кода из графической модели и генерация моделей из кода.

UML позволяет моделировать как верхнеуровневые бизнес-процессы, так и низкоуровневые процессы, происходящие внутри информационной системы.

История возникновения UML#

Внутренности макетной платы

UML (Unified Modeling Language) появился в 1990-х годах как результат стремления стандартизировать и унифицировать существующие методы объектно-ориентированного моделирования.

До появления UML существовало множество различных нотаций и методологий, таких как:
- методология OMT (Object Modeling Technique) Джеймса Рамбо,
- Booch method Гради Буча,
- OOSE (Object-Oriented Software Engineering) Ивара Якобсона.

Эти методы широко применялись в промышленности, но имели разные обозначения и нотации, что затрудняло понимание, совместную работу и обучение.

Внутренности макетной платы

В середине 1990-х годов Гради Буч, Джеймс Рамбо и Ивар Якобсон начали сотрудничать в компании Rational Software, чтобы объединить свои лучшие практики. Их целью было создание единой, универсальной нотации, которая могла бы охватывать весь жизненный цикл программного обеспечения — от анализа требований до реализации и поддержки.

Этот объединённый язык получил название UML. Впервые он был представлен в 1997 году, когда OMG (Object Management Group) утвердила UML как официальный стандарт.

После принятия UML как стандарта, он продолжал развиваться:
- UML 1.x включал базовые типы диаграмм и элементы моделирования.
- UML 2.0 (выпущен в 2005 году) значительно расширил возможности языка, добавив новые типы диаграмм, улучшенную архитектуру и поддержку более сложных систем.

Язык постоянно развивается, появляются новые элементы для моделирования более сложных систем. Актуальная сейчас версия нотации — UML 2.5.1 (на июнь 2025 года); новости и рекомендации можно найти на официальном сайте UML.org.

Каким бывают UML-диаграммы#

Нотация известна тем, что в неё входит много различных видов диаграмм:

Внутренности макетной платы

Структурные диаграммы UML. Описывают систему статически#

Диаграмма Описание
Диаграмма классов (Class Diagram) Описывает систему в виде набора классов со свойствами, доступными методами и взаимосвязями между классами.
Диаграмма объектов (Object Diagram) Является экземпляром диаграммы классов и показывает конкретные значения свойств классов.
Диаграмма пакетов (Package Diagram) Описывает взаимосвязи пакетов. Пакет — группа классов, объединенных для упрощения сложной диаграммы классов.
Диаграмма компонент (Component Diagram) Описывает архитектуру компонентов (сервисы, интерфейсы, приложения и т.д.) и зависимости между ними.
Диаграмма развертывания (Deployment Diagram) Описывает архитектуру системы с точки зрения ее развертывания на физическом уровне.
Диаграмма профилей (Profile Diagram) Описывает пользовательские стереотипы и ограничения, применяемые к моделям.
Диаграмма композитной структуры (Composite Structure Diagram) Описывает внутреннюю структуру классов и взаимодействие элементов класса между собой.

Структурные диаграммы UML. Описывают систему динамически#

Диаграмма Описание
Диаграмма прецедентов (Use Case Diagram)
Употребляется также термин «Диаграмма вариантов использования»
Описывает набор функциональности (прецедент), доступной акторам (внешним для системы сущностям, например, пользователям).
Диаграмма деятельности (Activity Diagram) Описывает рабочий процесс внутри каждого прецедента.
Диаграмма состояний (State Machine Diagram) Описывает состояния, в которых может находиться каждый объект, и правила перехода из одного состояния в другое.
Диаграммы взаимодействия:
— Диаграмма последовательности (Sequence Diagram) Описывает логику взаимодействия и обмена данными между объектами в рамках прецедента в хронологическом порядке.
— Диаграмма коммуникации (Communication Diagram) Описывает логику взаимодействия и обмена данными между объектами в рамках прецедента. Схожа с sequence diagram, но без раскрытия хронологического порядка.
— Диаграмма синхронизации (Timing Diagram) Описывает как объекты ведут себя на временной шкале без отображения взаимосвязей между объектами.
— Диаграмма обзора взаимодействия (Interaction Overview Diagram) Описывает процесс взаимодействия объектов. Похожа на activity diagram, но более высокоуровневую, где каждый узел — другая диаграмма взаимодействия.

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

Из чего состоят диаграммы (Нотация UML)#

Note

Нотация — это набор стандартных символов и правил для UML-диаграмм. Что-то типа азбуки, где вместо слов и букв — фигуры, линии, стрелки.
Категория Что означает Примеры диаграмм, в которых используется
Структурные Объект Диаграмма классов, компонентов, развёртывания
Поведенческие Как ведёт себя система Диаграмма активности, состояний, прецедентов
Взаимодействия Как взаимодействуют части системы Диаграммы последовательностей, коммуникаций
Архитектурные Как устроена система на уровне блоков Диаграмма компонентов, пакетов

А вот они на схеме:

Условно все элементы, которые используются в UML-диаграммах, можно разделить на три большие группы:

Внутренности макетной платы

Графические элементы — это основные строительные блоки диаграмм, такие как:
- прямоугольники (обозначают классы, компоненты и другие сущности),
- овалы (обозначают варианты использования и действия).

Связи — это разные типы линий, показывающие, как элементы связаны между собой:
- стрелки, линии с наконечниками, пунктирные линии и т.д.

Специальные обозначения — это технические метки, которые добавляют смысл:
- например, «<>» указывает, что элемент — интерфейс,
- или «1..*», обозначающее количество объектов в связи.

Warning

Один и тот же визуальный элемент может обозначать **разные вещи** в зависимости от типа диаграммы. Поэтому важно учитывать контекст.

Класс#

Класс — это типовой объект или набор объектов с общими характеристиками и поведением.
Это что-то типа шаблона для обозначения главного объекта системы.

Если у нас онлайн-магазин, то класс — это заказ.
Если у нас онлайн-школа, класс — это студент.

Внутренности макетной платы

На схеме класс изображается в виде прямоугольника из трёх частей:

  1. В верхней части написано имя класса — его название.
  2. В средней части указаны свойства — все переменные характеристики, например, ID.
  3. В нижней части перечислены доступные действия — методы, которые выполняет объект-класс.

Примеры:
- Заказ может создаваться и выполняться.
- Студент может записываться и сдавать задания.

Объект#

Это уже конкретный экземпляр класса. Типовой объект приобретает имя. Выглядит также как класс, но имя подчёркнуто. И вместо пустых значений-заглушек — конкретные свойства.

Внутренности макетной платы

Интерфейс#

Интерфейс — это список действий, которые может выполнять объект.

Чтобы понять, что такое интерфейс, представьте себе, скажем, монитор, на котором написано:

«Нажми вот эту кнопку, чтобы я включился,
а вот этот кабель вставь в девайс».

Монитору всё равно, подключите ли вы другой компьютер, системный блок или плейстейшен — важно как именно вы это сделаете.

Именно это и означает интерфейс — он описывает набор доступных операций, а не то, кто именно ими будет пользоваться.

Как это выглядит в UML?

  • В нотации UML рядом с объектом указывается пометка "Интерфейс".
  • Далее идёт список действий, которые может выполнять объект.
  • На диаграмме от объекта к интерфейсу ведёт пунктирная стрелка (реализация интерфейса).

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

Компонент#

Компонент — это крупная функциональная часть системы, логический элемент, который показывает, что делает система.

Если у нас, например, сервис или приложение для доставки, то в его составе будет несколько компонентов:

  • Библиотека — отвечает за хранение и обработку книг или товаров;
  • Каталог — управляет списком доступных товаров или услуг.

Внутренности макетной платы

Как это выглядит в UML?

  • Компонент обозначается прямоугольником с двумя маленькими прямоугольниками на одной из граней,
    либо с помощью пометки <<component>>.
  • С другими элементами он соединяется непрерывной линией с кружком на конце.

Компоненты позволяют визуализировать архитектуру системы, разделяя её на независимые функциональные блоки.

Узел#

Узел — это ещё более крупный элемент системы, который объединяет в себе компоненты.

Если компонент отвечает за то, что делает система, то узел показывает, где она это делает.

Внутренности макетной платы

Чаще всего под узлами понимают оборудование и инфраструктуру:

  • серверы,
  • базы данных,
  • другие физические или виртуальные устройства.

Как это выглядит в UML?

  • Обычно узел изображают в виде куба.

Узлы помогают визуализировать физическое размещение компонентов системы и инфраструктурную часть её архитектуры.

Юзкейс#

Конкретное применение, варианты использования, которые могут быть совершены:

  • Сделать заказ
  • Оплатить заказ
  • Войти в личный кабинет
  • Просмотреть историю заказов
  • Отменить заказ
  • Зарегистрироваться
  • Выйти из системы
  • И многие другие…

Их множество, так как система поддерживает широкий функционал.

Внутренности макетной платы

Как это выглядит в UML?

  • Вариант использования (use case) изображается овалом.
  • Внутри овала вписывается название варианта использования, например:
    «Сделать заказ», «Оплатить», «Войти в личный кабинет» и т.д.
  • Акторы, взаимодействующие с системой, изображаются в виде человечков (палочек).
  • Связи показывают, какие акторы запускают какие варианты использования.

Актор#

Действующее лицо, которое находится рядом с нашей системой, называют актором.

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

Актор — это тот, кто взаимодействует с системой и инициирует варианты использования.

Внутренности макетной платы

Изображение в диаграмме:

  • Актор рисуется в виде человечка (палочки),
  • Он расположен рядом с овалом use case, с которым взаимодействует.

Почему актор не включается в UML-диаграмму как класс или объект

Потому что в use case диаграммах мы описываем, как действует и работает система,  
а люди здесь выступают как актеры, которые взаимодействуют с системой,  
но сами по себе не являются её частью в терминах классов или объектов.

Таким образом, акторы — это внешние участники процесса, показывающие, кто и как использует систему.

Пакет#

Пакет — это способ группировки элементов системы в логические блоки.

  • Может включать в себя разные элементы:
  • объекты,
  • классы,
  • компоненты,
  • узлы и другие.

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

Внутренности макетной платы

Внешний вид пакета на диаграмме:

  • Представлен в виде прямоугольника с отогнутым верхним правым углом,
  • Внутри прямоугольника размещается название пакета,
  • А также группируются все элементы, входящие в этот пакет.

Заметка#

Поясняющая записка — это дополнительный текст, поясняющий элементы диаграммы.

  • В UML записка изображается как прямоугольник с загнутым (отогнутым) верхним правым углом,
  • Внешне напоминает стикер или страницу книги, на которой остановился читатель.

Внутренности макетной платы

Назначение:

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

Связи#

В UML-диаграммах связи показывают, как элементы взаимодействуют друг с другом.

Внутренности макетной платы

Основные виды связей на диаграммах вариантов использования (use case):

  • Ассоциация
    Показывает, что актор взаимодействует с вариантом использования.
    Изображается сплошной линией между актором и овалом use case.

  • Включение (include)
    Обозначает обязательное включение одного варианта использования в другой.
    Изображается пунктирной стрелкой с надписью «<>» от базового варианта к включаемому.

  • Расширение (extend)
    Показывает, что один вариант использования может расширять поведение другого, но необязательно.
    Изображается пунктирной стрелкой с надписью «<>» от варианта расширения к базовому.

  • Обобщение (generalization)
    Отражает наследование вариантов использования или акторов, когда один элемент является специализированной версией другого.
    Изображается сплошной линией с пустой треугольной стрелкой на сторону базового элемента.

Пример описания связей:

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

Диаграммы#

Теперь рассмотрим прримеры диаграмм из ранее рассмотренных

Диаграмма классов#

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

Наиболее популярная UML-диаграмма. Она показывает основные кирпичики системы — классы, их свойства и связи между ними. Например, при проектировании кода или в бизнесе.

Внутренности макетной платы

Понятие Описание Изображение
Класс, его атрибуты и операции Класс — сущность, фигурирующая в системе.
Атрибуты класса — свойства объектов класса.
Операция — функция над классом или его преобразование. Может иметь параметры и возвращать значения.
Класс
Связи Основные типы связей:
- ассоциация
- агрегация
- наследование
Ассоциация (association) Отношения между экземплярами классов.
Каждый конец ассоциации имеет кратность (multiplicity), показывающую, сколько объектов может участвовать в отношении.
В примере: у каждого Товара может быть несколько Записей в накладной, но каждая Запись связана с одним Товаром.
Ассоциации могут иметь имя — глагол или словосочетание, описывающее связь.
Ассоциация
Агрегация (aggregation) Ассоциация типа «целое-часть». Ромб на конце связи указывает агрегирующий класс (целое).
Объекты-части могут существовать отдельно от целого.
Агрегация
Композиция (composition) Специальный тип агрегации, где части не могут существовать отдельно и уничтожаются вместе с целым.
Изображается как ассоциация с закрашенным ромбом.
Пример: дом (целое) — комнаты (части).
Композиция
Наследование (inheritance) Отношение «общее-частное». Позволяет создавать иерархию классов, где производный класс наследует поведение и структуру базового. Композиция

Диаграмма прецедентов (вариантов использования) — или диаграмма юзкейсов#

Диаграмма прецедентов (Use Case). Показывает, что пользователи могут делать в системе — например, зарегистрироваться или оформить заказ. При этом пользователей называют «акторами», а их действия — «прецедентами». Схема помогает понять, какие функции важны для пользователя. Удобна для планирования требований к системе.

Внутренности макетной платы

Элемент Описание Изображение
Участник (actor) Роль (человек) или система (подсистема, класс), взаимодействующая с прецедентами. Actor
Прецедент (use case) События, выполняемые системой, приводящие к наблюдаемому результату.
Показывает что делает система, а не как.
Use case
Интерфейс Совокупность операций, обеспечивающих необходимый функционал для акторов. Interface 1
Interface 2
Interface 3
Отношение Назначение Изображение
Ассоциация Обозначает роль актера в конкретном прецеденте. Ассоциация
Расширение Прецедент может расширяться дополнительным поведением, определённым в другом прецеденте. Расширение
Обобщение Указывает, что один прецедент или актор является обобщением другого. Обобщение
Включение Один прецедент включает поведение другого прецедента как составную часть своей последовательности действий. Включение

Диаграмма пакетов#

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

Позволяет объединять элементы системы в логические блоки — как те самые пакеты с пакетами под раковиной. Причём каждый из них аккуратно подписан, чтобы было понятно, какие именно пакеты лежат внутри.

Внутренности макетной платы

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

Диаграмма активностей#

Диаграмма активностей (видов деятельности) отображает динамические аспекты поведения системы. Эта диаграмма представляет собой блок-схему, которая наглядно показывает, как поток управления переходит от одной деятельности к другой.

Внутренности макетной платы

Изображение Название элемента Объяснение
Внутренности макетной платы Начальное состояние/узел (Start state) Обозначает начало процесса. Используется самостоятельно или с элементом Комментарий, объясняющим условия старта процесса.
Внутренности макетной платы Активное состояние (Active state) Главный строительный блок диаграммы. Описывает состояние/действие, составляющее моделируемый процесс.
Внутренности макетной платы Переход (Transition) (Object in state) Обозначает переход при завершении одного состояния в другое состояние.
Внутренности макетной платы Сообщение (Event message) Обозначает сообщение/поток данных, получаемых в состоянии.
Внутренности макетной платы Синхронизатор/узел соединения (Joint/Synchronization bar) Используется при переходе нескольких состояний/действий в одно. Может быть как горизонтальным, так и вертикальным.
Внутренности макетной платы Разветвитель/узел разделения (Fork) Используется при переходе из одного состояния/действия в несколько. Может быть как горизонтальным, так и вертикальным. Внутренности макетной платы
Внутренности макетной платы Принятие/узел решения (Decision) Обозначает решение (аналог шлюза в BPMN). Из решения доступны как минимум 2 перехода с указанными условиями (часто: да/нет).
Внутренности макетной платы Комментарий (Note) Комментарий к состоянию/действию, переходу, старту/окончанию процесса и т.д.
Внутренности макетной платы Узел передачи сигнала (Send signal) Действие, которое на основе своих входов создает экземпляр сигнала и передает его объекту цели.
Внутренности макетной платы Узел приема события (Receive signal) Действие, которое ожидает наступление некоторого события.
Внутренности макетной платы Необязательный фрагмент/Цикл (Option loop) Необязательный фрагмент. Выполняется, только если условие выполнено. Элемент используется также для циклов. Внутренности макетной платы Внутренности макетной платы
Внутренности макетной платы Узел финала потока (Flow final) Окончание определенного потока процесса.
Внутренности макетной платы Условие (Condition) Условие перехода.
Внутренности макетной платы Конечное состояние/узел (Final state) Окончание процесса в целом.

Диаграмма последовательности (Sequence diagram)#

Диаграммы последовательностей (Sequence diagram) используются для уточнения диаграмм вариантов использования для более детального описания логики сценариев использования.

Диаграмма последовательности — sequence diagram — это наглядное представление совокупности разных элементов модели системы, изображение того, как и в каком порядке они взаимодействуют.

Диаграммы подробно описывают, как выполняются разные операции. При этом — исходя из слова «последовательность» — такие диаграммы показывают временной порядок или хронологию: то, когда, как и в какой очереди передаются сообщения.

Внутренности макетной платы

Внутренности макетной платы

Элементы диаграммы

Изображение Название элемента Объяснение
Внутренности макетной платы Участник процесса Обозначает участника, выполняющего действия в процессе.
Внутренности макетной платы Класс-Разграничитель (Boundary) Используется для классов, отделяющих внутреннюю структуру системы от внешней среды (экранная форма, пользовательский интерфейс, устройство ввода-вывода).
Внутренности макетной платы Класс-контроллер (Control) Активный элемент, используемый для выполнения операций над объектами (программный компонент, модуль, обработчик).
Внутренности макетной платы Класс-сущность (Entity) Обычно применяется для обозначения классов, которые хранят информацию о бизнес-объектах (соответствует таблице или элементу БД).

Фреймы и операнды#

Note

Фрейм - элемент, позволяющий объединить отдельные взаимодействующие между собой элементы диаграммы. Фрейм должен содержать метку оператора взаимодействия (операнда).

Внутренности макетной платы

Основные операнды:

  • sd - Диаграмма последовательности (sequence diagram); используется для очерчивания всей диаграммы последовательности, если это необходимо
  • alt - Несколько альтернативных фрагментов; выполняется только тот фрагмент, условие которого истинно

Внутренности макетной платы

  • opt - Необязательный фрагмент; выполняется, только если условие истинно. Эквивалентно alt с одной веткой
  • neg - Отрицательный фрагмент; обозначает неверное взаимодействие. Полезен в случае, если некоторые последовательности должны быть запрещены явно.

Внутренности макетной платы

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

  • break - Завершение; представляет собой сценарий завершения. Обычно содержит сторожевое условие, при истинности которого выполняется фрагмент Звершение, а оставшаяся часть фрейма игнорируется.Если сторожевое значение принимает значение “ложь”, то операнд Завершение игнорируется и выполняется оставшаяся часть фрагмента взаимодействия, содержащего операнд.

Внутренности макетной платы

  • par - Параллельный; все фрагменты выполняются параллельно
  • critical - Критический регион; фрагмент может иметь только один поток, выполняющийся за один прием

Внутренности макетной платы

  • loop - Цикл; фрагмент может выполняться несколько раз, а защита обозначает тело итерации

Внутренности макетной платы

  • ref - Ссылка; ссылается на взаимодействие, определенное на другой диаграмме. Фрейм рисуется, чтобы охватить линии жизни, вовлеченные во взаимодействие. Можно определять параметры и возвращать значение

Внутренности макетной платы

Применение UML к разным задачам#

Задача Диаграммы
Необходимо описать взаимодействия между пользователем и системой и предоставить описание процесса её функционирования Диаграмма прецедентов/вариантов использования (Use Case Diagram)
Необходимо раскрыть последовательность действий для конкретного прецедента Диаграмма деятельности (Activity Diagram)
Необходимо разделить объекты на классы, описать их свойства, интерфейсы и способы взаимодействия между собой Диаграмма классов (Class Diagram)
Необходимо описать жизненный цикл конкретного класса, условия перехода в каждое из состояний Диаграмма состояний (State Machine Diagram)
Необходимо описать как объекты взаимодействуют друг с другом, как обмениваются данными Диаграмма последовательности (Sequence Diagram)
Необходимо описать архитектуру - Диаграмма пакетов (Package Diagram)
- Диаграмма компонентов (Component Diagram)
- Диаграмма развертывания (Deployment Diagram)

Применение UML разными ролями#

Давайте разберемся, кому и какие UML-модели могут пригодиться в работе.

UML для Заказчика#

Задачи Заказчика Диаграммы UML
Формирование исходных верхнеуровневых требований к проекту диаграмма прецедентов
диаграмма классов
Согласование финальных требований к проекту диаграмма деятельности
диаграмма состояний
диаграмма развертывания

📌 Диаграмма прецедентов (use case diagram) поможет Заказчику понятным языком описать то, что он хочет получить от системы.
Другие виды моделей позволяют детализировать эти требования.


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

UML для Аналитика#

Основное, с чем работает Аналитик — это требования и описание функциональных возможностей, которые нужно реализовать.

Задачи Аналитика Диаграммы UML
Сбор требований к проекту диаграмма прецедентов (use case)
Проектирование решения диаграмма классов
Согласование проектного решения с коллегами и Заказчиком диаграмма деятельности
диаграмма состояний
диаграмма последовательности

🧩 Использование UML аналитиком позволяет улучшить коммуникации с командой и заказчиком и сократить время согласования проектного решения.
Разработчику будет проще понять по визуализированной модели, что требуется реализовать,
а заказчику — будет ли будущая система соответствовать ожиданиям.

  1. Опишите ролевую модель с помощью диаграммы прецедентов (Use Case Diagram).
    Она показывает, какие пользователи будут работать с системой и какие функции им доступны.
    👉 Подходит для интервью с заказчиком — можно делать наброски на лету.

💬 Замечание: часто путают use case diagram и формат описания use case — не делайте такую ошибку!
Эти методы дополняют друг друга, но не заменяют.
✏️ Написанный use case можно проиллюстрировать диаграммой прецедентов.

  1. Опишите объекты, их свойства и методы, а также связи — с помощью диаграммы классов (Class Diagram).

  2. Опишите реализуемые процессы — через диаграмму деятельности (Activity Diagram).

  3. Если вы системный аналитик
    опишите детализированную логику работы системы с помощью диаграммы последовательности (Sequence Diagram).
    Это один из самых удобных видов диаграмм для разработчиков, реализующих описанную логику.

UML для программного проектировщика#

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

Например, с помощью диаграммы развертывания можно показать, из каких компонентов состоит система в данный момент.

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

UML для Разработчика#

Если Аналитик и Архитектор разрабатывают модели, то разработчик чаще является стороной, «принимающей» их. Пожалуй, чаще всего разработчикам приходится сталкиваться с сиквенс-диаграммами.

Задачи Разработчика Диаграммы UML
Разработка или модификация структуры решения диаграмма классов
диаграмма состояний
Согласование решения с участниками команды диаграмма деятельности
диаграмма последовательности

Выбери инструмент для построения диаграммы#

🔹 Draw.io
Бесплатная, исключительно простая, запускается прямо в браузере. Позволяет сразу сохранить результат в облако или на устройство. После запуска предлагает выбрать тип диаграммы и создает драфт.

Внутренности макетной платы

StarUML
Профессиональный инструмент для разработчиков. Сложнее в освоении, но и гораздо мощнее по возможностям.
- Устанавливается на компьютер (доступен для macOS и Windows).
- Платный — разовая покупка лицензии на одного пользователя.
- Поддерживается и регулярно обновляется.

Подходит тем, кто серьезно работает с моделированием и интеграцией UML в разработку.

Внутренности макетной платы

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

Внутренности макетной платы

Список использованных источников (благодарностей)#

  1. Основы UML.Кому и зачем он нужен. Автор: ДИЛАРА ВАЛИТОВА
  2. UML-диаграммы: что это, какие бывают и как их использовать