ГОСТ IEC 60730-1—2016
Н.11.12.3.2.3.1 Основываясь на архитектуре, программное обеспечение должно быть подходящим образом
реализовано в модули. Процессы разработки модульной структуры программного обеспечения и кодирования
должны быть построены таким образом, чтобы имелась возможность прослеживаемости вплотьдо архитектуры и
требований программного обеспечения.
Процесс разработки модульной структуры должен определить:
- функцию(и).
- интерфейсы кдругим модулям.
- данные.
Примеры подходое/способов указаны в таблице Н.4.
Таблица Н.4 — Спецификация для разработки модульнойструктуры
Подход|’Способ
Ссылки (для справки)
Ограниченный размер модулей программного обеспечения
С.2.9 из IEC 61508-7:2010
Сокрытие данных /инкапсуляция
С.2.8 из IEC 61508-7:2010
Одна точка ввода/одна точка выхода в подпрограммах и функциях
С.2.9 из IEC 61508-7:2010
Полностью определенный интерфейс
С.2.9 из IEC 61508-7:2010
Полуформальные методы:
- Логические/функциональные блок-схемы
- Диаграммы последовательности
- Диаграммы конечных автоматов /изменений состояний
- Диаграммы потоков данных
B.2.3.2 из IEC 61508-7:2010
C.2.2 из IEC 61508-7:2010
Н.11.12.3.2.3.2 Код программного обеспечения должен бытьструктурирован.
Примечание — Структурная сложность может быть минимизирована путем применения следующих
принципов:
- свести количество возможных путей выполнения через модуль программного обеспечения к малому, а от
ношения между параметрами ввода и вывода к как можно более простым:
- избегать сложной разветвленности, особенно избегать безусловных переходов (GOTO) в более высоко
уровневых языках;
- где возможно, соотнести ограничения для циклов и ветвлений с параметрами входа:
- избегатьсложных вычислений в качестве основания для разветвлений и условий выхода из цикла.
Примеры подходое/способов указаны в таблице Н.5.
Таблица Н.5 — Стандарты проектирования и кодирования
Техиика/Способ
Ссылки (для справки)
Использовать стандарт кодирования (см. Н.11.12.3.2.4)
С.2.6.2 IEC 61508-7:2010
Неиспользование динамических обьектов и переменных (см. примечание)
С.2.6.3 IEC 61508-7:2010
Ограниченное использование прерываний
С.2.6.5 IEC 61508-7:2010
Ограниченное использование указателей
С.2.6.6 IEC 61508-7:2010
Ограниченное использование рекурсии
С.2.6.7 IEC 61508-7:2010
Отсутствие безусловных переходов в программах на более высокоуровне
вых языках
С.2.6.2 IEC 61508-7:2010
Примечание — Динамические объекты и/или переменные допустимы, если используют компилятор,
который обеспечивает резервирование достаточной памяти для всехдинамических объектов и/или переменных
перед началом работы, или который вставляет проверки времени исполнения для корректного выделения па
мяти во время работы.
Н.11.12.3.2.3.3 Закодированное программное обеспечение должно быть проверено по спецификации моду
ля. а спецификация модулядолжна быть проверена по архитектурной спецификации статическим анализом.
155