Use Case (вариант использования, ВИ, Прецедент, юскейс) это один из вариантов записи требований к системе. Дополнительную информацию о них можно узнать из статей:
• Что такое Use Case и зачем они нужны?
• Пример требований к системе
• Байка для оруженосца-5. Использование вариантов использования.
• Примеры вариантов использования (Usecase)
В отличие от многих других способов записи требований юскейсы обладают двумя приятными особенностями:
• Существует множество формальных способов проверки реестра юскейсов на полноту.
• Описан способ, как выделить уровни юскейсов.
Эти особенности позволяют легко создать достаточно полный реестр атомарных задач. Термин «Уровень» был предложен Алистером Коберном. Если очень грубо, то:
- Юскейс «уровня моря» - это юскейс, при котором время взаимодействия с системой не превышает 20 минут и который, будучи выполнен многократно, приносит пользу. Часто юскейсы этого уровня составляют основу спецификации требований.
- Юскейс «выше уровня моря» (змей, облако) - более высокоуровневый. Содержит несколько юскейсов уровнем ниже. Часто служит основой для переговоров с заказчиками.
- «Ниже уровня моря» (рыба, моллюск) - составная часть «уровня моря». Часто используется для описания взаимодействия между системами в рамках одного юскейса уровня моря.
Каждый из этих уровней в зависимости от проекта может быть выбран в качестве уровня атомарной задачи. Да, это не полный реестр, но это костяк реестра.
Примечание. Каждый юскейс может включать в себя как юскейсы более низкого уровня, так и задачи других типов.
Рассмотрим несколько разных проектов.
Проект А.
Маленький проект. Несколько недель (месяцев) для одного программиста.
Спецификация требований на основе ВИ на него можно найти по ссылке: «Пример требований к системе»
Примечание. Сегодня я бы написал документ по-другому, но и такой вариант довольно сильно облегчит жизнь программисту.
Это несколько недель для одного программиста. Сколько именно, зависит от платформы.
1. Java / C# + MSSQL – 6-12 недель
2. Дельфи + SQLite – раза в два меньше
3. FileMaker / MS Access / FoxPro / Clipper / Paradox – 3-10 дней
Если мы выбираем в качестве платформы C# + MSSQL, то для этого проекта удобно использовать юскейсы «уровня моря» в качестве уровня атомарной задачи. Реестр задач по этому проекту мог бы выглядеть следующим образом:
- Работа с «Партнерами» - (юскейс над уровнем моря)
- Создание необходимых структур в БД - (не юскейс)
- Просмотр списка партнеров - (юскейс уровня моря)
- Создание «Партнера» - (юскейс уровня моря)
- Просмотр «Партнера» - (юскейс уровня моря)
- Изменение «Партнера» - (юскейс уровня моря)
- Удаление «Партнера» - (юскейс уровня моря)
- …
Программисты на платформе C# + MSSQL, с которыми мы общались, утверждали, что делают в неделю 2-10 юскейсов вида «Просмотр, создание, изменение». То, что надо. Проводить дальнейшую декомпозицию нужно в очень редких случаях.
Примечание. При программировании на Paradox «Уровень моря» становится слишком мелок. Впрочем, с Paradox весь проект становится совсем крошечным, и для него формальный реестр задач необязателен.
Проект Б. Проект среднего размера. Несколько человеколет (десятков человеколет).
Создание интернет-магазина для крупной розничной сети.
Руководство уделяет пристальное внимание дизайну страниц, и поэтому создание макета, дизайн, верстку и программирование выполняют разные люди. Кроме того, в ходе выполнения одного единственного юскейса уровня моря может понадобиться несколько страниц. Нужен уровень помельче.
Реестр задач:
- Работа с Заказом
- Просмотр заказа
- Макет
- Дизайн
- Верстка
- Программирование
- …
- Оформление заказа для авторизованного покупателя
- Оформление заказа для неавторизованного покупателя
- Страница «Вход»
- Макет (не менее 6)
- Дизайн макета 2
- Дизайн макета 4
- Дизайн макета 5
- Верстка утвержденного макета
- Программирование
- Страница 2
- Страница 3
- Последняя страница
- Макет
- …
- Передача заказа в программу логистики (юскейс)
- Расчет бонусов (юскейс)
В данном случае юскейсы, в первую очередь, является группирующей сущностью атомарных задач. Что касается, атомарных задач, то это, как правило, будут не юскейсы. Но иногда будут встречаться юскейсы уровня рыбы и моллюска.