UML, модель и диаграммы
Что означает UML
Заголовок раздела «Что означает UML»UML (Unified Modeling Language, «унифицированный язык моделирования») — стандартизированный язык общего назначения для моделирования систем. Он задаёт словарь элементов и правила их сочетания, чтобы модели можно было одинаково читать, обсуждать и обрабатывать инструментами.
UML не предписывает метод разработки, порядок этапов проекта или конкретную архитектуру. Это не язык программирования и не набор картинок: он помогает выразить решения о структуре и поведении системы, а нужный уровень детализации определяется целью модели.
Из чего состоит модель
Заголовок раздела «Из чего состоит модель»Модельный элемент (Element) — составная часть UML-модели. У элемента могут быть свойства, имя, владелец, вложенные элементы и связи с другими элементами.
Для чтения модели удобно различать два вида элементов:
- сущность представляет часть моделируемой системы: понятие предметной области, участника, действие, компонент, событие или вычислительный узел;
- отношение (
Relationship) выражает осмысленную связь между элементами: например, ассоциацию, обобщение, зависимость или реализацию.
В первом приближении UML-модель можно рассматривать как типизированный граф сущностей и отношений между ними. Это полезный способ чтения: сущности образуют вершины, а отношения — связи. В полной метамодели UML отношение тоже является элементом, может иметь собственные свойства и иногда связывает больше двух элементов.
UML используют, когда недостаточно просто перечислить требования или нарисовать схему от руки. Язык позволяет зафиксировать различные аспекты информационной системы так, чтобы у элементов был определённый смысл.
Что объединяет UML
Заголовок раздела «Что объединяет UML»UML вырос из нескольких объектно-ориентированных методов, которые в 1990-е годы развивали Гради Буч, Ивар Якобсон и Джеймс Рамбо. Поэтому язык объединяет разные ракурсы одной системы: структуру объектов, их поведение, взаимодействия, модули и физическое окружение.
UML применяют не только для рисования: модель может служить средством обсуждения, спецификации, документирования, проверки архитектурных решений, генерации кода или анализа поведения. В этом курсе главный результат — понятная и проверяемая модель, а не максимальное количество диаграмм или автоматическая генерация реализации.
Диаграмма не равна модели. Одно понятие может быть показано как элемент предметной области, затем — через его изменения во времени, а потом — как участник конкретного взаимодействия. Это не несколько разных понятий, а разные представления одной проектной реальности.
Например, похожие пунктирные стрелки могут означать разные типы связи. Поэтому при чтении диаграммы важно определить не только форму линии, но и её подпись, направление и смысл для модели.
Абстрактный и конкретный синтаксис
Заголовок раздела «Абстрактный и конкретный синтаксис»Абстрактный синтаксис описывает, какие элементы существуют в модели и как они могут быть связаны. Это уровень метамодели: в ней определены классы, акторы, варианты использования, отношения, действия и другие элементы.
Конкретный синтаксис описывает, как эти элементы показать читателю. Один элемент может иметь несколько допустимых представлений: интерфейс рисуют прямоугольником с «interface» или кружком, а актора — человечком либо прямоугольником с «actor». Обратное тоже верно: похожая линия не гарантирует одинаковый смысл.
Модель и инструмент
Заголовок раздела «Модель и инструмент»UML-инструмент обычно хранит не только изображение. Имя, свойство, условие или связь могут быть частью модельного элемента. Если изменить элемент в модели, его представления на других диаграммах тоже могут измениться. Свободный текст рядом с фигурой не всегда становится свойством модели.
Это различие особенно заметно при повторном использовании и экспорте. PNG или SVG сохраняет картинку, а формат модели вроде XMI может хранить сами элементы, их свойства и связи. Поэтому в инструменте полезно создавать отношения и свойства штатными средствами, а не имитировать их линиями и подписями.
Как обращаться к спецификации
Заголовок раздела «Как обращаться к спецификации»Спецификация UML — справочник, а не линейный учебник. В разделе нужного элемента обычно различают его описание, абстрактный синтаксис, семантику, нотацию и правила корректности. Если непонятно, как нарисовать элемент, ищут нотацию; если непонятно, что он означает, — семантику; если инструмент ведёт себя неожиданно, — свойства элемента и правила корректности.
Между UML-инструментами возможны различия в палитре, обозначениях по умолчанию и обмене XMI. В спорном случае важнее сохранить модельный смысл, чем повторить конкретное поведение одного редактора.
Как пользоваться справочником
Заголовок раздела «Как пользоваться справочником»Первые три заметки этого раздела дают общий язык: что такое модель, какие бывают связи и как называть элементы. После них карта диаграмм помогает перейти к нужному представлению. Спецификацию UML не нужно читать подряд: к ней обращаются, когда требуется уточнить спорное обозначение.
В модели
Заголовок раздела «В модели»Различие модели и представления продолжает материал о нотациях и представлениях. Следующая заметка вводит основные отношения UML.