Таблица А.2 - Проектирование и разработка программного обеспечения: проектирование архитектуры программ (см. 7.4.3)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Обнаружение и диагностика ошибок

С.3.1

---

R

HR

HR

2 Коды с обнаружением и исправлением ошибок

С.3.2

R

R

R

HR

3а Программирование с проверкой на ошибки

С.3.3

R

R

R

HR

3b Методы «подушки безопасности»

С.3.4

---

R

R

R

3с Многовариантное программирование

С.3.5

R

R

R

HR

3d Блоки восстановления

С.3.6

R

R

R

R

3е Восстановление предыдущего состояния

С.3.7

R

R

R

R

3f Переход к последнему достигнутому состоянию

С.3.8

R

R

R

R

3g Повторный запуск механизмов восстановления после ошибок

С.3.9

R

R

R

HR

3h Запоминание достигнутых состояний

С.3.10

---

R

R

HR

4 Постепенное отключение блоков

С.3.11

R

R

HR

HR

5 Искусственный интеллект - исправление ошибок

С.3.12

---

NR

NR

NR

6 Динамическая реконфигурация

С.3.13

---

NR

NR

NR

7а Структурные методы, включая, например, JSD, MASCOT, SADT и Yourdon

С.2.1

HR

HR

HR

HR

7b Полуформальные методы

Таблица В.7

R

R

HR

HR

7с Формальные методы, включая, например, CCS, CSP, HOL, LOTOS, OBJ, временную логику, VDM и Z

С.2.4

---

R

R

HR

8 Компьютерные средства разработки спецификаций

В.2.4

R

R

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности. Альтернативные или эквивалентные методы/средства обозначаются буквами, следующими за числом. Следует выполнять только один из альтернативных или эквивалентных методов/средств.

Примечание - Приведенные в данной таблице средства, касающиеся устойчивости к ошибкам (контроль ошибок), должны рассматриваться совместно с требованиями, описанными в МЭК 61508-2, к архитектуре и контролю ошибок для аппаратных средств программируемых электронных устройств.

Таблица А.3 - Проектирование и разработка программного обеспечения: инструментальные средства поддержки и языки программирования (см. 7.4.4)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Выбор соответствующего языка программирования

С.4.6

HR

HR

HR

HR

2 Использование языков программирования со строгой типизацией

С.4.1

HR

HR

HR

HR

3 Подмножество языка

С.4.2

---

---

HR

HR

4а Сертифицированные средства

С.4.3

R

HR

HR

HR

4b Инструментальные средства, заслуживающие доверия на основании опыта использования

С.4.4

HR

HR

HR

HR

5а Сертифицированный компилятор

С.4.3

R

HR

HR

HR

5b Трансляторы, заслуживающие доверия на основании опыта использования

С.4.4

HR

HR

HR

HR

6 Библиотека проверенных/ сертифицированных модулей и компонентов

С.4.5

R

HR

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности. Альтернативные или эквивалентные методы/средства обозначаются буквами, следующими за числом. Следует выполнять только один из альтернативных или эквивалентных методов/средств.

Таблица А.4 - Проектирование и разработка программного обеспечения: детальное проектирование (см. 7.4.5 и 7.4.6)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1a Методы, использующие структурирование, включая, например, JSD, MASCOT, SADT и Yourdon

С.2.1

HR

HR

HR

HR

1b Полуформальные методы

Таблица В.7

R

HR

HR

HR

1с Формальные методы, включая, например, CCS, CSP, HOL, LOTOS, OBJ, временную логику, VDM и Z

С.2.4

---

R

R

HR

2 Компьютерные средства проектирования

В.3.5

R

R

HR

HR

3 Защитное программирование

С.2.5

---

R

HR

HR

4 Модульный подход

Таблица В.9

HR

HR

HR

HR

5 Стандарты для проектирования и кодирования

Таблица В.1

R

HR

HR

HR

6 Структурное программирование

С.2.7

HR

HR

HR

HR

7 Использование проверенных/ верифицированных программных модулей и компонентов (по возможности)

С.2.10, С.4.5

R

HR

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности. Альтернативные или эквивалентные методы/средства обозначаются буквами, следующими за числом. Следует выполнять только один из альтернативных или эквивалентных методов/средств.

 

