Что такое UML (Unified Modeling Language)?

«Что такое UML (Unified Modeling Language)?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

UML (Unified Modeling Language, унифицированный язык моделирования) — это стандартный графический язык для визуализации, спецификации, проектирования и документирования артефактов программных систем. Он используется для понимания и коммуникации архитектуры и поведения системы.

Ключевые категории диаграмм UML:

Категория Назначение Примеры диаграмм
Структурные Показывают статическую структуру системы. Диаграмма классов, компонентов, развёртывания.
Поведенческие Показывают динамическое поведение системы во времени. Диаграмма последовательностей, состояний, активностей.
Поведенческие (пользовательские) Описывают функциональность с точки зрения внешних акторов. Диаграмма вариантов использования.

Пример диаграммы классов (синтаксис в текстовом виде):

class BankAccount {
  -accountNumber: String
  -balance: Double
  -owner: Customer
  +deposit(amount: Double): Boolean
  +withdraw(amount: Double): Boolean
  +getBalance(): Double
}

class Customer {
  -id: String
  -name: String
  +accounts: List<BankAccount>
}

Customer "1" -- "*" BankAccount : owns >

Практическое применение UML:

  • Документирование архитектуры и дизайна.
  • Коммуникация между разработчиками, архитекторами и заказчиками.
  • Анализ сложных систем и их взаимодействий перед реализацией.
  • Генерация каркаса кода (forward engineering) или реверс-инжиниринг существующего кода.

Инструменты: Enterprise Architect, Lucidchart, draw.io, PlantUML, а также встроенные средства в IDE (например, IntelliJ IDEA).