2.3 Разработайте «Концепцию эксплуатации»
2.3.1 Задокументируйте успешный сценарий
(основной поток, поведение системы «в солнечный день»)
В терминологии вариантов использования пользователи, проектируемая система и другие системы, которые взаимодействуют с ней, называются акторами (действующими лицами). Каждый вариант использования описывает действия системы и диалог запросов между субъектами и системой для достижения некоторой цели. Актор, который инициирует вариант использования, называется основным актором.

Предусловие определяет условия, которые должны быть выполнены до запуска варианта использования, а постусловие определяет условия, которые должны быть выполнены после успешного завершения юскейса.
Основной успешный сценарий описывает взаимодействие акторов «в солнечный день» (sunny day), то есть взаимодействие, в котором всё происходит наилучшим образом (согласно плану). Если достижение цели юскейса возможно несколькими способами, можно определить альтернативные сценарии. Способы, при которых вариант использования может не соответствовать своей цели или его постусловиям, обрабатываются с помощью случаев исключения. Пример нормальной работы инкубатора, показанный на рисунке 2, иллюстрирует многие из этих концепций.

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

Рекомендация 2.3.1: Сначала задокументируйте успешный сценарий системы (поведение системы в «солнечный день»). Позже, в качестве расширения этого стандартного поведения, опишите сбои и исключения.
Пример юскейса:
Use case A.2.1: Нормальная работа инкубатора

Этот вариант использования описывает нормальную работу медсестры с инкубатором.
Связанные цели системы: G1
Основное действующее лицо: Медсестра
Предварительное условие:
Младенец готов к помещению в изолятор.
Изолятор и термостат выключены.
Постусловие:
Младенца извлекают из изолятора.
Изолятор и термостат выключены.
Основной сценарий:
1. Медсестра включает инкубатор.
2. Инкубатор включает термостат.
3. Термостат инициализируется и переходит в свой обычный режим работы. [Функция системы A.5.1.2]
4. Медсестра настраивает инкубатор в соответствии с потребностями младенца. [UC A.2.2]
5. Медсестра ждёт, пока Текущая температура не окажется в пределах диапазона желаемой температуры. [Системная функция A.5.1.1]
6. Медсестра помещает младенца в инкубатор.
7. Инкубатор поддерживает желаемую температуру. [UC A.2.3]
8. Медсестра во время обходов подтверждает, что Текущая температура находится в диапазоне желаемой температуры. [Системная функция A.5.1.1]
9. Медсестра забирает младенца.
10. Медсестра выключает инкубатор.
11. Инкубатор выключает термостат.
2.3.2 Укажите, как система используется в своей операционной среде
Обратите внимание, что пример использования «в солнечный день» описывает работу термостата, демонстрируя как он используется в более широком контексте нормальной работы инкубатора. Это еще одно важное преимущество вариантов использования: они описывают работу системы в среде в очень простом формате. Например, этот вариант использования проясняет в основном сценарии успеха, что термостат автоматически включается и выключается изолятором, т.е. медсестре также не нужно включать и выключать термостат. Было бы трудно передать это в юскейсе, сосредоточенном только на интерфейсе с термостатом.

Рекомендация 2.3.2: Включите варианты использования, описывающие, как проектируемая система используется в более широком контексте её операционной среды.
2.3.3 Используйте цель варианта использования в качестве его названия
Также обратите внимание, что название варианта использования описывает цель варианта использования, т.е. определяет нормальную работу инкубатора. Это позволяет легко найти желаемый вариант использования и сослаться на него при необходимости.

Рекомендация 2.3.3: Используйте цель каждого варианта использования в качестве его названия.
2.3.4 Сопоставьте каждый вариант использования с целями системы
В приведённом примере варианта использования мы видим связь с целью G1. Сопоставление вариантов использования с теми целями, которые их реализация помогает достичь, гарантируют нам, что вариант использования описывает действительно необходимое поведение. Это также облегчает поддержку изменений в случае если цели системы или вариант использования будут меняться со временем.

