В круг обязанностей технического комитета входит использование, где это возможно, основополагающих стандартов по безопасности при подготовке собственных стандартов. В этом случае требования, методы проверки или условия проверки настоящего основополагающего стандарта по безопасности не будут применяться, если это не указано специально, или они будут включаться в стандарты, подготовленные этими техническими комитетами.
Примечание - В США и Канаде до тех пор, пока там не будет опубликована в качестве международного стандарта предлагаемая реализация МЭК 61508 для обрабатывающих отраслей (т.е. МЭК 61511), вместо МЭК 61508 в обрабатывающих отраслях допускается использовать национальный стандарт, базирующийся на МЭК 61508 (т.е. ANSI/ISA S 84.01-1996).
1.3 На рисунке 1 показана общая структура МЭК 61508-1 - МЭК 61508-7 и указана роль МЭК 61508-3 в достижении функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью.
В МЭК 61508-6 (приложение А) описано применение МЭК 61508-2 и МЭК 61508-3.
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
МЭК 61508-1:1998 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 1. Общие требования
МЭК 61508-2:2000 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 2. Требования к системам электрическим/электронным/программируемым электронным, связанным с безопасностью
МЭК 61508-4:1998 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 4. Термины и определения
МЭК 61508-5:1998 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 5. Примеры методов определения уровней полноты защиты
МЭК 61508-6:2000 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 6. Руководство по применению МЭК 61508-2:2000 и МЭК 61508-3:1998
МЭК 61508-7:2000 Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 7. Анализ методов и средств
ИСО/МЭК Руководство 51:1999 Руководство по включению в стандарты аспектов, связанных с безопасностью
МЭК Руководство 104:1997 Подготовка публикаций по безопасности и использование основополагающих публикаций и групповых публикаций по безопасности
Рисунок 1 - Общая структура настоящего стандарта
В настоящем стандарте использованы термины по МЭК 61508-4.
Требования, которые следует выполнять для соответствия настоящему стандарту, приведены в МЭК 61508-1 (раздел 4).
Задачи и требования, предъявляемые к документации, приведены в МЭК 61508-1 (раздел 5).
6.1 Цели
Цели подробно рассмотрены в МЭК 61508-1 (пункт 6.1).
6.2 Требования
6.2.1 В дополнение к требованиям, описанным в МЭК 61508-1 (пункт 6.2), предъявляются следующие требования.
6.2.2 Планирование функциональной безопасности должно определять стратегию поставок, разработки, интеграции, верификации, приемки и модификации программного обеспечения в той мере, в какой этого требует уровень полноты безопасности Е/Е/РЕ системы, связанной с безопасностью.
Примечание - Философия настоящего подхода состоит в использовании планирования функциональной безопасности в качестве возможности для приспособления настоящего стандарта для учета различной степени полноты безопасности, необходимой для компонентов Е/Е/РЕ систем, связанных с безопасностью. При совместном использовании компонентов Е/Е/РЕ систем, связанных с безопасностью, имеющих разные уровни полноты безопасности, следует учитывать требования пункта 7.4.2.8.
6.2.3 Система управления конфигурацией программного обеспечения должна:
a) использовать административные и технические средства контроля на протяжении всего жизненного цикла программ для того, чтобы управлять изменениями в программах и таким образом гарантировать выполнение указанных в спецификациях требований к безопасности программных средств;
b) гарантировать выполнение всех операций, необходимых для того, чтобы продемонстрировать достижение заданной полноты безопасности программного обеспечения;
c) осуществлять аккуратную поддержку с использованием уникальной идентификации всех элементов конфигурации, которые необходимы для обеспечения целостности Е/Е/РЕ систем, связанных с безопасностью. Элементы конфигурации должны включать в себя, как минимум, следующее:
- анализ безопасности и требования к безопасности,
- спецификацию программного обеспечения и проектные документы,
- исходный текст программ,
- план и результаты тестирования,
- ранее разработанные программные компоненты и пакеты, которые должны быть включены в Е/Е/РЕ систему, связанную с безопасностью,
- все инструментальные средства и системы разработки, которые использовались при создании, тестировании или выполнении иных действий с программным обеспечением Е/Е/РЕ систем, связанных с безопасностью;
d) использовать процедуры контроля над внесением изменений для предотвращения несанкционированных модификаций; документировать запросы на выполнение модификаций; анализировать влияние предлагаемых модификаций и утверждать либо отвергать модификации; подробно документировать модификации и выдавать полномочия на выполнение всех утвержденных модификаций; устанавливать основные параметры конфигурации системы для этапов разработки программного обеспечения и документировать (частичное) тестирование интеграции системы, которое подтверждает выполнение задач этапа (см. 7.8); гарантировать объединение и встраивание всех подсистем программного обеспечения (включая переработку более ранних версий);
Примечание - Для осуществления руководства и применения административных и технических средств контроля необходимы принятие управленческих решений и наличие полномочий.
e) документировать перечисленную ниже информацию, для того чтобы обеспечить возможность последующего аудита: состояние конфигурации, текущее состояние системы, обоснование и утверждение всех модификаций, подробное описание всех модификаций;
f) строго документировать каждую версию программного обеспечения, связанного с безопасностью. Обеспечить хранение всех версий программного обеспечения и всей относящейся к ним документации для обеспечения возможности сопровождения и выполнения модификаций на протяжении всего периода использования разработанного программного продукта.
Примечание - Дополнительную информацию по управлению конфигурацией см. в ИСО/МЭК 12207.
7.1.1 Цели
Целью требований, излагаемых в настоящем подразделе, является разделение процесса разработки программного обеспечения на этапы и процессы (см. таблицу 1 и рисунки 2 - 5).
7.1.2 Требования
7.1.2.1 Жизненный цикл систем безопасности при разработке программного обеспечения должен быть выбран и специфицирован при планировании безопасности в соответствии с МЭК 61508-1 (раздел 6).
Примечание - Модель жизненного цикла систем безопасности, удовлетворяющая требованиям МЭК 61508-1 (раздел 7), может быть переработана в соответствии с конкретными потребностями проекта или организации.
7.1.2.2 Процедуры оценки качества и безопасности должны быть интегрированы в процессы жизненного цикла систем безопасности.
7.1.2.3 Каждая фаза жизненного цикла безопасности программного обеспечения должна быть разделена на элементарные процессы. Для каждой стадии должны быть определены область применения, входные данные и выходные данные.
Примечания
1 Более подробная информация о фазах жизненного цикла приведена в ИСО/МЭК 12207.
2 Выходные данные стадий жизненного цикла систем безопасности рассматриваются в МЭК 61508-1 (раздел 5). При разработке некоторых Е/Е/РЕ систем, связанных с безопасностью, выходные данные некоторых стадий жизненного цикла систем безопасности могут представлять собой отдельные документы, тогда как выходные данные от других стадий могут объединяться в один документ. Существенным является требование, чтобы выходные данные стадии жизненного цикла системы безопасности удовлетворяли ее предназначению. В случае простых разработок некоторые стадии жизненного цикла систем безопасности также могут объединяться (см. 7.4.5).
7.1.2.4 Если жизненный цикл модулей безопасности удовлетворяет требованиям, приведенным на рисунке 3 и в таблице 1, допускается изменять глубину, число и рабочий размер стадий V-модели (см. рисунок 5) в соответствии с полнотой безопасности и сложностью проекта.
Примечание - Полный список стадий жизненного цикла, приведенный в таблице 1, относится к большим системам, разрабатываемым с самого начала. Для небольших систем может оказаться целесообразным, например, объединить стадии проектирования системы программного обеспечения и проектирования архитектуры.
7.1.2.5 При условии выполнения всех задач и требований настоящего раздела допускается организовывать программный проект иначе, чем предписывается настоящим стандартом (т.е. использовать иную модель жизненного цикла систем безопасности).
7.1.2.6 Для каждой стадии жизненного цикла следует использовать соответствующие методы и мероприятия. Рекомендации приведены в приложениях А и В (руководство по выбору методов и мероприятий). Выбор методов из приложений А и В не гарантирует сам по себе достижения необходимой полноты безопасности.
7.1.2.7 Результаты процессов жизненного цикла систем безопасности программного обеспечения должны быть документированы (см. раздел 5).
7.1.2.8 Если на какой-либо стадии жизненного цикла модулей безопасности программного обеспечения возникает необходимость внести изменение, относящееся к более ранней стадии жизненного цикла, необходимо повторно выполнять эту стадию и стадии, следующие за ней.
Рисунок 2 - Жизненный цикл безопасности E/E/PES систем (стадия реализации)
Рисунок 3 - Жизненный цикл безопасности программного обеспечения (стадия реализации)
Рисунок 4 - Соотношение между областями применения МЭК 61508-2 и МЭК 61508-3
Рисунок 5 - Полнота безопасности программного обеспечения и жизненный цикл разработки (V-модель)
Таблица 1 - Обзор жизненного цикла модулей безопасности программного обеспечения
Стадия жизненного цикла безопасности (номер стадии соответствует номеру блока на рисунке 3) |
Задача |
Область применения |
Номер пункта или раздела |
Входные данные |
Выходные данные |
9.1 Спецификация требований к безопасности программного обеспечения |
Указать требования к безопасности программного обеспечения в виде требований к функциям безопасности программного обеспечения и требований к полноте безопасности программного обеспечения. Указать необходимые для реализации требуемых функций безопасности требования к функциям безопасности программного обеспечения для каждой Е/Е/РЕ системы, связанной с безопасностью. Указать требования к полноте безопасности программного обеспечения для каждой Е/Е/РЕ системы, связанной с безопасностью, необходимые для достижения уровня полноты безопасности, указанного для каждой функции безопасности, назначенной этой Е/Е/РЕ системе, связанной с безопасностью |
PES. Система программного обеспечения |
7.2.2 |
Спецификация требований к безопасности E/E/PES (МЭК 61508-2) |
Спецификация требований к безопасности программного обеспечения |
9.2 Планирование подтверждения соответствия требованиям к безопасности программного обеспечения |
Разработать план подтверждения соответствия требованиям к безопасности программного обеспечения |
PES. Система программного обеспечения |
7.3.2 |
Спецификация требований к безопасности программного обеспечения |
План подтверждения соответствия требованиям к безопасности программного обеспечения |
9.3 Проектирование и разработка программного обеспечения |
Архитектура: разработать архитектуру программного обеспечения, которая удовлетворяет указанным требованиям к безопасности в отношении необходимого уровня полноты безопасности; рассмотреть и оценить требования, предъявляемые к программному обеспечению со стороны архитектуры аппаратных средств Е/Е/РЕ системы, связанной с безопасностью, включая значение взаимодействия между программным обеспечением и аппаратурой Е/Е/РЕ системы для безопасности управляемого оборудования |
PES. Система программного обеспечения |
7.4.3 |
Спецификация требований к безопасности программного обеспечения. Проект архитектуры аппаратных средств E/E/PES (МЭК 61508-2) |
Описание проекта архитектуры программного обеспечения. Спецификация проверки интеграции архитектуры программного обеспечения. Спецификация проверки интеграции программного обеспечения и программируемых электронных устройств (как требует МЭК 61508-2) |
Инструментальные средства поддержки и языки программирования: выбрать подходящий набор инструментальных средств, включая языки программирования и компиляторы, для требуемого уровня полноты безопасности на весь период поддержки безопасности программного обеспечения с использованием верификации, подтверждения соответствия, оценки и модификации |
PES. Система программного обеспечения. Инструментальные средства поддержки. Языки программирования |
7.4.3 |
Спецификация требований к безопасности программного обеспечения. Описание проекта архитектуры программного обеспечения |
Средства разработки и стандарты кодирования. Выбор инструментов разработки |
|
Детальное проектирование и разработка (проект программной системы): спроектировать и реализовать программное обеспечение, которое удовлетворяет указанным требованиям к безопасности программного обеспечения в отношении необходимого уровня полноты безопасности; программное обеспечение должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации |
Проектирование архитектуры основных компонентов и подсистем программного обеспечения |
7.4.5 |
Проектное описание архитектуры программного обеспечения. Инструментальные средства поддержки и стандарты кодирования |
Спецификация проекта программного обеспечения. Спецификация тестирования интеграции системы программного обеспечения |
|
Детальное проектирование и разработка (проект отдельных программных модулей): спроектировать и реализовать программное обеспечение, которое удовлетворяет указанным требованиям к безопасности программного обеспечения в отношении необходимого уровня полноты безопасности; программное обеспечение должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации |
Проект системы программного обеспечения |
7.4.5 |
Спецификация проекта программной системы. Инструментальные средства поддержки и стандарты кодирования |
Спецификация проекта программного модуля. Спецификация тестирования программного модуля |
|
Детальная реализация исходного текста: спроектировать и реализовать программное обеспечение, которое удовлетворяет указанным требованиям к безопасности программного обеспечения в отношении необходимого уровня полноты безопасности; программное обеспечение должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации |
Отдельные программные модули |
7.4.6 |
Спецификация проекта программного модуля. Инструментальные средства поддержки и стандарты кодирования |
Листинг исходного текста. Обзорный отчет по исходному тексту |
|
Тестирование программных модулей: верифицировать выполнение требований к безопасности программного обеспечения в отношении требуемых функций и уровней полноты безопасности - показать, что каждый программный модуль выполняет предназначенные для него функции и не выполняет непредусмотренных действий |
Программные модули |
7.4.7 |
Спецификация тестирования программного модуля. Листинг исходного текста. Обзорный отчет по исходному тексту |
Результаты тестирования программного модуля. Верифицированные и проверенные программные модули |
|
Проверка интеграции программного обеспечения: верифицировать выполнение требований к безопасности программного обеспечения в отношении требуемых функций и уровней полноты безопасности - показать, что все программные модули, компоненты и подсистемы корректно выполняют предназначенные для них функции и не выполняют непредусмотренных действий |
Архитектура программного обеспечения. Система программного обеспечения |
7.4.7 |
Спецификация тестирования интеграции программной системы |
Результаты тестирования интеграции программной системы. Верифицированная и проверенная программная система |
|
9.4 Интеграция программируемых электронных устройств (аппаратура и программное обеспечение) |
Интегрировать программное обеспечение с выбранной программируемой электронной аппаратурой. Объединить программное обеспечение и аппаратные средства в связанных с безопасностью программируемых электронных устройствах для того, чтобы удостовериться в их совместимости и выполнении требований к необходимому уровню полноты безопасности |
Аппаратное обеспечение программируемой электроники. Интегрированное программное обеспечение |
7.5.2 |
Спецификация тестирования интеграции архитектуры программного обеспечения. Спецификация тестирования интеграции программируемой электроники (МЭК 61508-2). Интегрированная программируемая электроника |
Результаты тестирования интеграции архитектуры программного обеспечения. Результаты тестирования интеграции программируемой электроники. Верифицированная и проверенная интегрированная программируемая электроника |
9.5 Процедуры, относящиеся к эксплуатации и сопровождению программного обеспечения |
Предоставить информацию и процедуры, относящиеся к программному обеспечению и необходимые для того, чтобы гарантировать соблюдение функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью, во время эксплуатации и сопровождения |
Аппаратное обеспечение программируемой электроники. Интегрированное программное обеспечение |
7.6.2 |
По необходимости вся информация, описанная выше |
Процедуры эксплуатации и сопровождения программного обеспечения |
9.6 Подтверждение соответствия безопасности программного обеспечения |
Обеспечить гарантию, что интегрированная система соответствует указанным требованиям к безопасности программного обеспечения для заданного уровня полноты безопасности |
Аппаратное обеспечение программируемой электроники. Интегрированное программное обеспечение |
7.7.2 |
План подтверждения соответствия безопасности программного обеспечения |
Результаты подтверждения соответствия безопасности программного обеспечения. Принятое программное обеспечение |
Модификация программного обеспечения |
Внести поправки, улучшения или модификации в принятое программное обеспечение, гарантируя, что требуемый уровень полноты безопасности будет сохранен |
Аппаратное обеспечение программируемой электроники. Интегрированное программное обеспечение |
7.8.2 |
Процедуры модификации программного обеспечения. Результаты модификации программного обеспечения |
Результаты анализа влияния модификации программного обеспечения. Журнал модификации программного обеспечения |
Верификация программного обеспечения |
В той степени, в которой этого требует уровень полноты безопасности, протестировать и оценить выходные данные для заданной стадии жизненного цикла программного обеспечения, связанного с безопасностью, для того чтобы гарантировать правильность и совместимость по отношению к выходным данным и стандартам, для этой стадии |
Зависит от стадии |
7.9.2 |
План верификации (зависит от стадии) |
Отчет по верификации (зависит от стадии) |
Оценка функций программного обеспечения |
Изучить и представить на обсуждение функциональную безопасность, достигнутую Е/Е/РЕ системами, связанными с безопасностью |
Стадии 9.1, 9.2, 9.3, 9.4, 9.5 и 9.6, указанные на рисунке 3 |
8 |
План оценки функциональной безопасности программного обеспечения |
Отчет по оценке функциональной безопасности программного обеспечения |