Задача: Создание подробного описание варианта
В этой задаче происходит добавление подробностей в конкретный вариант использования.
Дисциплины: Требования
Назначение

Цель этой задачи:

  • Описать один или несколько потоков событий варианта использования с достаточной степенью подробности, чтобы для них можно было начать разработку программного обеспечения.
  • Детализировать вариант использования так, чтобы он стал понятным представителю субъекта или клиенту.
Взаимосвязи
Шаги
Проверка и уточнение сценария

Начните с проверки и уточнения сценариев, с которыми вы будете иметь дело в текущем цикле разработки. Они могут быть уже заданы в разделе Задача: поиск субъектов и вариантов использования. Возьмите перечисленные сценарии за исходную точку при определении того, какие потоки потребуется описать.

Подробное описание потока событий

Во время выполнения задачи из раздела Задача: поиск субъектов и вариантов использования вы, возможно, уже указали предварительную информацию о потоках событий варианта использования. Детализируйте теперь эту информацию.

Понять и детализировать потоки варианта использования вам помогут наброски. Также можно принять во внимание прототип пользовательского интерфейса, если он разработан.

Опишите вариант использования в соответствии со стандартами, принятыми для проекта. Прежде чем составлять описание варианта использования, ответьте на следующие вопросы, чтобы обеспечить единообразие описаний всех вариантов использования:

  • Как запускается вариант использования? Вы должны четко описать сигнал, по которому активируется вариант использования. Например: "Вариант использования запускается, когда происходит ...".
  • Как завершается вариант использования? Вы должны четко описать условия в потоке событий, при наступлении которых происходит завершение варианта использования. Например: "Вариант использования завершается, когда происходит ...".
  • Как вариант использования взаимодействует с субъектами? Для того чтобы свести вероятность недоразумений к минимуму, укажите в точности, что будет находиться внутри, а что - вне системы. Структурируйте описание в виде набора абзацев, в котором каждый абзац выражает действие в формате: "Когда субъект делает ..., система делает ...". Вы можете сделать описание взаимодействия еще более подробным, указав, что вариант использования отправляет и принимает сигналы от субъектов, например: "Вариант использования запускается, когда получает сигнал 'запустить' от Оператора".
  • Как вариант использования обменивается данными с субъектом? При желании вы можете сослаться на аргументы сигналов, но лучше написать, к примеру, "Вариант использования запускается, когда Пользователь входит в систему, указывая свое имя пользователя и пароль."
  • Как вариант использования повторяет некоторое поведение? Попытайтесь выразить это словами. В исключительных случаях допускается использование конструкций кода, например "WHILE-END WHILE," "IF-THEN-ELSE" и "LOOP-END LOOP", если соответствующие термины трудновыразимы на обычном языке. Однако, в общем случае, таких конструкций следует избегать в описаниях вариантов использования, поскольку с ними трудно работать.
  • Существуют ли необязательные ситуации в потоке событий варианта использования? Иногда субъект представлен с несколькими опциями. Это должно быть отражено в записи. Например:

    "Субъект выбирает одно из следующего, один или несколько раз:

    a) . . .

    b) . . .

    c) . . ." и т.д.

  • Как следует описать вариант использования, чтобы он был понятен клиенту и пользователям? Применение специальных терминов, таких как вариант использования, субъект и сигнал, может сделать текст трудным для восприятия. Для того чтобы сделать текст проще, вы можете перечислить действия или выбрать какую-нибудь другую стратегию. Выбранная стратегия должна быть указана в общих рекомендациях по моделированию вариантов использования, чтобы вы учитывали ее при выполнении общей задачи по описанию вариантов использования.

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

Если поток событий варианта использования стал слишком объемным или сложным, или если в нем появились части, независимые друг от друга, разбейте его на два или более вариантов использования.

При создании описания пользуйтесь глоссарием (раздел Рабочий продукт: глоссарий). По мере появления новых терминов из новых концепций добавляйте их в глоссарий. Не изменяйте определение термина, не проинформировав об этом соответствующих участников проекта.  Дополнительная информация приведена в разделе  Задача: захват общего словаря.

Содержимое описания потока событий

Описание потока событий указывает:

  • Как и когда запускается вариант использования.
Пример:

"Вариант использования может начать выполнение при активации пользователем функции 'Управлять заказом'."

  • Когда вариант использования взаимодействует с субъектами и какими данными они обмениваются.
Пример:

"Для создания заказа пользователь активирует функцию 'Создать' и затем указывает следующие обязательные данные о заказе: название, сетевые элементы (по крайней мере один) и тип функции измерения. Могут быть указаны и необязательные данные о заказе: комментарий (небольшое текстовое описание). После этого пользователь активирует функцию 'OK', и в системе появляется новый заказ."

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

  • Как и когда вариант использования применяет данные, хранимые в системе, или сохраняет данные в системе.
Пример:

"Пользователь активирует функцию 'Изменить', чтобы изменить существующий заказ, и указывает номер заказа (небольшое целое число). Затем система инициализирует форму заказа с указанными названием, сетевыми элементами и типом функции измерения. Эти данные извлекаются из вспомогательного запоминающего устройства."

  • Как и когда завершается вариант использования.
Пример:

"Вариант использования завершается при активации Заказчиком функции 'Выход'."

Вы должны также описать необычные или исключительные потоки событий. Исключительным называется поток варианта использования, не подчиняющийся обычному поведению варианта использования. Тем не менее, такой поток может быть необходим в любом полном описании поведения варианта использования. Типичный пример исключительного потока приведен в первом примере. Если вариант использования получает непредвиденные данные (т.е. информацию о том, что субъект отличен от ожидаемого в данном конкретном контексте), то он завершается. Неверный субъект и преждевременное завершение не предусмотрены в обычном потоке событий.

