ФЕДЕРАЛЬНОЕ УПРАВЛЕНИЕ
ГРАЖДАНСКОЙ АВИАЦИИ
МИНИСТЕРСТВА ТРАНСПОРТА США
Руководство по разработке
и управлению требованиями
При создании авиационных бортовых
встраиваемых систем реального времени

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

Оглавление
2.8 Разработайте детальные требования к поведению системы и её работе
2.8.1 Опишите поведение каждой изменяемой переменной
Следующий пример иллюстрирует, как это сделать, используя традиционные утверждения «‎система должна» для требований. Обычно проще всего начать с определения поведения каждой изменяемой переменной.

Например, часть функции идеального значения для изменяемой переменной Heat Control (управление нагревом) задаётся следующими требованиями:

1. Если режим регулятора NORMAL и текущая температура меньше нижней желаемой температуры, регулятор нагрева должен быть установлен в положение On (Вкл).

2. Если режим регулятора NORMAL и текущая температура превышает верхнюю желаемую температуру, регулятор нагрева должен быть установлен в положение Off (Выкл).

В отношении этих двух требований стоит отметить несколько моментов. Названия измеряемых и изменяемых переменных, режимов, внутренних переменных и их значений используются в качестве словаря требований. Это помогает привязать требования к структуре, которая была создана на предыдущих этапах.
Рекомендация 2.8.1
При подготовке детальных требований к системе используйте названия измеряемых и изменяемых переменных, а также названия режимов системы и её внутренних переменных.
2.8.2 Укажите требование в качестве условия и присвоенного значения
Обратите внимание, что каждое требование из приведенных в разделе 2.8.1 разбивается на условие, при котором требование содержит присвоение значения изменяемой переменной.

Условие, при котором выполняется требование, далее разбивается на режимы системы (например, режим регулятора NORMAL) и другие условия, основанные на измеряемой переменных и внутренних переменных (например, текущая температура меньше нижней желаемой температуры). Этот шаблон очень распространен при определении требований в виде утверждений «‎система должна»‎.
Рекомендация 2.8.2
Для каждого требования укажите режимы работы системы и условия, при которых это требование будет применяться, а затем изменение затрагиваемой переменной.
2.8.3 Убедитесь, что детальные требования полны
Оба требования, приведенные в разделе 2.8.1, являются неполными. В них ничего не говорится о значении регулирования температуры, когда переключатель режимов INIT (инициализируется) или FAILED (вышел из строя), или когда текущая температура находится между нижней желаемой температурой и верхней желаемой температурой.

В идеале значение каждой изменяемой переменной и каждой внутренней переменной должно быть указано для всех возможных режимов и условий в пределах этого режима. Значение переменной Heat Control (управление нагревом) может быть полностью, если ввести три дополнительных требования:

3. Если режим регулятора INIT, переменная Heat Control должна быть установлена в положение Off (Выкл).

Обоснование: инициализирующийся регулятор не может управлять текущей температурой, и регулятор нагрева должен быть отключен.
4. Если режим регулятора NORMAL и текущая температура больше или равна нижней желаемой температуре и меньше или равна верхней желаемой температуре, значение переменной Heat Control не должно изменяться.

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

5. Если режим регулятора неисправен, переменная Heat Control должна быть установлена в положение Off.

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

Этот набор из пяти требований гарантирует, что функция идеального значения определена для переменной Heat Control для всех возможных состояний системы.
Этот процесс следует повторить для каждой изменяемой и внутренней переменной. Это приведёт к цепочке назначений, которая определяет, что должно происходить с изменяемыми переменными в ответ на изменения в измеряемых переменных.

Иногда не важно выполнять присвоение переменной в определенном режиме или условии. Например, когда режим регулятора INIT или FAILED, температура, отображаемая в интерфейсе пользователя, может быть ненадёжной. Однако задокументировать это важно, поскольку пользователи информации (в данном случае интерфейс пользователя) должны знать, что значение температуры дисплея в этих условиях не имеет значения. Это можно сделать, добавив требование, чтобы значение не указывалось, например:

6. Если режим регулятора любой другой, кроме NORMAL, значение отображаемой температуры не определено (UNSPECIFIED).

Обоснование: в режимах, отличных от NORMAL, значение температуры дисплея не имеет значения и не должно использоваться.
Рекомендация 2.8.3
Убедитесь, что детальные требования являются полными, то есть каждой изменяемой переменной и внутренней переменной для каждого состояния системы присвоено идеальное значение. Используйте значение UNSPECIFIED (не определено), когда для состояния системы не существует осмысленного значения.
2.8.4 Убедитесь, что детальные требования согласованы
Следует позаботиться о том, чтобы требования были согласованными, то есть в требованиях не были указаны два значения одной переменной для одного и того же состояния системы.

Например, если бы первое требование было записано так:

1. Если режим регулятора NORMAL и текущая температура меньше или равна нижней желаемой температуре, переменная Heat Control должна быть установлена в положение On (Вкл).

Это противоречило бы четвёртому требованию, поскольку в первом требовании указывалось бы, что регулятор нагрева принимает значение ON, а в четвёртом требовании указывалось бы, что регулятор нагрева сохраняет свое предыдущее значение, когда текущая температура была меньше или равна более низкой желаемой температуре.
Рекомендация 2.8.4
Убедитесь, что детальные требования согласованы, то есть каждой изменяемой переменной и каждой внутренней переменной присваивается только одно идеальное значение для каждого возможного состояния системы.
2.8.5 Убедитесь, что детальные требования не дублируются
Стоит проверить набор требований, чтобы убедиться, что одно и то же требование не указано дважды (или больше раз) путём прямого дублирования или путём наличия требований, в которых режимы и условия конфликтуют друг с другом.
Рекомендация 2.8.5
Убедитесь, что никакие два детальных требования не дублируют друг друга, то есть укажите один и тот же результат для перекрывающихся режимов и условий.
2.8.6 Упорядочите требования
Требования к каждой изменяемой переменной и внутренней переменной представлены в функции, которая определяет эту переменную. Таким образом, диаграммы зависимостей служат наглядным оглавлением для детальных требований.

Например, требования к идеальному значению для изменяемой переменной Heat control приведены в функции «‎Управление источником тепла» в приложении A.5.1.3.
Рекомендация 2.8.6
Опишите детальные требования к функции, которая возвращает указанную переменную. В результате вы получите структуру, в которой определение каждой переменной напрямую прослеживается до её родительской функции.
2.8.7 Определите возможный допуск для каждой изменяемой переменной
Как только функция идеального значения задана для каждой изменяемой переменной и внутренней переменной, требования выполняются путём указания допуска и задержки для каждой изменяемой переменной. Задержка определяет максимальное задержку между моментом изменения значения одной или нескольких измеряемых переменных и моментом, когда изменяемая переменная должна изменить свое значение.

Например, если задержка для изменяемой переменной Heat Control задана как 6 секунд, то изменяемая переменная Heat Control должна принять своё новое значение в течение 6 секунд после того, как текущая температура или любая другая измеряемая переменная изменит свое значение. Задержка может быть константой или произвольной функцией от измеряемых и внутренних переменных. Часто несколько изменяемых переменных будут иметь одинаковую задержку, и одна константа или функция может быть определена и назначена нескольким изменяемым переменным.
В любом случае, всегда следует включать обоснование указанной задержки. Для изменяемой переменной Heat Control постоянная задержка в 6 секунд определена в функции «‎Управление источником тепла» в приложении A.5.1.3. Обратите внимание, что приводится обоснование задержки, основанное на предположениях об окружающей среде (см. таблицу 7).
Таблица 7. Допустимое поведение с задержкой источника тепла
Обоснование: поскольку закрытый инкубатор нагревается или охлаждается с максимальной скоростью 1°F в минуту

((EA-IS1 и EA-IS2), включение или выключение источника тепла в течение 6 секунд гарантирует, что текущая температура не изменится более чем на 0,1°F (а это и есть точность и разрешающая способность (цена деления) датчика температуры согласно EA-TS2).
Рекомендация 2.8.7
В рамках детальных требований к системе определите допустимую задержку в определении каждой изменяемой переменной вместе с обоснованием её значения.
2.8.8 Определите возможный допуск для каждой изменяемой переменной
Когда изменяемая переменная имеет числовой тип (в отличие от логического или перечисляемого), следует дополнительно указать возможный допуск от идеального значения. Например, изменяемое значение, отражающее высоту воздушного судна, должно включать в себя дельту (диапазон значений, в которых может находится переменная).

Для логических и перечисляемых значений допуск обычно не важен и не должен указываться. Например, поскольку изменяемая переменная Heat Control может принимать только значения On и Off, её допуск указан как N/A (не применяется) (см. приложение A.5.1.3).
Рекомендация 2.8.8
Определите возможный допуск для каждой числовой изменяемой переменной.
2.8.9 Не определяйте задержку и допуск для внутренних переменных
Обратите внимание, что допуск и задержка не указаны для внутренних переменных. Изменяемая переменная должна изменяться с заданной задержкой и допуском. Для внутренних переменных не существует таких требований, которые являются просто вспомогательными средствами, используемыми для разбиения спецификации функции идеального значения на управляемые части.
Рекомендация 2.8.9
Не определяйте задержку и допуск для внутренних переменных. Детальные системные требования к термостату инкубатора с использованием инструкций shall («‎система должна"‎) приведены в приложении A.5.
2.8.10 Альтернативные способы определения требований
Существуют и другие способы, которыми требования могут быть указаны помимо заявлений «‎система должна». Один из подходов заключается в использовании графической модели для определения функции идеального значения и дополнения её допусками и задержками для каждой изменяемой переменной.

Одним из недостатков такого подхода является то, что уже не очевидно, что представляет собой индивидуальное требование. Другой подход заключается в использовании таблиц для определения требований. Пример определения идеального значения терморегулирования приведён в таблице 8. В таблице 8 значение регулировки нагрева приведено в нижней строке в зависимости от режима регулятора и текущих условий. Каждая не заштрихованная внутренняя ячейка соответствует требованию и помечена теми же идентификаторами, которые используются в приложении A.5.1.3 для обозначения инструкций «‎система должна».
Обратите внимание, что спецификация значения переменной Heat Control в нижней строке может быть постоянной (например, вкл. или выкл.) или функцией предыдущего и текущего состояния (например, предыдущее значение). Главное преимущество такого табличного представления заключается в том, что оно помогает легко убедиться, что требования являются полными (для каждого режима и состояния системы определено идеальное значение) и согласованными (для каждого режима и состояния системы определено только одно идеальное значение).
Таблица 8. Табличное описание требований

Было предложено множество форматов для задания функций с использованием таблиц. SCR [2 и 3] и CoRE [4 и 5] широко используют таблицы условий (аналогичные таблице 8), таблицы событий и таблицы режимов. RSML [8] и Spectrum [15] используют формат, называемый and/или tables.

Некоторые другие табличные форматы описаны по ссылке [43]. Однако ключевой вопрос заключается не в том, указаны ли требования в виде инструкций «‎система должна» или графических моделей или таблиц, а в том, что требования должны определять взаимосвязь, которую система будет поддерживать между измеряемыми и изменяемыми переменными, и указание это должно быть полным, последовательным, недвусмысленным и проверяемым.
Что дальше
В следующем разделе мы изучим, как определять требования к программному обеспечению.

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