Анализ данных  •  28 декабря  2022  •  5 мин чтения

Варианты на все случаи жизни: как написать полезный use case

Use case — это часть требований к ПО. Он помогает разработать качественный продукт, от которого пользователь получит ожидаемый результат. Рассказываем, как написать такой документ.

Что такое use case

Когда разрабатывают ПО, для него пишут спецификацию — большой документ, который описывает, как должна работать система или продукт. Он состоит из разных требований: от бизнеса, пользователей, требований к функциям ПО, интерфейсам, операционной системе. Use case (в переводе с англ. «вариант использования») — это часть такого документа. Он описывает, какие действия выполняет пользователь и как система должна на них реагировать. Пример простейшего use case: пользователь заполнил поля формы, а система должна сохранить введённые данные.
Use case похож на инструкции, которые дают пользователю разные сервисы: нажмите на кнопку — получите результат; если результат выглядит иначе, выполните следующие действия. Ещё здесь есть дополнительная информация: что сервис должен сделать в ответ

Получается идеальная инструкция по сборке условного шкафа, после которой не должно остаться лишних деталей, а шкаф будет выглядеть как на картинке.

Как использовать юзкейс, зависит от стадии проекта, подхода к разработке и того, о чём договорилась команда:

ПО разрабатывают с нуля по водопадной методологии Waterfall, этапы проекта идут последовательно. Член команды пишет все юзкейсы с нуля, собирает из них огромную спецификацию, а потом передаёт разработчикам.

Продукт развивают по гибкой методологии Agile, каждая задача проходит цикл, работать над ними можно параллельно. Команда работает над продуктом уже какое-то время и небольшими итерациями вносит изменения: доработать форму, добавить кнопку. В этом случае юзкейсы пишут в сокращённом виде, а из больших шаблонов берут только самые важные моменты.

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

Зачем нужны варианты использования

1. Составить общее представление о продукте.
Система может состоять из множества компонентов, а вся команда, включая аналитика, должна знать, как они работают. Например, в какой базе данных хранится нужная информация или в какую подсистему нужно отправить запрос для выполнения расчётов. Если команде нужно понять, как обычный человек взаимодействует с ПО, поможет диаграмма use case.

2. Не забыть о пользователе.
Системный аналитик, который пишет варианты использования, не просто сообщает разработчику, какие функции должно выполнять ПО. Он учитывает, что этим ПО будет пользоваться другой человек, и он должен получить результат, на который рассчитывал. Например, пользователь хочет заполнить заявку на госуслугах и убедиться, что её отправили в нужное ведомство. Именно к такому результату его должны привести в юзкейсе.

Часто команды, которые давно разрабатывают продукт, говорят: «Нам это приложение уже как родное, мы знаем, как и что должно в нём работать. Давайте как-нибудь без юзкейсов. Сразу будем делать задачки». Однако в большом потоке задач можно упустить разные сценарии использования и забыть, что пользователи не идеальны и могут ошибаться, а системы не всегда выдают тот результат, который устроит пользователя. Например, при поиске авиабилетов пользователю может не подойти ни один из вариантов перелёта. Нужно предусмотреть, чтобы была возможность скорректировать параметры поиска.

3. Иногда помочь тестировщику.
Юзкейс может использовать тестировщик, когда проверяет готовую задачу. В этом случае диаграммы use case — это классический тест-кейс. Тестировщик идёт по нему, и если что-то в продукте работает не так, как описано, пишет в баг-репорте: ожидаемое действие такое, фактическое — другое. В документе он ссылается на юзкейс.

Материал по теме:
Кто такой Data Engineer, чем отличается от других специалистов по данным и как им стать

Как системные аналитики пишут use case

Допустим, аналитик пришёл в команду, которая разрабатывает приложение для такси. Разработка use case пройдёт в несколько этапов:

1. Сбор информации

Перед тем как писать use case, аналитик должен собрать:

● требования того, что хочет получить бизнес;

● пользовательские требования, что хочет получить от системы пользователь. Например, доехать на такси из точки А в точку В, выбрать из нескольких тарифов, расплатиться картой, наличными или бонусами.

Системный аналитик может получить нужные требования от бизнес-аналитика, который общается с заказчиком, или сам обратиться к нему за информацией.

Пользовательские требования бизнес-аналитик и системный аналитик формируют вместе. Если аналитиков на проекте нет, то эта задача может лечь на менеджера проекта или UX/UI-дизайнера, который глубоко погрузился в тему и проводил исследования с пользователями. Например, выяснил, что люди хотят доехать из точки А в точку В, но им не нравится заказывать такси по телефону.

2. Общая картина в виде диаграммы