Таблица А.5 - Проектирование и разработка программного обеспечения: тестирование программных модулей и интеграция (см. 7.4.7 и 7.4.8)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Вероятностное тестирование

С.5.1

---

R

R

HR

2 Динамический анализ и тестирование

В.6.5, таблица В.2

R

HR

HR

HR

3 Запись и анализ данных

С.5.2

HR

HR

HR

HR

4 Функциональное тестирование и тестирование методом черного ящика

В.5.1, В.5.2, таблица B.3

HR

HR

HR

HR

5 Тестирование характеристик

С.5.20, таблица В.6

R

R

HR

HR

6 Тестирование интерфейса

С.5.3

R

R

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности.

Примечание - Тестирование программных модулей и интеграции относится к процессам верификации (см. таблицу А.9, приложение А).

Таблица А.6 - Интеграция программируемых электронных устройств (программное обеспечение и аппаратные средства) (см. 7.5)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Функциональное тестирование и тестирование методом черного ящика

В.5.1, В.5.2, таблица В.3

HR

HR

HR

HR

2 Тестирование характеристик

С.5.20, таблица В.6

R

R

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности.

Примечание - Интеграция программируемых электронных устройств относится к процессам верификации (см. таблицу А.9, приложение А).

Таблица А.7 - Проверка безопасности программного обеспечения (см. 7.7)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Вероятностное тестирование

С.5.1

---

R

R

HR

2 Имитация/моделирование

Таблица В.5

R

R

HR

HR

3 Функциональное тестирование и тестирование методом черного ящика

В.5.1, В.5.2, таблица В.3

HR

HR

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности.

Таблица А.8 - Модификация (см. 7.8)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Анализ влияния

С.5.23

HR

HR

HR

HR

2 Повторная верификация измененных программных модулей

С.5.23

HR

HR

HR

HR

3 Повторная верификация программных модулей, на которые оказывают влияние изменения в других модулях

С.5.23

R

HR

HR

HR

4 Повторная верификация системы в целом

С.5.23

---

R

HR

HR

5 Управление конфигурацией программного обеспечения

С.5.24

HR

HR

HR

HR

6 Запись и анализ данных

С.5.2

HR

HR

HR

HR

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности.

Таблица А.9 - Верификация программного обеспечения (см. 7.9)

Метод/средство1)

Ссылка

SIL1

SIL2

SIL3

SIL4

1 Формальная проверка

С.5.13

---

R

R

HR

2 Вероятностное тестирование

С.5.1

---

R

R

HR

3 Статический анализ

В.6.4, таблица В.8

R

HR

HR

HR

4 Динамический анализ и тестирование

В.6.5, таблица В.2

R

HR

HR

HR

5 Метрики сложности программного обеспечения

С.5.14

R

R

R

R

Тестирование и интеграция программных модулей

См. таблицу А.5

Проверка интеграции программируемых электронных устройств

См. таблицу А.6

Тестирование программной системы (подтверждение соответствия)

См. таблицу А.7

1) Методы/средства следует выбирать в соответствии с уровнем полноты безопасности.

Примечания

1 Для удобства все процессы, связанные с верификацией, были объединены в настоящей таблице. Это, однако, не предъявляет дополнительных требований к элементам верификации, связанным с динамическим тестированием в таблицах А.5 и А.6, которые относятся к процессам верификации. Настоящая таблица также не требует проведения верификационного тестирования в дополнение к подтверждению соответствия программного обеспечения (см. таблицу А.7, приложение А), которая в настоящем стандарте представляет демонстрацию соответствия спецификации требований к безопасности (конечную верификацию).

2 Верификация охватывает МЭК 61508-1 - МЭК 61508-3. Следовательно, первая верификация системы, связанной с безопасностью, относится к системным спецификациям более ранних уровней.

3 На ранних стадиях жизненного цикла системы безопасности программного обеспечения верификация является статической, она может включать в себя, например, изучение, просмотр, формальную проверку. Когда программа готова, становится возможным проведение динамического тестирования. Для верификации требуется объединение информации обоих типов. Например, верификация программного модуля статическими средствами включает в себя такие методы, как просмотр программ, прогон, статический анализ, формальная проверка. Верификация программ динамическими средствами включает функциональное тестирование, тестирование методом белого ящика, статистическое тестирование. Использование проверок обоих типов позволяет утверждать, что каждый программный модуль удовлетворяет соответствующей спецификации.