Описываем требования к взаимодействию систем с помощью Use Case по Коберну
Книга Коберна «Написание эффективных вариантов использования» (или "Современные методы описания функциональных требований к системам" -- "Writing Effective Use Cases") является одной из основных книг по системной аналитике.
Что стоит вынести из книги:
К началу проектирования:
- Определить, что входит в область действий проектирования (составление таблицы «Внутри/Вне»).
- Определить цели и приоритеты действующих лиц проектируемой системы.
- Кратко описать цели действующих лиц (юзкейс высокого уровня).
- Создавая юзкейсы, не стоит сразу вдаваться в детали и мелочи. Важно составить список всех возможных юзкейсов, утвердить его с коллегами, а уже потом расписывать их.
- Выявить все возможные условия неудачи в сценарии.
По юзкейсам:
- Структура написания юзкейсов. В обычном сценарии 3-9 шагов. Если больше – имеет смысл пересмотреть юзкейс и либо выделить в нем подчиненный сценарий, либо сократить его путем интеграции более мелких шагов.
- Написание. Использовать настоящее время, глагол действия. Описывать, как действующее лицо успешно достигает цели.
- Уровни целей юзкейсов (высокие, пользовательские, ниже пользовательских). Ориентируемся на пользовательские. Чтобы подняться выше, задаем вопрос «Почему?» Чтобы опуститься ниже, задаем вопрос «Как?» В итоге у нас должен получится юзкейс высокого уровня, который будет включать юзкейсы нижних уровней.
- Область проектирования, в частности, «черный ящик» и «прозрачный ящик».
- В юзкейсах должны быть описаны гарантии (что получит пользователь в случае успеха и неудачи выполнения сценария).
- Ограничение использования слова «если». Писать не «система проверяет заполненность полей. Если А, то Б. Если В, то Г». А «Система подтверждает заполненность полей и выполняется А. Иначе, выполняется Б».
- Основные варианты визуализации: один элемент — один вариант использования — одно поле; один элемент — один вариант использования — каждому разделу варианта использования свое поле; один вариант использования — иерархия элементов с атрибутом, отражающим тип раздела варианта использования; каждому разделу варианта использования — свой тип элементов.
Больше материалов смотрите в моем телеграм-канале: https://t.me/FreshProductGo.