Системный аналитик работает по принципу от общего к частному: сначала описывает задачу в целом, а затем постепенно детализирует её до мельчайших подробностей.
Составить общую картину помогает use case диаграмма. На ней отображаются все участники процесса, все варианты использования ПО, а иногда и системы, которые отвечают за сервис.

Например, в диаграмме use case для приложения такси аналитик укажет, что в процессе участвует сам пользователь, оператор такси, водитель, служба поддержки и платёжная система. Пользователь может залогиниться в приложении, привязать карту, сделать заказ.

Use case в формате диаграммы — это что-то вроде мультивселенной. На поле отображаются все участники, что каждый может сделать, строятся связи между ними. Получается общая картина по всему продукту или по отдельной функциональности

Диаграмма помогает во время мозговых штурмов, когда нужно придумать много разных вариантов использования функции или понять объём работ. Можно собраться всей командой вместе с разработчиками и тестировщиками, проработать продукт целиком или отдельную его функциональность.

Требований к диаграмме use case немного:

● участников процесса нужно обозначать специальными значками в виде человечков;

● варианты использования писать в овалах, например, залогиниться, авторизоваться, положить товар в корзину;

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

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

3. Текстовый use case по отдельным задачам

Use case в формате текста — это уже детализированная часть диаграммы. Аналитик берёт из неё каждый овал и подробно расписывает. Здесь помощь команды не нужна.

Элементы текстового use case

Для текстовых use case используют стандартные шаблоны, которые можно менять для команды или проекта. В одних компаниях шаблоны пользовательских сценариев очень подробные, другие сокращают их до минимума, но есть обязательные поля, которые важно заполнять в любом use case.
Название поля
Что содержит
Заголовок
Название варианта использования
Участники варианта использования
Основное действующее лицо (актор) и все дополнительные участники
Предусловие
В каком состоянии должен находиться каждый участник юзкейса, чтобы ситуация произошла. Например, вариант использования — заказать такси в приложении. Обязательное предусловие: пользователь должен быть авторизован.
Триггер
Что провоцирует выполнение этого сценария. Например, пользователь попал на страницу через баннер.
Результат или гарантии успеха
Что будет результатом успешного выполнения сценария. Например, пользователь заказывает такси в приложении, а гарантией успеха будет начавшаяся поездка.
Описание (основной сценарий)

Что должно произойти, чтобы пользователь пришёл от триггера к результату.

Например:

1. Пользователь вводит начальную и конечную точку маршрута.

2. Система подбирает доступную машину в радиусе 1 км.

3. Пользователь получает уведомление о времени прибытия машины.

Расширения (альтернативный сценарий)
Строится из основного сценария. К каждому пункту основного сценария нужно задать вопрос «А что если?». Если альтернативный сценарий использования возможен, описать его по шагам как основной.

Например:

3.1. Пользователь получает уведомление о том, что в радиусе 1 км доступные машины отсутствуют.

3.2. Система предлагает повысить класс обслуживания, чтобы расширить поиск.

Примеры написания use case

Качество юзкейса — в его пользе. Если юзкейс помогает команде понять, что делать дальше, и не приводит к ошибкам в продукте — значит, системный аналитик проделал отличную работу. Плохой юзкейс содержит ошибки, которые приведут к проблемам в процессе разработки или к тому, что пользователь не достигнет своей цели.

В каждой компании или команде по-разному адаптируют стандартные шаблоны юзкейсов. Главное для системного аналитика — понять, какой шаблон нужен именно для его проекта.

Вот подробный пример use case для интернет-магазина — новичку лучше начать с такого шаблона.

Вариант использования

Положить товар в корзину

Область действия
Мобильное приложение интернет-магазина
Уровень
Цели пользователя
Основное действующее лицо
Любой пользователь мобильного приложения
Участники
Отсутствуют
Предусловие
Пользователь находится на детальной странице товара
Гарантии успеха
Товар перемещён в корзину
Триггер
В любой момент, когда пользователь находится на детальной странице товара
Описание

1. Пользователь выбирает количество товара, которое он хочет переместить в корзину.
2. Система проверяет наличие выбранного количества товара.
3. Система подтверждает возможность заказа товара (-ов).
4. Пользователь перемещает товар в корзину.
5. Система добавляет товар (-ы) в состав корзины пользователя.

Расширение
3.1. Пользователь получает сообщение об отсутствии нужного товара на складе и возможности уменьшить количество товара.
3.2. Система возвращается к шагу 1.
А вот как можно адаптировать подробный шаблон для команды, которая развивает этот интернет-магазин:
Use case, из-за которого пользователь не придёт туда, куда нужно
В результате сценария использования все участники процесса должны понять, что use case успешно завершён, а пользователь получит результат, который описан в пункте «гарантии успеха». Если убрать из описания пункты «Пользователь перемещает товар в корзину» и «Система добавляет товар (-ы) в состав корзины пользователя», получится, что гарантий успеха нет, и пользователь может не увидеть товар в корзине.

