ГОСТ IEC 60335-1-2015. Межгосударственный стандарт. Бытовые и аналогичные электрические приборы. Безопасность. Часть 1. Общие требования
Приложение R
(обязательное)
ОЦЕНКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Программируемые электронные цепи, требующие программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблицах R.1 или R.2, должны пройти процедуру валидации в соответствии с требованиями настоящего приложения.
Примечание - таблицы R.1 и R.2 основаны на таблице H.11.12.7 IEC 60730-1. Таблица H.11.12.7 для целей настоящего приложения разбита на две таблицы R.1 и R.2, таблица R.1 используется для общих состояний отказов/ошибок, а таблица R.2 - для специфических состояний отказов/ошибок.
Таблица R.1 <e>
Общие условия повреждений/ошибок
Компонент <a> | Отказ/ошибка | Допустимые средства <b>, <c> | Определения в IEC 60730-1 |
1 Центральный процессор |
|
|
|
1.1 Регистры | Постоянная неисправность | Функциональная проверка; | H.2.16.5 |
или периодическая самопроверка с использованием: | H.2.16.6 | ||
- статического теста памяти; или | H.2.19.6 | ||
- защиты слова избыточным битом | H.2.19.8.2 | ||
1.2 Свободен |
|
|
|
1.3 Программный счетчик | Постоянная неисправность | Функциональная проверка; | H.2.16.5 |
или периодическая самопроверка; | H.2.16.6 | ||
или независимый контроль временных интервалов; | H.2.18.10.4 | ||
или логический контроль программной последовательности | H.2.18.10.2 | ||
2 Обработка и выполнение прерываний | Нет прерываний или слишком частые прерывания | Функциональная проверка; | H.2.16.5 |
или контроль временных интервалов | H.2.18.10.4 | ||
3 Тактовый генератор | Неверная частота (для кварцевого генератора - только гармоники или субгармоники) | Контроль частоты; | H.2.18.10.1 |
или контроль временных интервалов | H.2.18.10.4 | ||
4 Память |
|
|
|
4.1 Постоянная память | Все однобитные повреждения | Периодический модифицируемый расчет контрольной суммы; | H.2.19.3.1 |
или множественные контрольные суммы; | H.2.19.3.2 | ||
или защита слов избыточным битом | H.2.19.8.2 | ||
4.2 Изменяемая память | Статическая неисправность | Периодический статический тест памяти; | H.2.19.6 |
или защита слов избыточным битом | H.2.19.8.2 | ||
4.3 Адресация (для постоянной и изменяемой памяти) | Постоянная неисправность | Защита слов, включая адрес, избыточным битом | H.2.19.8.2 |
5 Внутренний тракт данных | Постоянная неисправность | Защита слов избыточным битом | H.2.19.8.2 |
5.1 Свободен |
|
|
|
5.2 Адресация | Ошибочный адрес | Защита слов, включая адрес, избыточным битом | H.2.19.8.2 |
6 Связь с внешними устройствами | Расстояние Хемминга 3 | Защита слов многобитовой избыточностью; | H.2.19.8.1 |
или контроль циклическим избыточным кодом - одно слово; | H.2.19.4.1 | ||
или избыточность передачи; | H.2.18.2.2 | ||
или проверка протокола | H.2.18.14 | ||
6.1 Свободен |
|
|
|
6.2 Свободен |
|
|
|
6.3 Синхронизация | Ошибочный момент времени | Контроль временных интервалов; | H.2.18.10.4 |
или запланированная передача. | H.2.18.18 | ||
Ошибочная последовательность | Логический контроль и контроль временных интервалов; или сравнение информации, полученной по дублирующим каналам связи посредством: | H.2.18.10.3 | |
- взаимного сравнения и | H.2.18.10.15 | ||
- независимого аппаратного компаратора | H.2.18.10.3 | ||
Логический контроль | H.2.18.10.2 | ||
или контроль временных интервалов; | H.2.18.10.4 | ||
или запланированная передача | H.2.18.18 | ||
7 Периферия ввода/вывода | Условия неисправности по 19.11.2 | Контроль достоверности | H.2.18.13 |
7.1 Свободен |
|
|
|
7.2 Аналоговый ввод/вывод |
|
|
|
7.2.1 Аналого-цифровые и цифро-аналоговые преобразователи | Условия повреждений по 19.11.2 | Контроль достоверности | H.2.18.13 |
7.2.2 Аналоговый мультиплексор | Ошибочная адресация | Контроль достоверности | H.2.18.13 |
8 Свободен |
|
|
|
9 Заказные микросхемы <d>, например ASIC, GAL, логические матрицы | Любой выходной сигнал, не соответствующий статическим и динамическим спецификациям | Периодическая самопроверка | H.2.16.6 |
<a> Для оценки повреждений/ошибок некоторые компоненты в таблице разбиты на подкомпоненты. <b> Для каждого подкомпонента этой таблицы средства по таблице R.2 будут охватывать программные повреждения/ошибки. <c> Когда для подкомпонента указано несколько допустимых средств, то их необходимо рассматривать как альтернативные. <d> Могут быть при необходимости разбиты на подкомпоненты изготовителем. <e> Таблица R.1 применяется к требованиям R.1 - R.2.2.9 включительно.
Примечание - Постоянная неисправность означает повреждение, соответствующее обрыву цепи или постоянному уровню сигнала. Статическая неисправность означает повреждение, включающее постоянную неисправность и короткое замыкание между сигнальными линиями |
Таблица R.2 <e>
Специфические условия повреждений/ошибок
Компонент <a> | Повреждение/ошибка | Допустимые средства <b>, <c> | Определения в IEC 60730-1 |
1 Центральный процессор |
| Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
1.1 Регистры | Статическая неисправность | - независимого аппаратного компаратора; или | H.2.18.3 |
контролем внутренних ошибок; или | H.2.18.9 | ||
дублирующей памяти со сравнением, или | H.2.19.5 | ||
периодической самопроверкой с использованием: |
| ||
- пошагового теста памяти; или | H.2.19.7 | ||
- теста Абрахама; или | H.2.19.1 | ||
- открытого теста GALPAT; или | H.2.19.2.1 | ||
- защита слов многобитовой избыточностью; или | H.2.19.8.1 | ||
- статический тест памяти, и | H.2.19.6 | ||
- защита слов избыточным битом | H.2.19.8.2 | ||
1.2 Декодирование и выполнение | Ошибочное декодирование и выполнение | Сравнение с дублирующим центральным процессором посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
контролем внутренних ошибок; или | H.2.18.9 | ||
периодическая самопроверка с использованием теста эквивалентности класса | H.2.18.5 | ||
1.3 Счетчик команд | Статическая неисправность | Периодическая самопроверка и контроль с использованием: | H.2.16.7 |
- независимого контроля временных интервалов и логического контроля; или | H.2.18.10.3 | ||
- обнаружения внутренних ошибок; или сравнение с дублирующими функциональными каналами посредством: | H.2.18.9 | ||
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора | H.2.18.3 | ||
1.4 Адресация | Статическая неисправность | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
контролем внутренних ошибок; или | H.2.18.9 | ||
периодическая самопроверка с использованием: | H.2.16.7 | ||
- контрольного шаблона для адресных линий; или | H.2.18.22 | ||
- полной избыточности шины; или | H.2.18.1.1 | ||
- многоразрядного контроля четности на шине включая адрес) | H.2.18.1.2 | ||
1.5 Декодирование инструкций в трактах передачи данных | Статическая неисправность и ошибка выполнения | Сравнение с дублирующим центральным процессором посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
- контролем внутренних ошибок; или | H.2.18.9 | ||
- периодическая самопроверка с использованием контрольного шаблона; или | H.2.16.7 | ||
- избыточность данных; или | H.2.18.2.1 | ||
многоразрядный контроль четности на шине | H.2.18.1.2 | ||
2 Обработка и выполнение прерываний | Нет прерываний или слишком частые прерывания от различных источников | Сравнение с дублирующими функциональными каналами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
- независимый контроль временных интервалов и логический контроль | H.2.18.10.3 | ||
3 Тактовый генератор | Неверная частота (для стабилизированного кварцевым резонатором генератора: работа на гармониках или субгармониках) | Контроль частоты; или | H.2.18.10.1 |
контроль временных интервалов; или сравнение с дублирующими функциональными каналами посредством: | H.2.18.10.4 | ||
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; | H.2.18.3 | ||
4 Память | |||
4.1 Постоянная память | 99,6% всех информационных ошибок | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или применением избыточной памяти со сравнением; или периодический циклический контроль с избыточностью: | H.2.18.3 H.2.19.5 | ||
- одинарного слова; или | H.2.19.4.1 | ||
- двойного слова; или | H.2.19.4.2 | ||
защита слов многобитовой избыточностью | H.2.19.8.1 | ||
4.2 Оперативная память | Статическая неисправность и динамические перекрестные связи | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или применением избыточной памяти со сравнением; или периодический циклический контроль с использованием: | H.2.18.3 H.2.19.5 | ||
- пошагового теста памяти; | H.2.19.7 | ||
- теста Абрахама; | H.2.19.1 | ||
- открытого теста GALPAT; или | H.2.19.2.1 | ||
защита слов многобитовой избыточностью | H.2.19.8.1 | ||
4.3 Адресация (для постоянной и оперативной памяти) | Статическая неисправность | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
полной избыточностью шины; или | H.2.18.1.1 | ||
тестирование шаблоном; или | H.2.18.22 | ||
периодический циклический контроль с избыточностью посредством: |
| ||
- одинарного слова; или | H.2.19.4.1 | ||
- двойного слова; или | H.2.19.4.2 | ||
защита слов многобитовой избыточностью (включая адрес) | H.2.19.8.1 | ||
5 Внутренний тракт данных | |||
5.1 Данные | Статическая неисправность | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
защита слов многобитовой избыточностью (включая адрес); или | H.2.19.8.1 | ||
избыточность данных; или | H.2.18.2.1 | ||
тестирование шаблоном; или | H.2.18.22 | ||
контроль протокола | H.2.18.14 | ||
5.2 Адресация | Ошибочный адрес или множественная адресация | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
защита слов многобитовой избыточностью (включая адрес); или | H.2.19.8.1 | ||
полная шинная избыточность; или | H.2.18.1.1 | ||
тестирование шаблоном (включая адрес) | H.2.18.22 | ||
6 Связь с внешними устройствами | |||
6.1 Данные | Расстояние Хемминга 4 | Контроль циклическим избыточным кодом - двойное слово; или | H.2.19.4.2 |
избыточность данных; или | H.2.18.2.1 | ||
сравнение с дублирующими функциональными каналами посредством: |
| ||
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора | H.2.18.3 | ||
6.2 Адресация | Ошибочный адрес | Защита слов многобитовой избыточностью (включая адрес); или | H.2.19.8.1 |
контроль циклическим избыточным кодом одиночного слова (включая адрес); | H.2.19.4.1 | ||
или избыточность передачи; или | H.2.18.2.2 | ||
проверка протокола | H.2.18.14 | ||
| Ошибочный адрес или множественная адресация | Контроль циклическим избыточным кодом - двойное слово (включая адрес); или | H.2.19.4.2 |
полная избыточность данных и адресов на шине; или | H.2.18.1.1 | ||
сравнение с резервными каналами связи посредством: |
| ||
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора | H.2.18.3 | ||
6.3 Синхронизация | Ошибочный момент времени | Контроль временных интервалов или | H.2.18.10.4 |
передача данных по расписанию | H.2.18 | ||
7 Периферия ввода/вывода | |||
7.1 Цифровые ввод/вывод | Условия неисправностей по 19.11.2 | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
сравнение входящей информации; или | H.2.18.8 | ||
множественные параллельные выходы; или | H.2.18.11 | ||
контроль выхода; или | H.2.18.12 | ||
контроль шаблоном; или | H.2.18.22 | ||
безопасный (прошедший проверку) код | H.2.18.2 | ||
7.2 Аналоговые ввод/вывод | |||
7.2.1 Аналого-цифровые и цифро-аналоговые преобразователи | Условия неисправностей по 19.11.2 | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
сравнение входящей информации; или | H.2.18.8 | ||
множественные параллельные выходы; или | H.2.18.11 | ||
контроль выхода; или | H.2.18.12 | ||
контроль шаблоном | H.2.18.22 | ||
7.2.2 Аналоговый мультиплексор | Ошибочная адресация | Сравнение с дублирующими центральными процессорами посредством: |
|
- взаимного сравнения; или | H.2.18.15 | ||
- независимого аппаратного компаратора; или | H.2.18.3 | ||
сравнение входящей информации; или | H.2.18.8 | ||
контроль шаблоном | H.2.18.22 | ||
8 Контрольные устройства и компараторы | Любой выходной сигнал, не соответствующий статическим и динамическим спецификациям | Проверка контроля; или | H.2.18.21 |
избыточный контроль и сравнение; или | H.2.18.17 | ||
средства распознавания ошибок | H.2.18.6 | ||
9 Заказные микросхемы <d>, например ASIC, GAL, логические матрицы | Любой выходной сигнал, не соответствующий статическим и динамическим спецификациям | Периодическая самопроверка и контроль; или | H.2.16.7 |
два канала (разнотипные) со сравнением; или | H.2.16.2 | ||
средства распознавания ошибок | H.2.18.6 | ||
<a> Для оценки повреждений/ошибок некоторые компоненты в таблице разбиты на подкомпоненты. <b> Для каждого подкомпонента этой таблицы программные средства охватывают повреждения/ошибки по таблице R.1. <c> Когда для подкомпонента указано несколько допустимых средств, то их необходимо рассматривать как альтернативные. <d> Могут быть разбиты на подкомпоненты изготовителем. <e> Таблица R.2 применяется к требованиям R.1 - R.2.2.9 включительно, если требуется частью 2.
Примечание - Статическая неисправность означает постоянное повреждение, включающее короткое замыкание между сигналами. |
R.1 Программируемые электронные цепи, использующие программное обеспечение
Программируемые электронные цепи, требующие программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблицах R.1 или R.2, должны быть сконструированы таким образом, чтобы программное обеспечение не снижало соответствие требованиям настоящего стандарта.
Соответствие проверяют осмотром, испытаниями и анализом документов в соответствии с требованиями настоящего приложения.
R.2 Требования по архитектуре
R.2.1 Общие положения
Программируемые электронные цепи, требующие программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблицах R.1 или R.2, должны использовать средства для контроля и предотвращения отказов/ошибок, связанных с программным обеспечением, в данных и сегментах кода, относящихся к безопасности.
Соответствие проверяют осмотром и испытаниями по R.2.2 - R.3.3.3 включительно.
R.2.1.1 Программируемые электронные цепи, требующие программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблице R.2, должны иметь одну из следующих архитектур:
- одноканальную с периодической самопроверкой и контролем (см. IEC 60730-1, H.2.16.7);
- двухканальную (однотипную) со сравнением (см. IEC 60730-1, H.2.16.3);
- двухканальную (разнотипную) со сравнением (см. IEC 60730-1, H.2.16.2).
Примечание 1 - Сравнение в двухканальных архитектурах можно выполнять:
- с использованием компаратора (см. IEC 60730-1, H.2.18.3);
- или методом взаимного сравнения (см. IEC 60730-1, H.2.18.15).
Программируемые электронные цепи, требующие программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблице R.1, должны иметь одну из следующих архитектур:
- одноканальную с функциональной проверкой (см. IEC 60730-1, H.2.16.5);
- одноканальную с периодической самопроверкой (см. IEC 60730-1, H.2.16.6);
- двухканальную без сравнения (см. IEC 60730-1, H.2.16.1).
Примечание 2 - Программные архитектуры, содержащие средства для контроля состояний отказов/ошибок, указанных в таблице R.2, также допустимы для программируемых электронных цепей с функциями, требующими программных средств для контроля состояний отказов/ошибок, указанных в таблице R.1.
Соответствие проверяют осмотром и испытаниями программной архитектуры по R.3.2.2.
R.2.2 Средства для контроля состояний отказа/ошибки
R.2.2.1 Если используется подход "избыточная память со сравнением" на базе двух областей одного и того же компонента, то формат хранения данных в одной области должен отличаться от формата хранения во второй области (смотри диверсификацию программного обеспечения, IEC 60730-1, H.2.18.19).
Соответствие проверяют анализом исходного текста программы.
R.2.2.2 Программируемые электронные цепи с функциями требующими программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанные в таблице R.2, и имеющие двухканальную архитектуру со сравнением должны использовать дополнительные методы определения повреждений/ошибок (такие как периодическая функциональная проверка, периодическая самопроверка или независимый контроль), не обнаруживаемых сравнением.
Соответствие проверяют анализом исходного текста программы.
R.2.2.3 Для программируемых электронных цепей с функциями, требующими программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанные в таблицах R.1 или R.2, должны быть обеспечены средства для распознавания и контроля ошибок передачи данных во внешние тракты данных, связанных с безопасностью. Такие средства должны принимать во внимание ошибки в данных, адресации, временных диаграммах передачи данных и протокольной последовательности.
Соответствие проверяют анализом исходного текста программы.
R.2.2.4 Для программируемых электронных цепей с функциями, требующими программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанными в таблицах R.1 или R.2, программируемые электронные цепи должны содержать средства предотвращения отказов/ошибок в относящихся к безопасности сегментах кода и данных, указанных в таблицах R.1 или R.2, если применимо.
Соответствие проверяют анализом исходного текста программы.
R.2.2.5 Для программируемых электронных цепей с функциями, требующими программного обеспечения, содержащего средства для контроля условий сбоев/ошибок, указанных в таблицах R.1 или R.2, определение сбоев/ошибок должно выполняться до снижения соответствия требованиям раздела 19.
Соответствие проверяют анализом и испытанием исходного текста программы.
Примечание - Нарушение пропускной способности сдвоенных каналов рассматривают как ошибку в программируемых электронных цепях, использующих двухканальную структуру программного обеспечения для контроля состояния сбоев/ошибок, указанных в таблице R.2.
R.2.2.6 Программное обеспечение должно быть согласовано с соответствующими частями последовательности выполнения и связанными функциями аппаратных средств.
Соответствие проверяют анализом исходного текста программы.
R.2.2.7 Метки, используемые для определения областей памяти, должны быть уникальными.
Соответствие проверяют проверкой исходного текста программы.
R.2.2.8 Относящиеся к безопасности сегменты и данные программного обеспечения должны быть защищены от возможности изменения пользователем.
Соответствие проверяют анализом исходного текста программы.
R.2.2.9 Относящееся к безопасности программное обеспечение и аппаратные средства под его управлением должны инициализироваться и завершать работу до снижения соответствия разделу 19.
Соответствие проверяют анализом исходного текста программы.
R.3 Меры предотвращения ошибок
R.3.1 Общие положения
Для программируемых электронных цепей с функциями, требующими программного обеспечения, включающего средства контроля состояний отказа/ошибки указанных в таблицах R.1 или R.2, должны применять следующие средства для предотвращения систематических ошибок программного обеспечения.
Программное обеспечение, включающее средства контроля состояний отказа/ошибки, указанные в таблице R.2, допустимо в качестве программного обеспечения, включающего средства контроля состояний отказа/ошибки, указанных в таблице R.1.
Примечание - Эти требования взяты из IEC 61508-3 и адаптированы к настоящему стандарту.
R.3.2 Спецификация
R.3.2.1 Требования безопасности к программному обеспечению
Спецификация требований безопасности к программному обеспечению должна включать:
- описание каждой выполняемой функции, связанной с безопасностью, включая ее время реакции:
функции, связанные с применением, включая относящиеся к ним сбои программного обеспечения, которые необходимо контролировать,
функции, связанные с обнаружением, объявлением и управлением сбоями программного обеспечения и аппаратных средств;
- описание интерфейсов между программным обеспечением и аппаратными средствами;
- описание любого компилятора, используемого для генерирования объектного кода из исходного кода, включая подробности установки всех ключей компилятора, например, параметры библиотечных функций, модель памяти, оптимизация, особенности использования статической памяти, частоту синхронизации и особенности микросхем;
- описание любого редактора связей, используемого для связывания объектного кода с исполняемыми библиотечными подпрограммами.
Соответствие проверяют анализом документации и по R.3.2.2.2.
Примечание - Примеры некоторых технических приемов или средств для соответствия этим требованиям показаны в таблице R.3.
Таблица R.3
Полуформальные методы
Технические приемы или средства | Ссылка на информацию |
Полуформальные методы: |
|
Логическая или функциональная блок-схемы; |
|
Циклограммы (диаграммы последовательностей); |
|
Диаграммы конечного автомата/диаграммы переходов; | IEC 61508-7, B.2.3.2 |
Таблицы решений/истинности | IEC 61508-7, C.6.1 |
R.3.2.2 Архитектура программного обеспечения
R.3.2.2.1 Спецификация архитектуры программного обеспечения должна включать следующие аспекты:
- технические приемы и мероприятия по управлению сбоями/ошибками программного обеспечения (см. R.2.2);
- взаимодействие между программным обеспечением и аппаратными средствами;
- деление на модули и определение их места в функциях безопасности;
- иерархия и структура вызовов модулей (алгоритм управления);
- обработка прерываний;
- потоки данных и ограничения на доступ к данным;
- архитектура и хранение данных;
- временные зависимости последовательности действий и данных.
Соответствие проверяют анализом документации и по R.3.2.2.2.
Примечание - Примеры некоторых технических приемов или средств для соответствия этим требованиям показаны в таблице R.4.
Таблица R.4
Спецификация архитектуры программного обеспечения
Технические приемы или средства | Ссылка на информацию |
Обнаружение неисправностей и диагностика | IEC 61508-7, C.3.1 |
Полуформальные методы: |
|
Логические или функциональные блок-схемы; |
|
Циклограммы (диаграммы последовательностей); |
|
Диаграммы конечных автоматов или диаграммы переходов; | IEC 61508-7, B.2.3.2 |
Схемы потоков данных | IEC 61508-7, C.2.2 |
R.3.2.2.2 Спецификация архитектуры должна пройти процедуру валидации с учетом требований безопасности программного обеспечения с применением методов статического анализа.
Примечание - Примерами методов статического анализа являются:
- анализ алгоритмов управления (IEC 61508-7, C.5.9);
- анализ потоков данных (IEC 61508-7, C.5.10);
- сквозной анализ или оценка проекта (IEC 61508-7, C.5.16).
R.3.2.3 Проектирование модулей и программирование
R.3.2.3.1 Основываясь на разработанной архитектуре, программное обеспечение должно быть выполнено в виде модулей. Проектирование модулей программного обеспечения и программирование должно выполняться таким образом, чтобы обеспечивалась прослеживаемость к программной архитектуре и требованиям.
Соответствие проверяют по R.3.2.3.3 и анализом документации.
Примечания
1 Допускается использование компьютерных средств проектирования.
2 Рекомендуется использовать технологии безопасного программирования (IEC 61508-7, C.2.5), например, контроль диапазонов, контроль деления на ноль, контроль правдоподобия.
3 При проектировании модулей должны определять:
- функции;
- интерфейсы между модулями;
- данные.
4 Примеры некоторых технических приемов или средств для соответствия этим требованиям могут быть найдены в таблице R.5.
Таблица R.5
Спецификация проектирования модулей
Технические приемы или средства | Ссылка на информацию |
Ограничение размера программных модулей | IEC 61508-7, C.2.9 |
Сокрытие информации/инкапсуляция | IEC 61508-7, C.2.8 |
Одна входная и одна выходная точка в подпрограммах и функциях | IEC 61508-7, C.2.9 |
Полностью определенный интерфейс | IEC 61508-7, C.2.9 |
Полуформальные методы: |
|
Логические или функциональные блок-схемы; |
|
Циклограммы (диаграммы последовательностей); |
|
Диаграммы конечных автоматов или диаграммы переходов; | IEC 61508-7, B.2.3.2 |
Схемы потоков данных | IEC 61508-7, C.2.2 |
R.3.2.3.2 Программный код должен быть структурирован.
Соответствие проверяют по R.3.2.3.3 и анализом документации.
Примечания
1 Сложность структуры может быть минимизирована при использовании следующих принципов:
- поддержания малого количества возможных путей внутри программных модулей и поддержания связей между входными и выходными параметрами настолько простыми, насколько это возможно;
- избегания сложных ветвлений и, в особенности, безусловных переходов (GOTO) в языках программирования высокого уровня;
- если возможно, установления ограничений на циклы и ветвления по входным параметрам;
- избегания сложных вычислений на основе ветвлений и циклических решений.
2 Примеры некоторых технических приемов или средств для соответствия этим требованиям могут быть найдены в таблице R.6.
Таблица R.6
Стандарты на проектирование и программирование
Технические приемы или средства | Ссылка на информацию |
Использование стандарта на программирование (см. примечание) | IEC 61508-7, C.2.6.2 |
Отказ от использования динамических объектов и переменных (см. примечание) | IEC 61508-7, C.2.6.3 |
Ограничение на использование прерываний | IEC 61508-7, C.2.6.5 |
Ограничение на использование указателей | IEC 61508-7, C.2.6.6 |
Ограничение на использование рекурсий | IEC 61508-7, C.2.6.7 |
Отказ от использования безусловных переходов в языках программирования высокого уровня | IEC 61508-7, C.2.6.2 |
Примечание - Динамические объекты и/или переменные допустимы при использовании компилятора, который гарантирует выделение достаточной памяти для всех динамических объектов и/или переменных перед началом исполнения, или который выполняет проверки правильности распределения памяти во время исполнения. |
R.3.2.3.3 Программное обеспечение должно быть валидировано на соответствие спецификации модулей методами статического анализа. Спецификация модулей должна быть валидирована на соответствие спецификации архитектуры методами статического анализа.
R.3.3.3 Валидация программного обеспечения
Программное обеспечение должно быть проверено с учетом требований безопасности к программному обеспечению.
Примечание 1 - Валидация представляет собой одобрение путем изучения и предоставления объективных свидетельств того, что требования к конкретному предполагаемому использованию выполнены. Поэтому, например, валидация программного обеспечения представляет собой одобрение путем изучения и предоставления объективных свидетельств того, что программное обеспечение удовлетворяет требования по безопасности, предъявляемые к программному обеспечению.
Соответствие проверяют моделированием:
- входных сигналов, присутствующих в нормальном режиме работы;
- ожидаемых событий;
- нежелательных условий, требующих системных действий.
События, данные и результаты испытаний должны быть занесены в протокол.
Примечание 2 - Примеры некоторых технических приемов или средств для выполнения этих требований показаны в таблице R.7.
Таблица R.7
Валидация безопасности программного обеспечения
Технические приемы или средства | Ссылка на информацию |
Испытания на функционирование и методом черного ящика: | IEC 61508-7, B.5.1, B.5.2 |
- с анализом граничных значений; | IEC 61508-7, C.5.4 |
- с моделированием процессов | IEC 61508-7, C.5.18 |
Моделирование: |
|
- конечными автоматами | IEC 61508-7, B.2.3.2 |
- для определения производительности | IEC 61508-7, C.5.20 |
Примечание 3 - Испытания следует рассматривать как основной метод валидации программного обеспечения, моделирование может использоваться в качестве дополнительного метода подтверждения.