Прочие инструкции "что делать" и "чего не делать", которые следует учесть при описании варианта использования, включают:

  • Опишите поток событий, а не только функциональное назначение или цель варианта использования.
  • Опишите только потоки, принадлежащие варианту использования; не нужно описывать то, что происходит в других вариантах использования, работающих параллельно с данным.
  • Не упоминайте субъекты, не контактирующие с рассматриваемым вариантом использования.
  • Не перегружайте излишними подробностями описания взаимодействия варианта использования с субъектами.
  • Если порядок субпотоков варианта использования может не быть фиксированным, не требуйте в описании, чтобы он был фиксированным.
  • Используйтесь термины из общего глоссария и учтите следующее при написании текста:
  • Описание должно быть простым и понятым. Не указывайте сложный термин, когда есть его простой эквивалент.
  • Предложения должны быть короткими и выразительными.
  • Избегайте употребления наречий, таких как очень, больше, скорее, типа.
  • Следите за правописанием.
  • Избегайте сложных предложений.

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

Создание структуры потока событий

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

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

Часть описания варианта использования Снять деньги в системе банкомата может выглядеть так: "Сумма, которую клиент хочет снять со счета, сравнивается с балансом счета. Если сумма превышает баланс, то об этом сообщается клиенту и вариант использования завершается. В противном случае, деньги снимаются со счета".

  • Вариант использования может выполнять некоторые субпотоки в необязательных последовательностях.
  • Вариант использования может выполнять несколько субпотоков одновременно.

Вы должны описать все эти необязательные или альтернативные потоки. Рекомендуется описать каждый субпоток в отдельном дополнении к разделу Поток событий; в следующих случаях эта рекомендация становится обязательной:

  • Субпотоки, занимающие большую часть данного потока событий.
  • Исключительные потоки событий. Это помогает четче выделить основной поток событий варианта использования.
  • Любой субпоток, который можно выполнить с несколькими интервалами в том же потоке событий.

Если субпоток включает лишь второстепенную часть основного потока событий, то лучше описать его в теле текста.

Пример:

"Данный вариант использования активируется при вызове функции 'управление заказом' субъектом Заказчик или субъектом Администратор Performance Manager. Если сигнал не поступит от одного из этих субъектов, вариант использования завершит операцию и выдаст соответствующее сообщение пользователю. Если же субъект будет распознан, то вариант использования будет продолжен с ...".

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

Дополнительная информация приведена в разделе Рекомендация: вариант использования.

Проиллюстрируйте взаимосвязи с субъектами и другими вариантами использования

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

Дополнительная информация приведена в разделе  Рекомендация: диаграмма варианта использования.

Описание всех особых требований

Все требования, которые могут быть связаны с вариантом использования, но не учтены в потоке события варианта использования, должны быть описаны в Особых требованиях к варианту использования. Такие требования, скорее всего, не являются функциональными.

Дополнительная информация приведена в параграфе, посвященном особым требованиям, раздела Рекомендация: варианта использования.

Определение протокола(ов) связи

Определите протокол связи, который будет применяться любым субъектом, являющимся другой системой или внешним аппаратным обеспечением. Если следует применять какой-нибудь существующий протокол (особенно, если это широко распространенный или стандартный протокол), то в описании варианта использования достаточно указать название протокола. Если протокол новый, то вы должны дать ссылку на местонахождение его описания, которое должно быть полностью задано во время разработки объектной модели.

Описание предварительных условий

Предварительное условие для варианта использования объясняет состояние, в котором должна находиться система, чтобы был возможен запуск варианта использования.

Пример:

Для того чтобы система банкомата могла выдавать наличность, должны быть соблюдены следующие предварительные условия:

  • Сеть банкомата должна быть доступна.
  • Банкомат должен быть готов к приему транзакций.
  • В банкомате должны быть деньги для выдачи.
  • Банкомат должен быть заправлен бумагой для печати чека по крайней мере для одной транзакции.

Все это будет допустимыми предварительными условиями для варианта использования Выдать деньги.

Тщательно опишите состояние системы; избегайте описания подробностей других побочных задач, которые могли выполняться до этого варианта использования.

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

Дополнительная информация приведена в параграфе, посвященном предварительному условию, раздела Рекомендация: вариант использования.

Описание заключительных условий

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

Пример:

Если банкомат всегда выдает сообщение 'Добро пожаловать' в конце варианта использования, то это можно задокументировать в заключительном условии варианта использования.

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

Заключительные условия позволяют упростить и сделать более удобочитаемым поток событий варианта использования.

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

Дополнительная информация приведена в параграфе, посвященном заключительному условию, раздела Рекомендация: вариант использования.

Описание точек расширения

Если вариант использования должен быть расширен другим вариантом использования (см. раздел Рекомендация: взаимосвязь расширения), то вы должны описать точки расширения (см. параграф, посвященный точкам расширения, раздела Рекомендация: вариант использования).

Анализ результатов

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

Описание варианта использования можно считать законченным только тогда, когда оно будет содержать сведения обо всем, что выполняет, реализует или позволяет выполнять вариант использования. Прежде чем закончить, убедитесь, что вариант использования проявляет свойства, характеризующие его как "хороший" вариант использования. Дополнительная информация приведена в разделе Справочная таблица: вариант использования.

Ключевые условия
When detailing a use case, especially to support the review of the use case, you may want to generate a use-case specification. For more information, see the the reports, templates, and examples, as well as the tool mentors for generating the reports, that are associated with Work Product: Use Case.
Дополнительные сведения