Вариант использования

Положить товар в корзину

Область действия
Мобильное приложение интернет-магазина
Уровень
Цели пользователя
Основное действующее лицо
Любой пользователь мобильного приложения
Участники
Отсутствуют
Предусловие
Пользователь находится на детальной странице товара
Гарантии успеха
Товар перемещён в корзину
Триггер
В любой момент, когда пользователь находится на детальной странице товара
Описание

1. Пользователь выбирает количество товара, которое он хочет переместить в корзину.
2. Система проверяет наличие выбранного количества товара.
3. Система подтверждает возможность заказа товара (-ов).

Расширение
3.1. Пользователь получает сообщение об отсутствии нужного товара на складе и возможности уменьшить количество товара.
3.2. Система возвращается к шагу 1.
Use case, который приведёт к ошибкам в разработке
Классическая ошибка, которая почти всегда приводит к проблемам, — в юзкейсе нет поля с расширениями, то есть альтернативными пользовательскими сценариями. В примере ниже забыли описать ситуацию, когда нужного количества товара нет в наличии. Значит, в корзину могут положить товара больше, чем есть на складе. Придётся потом объяснять пользователю, почему компания не может привезти заказ.

Если аналитик действительно не нашёл расширения, то удалять это поле не нужно — лучше оставить пустым. Так разработчики и тестировщики поймут, что это единственный вариант использования.

Вариант использования

Положить товар в корзину

Область действия
Мобильное приложение интернет-магазина
Уровень
Цели пользователя
Основное действующее лицо
Любой пользователь мобильного приложения
Участники
Отсутствуют
Предусловие
Пользователь находится на детальной странице товара
Гарантии успеха
Товар перемещён в корзину
Триггер
В любой момент, когда пользователь находится на детальной странице товара
Описание

1. Пользователь выбирает количество товара, которое он хочет переместить в корзину.
2. Система проверяет наличие выбранного количества товара.
3. Система подтверждает возможность заказа товара (-ов).
4. Пользователь перемещает товар в корзину.
5. Система добавляет товар (-ы) в состав корзины пользователя.

Правила написания use case и несколько советов, как сделать его лучше

Читать теорию. Новичкам стоит начать с книги Карла Вигерса «Разработка требований к программному обеспечению» — это библия системного аналитика. По шаблонам из этой книги учат в Практикуме и других школах. Принципы Вигерса используют в компаниях в России и по всему миру.

Описывать обычную жизнь. Когда аналитик погружается в системный анализ, в какой-то момент понимает: всё, что он делает каждый день, можно описать в виде сценария. Чтобы набить руку, можно описывать юзкейсы самых банальных вещей: заваривания кофе или приготовления салата. Так получается замечать мелкие детали, из которых состоит юзкейс. На собеседованиях системных аналитиков могут попросить выйти из контекста и, например, описать сценарий использования зубной щётки.

Не усложнять. Если хорошо знать теорию, то в структуре юзкейса разобраться просто. Главное — формулировать мысль так, чтобы коллеги её поняли. Не нужно писать слишком подробно или использовать деепричастные обороты, как в художественных произведениях. Предложения должны просто и коротко описывать, что должен сделать пользователь и что должна ответить система.

Развивать насмотренность. Художники и дизайнеры постоянно смотрят чужие работы, чтобы развиваться. То же самое полезно делать и начинающим системным аналитикам — вбивать в поисковую строку «Use case варианты и примеры» и смотреть как можно больше чужих юзкейсов.
Писать юзкейсы по другим продуктам. Если аналитик видел аналогичный продукт или функциональность, полезно зайти в этот сервис, пройти путь пользователя и составить по нему юзкейс. Так можно получить важные подсказки по проекту.

Совет эксперта

Маргарита Нижельская
Тем, кто только начинает писать юзкейсы, лучше использовать подробный шаблон — так можно изучить все нюансы документа и набраться опыта. Когда поймёте, что стандартный шаблон идёт быстро и легко, можно переходить на следующий уровень — создавать кастомный шаблон юзкейса для своей команды. Его тоже нужно будет регулярно обновлять, а для этого — спрашивать у команды, что улучшить.

Статью подготовили:

Маргарита Нижельская
Яндекс Практикум
Руководитель группы системного анализа
Яндекс Практикум
Редактор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Идеи новогодних подарков от нейросети + промокоды на курсы Практикума и акции от партнеров
Tue Dec 03 2024 16:54:40 GMT+0300 (Moscow Standard Time)