Диаграммы классов
Диаграммы классов — наиболее распространённый тип диаграмм UML, используемый для моделирования статической структуры системы путём отображения классов, их атрибутов, операций и связей.
Создание классов
Использование инструмента класса
Нажмите A или C для активации инструмента класса, затем нажмите в любом месте холста для размещения нового блока класса.

Структура блока класса
Блок класса UML состоит из трёх секций:
- Секция имени — Содержит имя класса и необязательный стереотип
- Секция атрибутов — Список свойств/полей класса
- Секция операций — Список методов/функций класса

Свойства класса
Выделите класс и используйте панель Инспектора для настройки его свойств:
Имя
Имя класса отображается жирным шрифтом в верхней секции. По соглашению используется PascalCase (например, CustomerOrder).
Стереотип
Необязательный классификатор, отображаемый над именем класса в кавычках-ёлочках:
<<interface>>— Для определений интерфейсов<<abstract>>— Для абстрактных классов<<enumeration>>— Для типов перечислений<<entity>>— Для доменных сущностей- Пользовательские стереотипы также поддерживаются
Абстрактный
Переключатель для отображения имени класса курсивом, указывающий на абстрактный класс.

Атрибуты
Атрибуты представляют данные/свойства класса.
Добавление атрибутов
- Выделите класс
- В Инспекторе найдите раздел «Атрибуты»
- Нажмите кнопку
+для добавления нового атрибута - Введите детали атрибута
Синтаксис атрибутов
Атрибуты следуют формату: видимость имя : тип
Модификаторы видимости:
| Символ | Значение | Описание |
|---|---|---|
+ | Public | Доступен откуда угодно |
- | Private | Доступен только внутри класса |
# | Protected | Доступен внутри класса и подклассов |
~ | Package | Доступен внутри того же пакета |
Примеры:
-id: Int— Приватный целочисленный идентификатор+name: String— Публичное строковое имя#createdAt: Date— Защищённое поле даты~cache: Map<String, Any>— Пакетный кеш
Операции
Операции представляют поведение/методы класса.
Добавление операций
- Выделите класс
- В Инспекторе найдите раздел «Операции»
- Нажмите кнопку
+для добавления новой операции - Введите детали операции
Синтаксис операций
Операции следуют формату: видимость имя(параметры) : возвращаемыйТип
Примеры:
+getName(): String— Публичный геттер, возвращающий String-validate(input: String): Boolean— Приватный метод валидации+process(data: Data, options: Options): Result— Метод с несколькими параметрами+save(): void— Метод без возвращаемого значения
Связи
Нажмите R для активации инструмента связей, затем перетащите от одного класса к другому для создания соединения.
Типы связей
| Тип | Стиль линии | Стрелка | Применение |
|---|---|---|---|
| Ассоциация | Сплошная линия | Открытая стрелка | Общая связь |
| Зависимость | Пунктирная линия | Открытая стрелка | Связь «использует» |
| Наследование | Сплошная линия | Полый треугольник | Связь «является» (extends) |
| Реализация | Пунктирная линия | Полый треугольник | Реализация интерфейса |
| Агрегация | Сплошная линия | Полый ромб | «Имеет» (слабое владение) |
| Композиция | Сплошная линия | Заполненный ромб | «Имеет» (сильное владение) |

Создание связей
- Нажмите
Rдля активации инструмента связей - Нажмите на исходный класс
- Перетащите к целевому классу
- Отпустите для создания соединения
- Используйте Инспектор для изменения типа связи и наконечников
Подписи связей
Дважды нажмите на линию связи для добавления подписей:
- Имя — Описывает связь (например, «manages», «contains»)
- Множественность — Указывает количество экземпляров (например, «1», «0..*», «1..n»)
- Имена ролей — Подписи на каждом конце, описывающие роль
Лучшие практики
- Сохраняйте простоту — Не пытайтесь смоделировать всё; сосредоточьтесь на ключевых классах
- Используйте стереотипы — Чётко помечайте интерфейсы и абстрактные классы
- Показывайте ключевые связи — Не каждую ассоциацию нужно отображать
- Единообразное именование — Используйте PascalCase для классов, camelCase для членов
- Группируйте связанные классы — Используйте визуальную близость для обозначения логических группировок