Введение в метод и модель вариантов использования приведено в статье “Варианты использования (статья не восстановлена после взлома блога)” цикла “Методы сбора требований“.
Построение модели вариантов использования – итеративный процесс определения границ системы и актеров, выявления вариантов использования и объектов системы, детализации вариантов использования.
Границу системы называют также контекстом системы (subject) – определяется тем, кто/что использует систему (актёры) и какие преимущества система им предлагает (варианты использования). Актёры располагаются вне контекста, а варианты использования – внутри контекста системы.
Шаги построения модели ВИ (рассмотрены подроно ниже по тексту):
- Определение границ (контекста) системы и выявление актёров;
- Выявление вариантов использования;
- Уточнение/детализация описаний вариантов использования;
- Повторение шагов 1-3 до стабилизации границ системы, актёров и ВИ.
Критерии корректности модели ВИ:
- Модель ВИ понятна?
- Изучив модель ВИ, удалось ли сформировать понимание функций системы и связи между ними?
- Отражены все функциональные требования?
- Содержит ли модель ВИ описание избыточного поведения?
- Приемлемо ли существующее деление модели на пакеты ВИ?
1. Определение границ системы: выявление актёров и их задач
Следует определить границу между системой и внешним миром – определить, что является частью системы и что находится вне границ системы. Взаимодействие с внешним миром осуществляется посредством интерфейсов.
При определении границ и актеров системы создается артефакт – «диаграмма ВИ».
Важно различать роль и сущность – одна и та же сущность может играть несколько ролей по отношению к системе. Актёры представляют роли, используемые людьми/сущностями, а не конкретных людей/сущности.
При выявлении актёров важно помнить:
- Актер всегда внешний по отношению к системе;
- Актер представляет роли людей/сущностей, а не их самих;
- У каждого актера может быть множество ролей;
- У каждого актера должно быть короткое осмысленное понятное имя.
- Пользователи;
- Другие системы;
- Приборы.
Для выявления актёров следует получить ответы на следующие вопросы:
- Какова Ваша задача в контексте использования системы?
- Какая задача более высокого уровня приводит к необходимости выполнения этой задачи?
- Какова более глобальная задача?
- Каковы цели этих задач?
Вопросы, которые помогут не упустить важные моменты:
- Кто/что использует систему?
- Какие роли они играют во взаимодействии?
- Кто/что запускает/выключает систему?
- Кто/что будет поставлять, использовать, удалять информацию системы?
- Какие внешние системы будут взаимодействовать с системой?
- Где будет использоваться система?
- Откуда система получает информацию?
- Кто будет управлять системой?
- Кто будет устанавливать/сопровождать систему?
- Кто будет управлять пользователями и безопасностью?
- Кто является администратором системы?
- Кто контролирует деятельность и производительность системы?
- Как выполняется обновление ПО?
- Кто анализирует журналы регистрации? Можно ли обеспечить удаленный доступ к ним?
- Происходит ли что-нибудь в точно установленное время («время» как исполнитель)?
- Существует ли процесс мониторинга, благодаря которому система перезапускается в случае сбоя?
Список выявленных актёров оформляется в виде следующей таблицы:
Наименование | Описание | Задачи («варианты использования») |
[Наименование актёра] | [Краткое описание актёра в 1-2 строки] | [Задачи актёра, которые предполагается решать с помощью создаваемой системы] |
Впоследствии последний столбец можно переименовать в «Варианты использования». Большинство инструментальных средств, поддерживающих UML, позволяет выгрузить в Word таблицу актёров и выполняемых ими ВИ.
Критерии корректности списка актёров:
- Были вывялены все актёры?
- Каждый актёр вовлечен хотя бы в 1 ВИ?
- Каждый актёр действительно представляет собой роль? Нужно ли объединить или разделить какие-то роли?
- Играют ли 2 каких-либо актёра одну и ту же роль по отношению к ВИ?
- У всех актёров интуитивно-понятные и осмысленные имена? Заказчик и пользователи одинаково понимают их суть по именам?
2. Выявление вариантов использования
Обычно каждой задаче актёра/пользователя соответствует один ВИ уровня элементарного бизнес-процесса. Исключение – ВИ пяти задач «Управление чем-либо» (создание, просмотр, изменение, удаление, восстановление).
Выявление ВИ – итеративный процесс поэтапного уточнения.
Для выявления ВИ и объектов системы следует получить ответы на следующие вопросы:
- Какие функциональные возможности понадобятся конкретному актеру от системы?
- Система сохраняет/извлекает информацию? Если да, то какой актер инициирует это действие? (аналогично для других функций системы);
- Что происходит, когда система изменяет состояние? Какой актер получает об этом уведомление?
- Какие внешние события оказывают влияние на систему? Как система узнает об этих событиях?
- С какими внешними системами взаимодействует система?
- Какие отчеты генерирует система? Кто инициирует генерацию отчетов?
Список выявленных вариантов использования оформляется в виде следующей таблицы:
Наименование | Описание | Актёры |
[Наименование ВИ] | [Краткое описание ВИ] | [Актёры, участвующие в ВИ] |
Критерии корректности перечня вариантов использования:
- Каждый ВИ используется хотя бы 1 актёром?
- Имеются ли ВИ со схожим поведением/потоками?
- У всех ВИ интуитивно-понятные смысловые имена? Наименования настолько понятны настолько, что не смогут быть спутанными на более поздней стадии?
- Все ли классы модели предметной области вовлечены хотя бы в 1 вариант использования? Если нет, то, возможно, следует дополнить перечень ВИ?
- Заказчики и пользователи одинаково понимают наименования и описания ВИ?
3. Уточнение/детализация описаний ВИ
При детализации вариантов использования производится:
- уточнение деталей функционального поведения системы – именно утончение последовательности действий, а не разбиение действий на более мелкие;
- фиксация поведения в виде текстовых/графических описаний ВИ с позиции пользователя;
- определение (идейно) экранов взаимодействия пользователь-система при необходимости.
Критерии корректности описаний ВИ:
- Ясно ли, кто инициирует исполнение ВИ?
- Ясна ли цель ВИ?
- Даёт ли краткое описание ВИ ясное понимание назначения ВИ?
- Ясно ли, как и когда поток ВИ начинается и заканчивается?
- Последовательность взаимодействий между актёром и ВИ удовлетворяет ожиданиям пользователей?
- Ясны ли действия актёра, формат его взаимодействия и обмениваемая информация?
- Не слишком сложны ли некоторые ВИ?
Структура описания вариантов использования приведена в одноименной статье.