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

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

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

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

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

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

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


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


Оглавление

2.4 Выявите
ограничения среды
2.4.1 Определите тип, диапазон, точность
и единицы измерения переменных
Хотя желательно, чтобы система зависела от как можно меньшего числа ограничений, невозможно спроектировать систему, которая вообще никаких допущений не делает. Ни одна система не может принимать бесконечный диапазон входных данных, и, по крайней мере в какой-то момент, должны быть выбраны типы и диапазоны входных и выходных данных. Эти ограничения должны быть задокументированы вместе с обоснованием выбранных значений (см. раздел 2.11).

Часто существуют и другие, более сложные ограничения, которые также необходимо задокументировать. Например, прежде чем можно будет сконструировать термостат инкубатора (описанный в приложении A), необходимо определить типы, диапазоны, точность и единицы измерения переменных. Некоторые ограничения текущей измеряемой переменной температуры приведены в таблице 4.
Таблица 4. Ограничения текущей измеряемой переменной температуры
Здесь указано, что текущая температура, выдаваемая датчиком температуры, принимается за действительное число в диапазоне от 68,0 до 110,0 с точностью не менее 0,1, которое выражает температуру в градусах по Фаренгейту. По сути, это возвращает требования к датчику температуры и устанавливает с ним контракт.

Например, если датчик температуры показывает температуру в градусах по Цельсию, термостат вряд ли будет выполнять свою функцию правильно. Конечно, это ограничение можно изменить: текущая температура может быть указана в градусах по Цельсию, а термостат может произвести преобразование в градусы по Фаренгейту. Важно тут именно то, что ограничения чётко задокументированы, поэтому все обязательства известны и выполняются.
Рекомендация 2.4.1
Определите в качестве ограничений системы тип, диапазон, точность и единицы измерения всех измеряемых и изменяемых переменных.
2.4.2 Задокументируйте обоснование
использования именно таких ограничений
Даже для такого простого параметра, как текущая температура, сразу возникает несколько вопросов. Почему температура указана в градусах по Фаренгейту, а не в градусах по Цельсию? Почему диапазон составляет от 68,0° до 110,0° F? Почему указана точность в 0,1°F?

Обоснования всех принятых по этому поводу решений необходимо документировать (см. раздел 2.11).

Для параметра «текущая температура» это может выглядеть так:

1) Текущая температура должна быть указана в термостате в градусах по Фаренгейту.

Обоснование: Для соответствия с пользовательским интерфейсом (EA-OI)-1 все показатели температуры будут отображаться в градусах по Фаренгейту.
2) Текущая температура должна измеряться с точностью ±0,1°F.
Обоснование: Точность в 0,1 °F необходима для обеспечения того, чтобы термостат мог достаточно быстро включать и выключать источник тепла для поддержания температуры в нужном диапазоне.

3) Текущая температура должна находиться в диапазоне от 68,0° до 103,0°F.

Обоснование: Это диапазон работы инкубатора согласно требованиям. Нижняя граница этого диапазона полезна для контроля за инкубатором, который нагревается до желаемого температурного диапазона. Верхняя граница устанавливается на 1°F больше верхней желаемой температуры, чтобы гарантировать, что текущая температура будет измеряться во всем желаемом диапазоне температур.
Обоснование (раздел 2.11) необходимо для принятия решений об изменении ограничений и даёт ценную информацию для разработчиков и будущей поддержки системы.

Рекомендация 2.4.2: Задокументируйте обоснование использования именно таких ограничений.
Рекомендация 2.4.2
Определите в качестве ограничений системы тип, диапазон, точность и единицы измерения всех измеряемых и изменяемых переменных.
2.4.3 Систематизируйте ограничения,
связанные с одним объектом
Полезный способ упорядочить ограничения — представить их рядом с подробным описанием того объекта, который они ограничивают. Это упрощает обзор всех обязательств, возлагаемых на каждый внешний объект. В итоговой спецификации требований к термостату инкубатора создан раздел, описывающий каждый внешний объект, в котором среди прочего перечислены допущения об окружающей среде, сделанные в отношении него (см. приложение A.3).
Рекомендация 2.4.3
Опишите ограничения рядом с тем объектом, который они ограничивают, чтобы было легко определить все обязательства, возложенные на каждый объект.
2.4.4 Систематизируйте ограничения,
связанные с несколькими объектами одновременно
Некоторые ограничения определяют сложные взаимосвязи между несколькими переменными.

