- UML-диаграммы для моделирования процессов и архитектуры проекта
- Что такое UML-диаграммы?
- Цель существования UML
- Функции UML
- Истоки возникновения UML
- Концепции моделирования в рамках UML
- Объектно-ориентированные концепции в UML
- Нотация UML для описания логики проекта
- Программы для создания UML-диаграмм
- Diagrams.net
- Плюсы и минусы UML-проектирования
- Виды UML-диаграмм
- Диаграмма прецедентов (Use-case diagram)
- Диаграмма классов (Class diagram)
- Диаграмма деятельности (Activity diagram)
- Диаграмма последовательности (Sequence Diagram)
- Диаграмма развертывания (Deployment Diagram)
UML-диаграммы для моделирования процессов и архитектуры проекта
Сегодня UML используется в создании объектно-ориентированного программного обеспечения, поскольку этот язык доказал свои важность и эффективность. Давайте разбираться, что такое UML и как его применять.
Что такое UML-диаграммы?
Аббревиатура UML расшифровывается как Unified Modeling Language, дословно переводится как «унифицированный язык моделирования». По сути, это язык моделирования, который позволяет создавать структуры программных систем.
UML состоит из графических обозначений, диаграмм, которые помогают создать дизайн программных проектов. С помощью UML-диаграмм проектные группы коммуницируют между собой, составляют и проверяют архитектурный дизайн ПО.
Работа с UML-диаграммами — важная часть проекта, так как на этом этапе продумывается его структура. Проектирование помогает в дальнейшем не запутаться в коде, снизить количество ошибок и упростить работу.
UML имеет единый синтаксис, поэтому является международным языком. Диаграммы будут понятны любому человеку, знакомому с ним. Также стоит отметить, что UML используется для разработки широкого спектра программ от информационных систем масштаба предприятия до распределенных веб-приложений.
Цель существования UML
UML призван дать стандартную нотацию, используемую всеми объектно-ориентированными методами. Кроме того, UML позволяет выбирать и внедрять наработки нотаций-предшественников. Так как UML создан для широкого спектра программ, с его помощью можно конструировать различные системы.
Выделим основные цели дизайна UML:
- Проектирование. Благодаря UML разработчики получили возможность создавать модели различных процессов, анализировать, проектировать и внедрять программные системы, рисовать схемы приложений, по которым впоследствии пишется код.
- Обеспечение роста рынка объектно-ориентированных инструментов и развития отрасли.
- Создание UML таким образом, чтобы можно было работать с любым языком программирования и любому пользователю.
- Коммуникация внутри команды и при общении с заказчиком.
Функции UML
UML обладает рядом полезных функций:
- Язык позволяет понимать UML-концепции и то, как каждую из них реализует компьютер.
- Одна из функций UML-диаграмм — создание элементов нотации, которые были бы ясны для человека и отображали бы отдельные концепции моделирования. Также UML задает правила объединения концепций в схемы.
- UML задает стандартизированные требования к инструментам. Существует отдельный дополнительный стандарт на базе XML. В нем указываются форматы обмена моделями (XMI).
- Реверс-инжиниринг. UML способен создать модель из существующего кода приложения, то есть это обратное построение. Такая функция применяется на проектах поддержки, когда код написан, а документация неполная или отсутствует.
- Модели позволяют извлекать текстовую информацию и создавать тексты и документацию.
Истоки возникновения UML
До возникновения UML существовали различные разработки, которые имели успех в мире программирования:
- OMT или техника объектного моделирования, применяемая для анализа информационных систем с большим объемом данных.
- Booch. Метод Грэди Буча осуществляет разработку и реализацию. Буч использовал язык Ада и был известен в разработке объектно-ориентированных методов для языка. Несмотря на все достоинства Буча, его нотация была принята неоднозначно.
- OOSE (объектно-ориентированная программная инженерия), которая известна больше как модель прецедентов. Помогает понимать поведение системы.
В 1994 году Джим Рамбо, который работал в General Electric, ушел из компании и объединился с Грэди Бучем из Rational Corp., чтобы, используя наработки обоих, создать единый унифицированный метод.
К 1995 году к Бучу и Рамбо присоединился Ивар Якобсон, создатель OOSE. Он принес с собой концепцию «прецедентов», которая также стала частью нового унифицированного метода. Сегодня он называется Unified Modeling Language или UML.
В мире разработки команда Буча, Рамбо и Якобсона известна как « Три амиго » . Объединившись, команда создала новые стандарты программирования.
В скором времени крупные компании, среди которых были Microsoft, Oracle и IBM, стали использовать UML как один из основных инструментов, так как он способствовал развитию бизнеса. Компании инвестировали в развитие UML, пока он не сформировался в язык моделирования.
В 1999 году был опубликован «Справочник пользователя унифицированного языка моделирования», а в 2005 году — его второе издание, в котором описывалось руководство по использованию UML 2.0.
Концепции моделирования в рамках UML
В разработке систем, как правило, выделяют три основных модели: функциональная, объектная и динамическая.
- Функциональная модель — это схемы сценариев, описывающих функционал системы так, чтобы было понятно пользователю.
- Объектная модель представлена диаграммами классов. Они описывают структуру системы, используя при этом объекты, связи, атрибуты и операции.
- Динамическая модель состоит из диаграмм взаимодействия, диаграмм состояний и диаграмм активности. Они применяются при описании внутренней работы системы.
Чтобы описать эти системные модели, используются два типа схем — структурные и поведенческие.
Объектно-ориентированные концепции в UML
Чтобы представить предметы окружающей нас действительности, в UML используются объекты. С их помощью можно моделировать создаваемую систему, применяя терминологию соответствующей сферы, а также разбивать сложные системы на небольшие части и выстраивать схему блок за блоком. Следующие концепции объектно-ориентированного метода считаются фундаментальными:
- Объекты являются сущностями и простейшими строительными элементами схемы.
- Класс является прообразом объекта.
- Абстракция изображает, как ведет себя реальный объект.
- Инкапсуляция инструмент, с помощью которого происходит объединение данных и сокрытие их от внешнего мира.
- Наследование. Инструмент позволяет создавать новые классы на основе уже существующих.
- Полиморфизм — способность объектов, позволяющая им существовать в разных формах.
Нотация UML для описания логики проекта
UML, как и другие языки, обладает собственными правилами оформления моделей и синтаксиса. Графическая нотация UML помогает в визуализации системы, объединении всех компонентов в единую структуру, уточнении и улучшении модели в процессе работы.
Существует четыре основных типа элементов графической нотации UML:
Нотация UML фактически является отраслевым стандартом в области разработки ПО, IT-инфраструктуры и бизнес-систем.
Программы для создания UML-диаграмм
Существует множество хороших сервисов, которые позволяют создавать UML-диаграммы. Выбрать лучшие достаточно сложно, поскольку их огромное количество.
Вот несколько, которые наиболее популярны:
Diagrams.net
Одним из наиболее удобных и популярных ресурсов является Diagrams.net. Преимущество приложения заключается в том, что оно бесплатное и доступно всем желающим. Более того, присутствует интерфейс на русском языке. В нем можно моделировать диаграммы рабочих процессов, BPM, организационные, сетевые диаграммы.
Сервис отличается широким функционалом и большим набором инструментов, с помощью которых создаются организационные диаграммы, блок-схемы, сетевые диаграммы и другое.
Для приложения доступны различные форматы: JPG, PNG, SVG, PDF, HTML, XML, возможен импорт в VSDX.
Плюсы и минусы UML-проектирования
Как и любой другой язык, UML обладает своими преимуществами и недостатками. Чтобы объективно оценить пользу UML, разберем его сильные и слабые стороны.
- UML позволяет изучить задачу с разных сторон и учесть, как ведет себя система в разных ее проявлениях.
- Благодаря единому синтаксису созданные модели понятны любому разработчику.
- Сравнительная простота UML-диаграмм. Для чтения и понимания нужно потратить немного времени, чтобы ознакомиться с синтаксисом.
- Поскольку UML — объектно-ориентированный язык, семантика методов описания результатов анализа и проектирования схожа с методами разработки на других объектно-ориентированных языках.
- UML помогает уменьшить количество вероятных ошибок.
- Есть возможность повторно использовать существующий проект или его часть в новых проектах.
- UML можно применять не только в сфере программной инженерии, так как с его помощью можно вводить собственные текстовые и графические стереотипы.
- UML продолжает развиваться.
- Помимо полезных элементов, в UML есть много ненужных диаграмм и конструкций, которые практически не используются. Особенно такое мнение существует в отношении UML 2.0, чем UML 1.0.
- Неточность семантики. UML состоит из совокупности абстрактного синтаксиса, OCL (языка описания ограничений) и английского. Такое объединение привело к наличию неточностей в описании самого UML.
- Несмотря на понятную структуру, чтобы использовать UML активно и получать результат, необходимо знать более 100 различных условных обозначений, что подразумевает определенный уровень квалификации у разработчиков.
Виды UML-диаграмм
Существует два вида UML-диаграмм — структурные диаграммы и диаграммы поведения.
Структурными диаграммами представлена статическая часть структуры системы. Также могут быть представлены части системы на разных уровнях абстракции и реализации и взаимосвязь этих уровней. Элементами структурной диаграммы являются значимые понятия системы. Они могут состоять из абстрактных, реальных концепций и концепций реализации.
Среди структурных диаграмм выделяют семь подтипов:
- Диаграмма составной структуры
- Диаграмма развертывания
- Диаграмма пакетов
- Диаграмма профилей
- Диаграмма классов
- Диаграмма объектов
- Диаграмма компонентов
Диаграммы поведения, наоборот, отображают динамическое поведение объектов в системе. Его можно описать, как серию изменений в системе с течением времени.
Диаграммы поведения подразделяются на подтипы:
- Диаграмма деятельности
- Диаграмма прецедентов
- Диаграмма состояний
- Диаграмма последовательности
- Диаграмма коммуникаций
- Диаграмма обзора взаимодействия
- Временная диаграмма
Можно выделить несколько основных и наиболее доступных типов UML-диаграмм:
- Диаграмма прецедентов (Use-case diagram);
- Диаграмма классов (Class diagram);
- Диаграмма деятельности (Activity diagram);
- Диаграмма последовательности (Sequence diagram);
- Диаграмма развертывания (Deployment diagram);
Диаграмма прецедентов (Use-case diagram)
Диаграмма прецедентов описывает функциональные требования системы с точки зрения прецедентов и включает в себя два компонента — участника (Actor) и прецедент (Use case).
Участник представляет собой совокупность логически связанных ролей, которые исполняются во время взаимодействия с прецедентами или сущностями (система, подсистема или класс). Участником может быть человек, роль человека в системе или другая система, подсистема или класс.
Прецедент описывает отдельный случай поведения системы с точки зрения пользователя. Важно понимать, что с помощью прецедента отображается сам результат, а не как он достигается. Прецеденты позволяют связать наши потребности и то, как система удовлетворяет их.
Диаграмма классов (Class diagram)
Диаграммы классов используется наиболее широко и являются основой объектно-ориентированного моделирования. Класс представляет собой группу предметов, которые обладают общими атрибутами и операциями.
UML-диаграммы классов отображают как классы внутри системы, так и разные виды отношений между классами.
Выделяют три основных типа отношений в диаграммах классов:
- Ассоциация описывает отношения между экземплярами типов. Например, человек работает в сети аптек, у сети есть аптека в городе.
- Наследование. Оно имеет непосредственное соответствие наследованию в объектно-ориентированном дизайне.
- Агрегация — форма композиции объектов в объектно-ориентированном дизайне.
Диаграмма деятельности (Activity diagram)
Диаграмма деятельности или активностей (Activity diagram) использует блок-схему для графического изображения динамических аспектов поведения системы.
Среди таких процессов выделяются бизнес-процессы, логика процедур и переходы от одной деятельности к другой. Таким образом, создается алгоритм действий системы или нескольких систем, взаимодействующих между собой.
UML-диаграммы деятельности позволяют моделировать как вычислительные, так и организационные процессы.
Диаграмма последовательности (Sequence Diagram)
Диаграмма последовательности создает модель взаимодействия объектов. Основой такого взаимодействия служит временная последовательность, которая дает представление о взаимодействии объектов в конкретном прецеденте.
Таким образом, диаграммы последовательности уточняют диаграммы прецедентов и отражает взаимодействие объектов в динамике, во времени. Информация представляется в виде сообщений. Также предполагается обмен сообщениями между объектами в рамках сценария, что и является взаимодействием.
Диаграмма развертывания (Deployment Diagram)
Диаграмма развертывания графически представляет инфраструктуру, на которую будет развернуто приложение, то есть моделирует физический аспект системы. Такой инфраструктурой могут быть топология системы и распределение компонентов по ее узлам, а также соединения — маршруты передачи данных между узлами.
Также с помощью диаграммы компоненты системы организовываются более рационально, что положительно влияет на производительность системы и помогает решить вспомогательные задачи.
Как правило, моделируются и конфигурации оборудования, помимо компонентов программного обеспечения, на которых они размещены.
Мы рассмотрели самые основные UML-диаграммы, но, как вы могли заметить, их намного больше. UML сильно сокращает время разработки, поскольку помогает исключить наличие возможных ошибок и спланировать дальнейшую работу. Использовать его или нет, каждый решает для себя.
Более подробную информацию по UML можно найти в этом обзорном видео:
Highload нужны авторы технических текстов. Вы наш человек, если разбираетесь в разработке, знаете языки программирования и умеете просто писать о сложном!
Откликнуться на вакансию можно здесь .
Что такое индексы в Mysql и как их использовать для оптимизации запросов
Как исправить ошибку доступа к базе 1045 Access denied for user
Как перезапустить nginx после обновления конфигурации
Основные понятия о шардинге и репликации
Примеры ad-hoc запросов и технологии для их исполнения
Устройство колоночных баз данных
Настройка Master-Master репликации на MySQL за 6 шагов
Включение и использование log-файлов для проверки работы Nginx
Пример управления фоновыми процессами в supervisor’e
Как создать и использовать составной индекс в Mysql
Как проверить работу сайта под нагрузками
Анализ медленных PHP скриптов с помощью XHprof
Рекомендации по настройке Redis для оптимизации ресурсов и повышения стабильности на производственном сервере
Анализ медленных запросов (профилирование) в MySQL с помощью Percona Toolkit
Fuzzy search на основе ElasticSearch
Уменьшение размера картинок при сохранении качества
Источник