UML
Last updated
Last updated
UML (Unified Modeling Language) — это стандартный язык моделирования, используемый для визуализации, проектирования, документирования и анализа систем. UML предоставляет набор нотаций и диаграмм, которые помогают описать различные аспекты системы и ее компонентов.
Универсальность. UML является стандартом для описания и проектирования предметно-ориентированных систем, что позволяет использовать его в различных областях и на разных уровнях абстракции.
Ясность и наглядность. UML предоставляет графическую нотацию, которая позволяет наглядно отображать структуру и поведение системы, что упрощает понимание и взаимодействие между разработчиками, заказчиками и другими заинтересованными сторонами.
Гибкость. UML предоставляет множество различных диаграмм, что позволяет выбрать наиболее подходящую для конкретной задачи. Также UML позволяет расширять и создавать свои собственные диаграммы.
Объёмная документация. Если решитесь изучить язык, практически сразу же наткнётесь на его документацию. И она удивит вас тем, что там 700 страниц… Хотя читать всю необязательно — достаточно обращаться к ней, когда возникнут вопросы об элементах.
Сложность использования и поддержки проектов. Некоторые инструменты для работы с UML могут показаться сложными или недостаточно интуитивными. А это добавляет трудности в освоении и использовании.
Семантическая неоднозначность. Язык не всегда придерживается строгих обозначений, и это усложняет работу с ним. Некоторые элементы можно интерпретировать по-разному, что приводит к проблемам интерпретации. Особенно ярко это видно в диаграммах активности и последовательности. Но о них дальше.
Несовместимость с мелкими проектами. UML разработали, чтобы моделировать большие и сложные системы. Поэтому использовать его для небольших — это избыточно и неэффективно. Так вы только усложните разработку и потратите ресурсы на менее значимые вещи.
Диаграмма классов (Class Diagram)
Описывает систему в виде набора классов со свойствами, доступными методами и взаимосвязями между классами.
Диаграмма объектов (Object Diagram)
Является экземпляром диаграммы классов и показывает конкретные значения свойств классов.
Диаграмма компонентов (Component Diagram)
Описывает архитектуру компонентов (сервисы, интерфейсы, приложения и т.д.) и зависимости между ними.
Диаграмма композитной структуры (Composite Structure Diagram)
Описывает внутреннюю структуру классов и взаимодействие элементов класса между собой.
Диаграмма развертывания (Deployment Diagram)
Описывает архитектуру системы с точки зрения ее развертывания на физическом уровне.
Диаграмма пакетов (Package Diagram)
Описывает взаимосвязь пакетов. Пакет - группа классов, объединенных для упрощения сложной программы классов.
Диаграмма профилей (Profile Diagram)
Описывает пользовательские стереотипы и ограничения, применяемые к моделям.
Диаграмма классов. Эта диаграмма, наиболее распространенная при разработке ПО, используется для изображения логической и физической структуры системы и показывает ее классы. Она похожа на блок-схему, потому что классы представлены в виде блоков. Эта диаграмма предлагает визуальное представление о различных классах и о том, как они взаимосвязаны. У каждого класса есть три секции:
Верхняя секция: имя класса
Средняя секция: атрибуты класса
Нижняя секция: методы или операции класса
Диаграмма объектов. Часто эта диаграмма используется как способ проверить диаграмму классов на точность. Другими словами, будет ли это работать на практике? Она показывает системные объекты и их взаимосвязи и предлагает лучшее представление о потенциальных недостатках проекта, которые необходимо исправить.
Диаграмма компонентов. Также известна как блок-схема компонентов, она показывает логические группы элементов и их взаимосвязи. Другими словами, она дает упрощенное представление о сложной системе, разбивая ее на более мелкие компоненты. Каждый из элементов показан в прямоугольной рамке с названием, написанным внутри. Соединители определяют отношения / зависимости между различными компонентами.
Диаграмма композитной структуры. Диаграмма составной структуры аналогична диаграмме классов и является своего рода диаграммой компонентов, используемой в основном при моделировании системы на микроуровне, но она изображает отдельные части вместо целых классов. Это тип статической структурной диаграммы, которая показывает внутреннюю структуру класса и взаимодействия, которые эта структура делает возможными.
Эта диаграмма может включать внутренние части, порты, через которые части взаимодействуют друг с другом или через которые экземпляры класса взаимодействуют с частями и с внешним миром, и соединители между частями или портами.
Диаграмма развертывания. На этой диаграмме показаны аппаратные (узлы) и программные (артефакты) компоненты и их взаимосвязи. Она предлагает наглядное представление о том, где именно развернут каждый программный компонент.
Диаграмма пакетов. Этот тип используется, чтобы изобразить зависимости между пакетами, которые составляют модель. Основная цель — показать взаимосвязь между различными крупными компонентами, которые образуют сложную систему.
Диаграмма профиля. Этот тип меньше похоже на диаграмму и больше — на язык. Диаграмма профиля помогает создавать новые свойства и семантику для диаграмм UML путем определения пользовательских стереотипов, теговых значений и ограничений.
Диаграмма последовательности (Sequence Diagram)
Описывает логику взаимодействия и обмена данными между объектами в рамках прецедента в хронологическом порядке.
Диаграмма прецедентов (Use Case Diagram). Употребляется также термин «Диаграмма вариантов использования»
Описывает набор функциональности (прецедент), доступной акторам (внешним для системы сущностям, например, пользователям).
Диаграмма деятельности (Activity Diagram)
Описывает рабочий процесс внутри каждого прецедента
Диаграмма состояний (State Machine Diagram)
Описывает состояния, в которых может находиться каждый объект, и правила перехода из одного состояния в другое.
Диаграмма коммуникации (Communication Diagram)
Описывает логику взаимодействия и обмена данными между объектами в рамках прецедента. Схожа с sequence diagram, но без раскрытия хронологического порядка.
Диаграмма синхронизации (Timing Diagram)
Описывает как объекты ведут себя на временной шкале без отображения взаимосвязей между объектами.
Диаграмма обзора взаимодействия (Interaction Overview Diagram)
Описывает процесс взаимодействия объектов. Похожа на activity diagram, но более высокоуровневую, где каждый узел — другая диаграмма взаимодействия.
Диаграмма последовательности. Эта визуально привлекательная диаграмма, популярная не только в сообществе разработчиков, хорошо показывает все типы бизнес-процессов. Она просто раскрывает структуру системы, показывая последовательность сообщений и взаимодействий между операторами и объектами в хронологическом порядке. Диаграммы последовательности отображают простую итерацию и ветвление. Это имеет преимущества для многозадачности.
Диаграмма вариантов использования/Диаграмма прецедентов. В этом типе описывается, что делает система, но не то, как она это делает. Вариант использования — это набор событий, которые происходят, когда “оператор” использует систему для завершения процесса. Оператор определяется как кто-либо или что-либо, взаимодействующее с системой (человек, организация или приложение) из-за пределов системы. Таким образом, диаграмма вариантов использования визуально описывает этот набор последовательностей и представляет функциональные требования системы.
Диаграмма деятельности. Этот тип изображает пошаговый процесс с четким началом и концом. Это набор операций, которые должны быть выполнены, чтобы достичь цели. Она показывает, как каждое действие ведет к следующему, и как все они связаны. Помимо разработки программного обеспечения, они могут использоваться практически в любой бизнес-среде. Их также называют картированием или моделированием бизнес-процессов.
Диаграмма состояний. Эта диаграмма, также называемая диаграммой состояний, применяется, когда поведение объектов является сложным, а детали — существенными. Она помогает описать поведение одного объекта (или иногда оператора) и то, как оно изменяется в зависимости от внутренних и внешних событий.
Диаграмма коммуникации. Диаграмма связи или сотрудничества аналогична диаграмме последовательности. Тем не менее, она подчеркивает связь между объектами, показывает организацию объектов, участвующих во взаимодействии, и предлагает более сложные итерации и ветвления.
Временная диаграмма. Когда время имеет критическое значение, используется этот тип диаграмм UML. Известная также как последовательность или диаграмма событий, она не показывает, как объекты взаимодействуют или изменяют друг друга. Функционально она показывает, как объекты и операторы действуют на временной шкале. Основное внимание здесь уделяется тому, сколько времени занимают события и какие изменения происходят в зависимости от ограничений продолжительности. Основные части временной диаграммы включают в себя:
Линия жизни: индивидуальный участник
Хронология состояний: разные состояния, через которые проходит линия жизни
Ограничение продолжительности: время, необходимое для выполнения ограничения
Ограничение по времени: время, за которое участник должен выполнить что-то
Возникновение разрушения: где заканчивается линия жизни объекта. Никакое другое событие не произойдет после появления разрушения на линии жизни.
Обзорная диаграмма взаимодействия. Эта зачастую сложная диаграмма похожа на диаграмму деятельности, так как обе показывают пошаговую последовательность действий. Но обзорная диаграмма взаимодействия — это диаграмма деятельности, составленная из разных диаграмм взаимодействия. Они используют те же аннотации, что и диаграмма деятельности (начальная, конечная, решение, слияние, разветвление и соединение узлов) с добавлением таких элементов, как взаимодействие, использование взаимодействия, ограничение по времени и ограничение продолжительности.
Draw.io (https://app.diagrams.net/)
Lucidchart (https://www.lucidchart.com/pages/)
PlantUML (https://plantuml.com/ru/)(рисование диаграмм с помощью кода)
Источники: