Skip to content
IRC-CodingIRC-Coding
UMLUnified Modeling Languageдиаграмма классовдиаграмма последовательностидиаграмма деятельностиOCLмоделирование

UML: основы, диаграммы, классы и последовательности

UML — стандартный язык моделирования ПО. Структурные и поведенческие диаграммы, связи, ассоциации, агрегация, композиция, OCL.

S

schutzgeist

3 min read
UML: основы, диаграммы, классы и последовательности

Основы UML: типы диаграмм, диаграмма классов, диаграмма последовательности и OCL

Этот материал представляет объяснение термина UML, включая экзаменационные вопросы и тэги.

In a Nutshell

UML — это стандартизированный визуальный язык моделирования программного обеспечения и систем, предоставляющий структурные и поведенческие диаграммы для последовательного документирования требований, проектирования и коммуникации.

Краткое описание

UML разделяет структуру и поведение. Структурные диаграммы, такие как диаграмма классов и диаграмма пакетов, описывают статические элементы. Поведенческие диаграммы, включая диаграмму активности, диаграмму последовательности и диаграмму состояний, демонстрируют процессы и реакции. Основные связи включают ассоциацию, агрегацию, композицию и обобщение, дополненные зависимостями и реализацией. Видимость управляет доступом, мультипликативность описывает кардинальность, стереотипы и профили позволяют адаптировать модель к предметной области. Текстовые ограничения формулируются с помощью OCL, например инварианты, предусловия и постусловия.

Важные для экзамена пункты

  • Структурные диаграммы: классы, объекты, пакеты, компоненты, развёртывание
  • Поведенческие диаграммы: активность, последовательность, коммуникация, состояния, прецеденты
  • Понимание связей: ассоциация, агрегация, композиция, обобщение, реализация, зависимость
  • Правильное обозначение кардинальности и согласование с бизнес-правилами
  • Использование OCL для точных условий, вывод критериев приёмки и тестов
  • Моделирование состояний с условиями охраны и действиями, проверка переходов, критичных для безопасности
  • Экономическая эффективность благодаря ранней обнаружении ошибок и улучшенной коммуникации
  • Версионирование моделей, проверка, утверждение, документирование связи с требованиями и тестовыми случаями

Основные компоненты

  1. Элементы нотации: класс, атрибут, операция с видимостью
  2. Связи: ассоциация, агрегация, композиция, обобщение
  3. Мультипликативность и роли на рёбрах
  4. Пакеты, пространства имён, импорт и правила видимости
  5. Компоненты и интерфейсы с реализацией
  6. Элементы активности: действие, решение, объединение, разветвление, синхронизация
  7. Элементы взаимодействия: линия жизни, сообщение, активация в модели последовательности
  8. Автомат состояний с состояниями, переходами, охраной, входом и выходом
  9. Профили, стереотипы, помеченные значения для адаптации к предметной области
  10. OCL для инвариантов, предусловий, постусловий и построенных на них тестовых случаев

Практический пример

Домен: Библиотечная выдача

Диаграмма классов:
Классы: Читатель, Издание, Выдача
Связи: Читатель к Выдаче (1 к *), Издание к Выдаче (1 к *)
Выдача имеет атрибуты: дата_начала, дата_окончания, продлена_ли
Операция: продлить() с правилом: дата_окончания = дата_окончания + 14 дней, если издание допускает продление

Последовательность: "Выдача издания"
Участники: Читатель, Система, Каталог, Сервис выдачи
Процесс:
1. Читатель посылает "Выдать издание" в Систему
2. Система запрашивает Каталог о наличии
3. Каталог отвечает "доступно"
4. Система вызывает Сервис выдачи: создать Выдачу с Читателем и Изданием
5. Сервис выдачи создаёт Выдачу и подтверждает, Система сообщает об успехе

Пример OCL:
Context Выдача::inv ДатаВозвратаПравильна: self.дата_окончания > self.дата_начала

Преимущества и недостатки

Преимущества

  • Общий язык для бизнеса и техники
  • Лучший анализ и качество проектирования
  • Более быстрый вывод тестов
  • Чёткая документация, лучшая поддерживаемость

Недостатки

  • Время на обучение
  • Риск излишне сложных моделей
  • Отсутствие обязательности без процесса и поддержки
  • Возможные недопонимания при неuniform нотации

Типичные экзаменационные вопросы (с краткими ответами)

  1. Основные категории диаграмм UML? Структурные диаграммы (классы, пакеты, компоненты) и поведенческие диаграммы (активность, последовательность, состояния, прецеденты).
  2. Различие между агрегацией и композицией? Агрегация — слабая связь целое-часть без привязки к жизненному циклу, композиция — сильная связь с общей продолжительностью жизни.
  3. Использование OCL в UML? Для точных формальных ограничений, таких как инварианты, предусловия и постусловия, которые хорошо преобразуются в тесты.
  4. *Кардинальность 1, , 0..1? 1 = ровно один элемент, * = ноль или любое количество, 0..1 = опциональный одиночный элемент.
  5. Определение границ системы в UML? Через границы системы в диаграмме прецедентов и интерфейсы пакетов/компонентов.
  6. Вывод тестовых случаев из UML? На основе сценариев в диаграммах последовательности/активности и условий OCL.
  7. Использование обобщения? Когда общие свойства выносятся в базовый класс, специализации расширяют или переопределяют их.
  8. Правильная диаграмма классов для ИХК? Классы со значимыми названиями, атрибуты с типами и видимостью, операции, связи с кардинальностью и ролями.

Основные источники

  1. https://www.omg.org/spec/UML
  2. https://martinfowler.com/books/uml.html
  3. https://de.wikipedia.org/wiki/Unified_Modeling_Language
Назад к блогу
Share:

Nächster Artikel in Архитектура программного обеспечения

Weiterlesen
Паттерны архитектуры: цели, компромиссы, C4/ADR

Похожие статьи