Сценарии использования в UML: как писать эффективные спецификации сценариев использования

Отображение диаграммы сценария использования с использованием толькоUMLнотация недостаточна. Каждый сценарий использования сопровождается текстом, объясняющим цель сценария использования и функциональность, которая выполняется при его выполнении. Спецификации сценариев использования обычно создаются итеративно на этапах анализа и проектирования.

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

Сценарий использования vs. Спецификация сценария использования

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

Use Case vs. Use Case Specification

Сценарии использования (задачи, которые клиент хочет выполнить) могут быть:

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

Характеристики сценария использования

Сценарий использования имеет:

  • Только одна цель
  • Одна начальная точка
  • Одна конечная точка
  • Множество путей от начала до конца
    • То есть, он определяет поведение для различных возможных условий
    • Каждое условие может требовать определенных действий

Characteristics of a Use Case

Например — Клиент оплачивает счет:

Customer Pays a Bill

Существует несколько путей длядостижения цели:

  • По телефону
  • По почте
  • Лично
  • Чеком
  • Наличными и т.д.

Пути, которыене приводят к цели:

  • Кредитная карта отклонена

Агильный подход к использованию случаев

Модель использования и отдельные случаи использования постепенно развиваются во времени. Не все случаи использования в модели должны быть описаны на одном и том же уровне детализации.

Вовремя и в достаточном объеме

Случаи использования могут быть написаны на разных уровнях детализации и охвата, каждый из которых выполняет свою цель:

  • Обзор: Общее описание и обзор высокого уровня функции системы или бизнес-процесса.
  • Уровень целей пользователя: Описания, связанные с задачамицелей пользователяи как они взаимодействуют с системой; описания конкретных бизнес-процессов. Случаи использования, ориентированные на цели пользователя, обычно считаются на уровне основных рабочих задач пользователя.

Пример: Снятие наличных с банкомата — полезная задача, и это будет основной случай использования, но ввод вашего ПИН-кода не будет находиться на этом уровне, поскольку он поддерживает основную задачу.

  • Подфункция: Описания низкоуровневых действий, которые завершают части основного случая использования.

Agile Use Case Approach

Примечание: Некоторые случаи использования могут быть полностью описаны на уровне II. Вы останавливаетесь, когда имеете достаточный уровень детализации, полученный вовремя и в достаточном объеме.

Детальное описание случая использования

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

Detailed Use Case Specification

Шаблон случая использования — пример снятия наличных с банкомата

Как уже упоминалось ранее, случаи использования имеют различные стили обозначения (например, диаграммные, UML, текстовый формат). Независимо от используемого стиля обозначения, он должен быть понятным. Вы можете использовать шаблон, такой как шаблон отАлистера Кокберна, или выбрать шаблон, который лучше всего подходит вашей команде.

Описание случая использования
Имя варианта использования: Снять наличные
Актеры: Клиент (основной), Банковская система (второстепенный)
Краткое описание: Позволяет любому клиенту банка снять наличные со своего банковского счета.
Приоритет: Обязательно
Статус: Средняя детализация
Предусловия: Клиент банка имеет карту, которую нужно вставить в банкомат
Банкомат подключен к сети и функционирует нормально
Постусловия:
  • Клиент банка получил наличные (и, при необходимости, чек)
  • Банк списал средства со счета клиента и зафиксировал данные транзакции
Основной поток:
  1. Клиент вставляет свою карту в банкомат
  2. Банкомат проверяет, что карта является действительной банковской картой
  3. Банкомат запрашивает ввод PIN-кода
  4. Клиент вводит свой PIN-код
  5. Банкомат проверяет банковскую карту по PIN-коду
  6. Банкомат предлагает варианты услуг, включая «Снятие денег»
  7. Клиент выбирает «Снятие денег»
  8. Банкомат предлагает варианты суммы
  9. Клиент выбирает сумму или вводит сумму
  10. Банкомат проверяет, достаточно ли наличных в устройстве
  11. Банкомат проверяет, что клиент находится ниже лимита снятия
  12. Банкомат проверяет, достаточно ли средств на счете клиента
  13. Банкомат списывает средства со счета клиента
  14. Банкомат возвращает банковскую карту клиента
  15. Клиент забирает свою банковскую карту
  16. Банкомат выдает наличные клиенту
  17. Клиент забирает свои деньги
Альтернативные потоки: 2a. Недействительная карта
2b. Карта вставлена вверх ногами
5a. Похищенная карта
5b. Неверный PIN
10a. Недостаточно наличных в устройстве
10b. Неверное номинал наличных в устройстве
11a. Сумма снятия превышает лимит снятия
12a. Недостаточно средств на банковском счете клиента
14a. Банковская карта застряла в устройстве
15a. Клиент не забирает банковскую карту
16a. Наличные застряли в устройстве
17a. Клиент не забирает наличные

  • Банкомат не может установить связь с банковской системой
  • Клиент не реагирует на запросы банкомата
Бизнес-правила: B1: Формат PIN
B2: Количество попыток ввода PIN
B3: Варианты услуг
B4: Варианты сумм
B5: Лимиты снятия
B6: Карта должна быть извлечена до выдачи наличных
Нefункциональные требования: NF1: Время завершения транзакции
NF2: Безопасность ввода PIN
NF3: Время, отведенное на получение карты и наличных
NF4: Поддержка языков
NF5: Поддержка слепых и слабовидящих пользователей

Leave a Reply