Модульный подход при разработке программного обеспечения (ПО)
Одним из основополагающих принципов разработки безопасного ПО в соответствии с требованиями стандартов функциональной безопасности МЭК 61508, ISO 26262 для любых уровней SIL / ASIL - является модульность и низкая сложность программных компонентов.
МЭК 61508 описывает цель модульного подхода как:
декомпозирование программной системы на небольшие законченные модули в целях сокращения сложности и увеличения качества тестирования.
Модульный подход является защитой от спагетти-кода.
Стандарты описывают общие принципы модульного подхода как:
- программный модуль должен выполнять одну четко сформулированную задачу или функцию;
- связи между программными модулями должны быть ограничены и строго определены
- размеры подпрограмм следует ограничить некоторыми конкретными значениями
- подпрограммы должны иметь только один вход и один выход
- все интерфейсы программных модулей должны быть полностью документально оформлены.
К сожалению, стандарты по функциональной безопасности не дают более точных метрик и показателей модульности кода, возлагая эту задачу на стандарты кодирования разработчика ⌨️
В своих проектах по функциональной безопасности мы рекомендуем нашим клиентам пользоваться следующими метриками сложности кода и их предельными значениями:
__________
Цикломатическая сложность ≤ 10
Количество уровней вызова ≤ 4
Количество вызывания функций ≤ 5
Количество вызванных функций ≤ 7
Количество путей ≤ 80
Количество параметров функции ≤ 5
Количество операторов перехода = 0
Количество операторов возврата ≤ 1
__
Данные метрики также соответствуют рекомендациямHIS metrics (Hersteller Initiative Software) - набор показателей качества программного обеспечения, изначально разработанный группой немецких производителей автомобилей (Audi, BMW Group, DaimlerChrysler, Porsche и Volkswagen).
🔔Сохраняйте для себя и делитесь полезной информацией с коллегами
#SIL2 #HAZOP
#взрывозащита #взрывозащищеноеоборудование
#Эндьюренс_разъясняет