Например, некоторые ограничения, введенные применительно к желаемому температурному диапазону, могут звучать так:

1) Нижняя граница желаемого температурного диапазона должна быть ≥ 97°F

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

2) Нижняя граница желаемого температурного диапазона должна быть всегда меньше или равна верхней желаемой температуре минус 1°F.

Обоснование: если нижняя желаемая температура больше или равна верхней желаемой температуре, то нет однозначного ответа, что стоит делать: включить или выключить источник тепла? Это может привести к чрезмерному циклическому включению и выключению источника тепла.
3) Верхняя желаемая температура должна быть ≤ 100°F.

Обоснование: воздействие на младенца температуры выше 100°F может привести к диагностированию лихорадки, а значит повлечь за собой агрессивные обследования (посев крови и люмбальная пункция) и лечение.

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

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

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

1) Когда источник тепла включен и инкубатор должным образом закрыт, текущая температура должна повышаться со скоростью не более 1° F в минуту

2) Когда источник тепла выключен и инкубатор должным образом закрыт, текущая температура должна снижаться со скоростью не более 1° F в минуту
Тут мы сталкиваемся с тем, что не совсем понятно, с каким внешним объектом эти ограничения должны быть связаны. На самом деле эти ограничения не про датчик температуры и не про источник тепла. Можно сказать, что они охватывают и то, и другое. Поэтому стоит сгруппировать эти ограничения с тем объектом, который отвечает за обеспечение их выполнения. В нашем случае таким объектом является сам инкубатор, который включает в себя датчик температуры, источник тепла и термостат. Поэтому спецификация требований должна включать внешний объект для инкубатора, содержащий эти ограничения. Пример можно найти в приложении A.3.1.
Рекомендация 2.4.4
Если ограничение определяет взаимосвязь между несколькими внешними объектами, определите тот объект, который отвечает за ограничение, и опишите ограничение рядом с ним.
2.4.5 Задайте статус
каждой измеряемой переменной
Другой тип ограничений связан с измеряемыми переменными и уровнем доверия, которое может быть оказано их значению.

Система должна иметь возможность определить измеряемые переменные. Если не удаётся определить значение переменной, поведение системы может не соответствовать требованиям. Например, некоторым переменным не стоит доверять сразу после включения питания (до первого их измерения после включения системы). В других случаях переменной не стоит доверять, если её значение давно не обновлялось, то есть значение измеряемой переменной устарело. Несколько серьезных аварий произошли в системах по причине того, что система зависела от неизвестных или устаревших значений переменных [24].

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

Например, если система ведет себя одним образом, когда переменной можно доверять, и другим способом, когда нельзя, её статус должен принимать только два значения: актуальный или неактуальный.
Если система ведет себя одним образом, когда измеряемой переменной можно доверять, другим способом, когда она неизвестна, и третьим способом, когда отслеживаемая переменная становится устаревшей, тогда у атрибута «Статус‎» должно быть три значения: актуальное, неизвестное и устаревшее (неактуальное). Начальный статус переменной должен быть установлен в значение, явно указывающее, что ей нельзя доверять, пока система её не измерила.

Конечно, на начальном этапе работы с требованиями может не хватать информации, чтобы определить все статусы, которые в итоге будут в системе. Поэтому важно пересматривать диапазоны допустимых и недопустимых значений по мере работы с требованиями.
Рекомендация 2.4.5
Определите атрибут «‎Статус» для каждой измеряемой переменной. Каждое значение статуса должно соответствовать новому поведению системы. Начальный статус переменной должен быть установлен в значение, явно указывающее, что ей нельзя доверять, пока система её не измерила.
2.4.6 Краткие выводы
Подводя итог, стоит сказать, что ограничения должны определять все варианты поведения системы в окружающей среде, от которых зависит правильная работа системы. Это основной шаг, позволяющий разрабатывать компоненты системы независимо.

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

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

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