Открыть сервисСервис

Use case — сценарий использования программной системы

Use case (сценарий использования) — метод описания функциональных требований к программной системе, фиксирующий взаимодействие внешних пользователей (акторов) с системой для достижения конкретной цели. Термин введён в методологию объектно-ориентированного анализа и проектирования Якобсоном (Ivar Jacobson) в начале 1990-х годов и стал неотъемлемой частью унифицированного языка моделирования UML.

Происхождение термина

Понятие «use case» было предложено шведским инженером Якобсоном в 1992 году в книге «Object-Oriented Software Engineering: A Use Case Driven Approach». Якобсон работал над методологиями разработки телекоммуникационного ПО в Ericsson, где требовалось описывать сложные сценарии взаимодействия абонентов с системой. Термин «сценарий использования» стал одним из «трёх китов» объектно-ориентированного анализа (OOSE) наряду с блоками и пакетами.

Позднее концепция была адаптирована Гради Бучем (Grady Booch), Джеймсом Рамбо (James Rumbaugh) и Якобсоном при создании UML. В спецификации OMG диаграмма вариантов использования (Use Case Diagram) стала одной из девяти типовых диаграмм UML.

Основные понятия

Классическая модель use case включает следующие элементы:

  • Актор — внешняя сущность (пользователь, другая система, устройство), взаимодействующая с описываемой системой. Актор не является частью системы, но обменивается с ней сообщениями.
  • Вариант использования (use case) — последовательность действий, выполняемых системой в ответ на запрос актора, приводящая к измеримому результату, значимому для актора.
  • Связи — обозначают участие актора в варианте использования (ассоциация), расширение базового сценария (extend), включение общего подсценария (include) и наследование вариантов использования.

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

Структура описания

Помимо диаграммы, каждый use case сопровождается текстовым описанием. Типовой шаблон включает:

  1. Название сценария.
  2. Краткое описание цели.
  3. Акторов, участвующих в сценарии.
  4. Предусловия (что должно быть истинным до начала сценария).
  5. Основной поток событий (happy path) — пошаговое описание нормального выполнения.
  6. Альтернативные и исключительные потоки (обработка ошибок, отклонённые ветки).
  7. Постусловия (состояние системы после завершения).

Существуют различные нотации текстового описания — например, Cockburn-нотация, использующая структурированный текст с нумерацией шагов, или нотация «Use Case 2.0» Якобсона, предлагающая инкрементальное построение сценариев.

Применение

Технология use case применяется на этапе сбора и анализа требований в процессах разработки программного обеспечения. Она используется в таких методологиях, как Rational Unified Process (RUP), Agile-подходы (в частности, в User Story Mapping), а также при построении бизнес-моделей.

Практическое значение сценариев использования:

  • Коммуникация — сценарии понятны заказчику, аналитикам и разработчикам без специальных технических знаний.
  • Основа для тестирования — каждый сценарий (и его альтернативные ветки) транслируется в тест-кейсы.
  • Оценка объёма работ — число и сложность сценариев позволяют приблизительно оценить стоимость проекта.
  • Границы системы — акторы и сценарии чётко фиксируют, что входит в систему, а что нет.

Критика и ограничения

В 2000-е годы ряд практиков высказывал критику в адрес use case как метода. Основные возражения: склонность к «водопадной» логике описания, раздувание документации, сложность при моделировании асинхронных и распределённых систем. В ответ Якобсон предложил концепцию Use Case 2.0, акцентирующую инкрементальность и связь сценариев с итерациями разработки.

В Agile-сообществе сценарии использования часто заменяются или дополняются пользовательскими историями (user stories), которые формулируются короче и ориентированы на ценность для пользователя. Тем не менее, в крупных проектах (особенно в государственном заказе и оборонной промышленности) формальные спецификации use case продолжают использоваться.

См. также

  • UML
  • Анализ требований
  • Пользовательская история
  • Rational Unified Process

Источники

  • Jacobson I. Object-Oriented Software Engineering: A Use Case Driven Approach. — Addison-Wesley, 1992.
  • Cockburn A. Writing Effective Use Cases. — Addison-Wesley, 2001.
  • UML Specification, Object Management Group (OMG).
  • Kruchten P. The Rational Unified Process: An Introduction. — Addison-Wesley, 2003.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru