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

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

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

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

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

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

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


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


Оглавление

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

Наличие некоторого представления о границах системы упрощает последующие действия, а сама попытка определить такие переменные часто вызывает дополнительные вопросы. В качестве примера, предварительный набор измеряемых и изменяемых переменных для термостата инкубатора показан в таблице 1.
Таблица 1. Измеряемые термостатом переменные и переменные, которыми термостат управляет
Настройки пользователя и переменные обратной связи пользователя сгруппированы и используют те же названия, что показаны на контекстной диаграмме на рисунке А-1. Несмотря на то, что это неплохой список для начала проекта, он вызывает много вопросов.

Каковы пределы желаемых температурных диапазонов? Температура измеряется в градусах по Цельсию или Фаренгейту?

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

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

При определении измеряемых и изменяемых системой переменных полезно опираться на эмпирическое правило: переменные должны существовать вне системы и не должны зависеть от самой системы. Спросите себя: будет ли переменная продолжать существовать, даже если убрать разрабатываемую систему?
Рекомендация 2.2.2
Выберите переменные, которые существуют в среде независимо от разрабатываемой системы.
2.2.3 Выберите изменяемые системой переменные
Изменяемые переменные (переменные, которыми система должна управлять) должны быть выбраны только из тех, которыми система может непосредственно управлять. Например, в примере с инкубатором температура воздуха не выбрана в качестве изменяемой переменной, поскольку термостат может влиять на неё только косвенно, управляя источником тепла. Вместо этого в качестве регулируемой переменной следует выбрать регулятор нагрева, поскольку он находится под непосредственным управлением термостата.
Рекомендация 2.2.3
Выберите в качестве изменяемых переменных те величины, которыми система может управлять напрямую.
2.2.4 Выберите измеряемые переменные
Измеряемые переменные (переменные, которые система должна отслеживать) должны быть той физической величиной, которую система может оценить. Например, при определении поведения всего комплекса бортовых систем подходящей переменной может быть текущая высота самолёта. При определении поведения подсистемы подходящей измеряемой переменной может быть переданная другой подсистемой оценка высоты. Тщательный выбор переменных подходящего уровня абстракции может помочь избежать путаницы.

Например, если система должна определить высоту полёта воздушного судна, данные о высоте, возможно, стоит получать из нескольких источников. В этом случае выбирать текущую высоту воздушного судна в качестве измеряемой переменной нет смысла — ведь их несколько. Высота, полученная из каждого источника, будет считаться отдельной измеряемой переменной, а как объединить эти оценки в оценку истинной высоты воздушного судна будет указано в требованиях к системе.
Рекомендация 2.2.4
Выберите в качестве измеряемых переменных величины, которые система может оценить (измерить, воспринимает непосредственно).
2.2.5 Убедитесь, что переменные среды достаточно абстрактны
Важно учитывать, что измеряемые и изменяемые переменные должны быть как можно более абстрактными и не должны содержать подробностей о том, как они реализованы. Измеряемая переменная может быть действительным числом с точностью до одной цифры в диапазоне от -100,0 до +50,000.0, но не битовым словом из «Aeronautical Radio, Incorporated (ARINC) 429» (международный стандарт для требований к передаче данных в авионике в гражданской авиации — прим.пер.). И измеряемые, и изменяемые переменные должны содержать не больше деталей, чем необходимо системе для выполнения её функций, предполагая идеальный интерфейс с внешним миром.
Рекомендация 2.2.5
Убедитесь, что измеряемые и изменяемые переменные сформулированы максимально абстрактно и не содержат деталей реализации.
2.2.6 Избегайте упоминания деталей интерфейса в переменных
Следует проявлять особую осторожность и избегать включения деталей интерфейса в переменные. Например, дисплей может выдавать предупреждение пилоту, отображая высоту жёлтым цветом и опасную ситуацию мигающим красным.

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

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

Завершённый пример сопоставления измеряемых и изменяемых переменных с их внешним объектом показан для термостата инкубатора в приложении A.3.

Аналогичные примеры приведены в приложении B.3 для системы управления полётом, в приложении C.3 для подсистемы руководства полётом и в приложении D.3 для автопилота.
Рекомендация 2.2.6
Избегайте включения деталей интерфейса в переменные. Вместо этого определите переменные, которые описывают передаваемую информацию независимо от способа её представления.
2.2.7 Определите все физические интерфейсы
В конечном счёте, границы системы должны полностью определять её физический интерфейс. Должны быть описаны все входы и выходы, все сообщения, все поля в сообщении и протоколы, используемые для получения и отправки сообщений. Если интерфейс соответствует стандартному интерфейсу или протоколу, следует сослаться на соответствующий стандарт.

Хукс и Фарри [22] рекомендуют сделать это как можно скорее, и это разумно, так как несоответствие между интерфейсами — частый источник ошибок.

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

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

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