Федеральное управление

гражданской авиации

Министерства транспорта США

Руководство по разработке

и управлению требованиями

При создании авиационных бортовых

встраиваемых систем реального времени


Исходный текст, 2009 / Русский перевод, 2022


Оглавление

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

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

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

UC-A.2.1: Нормальная работа инкубатора

Этот юскейс описывает нормальную эксплуатацию инкубатора медсестрой.

Связанные с юскейсом цели системы: G1

Основное действующее лицо: Медсестра

Предусловия:
  • Младенец готов к помещению в инкубатор
  • Инкубатор и термостат выключены
Постусловия:
  • Младенец извлекается из инкубатора
  • Инкубатор и термостат выключены
Основной сценарий:
  1. Медсестра включает инкубатор
  2. Инкубатор включает термостат
  3. Термостат инициализируется и переходит в обычный режим работы (исключение 1) (системная функция A.5.1.2)
  4. Медсестра настраивает инкубатор в соответствии с потребностями младенца (сценарий использования А.2.2)
  5. Медсестра ждёт, пока текущая температура не окажется в пределах желаемого температурного диапазона (системная функция A.5.1.1)
  6. Медсестра помещает младенца в инкубатор
  7. Инкубатор поддерживает желаемую температуру (сценарий использования A.2.3)
  8. Медсестра убеждается, что текущая температура находится в желаемом диапазоне температур во время обходов (системная функция А.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, прежде, чем поместить младенца в инкубатор, медсестра подтверждает, что текущая температура находится в пределах желаемого температурного диапазона. Это показывает, что пользователь ожидает, что система будет отображать текущую температуру. На это указывает привязка этого действия к интерфейсу управления системной функцией регулятора (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.3.1 и в приложении A.2 не содержат детали интерфейса. Например, в примере использования «Настройка инкубатора» приложения А.2.2 не указано, как медсестра указывает температурные диапазоны: устанавливая указатели на циферблате или нажимая клавиши на клавиатуре. Хотя детали физического интерфейса пользователя чрезвычайно важны, эти решения должны приниматься как часть дизайна интерфейсов. Ещё слишком рано говорить о конкретных интерфейсах во время разработки документа «Концепция эксплуатации». Благодаря отсутствию деталей интерфейса варианты использования пишутся в более общем виде, что делает их применимыми и к другим системам.
Рекомендация 2.3.12
Избегайте указания деталей пользовательского интерфейса в «Концепции эксплуатации». Вместо этого пишите вызываемые пользователем возможности системы.
2.3.13 Обновите описание границ системы
При использовании указанным выше образом, варианты использования являются отличным способом получения ранней валидации требований и документирования того, как пользователи и другие системы (то есть действующие лица, агенты) взаимодействуют с разрабатываемой системой.

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

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

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

Примеры использования системы управления полётом приведены в приложении B.2.
Рекомендация 2.3.13
Обновите описание границ системы, добавьте все новые переменными, выявленные в ходе разработки вариантов использования.
2.3.14 Соберите предварительный набор функций системы
При создании вариантов использования следует составить предварительный список функций системы. Они будут использоваться в качестве входных данных для действий, описанных в разделе 2.5. Такой предварительный список функций системы на примере инкубатора показан в таблице 3.
Таблица 3. Предварительный набор функций термостата инкубатора
Рекомендация 2.3.14
Из юскейсов соберите предварительный набор функций, которые будут предоставляться системой.
Что дальше
В следующем разделе мы рассмотрим как выявлять ограничения системы.

Далее к разделу 2.4