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 сопровождается текстовым описанием. Типовой шаблон включает:
- Название сценария.
- Краткое описание цели.
- Акторов, участвующих в сценарии.
- Предусловия (что должно быть истинным до начала сценария).
- Основной поток событий (happy path) — пошаговое описание нормального выполнения.
- Альтернативные и исключительные потоки (обработка ошибок, отклонённые ветки).
- Постусловия (состояние системы после завершения).
Существуют различные нотации текстового описания — например, 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.
