1. Use cases на практике Предеин Александр, Системный аналитик [email_address]
2. Вариант использования. Что это? Вариант использования (Use case ) - описание поведения системы при ее взаимодействии с окружающим миром. Use case описывает то, как действующее лицо пытается достичь некой цели, используя систему
3. Описание функции Зарегистрироваться на сайте Сайт должен предоставлять пользователю возможность зарегистрироваться. Для регистрации пользователь должен заполнить форму. После регистрации сайт должен отправить на e-mail пользователя подтверждение о регистрации
4. Та же функция только в формате Use Case UC . Зарегистрироваться на сайте Действующее лицо: пользователь сайта Предусловия: пользователь находится на главной странице сайта Основной сценарий: Пользователь нажимает кнопку «Зарегистрироваться" Сайт отображает форму регистрации Пользователь заполняет поля формы и подтверждает регистрацию Сайт подтверждает правильность заполнения формы Сайт регистрирует пользователя и отправляет на его e-mail письмо с подтверждением регистрации Альтернативные сценарии: …
5. Структура Цель Действующие лица Предусловия Максимальные и минимальные гарантии Основной сценарий Расширения (альтернативные сценарии)
6. Нехороший пример Пользователь нажимает кнопку «Зарегистрироваться». Сайт отображает форму регистрации. Пользователь заполняет поля формы и подтверждает регистрацию. Сайт проверяет правильность заполнения формы. Если поля заполнены неверно, то сайт сообщает пользователю об ошибках заполнения формы. Если поля заполнены верно, то сайт регистрирует пользователя и отправляет на его e-mail письмо с подтверждением регистрации.
7. Нехороший пример (продолжение) Пользователь нажимает кнопку «Зарегистрироваться». Сайт отображает форму регистрации. Пользователь заполняет поля формы и подтверждает регистрацию. Сайт проверяет правильность заполнения формы. Если поля заполнены неверно, то сайт сообщает пользователю об ошибках заполнения формы. Если в базе уже есть пользователь с таким же e-mail , то сайт сообщает пользователю о том, что пользователь с таким e-mail уже зарегистрирован. Если поля заполнены верно, то сайт регистрирует пользователя и отправляет на его e-mail письмо с подтверждением регистрации.
8. Исправленный вариант использования Основной сценарий: Пользователь нажимает кнопку «Зарегистрироваться" Сайт отображает форму регистрации Пользователь заполняет поля формы и подтверждает регистрацию Сайт подтверждает правильность заполнения формы Сайт регистрирует пользователя и отправляет на его e-mail письмо с подтверждением регистрации
9. Исправленный вариант использования Основной сценарий: Пользователь нажимает кнопку «Зарегистрироваться" Сайт отображает форму регистрации Пользователь заполняет поля формы и подтверждает регистрацию Сайт подтверждает правильность заполнения формы Сайт регистрирует пользователя и отправляет на его e-mail письмо с подтверждением регистрации Альтернативные сценарии: 4а. Есть ошибки заполнения формы: 4а1. Сайт сообщает об ошибках заполнения формы. 4а2. Переход на шаг 3. 4б. Пользователь с таким e-mail уже зарегистрирован: 4б1. Сайт сообщает о том, что пользователь с таким e-mail уже зарегистрирован. 4б2. Переход на шаг 3.
12. В чем преимущество описания Use Case ? Дают представление о поведении системы Сравните с функцией: Сайт должен предоставить пользователю возможность зарегистрироваться Понятны заказчикам и разработчикам Позволяют описать множество альтернатив (исключений) Список вариантов использования – перечень функциональности системы Позволяют описывать функционал итеративно (перечень Use Cases - > Краткие описания - > Основные потоки -> Расширения)
14. Use Case и User Story User Story это один из сценариев, тогда как Use Case это набор сценариев Use Case объединяет несколько сценариев и показывает отношения между ними
15. Когда не стоит использовать Use Case Не стоит использовать: Когда требуется описать сложный алгоритм Для описания пользовательского интерфейса
16. Несколько рекомендаций Основной сценарий не больше 3 - 9 шагов Исключите элементы дизайна (если в них есть необходимость опишите в другом месте) Используйте один уровень детализации на всех шагах Избегайте формализма ( используйте тот шаблон, который необходим в данный момент ) Не пытайтесь описать все расширения сразу Не используйте «если» Следите за тем на чьей стороне мяч
17. О чем можно поговорить еще Как выявлять варианты использования Место вариантов использования среди требований
18. Что почитать Алистер Коберн «Современные методы описания функциональных требований к системам» https://prj.slweb.ru/attachments/download/6940 Алистер Коберн «Варианты использования , десять лет спустя» , статья http://www.maxkir.com/sd/useCasesTenYearsLater_RUS.html Блог Алистера Коберна о UC : http://alistair.cockburn.us/Use+cases Why I still use use cases: http://alistair.cockburn.us/Why+I+still+use+use+cases