Рекомендация 2.3.4: Сопоставляйте каждый вариант использования с теми целями системы, которые он должен помочь достичь.
2.3.5 Определите основное действующее лицо, пред- и постусловия
Основным действующим лицом (основным актором), инициирующим приведённый выше вариант использования, является медсестра.
Предусловие заключается в том, что ребенок готов к помещению в изолятор и изолятор и термостат выключены.
Предусловие определяет условия, которые должны быть выполнены к моменту запуска варианта использования.

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

Рекомендация 2.3.5: Для каждого варианта использования определите основного актора (участника, который инициирует вариант использования), предусловия, должны быть выполнены к моменту запуска варианта использования, и постусловия, которые должны выполняться после завершения варианта использования.
2.3.6 Убедитесь, что каждый вариант использования описывает взаимодействие
Основной сценарий описывает взаимодействие между медсестрой и термостатом в ситуации, когда всё идет по плану. В общем, варианты использования должны описывать взаимодействие между основным действующим лицом, проектируемой системой и другими действующими лицами. Каждая строка в этом сценарии должна описывать действие одного из участников, попеременно сменяя друг друга. Если во взаимодействии доминирует один участник, возможно, стоит пересмотреть этот вариант использования.

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

Например, на шаге 5 на рисунке 2 медсестра подтверждает, что текущая температура находится в пределах желаемого температурного диапазона, прежде чем поместить младенца в изолятор. Это показывает, что оператор ожидает, что система будет отображать текущую температуру. На это указывает привязка этого действия к интерфейсу управления системной функцией регулятора (A.5.1.1), который предоставляет эту возможность. Это сделано для того, чтобы в случае изменения функции системы было легко найти и просмотреть все способы использования этой функции. Это также позволяет читателю перейти к функции и ознакомиться с ней, чтобы детальнее изучить взаимодействие между вариантом использования и системой.

Рекомендация 2.3.7: Свяжите каждый шаг варианта использования с функцией системы, которую он вызывает.
2.3.8 Объедините повторяющийся действия в единый вариант использования
В рассматриваемом выше юскейсе на шаге 7 вариант использования «UС A.2.1: Нормальная работа инкубатора» вызывает вариант использования «UC A.2.3: Поддержание желаемой температуры», который описывает, как термостат будет поддерживать текущую температуру в желаемом диапазоне температур. Такое выделение юскейса позволяет объединить действия, которые используются в нескольких местах, в один вариант использования, а затем использовать его повторно. Кроме того, это делает варианты использования более компактными и понятными.

Рекомендация 2.3.8: Объедините действия, которые повторяются в нескольких юскейсах, в один вариант использования, который можно вызвать из нескольких мест.
2.3.9 Описывайте исключительные ситуации как исключения
Исключения используются для описания поведения системы и участников, когда возникает отклонение от обычного поведения системы, то есть из основного сценария (happy path).

Полное описание таких юскейсов представлено в разделах 2.6.4–2.6.6, а в приложении A.2.1 вы можете найти пример описания исключений для инкубатора. На шаге 5 основного сценария рассматриваемый вариант использования инкубатора ссылается на юскейс из приложении A.2.6 «Попытка поддерживать желаемую температуру провалена».

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

Рекомендация 2.3.9: Опишите в виде исключений особые ситуации или шаги, в которых вариант использования может не соответствовать своей цели или постусловиям
2.3.10 Опишите альтернативные сценарии — другие способы достичь постусловий
Если существуют другие сценарии, которые можно регулярно выполнять, чтобы достигать постусловия, стоит записать их как альтернативные сценарии. Рассматриваемый нами выше пример слишком простой, поэтому в нём нельзя выделить альтернативные сценарии, но мы можем предложить в качестве примера сценарий, выполняющийся в случае невозможности поддержания желаемой температуры. Он описан в приложении A.2.6.

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

Рекомендация 2.3.10: Опишите альтернативные сценарии, с помощью которых вариант использования может достичь своей цели и постусловий.
2.3.11 Используйте названия внешних объектов или переменных среды
Обратите внимание, что большинство слов в юскейсе относится к внешним объектам, указанным в разделе 2.1, или к измеремым и изменяемым переменным, указанным в разделе 2.2. Этого следовало ожидать, поскольку юскейсы рассматривают систему как чёрный ящик без внутренней структуры. Измеряемые и изменяемые переменные естественным образом описывают, как внешние сущности и акторы взаимодействуют с системой. Это помогает поддерживать согласованность с остальной частью спецификации требований.

Рекомендация 2.3.11: Используйте названия внешних объектов в вариантах использования для акторов, имён измеряемых и изменяемых переменных в предусловии, постусловии и шагах сценария.
2.3.12 Избегайте деталей пользовательского интерфейса
Обратите внимание, что варианты использования на рисунке 2 и в приложении A.2 не содержат детали интерфейса. Например, в примере использования «Настройка инкубатора» приложения А.2.2 не указано, как медсестра указывает температурные диапазоны: устанавливая указатели на циферблате или нажимая клавиши на клавиатуре. Хотя детали физического интерфейса оператора чрезвычайно важны, эти решения должны приниматься как часть дизайна интерфейсов. Ещё слишком рано говорить о конкретных интерфейсах во время разработки документа «Концепция эксплуатации». Благодаря отсутствию деталей интерфейса варианты использования пишутся в более общем виде, что делает их применимыми и к другим системам.

Рекомендация 2.3.12: Избегайте указания деталей пользовательского интерфейса в «Концепции эксплуатации». Вместо этого пишите вызываемые пользователем возможности системы.
2.3.13 Обновите описание границ системы
При использовании таким образом варианты использования являются отличным способом получения ранней проверки требований и документирования того, как пользователи и другие системы (то есть действующие лица, акторы) взаимодействуют с разрабатываемой системой.

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

Например, на шаге 3 в Основном сценарии успеха на рисунке 2 обсуждается инициализация термостата и его переход в нормальный режим работы. Это означает, что медсестра может определить, когда термостат переходит в нормальное состояние, чтобы его можно было настроить, что, в свою очередь, подразумевает необходимость в дополнительной изменяемой переменной для отображения состояния термостата. Обновлённый список отслеживаемых и управляемых переменных показан в таблице 5.

Таблица 5. Обновлённые переменные, контролируемые термостатом
При желании в юскейсах может быть собрана дополнительная информация. Примеры включают набор из вариантов использования, второстепенных акторов и цели каждого актора в рамках этого юскейса. Представленный здесь стиль в значительной степени основан на стиле, указанном в источнике по ссылке [17]. Более подробную информацию также можно найти в ссылках [18] и [19].

Итоговые варианты использования термостата инкубатора приведены в приложении A.2. Эти варианты использования были доработаны, поэтому основные варианты использования A.2.1–A.2.3 имеют ссылки на исключения (варианты использования A.2.4–A.2.6). Они также ссылаются на возможности, которые ещё не обсуждались, такие как активация сигнализации.

Примеры использования FCS приведены в приложении B.2.

Рекомендация 2.3.13: Обновите описание границ системы, добавьте все новые переменными, выявленные в ходе разработки вариантов использования.
2.3.14 Соберите предварительный набор функций системы
При создании вариантов использования следует составить предварительный список функций системы. Они будут использоваться в качестве входных данных для действий, описанных в разделе 2.5. Такой предварительный список функций системы на примере инкубатора показан в таблице 6.

Таблица 6. Предварительный набор функций термостата инкубатора
Рекомендация 2.3.14: Из юскейсов соберите предварительный набор функций, которые будут предоставляться системой.
Что дальше
В следующем разделе мы рассмотрим как выявлять ограничения системы.

Вперед к разделу 2.4!
Made on
Tilda