ГОСТР 53195.5—2010
Описание: в случав применения этого подхода динамические переменные и динамические объекты
оказываются переменными и объектами, которые имеют свои определенные и абсолютные адреса в памяти,
устанавливаемые во время выполнения программы. Объем распределяемой памяти и ее адреса зависят от
состояния системы в момент распределения памяти, а это означает, что они не могут быть проверены компиля
тором или любым другим автономным инструментом.
Так как число динамических переменных и объектов и существующее свободное пространство памяти для
размещения новых динамических переменных или объектов зависят от состояния системы в момент размеще
ния. то возможны сбои при размещении или при использовании переменных или объектов. Например, если
объем свободной памяти для распределяемой переменной системы не достаточен, то содержимое другой пере
менной в памяти может быть нечаянно стерто. Если динамические переменные или объекты не используются, то
появление этих сбоев исключено.
В.2.6.4 Проверка создания динамических переменных или динамических объектов при выполнении про
граммы
П р и м е ч а н и е — На этот метод’средстэо дана ссылка в ГОСТ Р 53195.4 (таблица Б.1).
Цель:убедиться втом. что память, в которой должны быть размещены динамические переменные иобъекты,
свободна до ее загрузки, гарантируя при этом, что размещение в ней динамических переменных и объектов во
время выполнения программы не повлияет на уже существующие в ней переменные, данные или коды.
Описание: в случае применения этих методоа/средств к динамическим переменным относят переменные,
имеющие свои определенные и абсолютные адреса в памяти, устанавливаемые во время выполнения програм мы
(в этом смысле переменные являются также атрибутами экземпляров объектов).
Аппаратными либо программными средствами память проверяется на то, что она свободна до размеще
ния в ней динамических переменных или объектов (например, для того, чтобы исключить переполнение стека).
Если размещение не разрешается (например, если памяти по определенному адресу недостаточно), должны
быть предприняты соответствующие действия. После использования динамических переменных или объектов
(например, после выхода из подпрограммы) вся используемая ими память должна быть освобождена.
П р и м е ч а н и е — Альтернативой служит статическая демонстрация того, что память будет адекватной во
всехслучаях.
В.2.6.5 Ограниченное использование прерываний
П р и м е ч а н и е — На этот метод/средстводана ссылка в ГОСТ Р 53195.4 (таблица Б.1).
Цель: сохранение верифицируемости и тестируемости ПО.
Описание: использование прерываний должно быть ограничено. Прерывания могут использоваться, если
они упрощают систему. Использование программных средств для обработки прерываний должно быть запреще
но в критических ситуациях для выполняемых функций (например, при критичности по времени, критичности
изменения данных). Если прерывания все же используются, то непрерываемые фрагменты должны иметь опре
деленное максимальное время вычисления, на основании которого определяется максимальное время, в тече
ние которого прерывание запрещено. Использование прерываний и их маскирование должно четко документи
роваться.
В.2.6.6 Ограниченное использование указателей
П р и м е ч а н и е — На этот метод/средстводана ссылка в ГОСТ Р 53195.4 (таблица Б.1).
Цель: исключение проблем, связанных с доступом к данным без предварительной проверки типа и диапа
зона указателя; обеспечение возможности модульного тестирования и верификации программных средств; сни
жение тяжести последствий отказов.
Описание: в прикладных программных средствах указатель арифметических действий может быть исполь
зован на уровне исходного кода только в том случае, когда тип и диапазон значений указателя данных будут про
верены перед доступом (для гарантирования того, что ссыпка указателя находится внутри корректного адресного
пространства). Связи между задачами в прикладных программах не должны осуществляться с помощью непос
редственных ссылок между задачами. Обмен данными должен осуществляться через операционную систему.
В.2.6.7 Ограниченное использование рекурсий
П р и м е ч а н и е — На этот метод/средство дана ссылка в ГОСТ Р 53195.4 (таблица Б.1).
Цель: исключение использования вызовов неверифицируемых и нетестируемых подпрограмм.
Описание: при использовании рекурсии должен быть установлен четкий критерий, обеспечивающий пред
сказуемость глубины рекурсии.
В.2.7Структурноепрограммирование
П р и м е ч а н и е — На этот метод/средство дана ссылка в ГОСТ Р 53195.4 (таблица А.4).
Цель: проектирование и реализация программы с использованием практического анализа программы без
ее выполнения. Программа может содержать только абсолютный минимум статистически нетестируемого пове
дения.
47