Лучше один раз увидеть, чем сто раз услышать. Именно этим принципом руководствовались создатели унифицированного языка моделирования (UML), который был задуман с целью стать единым наглядным языком в сложном мире разработки программного обеспечения и доступно передавать информацию представителям бизнес-среды и всем тем, кто хочет вникнуть в устройство той или иной системы. Приглашаем вас освоить азы составления диаграмм UML, а также познакомиться с их истоками, понятийной базой, разновидностями и правилами построения при помощи инструментов нашей платформы.
Читается за 18 мин.
Хотите создать собственную диаграмму UML? Попробуйте Lucidchart! Быстро, удобно и совершенно бесплатно.
Что такое UML?
Унифицированный язык моделирования (UML) был разработан с целью обеспечить единый визуальный язык с богатой семантикой и развернутым синтаксисом для проектирования и внедрения программных систем со сложной структурой и комплексным поведением. Стоит отметить, что UML применяется не только в разработке программ, но и в других сферах, например, в схематизации потоков производственных процессов.
UML напоминает стандарты, используемые в других отраслях, и поддерживает диаграммы нескольких типов. В целом, диаграммы UML описывают границы, структуру и поведение как всей системы, так и отдельных объектов в ее составе.
UML не является языком программирования, однако на базе диаграмм UML можно сгенерировать код на разных языках, и для этого существует ряд специальных инструментов. Зато с объектно-ориентированным анализом и дизайном унифицированный язык моделирования связан напрямую.
UML и его роль в объектно-ориентирова нном анализе и дизайне
В информатике, науке об алгоритмах и данных, существует множество парадигм и моделей решения задач. Выделяется четыре категории таких моделей — императивные, функциональные, декларативные и объектно-ориентированные. Объектно-ориентированные языки представляют алгоритмы посредством определения объектов и их взаимодействия друг с другом. Объекты существуют в реальном мире и подвергаются тем или иным действиям. Объектами могут быть здания, виджеты рабочего стола и даже люди.
Объектно-ориентированные языки преобладают в сфере программирования, так как моделируют объекты реального мира. UML сочетает в себе несколько разновидностей объектно-ориентированной нотации — объектно-ориентированный дизайн, технику объектного моделирования и разработку объектно-ориентированного программного обеспечения.
Объединяя в себе сильные стороны всех трех подходов, UML обеспечивает своим пользователям удобную и последовательную методологию и представляет собой набор эффективных методов схематизации и документирования различных аспектов моделирования программ и бизнес-систем.
Истоки возникновения UML
«Три амиго» из мира программирования уже имели за плечами опыт создания других методологий, однако однажды решили общими усилиями разработать новые понятные стандарты для программистов. В итоге, сотрудничество Буча, Рамбо и Якобсона не только повысило эффективность всех трех методов, но и позволило отполировать их общий конечный продукт.
В 1996 году совместная работа трех светлых умов вылилась в релиз документов, составленных по принципам UML 0.9 и 0.91. Вскоре стало ясно, что некоторые крупные компании, включая Microsoft, Oracle и IBM, полагаются на UML как на один из ключевых инструментов развития своего бизнеса. Вместе с другими организациями и отдельными лицами эти компании обеспечили необходимые ресурсы для развития UML до уровня полностью сформировавшегося языка моделирования. В 1999 году «три амиго» опубликовали «Справочник пользователя уни фицированного языка моделирования», а затем, в 2005 году, его вторую редакцию, где была представлена информация по UML 2.0.
OMG: новое значение знакомой аббревиатуры
Согласно сайту компании,Object Management Group® (OMG®) — международная некоммерческая организация с открытым членством, которая была основана в 1989 году и занимается стандартизацией технологий. Запрос на стандартизацию поступает от коммерческих организаций, конечных пользователей, учебных заведений и правительственных органов. Специалисты OMG разрабатывают стандарты интеграции корпоративной информации для широкого набора технологий и еще более широкого спектра отраслей. Стандарты моделирования OMG, включая UML и MDA® (Model Driven Architecture® — «архитектура, управляемая моделью»), позволяют своим пользователям эффективно проектировать, внедрять и поддерживать программные и другие процессы.
OMG контролирует постоянство определений и параметров UML, давая программистам и разработчикам возможность применять единый язык в разных целях на всех этапах жизненного цикла программного обеспечения независимо от масштабов системы.
Цель существования UML согласно OMG
OMG определяет цель UML так:
- предоставить системным архитекторам, программистам и разработчикам инструменты для анализа, проектирования и внедрения программных систем, а также моделирования бизнес- и других процессов;
- способствовать развитию отрасли благодаря широкой совместимости инструментов наглядного моделирования (но стоит отметить, что для осмысленного обмена информацией о моделях, созданных с помощью разных инструментов, необходима согласованность семантики и нотации).
UML выполняет следующие функции:
- задает формальное определение общей метамодели стандарта MOF (Meta-Object Facility — «метаобъектное средство»), где изложен абстактный синтаксис UML. Абстрактный синтаксис определяет набор концепций моделирования UML, а также их атрибуты, связи и правила объединения для построения моделей, частично или полностью основанных на UML;
- дает подробное объяснение семантике каждой концепции моделирования UML. Семантика определяет (без привязки к определенной технологии), как UML-концепции должны реализовываться компьютерами;
- задает понятные для человека элементы нотации для отображения отдельных концепций моделирования UML, а также правила объединения этих концепций в различные виды схем согласно тем или иным аспектам моделируемых систем;
- определяет требования, которым должны отвечать UML-инструменты в рамках данного стандарта. В дополнение прилагается отдельный стандарт на базе XML с указанием форматов обмена моделями (XMI), которые должны поддерживаться инструментами для работы с UML.
UML и моделирование данных
Язык UML получил широкое распространение в среде программистов, однако в целом мало используется в разработке баз данных. Одна из причин этого заключается в том, что создатели UML не ставили базы данных в центр внимания. Тем не менее, UML эффективно применяется в концептуальном моделировании данных высоких уровней и подходит для создания различных видов диаграмм UML. Более подробно о том, как при помощи слоев преобразовать объектно-ориентированную модель в схему реляционной базы данных, можно узнать в нашей статье по моделированию баз данных с помощью UML.
Хотите создать собственную диаграмму UML? Попробуйте Lucidchart! Быстро, удобно и совершенно бесплатно.
Создать диаграмму UMLЧто нового в UML 2.0
Язык UML не перестает совершенствоваться. Стандарт UML 2.0 расширяет границы UML, охватывая новые аспекты разработки, в том числе в гибкой среде. Новый стандарт был введен с целью реструктурировать, усовершенствовать и упростить UML для удобства использования, внедрения и адаптации. Вот несколько примеров того, как изменились диаграммы UML:
- более тесная интеграция между структурными и поведенческими моделями;
- возможность задавать иерархию и разбивать структуру программ на компоненты и подкомпоненты;
- повышение количества схем в UML 2.0 с 9 до 13.
Глоссарий терминов UML
Предлагаем вам ознакомиться с терминологией UML. Для этого здесь приведен список распространенных терминов из документа UML 2.4.1, предназначенного для тех, кто не входит в OMG.
Правила абстрактного синтаксиса
— пользователи могут перемещать модели из одной платформы в другую, даже если в них применяются разные системы нотацииОбщая метамодель хранилища данных (CWM)
— набор стандартных интерфейсов, обеспечивающих возможность обмена метаданными хранилища и бизнес- аналитики между инструментами и платформами хранения, а также хранилищами метаданных в распределенных однородных средахПравила конкретного синтаксиса
— возможность пользоваться знакомой системой нотации на разных платформахЯдро
— в контексте UML, под ядром обычно подразумевается «ядерный пакет», который представляет собой полноценную метамодель, разработанную специально для эффективного многократного примененияЯзыковая единица
— коллекция тесно связанных концепций моделирования, которые дают пользователям возможность представить исследуемые аспекты системы согласно выбранной парадигме или формальной теории0-й уровень (L0)
— нижний уровень соответствия инфраструктуры правилам UML, то есть одна языковая единица, обеспечивающая возможность моделирования разнообразных классовых структур, которые встречаются в наиболее распространенных объектно-ориентированных языках программированияМетаобъектное средство (MOF)
— набор правил моделирования OMG, на основе которого составляются определения метамодели в семействе MDA-языков OMGМетамодель
— определяет язык и процессы, на основе которых составляется модельКонструктив метамодели (LM)
— второй уровень соответствия инфраструктуры правилам UML, то есть дополнительная языковая единица, необходимая для более сложных классовых структур, применяемых для построения метамоделей с использованием полного объема метаобъектных средств (сокращенно CMOF), например, непосредственно языка UML. В UML выделяется только два уровня соответствия правилам языка.Архитектура, управляемая моделью (MDA)
— подход, а также план по созданию целостного набора правил и технических характеристик, задаваемых модельюОбъектный язык ограничений (OCL)
— декларативный язык, описывающий правила, применимые к унифицированному языку моделирования. OCL дополняет UML терминами и символами блок-схем, которые характеризуются большей точностью, чем естественный язык, но при этом усваиваются проще, чем математические символы.Object Management Group (OMG)
— некоммерческая организация, занимающаяся разработкой стандартов в сфере вычислительных технологий. Именно ее участники определяют и поддерживают стандарты UML.UML 1
— первая версия унифицированного языка моделированияУнифицированный язык моделирования (UML)
— визуальный язык, позволяющий характеризовать, конструировать и документировать артефакты системXMI
— стандарт на основе XML, предназначенный для обмена моделями разных форматов
Просмотреть полный документ по метаобъектным средствам (MOF)
Скачать полный документ по инфраструктуре UML 2.4.1
Концепции моделирования в рамках UML
В целом, в разработке систем выделяется три основных системных модели:
Функциональная
— схемы сценариев использования, описывающие функционал системы с точки зрения ее пользователя.Объектная
— диаграммы классов, описывающие структуру системы при помощи объектов, атрибутов, связей и операций.Динамическая
— диаграммы взаимодействия, состояний и активности, применяемые для описания внутренней работы системы.
Наглядное представление этих системных моделей осуществляется с помощью схем двух разных типов — структурных и поведенческих.