ГОСТ IEC 61508-3-2018
Группа Т51
МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ
ФУНКЦИОНАЛЬНАЯ БЕЗОПАСНОСТЬ СИСТЕМ ЭЛЕКТРИЧЕСКИХ, ЭЛЕКТРОННЫХ, ПРОГРАММИРУЕМЫХ ЭЛЕКТРОННЫХ, СВЯЗАННЫХ С БЕЗОПАСНОСТЬЮ
Часть 3
Требования к программному обеспечению
Functional safety of electrical, electronic, programmable electronic safety-related systems. Part 3. Software requirements
___________________________________________________________
ОКС 25.040.40
Дата введения 2019-07-01
Предисловие
Цели, основные принципы и основной порядок проведения работ по межгосударственной стандартизации установлены в ГОСТ 1.0-2015 "Межгосударственная система стандартизации. Основные положения" и ГОСТ 1.2-2015 "Межгосударственная система стандартизации. Стандарты межгосударственные, правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, обновления и отмены"
Сведения о стандарте
1 ПОДГОТОВЛЕН Обществом с ограниченной ответственностью "Корпоративные электронные системы" на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 5
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 058 "Функциональная безопасность"
3 ПРИНЯТ Межгосударственным советом по стандартизации, метрологии и сертификации (протокол от 30 мая 2018 г. N 109-П)
За принятие проголосовали:
Краткое наименование страны по МК (ИСО 3166) 004-97 | Код страны по МК (ИСО 3166) 004-97 | Сокращенное наименование национального органа по стандартизации |
Азербайджан | AZ
| Азстандарт |
Армения
| AM | Минэкономики Республики Армения |
Беларусь
| BY | Госстандарт Республики Беларусь |
Киргизия
| KG | Кыргызстандарт |
Россия | RU | Росстандарт |
(Поправка. ИУС N 9-2023).
4 Приказом Федерального агентства по техническому регулированию и метрологии от 6 сентября 2018 г. N 574-ст ГОСТ IEC 61508-3-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июля 2019 г.
5 Настоящий стандарт идентичен международному стандарту IEC 61508-3:2010* "Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 3. Требования к программному обеспечению" ("Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 3: Software requirements", IDT).
Международный стандарт IEC 61508-3:2010 подготовлен подкомитетом 65A "Системные аспекты" Технического комитета по стандартизации IEC 65 "Измерения и управление производственными процессами" Международной электротехнической комисии* (IEC).
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им межгосударственные стандарты, сведения о которых приведены в дополнительном приложении ДА
6 ВВЕДЕН ВПЕРВЫЕ
Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
ВНЕСЕНА поправка, опубликованная в ИУС N 9, 2023 год
Введение
Системы, состоящие из электрических и/или электронных элементов, в течение многих лет используются для выполнения функций безопасности в большинстве областей применения. Компьютерные системы (обычно называемые программируемыми электронными системами), применяемые во всех прикладных отраслях для выполнения функций, не связанных с безопасностью, во все более увеличивающихся объемах используются для выполнения функций обеспечения безопасности. Для эффективной и безопасной эксплуатации технологий, основанных на использовании компьютерных систем, чрезвычайно важно, чтобы лица, ответственные за принятие решений, имели в своем распоряжении руководства по вопросам безопасности, которые они могли бы использовать в своей работе.
Настоящий стандарт устанавливает общий подход к вопросам обеспечения безопасности для всех стадий жизненного цикла систем, состоящих из электрических и/или электронных, и/или программируемых электронных (Е/Е/РЕ) элементов, которые используются для выполнения функций обеспечения безопасности. Этот унифицированный подход принят для того, чтобы разработать рациональную и последовательную техническую политику для всех электрических систем обеспечения безопасности. Основной целью при этом является содействие разработке стандартов для продукции и областей применения на основе стандартов серии IEC 61508.
Примечание - Примерами стандартов для изделий и областей применения, разработанных на основе стандартов серии IEC 61508, являются [1]-[3].
В большинстве ситуаций безопасность достигается за счет использования нескольких систем, в которых применяются различные технологии (например, механические, гидравлические, пневматические, электрические, электронные, программируемые электронные). Любая стратегия безопасности должна, следовательно, учитывать не только все элементы, входящие в состав отдельных систем (например, датчики, управляющие устройства и исполнительные механизмы), но также и все подсистемы безопасности, входящие в состав общей системы обеспечения безопасности. Таким образом, хотя настоящий стандарт рассматривает электрические/электронные/программируемые (Е/Е/РЕ) системы, связанные с безопасностью, предлагаемый в нем подход можно использовать также при рассмотрении систем, связанных с безопасностью, базирующихся на других технологиях.
Признанным фактом является существование огромного разнообразия использования Е/Е/РЕ систем в различных областях применений, отличающихся различной степенью сложности, возможными рисками и опасностями. В каждом конкретном применении необходимые меры безопасности будут зависеть от многочисленных факторов, которые являются специфичными для этого применения. Настоящий стандарт, являясь базовым стандартом, позволит формулировать такие меры в будущих международных стандартах для продукции и областей применения, а также в последующих редакциях уже существующих стандартов.
Настоящий стандарт:
- рассматривает все соответствующие стадии жизненных циклов всей системы безопасности, Е/Е/РЕ системы безопасности и программного обеспечения системы безопасности (например, от первоначальной концепции, далее проектирование, реализация, эксплуатация, техническое обслуживание вплоть до снятия с эксплуатации), в ходе которых Е/Е/РЕ системы используются для выполнения функций безопасности;
- был разработан с учетом быстрого развития технологий; его основа является в значительной мере устойчивой и полной для применения во время будущих разработок;
- делает возможной разработку стандартов для конкретных продукции и областей применения, где используются Е/Е/РЕ системы, связанные с безопасностью; разработка стандартов для продукции и областей применения в рамках общей структуры, вводимой настоящим стандартом, должна привести к более высокому уровню согласованности (например, основных принципов, терминологии, и т.д.) как для отдельных областей применения, так и для их совокупностей; что даст преимущества, как для обеспечения безопасности, так и в плане экономики;
- устанавливает метод разработки спецификации требований к безопасности, необходимых для достижения заданной функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью;
- применяет для определения требований к уровням полноты безопасности подход, основанный на оценке рисков;
- вводит уровни полноты безопасности при задании целевого уровня полноты безопасности для функций безопасности, которые должны быть реализованы Е/Е/РЕ системами, связанными с безопасностью.
Примечание - Настоящий стандарт не устанавливает требования к уровню полноты безопасности для любой функции безопасности, и не определяет, как устанавливается уровень полноты безопасности. Однако настоящий стандарт формирует основанный на риске концептуальный подход и предлагает примеры методов обеспечения функциональной безопасности;
- устанавливает целевые меры отказов для функций безопасности, реализуемых Е/Е/РЕ системами, связанными с безопасностью, и связывает эти меры с уровнями полноты безопасности;
- устанавливает нижнюю границу для целевых мер отказов для функции безопасности, реализуемой одиночной Е/Е/РЕ-системой, связанной с безопасностью. Для Е/Е/РЕ-систем, связанных с безопасностью, работающих в:
Примечание 1 - Одиночная Е/Е/РЕ-система, связанная с безопасностью, не обязательно предполагает одноканальную архитектуру.
Примечание 2 - В проектах систем, связанных с безопасностью и имеющих низкий уровень сложности, можно достигнуть более низких значений целевой полноты безопасности, но предполагается, что в настоящее время указанные предельные значения целевой полноты безопасности могут быть достигнуты для относительно сложных систем (например, программируемые электронные системы, связанные с безопасностью);
- устанавливает требования к предотвращению и управлению систематическими отказами, основанные на опыте и заключениях из практического опыта. Учитывая, что вероятность возникновения систематических отказов в общем случае не может быть определена количественно, настоящий стандарт позволяет утверждать для специфицируемой функции безопасности, что целевая мера отказов, связанных с этой функцией, может считаться достигнутой, если все требования стандарта были выполнены;
- вводит стойкость к систематическим отказам, применяемую к элементу, характеризующую уверенность в том, что полнота безопасности, касающаяся систематических отказов элемента, соответствует требованиям заданного уровня полноты безопасности;
- применяет широкий диапазон принципов, методов и средств для достижения функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью, но не использует явно понятие "безопасный отказ". В то же время, понятия "безопасный отказ" и "безопасный в своей основе" могут быть использованы, но для этого необходимо обеспечить подходящие требования в соответствующих разделах настоящего стандарта, которым эти понятия должны соответствовать.
1 Область применения
1.1 Настоящий стандарт:
a) применяется совместно с IEC 61508-1 и IEC 61508-2;
b) применяется к любому программному обеспечению, являющемуся частью системы, связанной с безопасностью, либо используемому для разработки системы, связанной с безопасностью, в области применения IEC 61508-1 и IEC 61508-2. Такое программное обеспечение называется программным обеспечением, связанным с безопасностью.
Программное обеспечение, связанное с безопасностью, включает в себя операционные системы, системное программное обеспечение, программы, используемые в коммуникационных сетях, интерфейсы пользователей и обслуживающего персонала, встроенные программно-аппаратные средства, а также прикладные программы;
c) задает конкретные требования к инструментальным средствам поддержки, используемым для разрабатываемой и конфигурируемой системы, связанной с безопасностью, в соответствии с IEC 61508-1 и IEC 61508-2;
d) предусматривает определение функции безопасности и стойкости к систематическим отказам программного обеспечения.
Примечание 1 - То, что уже было сделано как часть спецификации Е/Е/РЕ систем, связанных с безопасностью (подраздел 7.2 IEC 61508-2), не следует повторять в настоящем стандарте.
Примечание 2 - Определение функций безопасности и стойкости к систематическим отказам программного обеспечения представляет собой итеративную процедуру; см. рисунки 3 и 6.
Примечание 3 - Структуру документации см. в IEC 61508-1 (пункт 5 и приложение А). Структура документации может учитывать процедуры, используемые в компаниях, а также реальную практику, сложившуюся в отдельных областях применений.
Примечание 4 - Определение термина "стойкость к систематическим отказам" см. 3.5.9 IEC 61508-4;
e) устанавливает требования к стадиям жизненного цикла системы безопасности и действиям, которые должны предприниматься в процессе проектирования и разработки программного обеспечения, связанного с безопасностью (модель жизненного цикла программного обеспечения системы безопасности). Эти требования включают в себя применение мероприятий и методов, ранжированных по уровням требуемой стойкости к систематическим отказам и предназначенных для предотвращения и управления ошибками и отказами в программном обеспечении;
f) задает требования к информации, относящейся к вопросам подтверждения соответствия аспектов программного обеспечения безопасности системы, которая должна передаваться в организацию, выполняющую интеграцию Е/Е/РЕ системы;
g) предоставляет требования к подготовке информации и процедур, касающихся программного обеспечения, которое необходимо пользователям для эксплуатации и технического обслуживания Е/Е/РЕ системы, связанной с безопасностью;
h) предоставляет требования, предъявляемые к организациям, выполняющим модификацию программного обеспечения, связанного с безопасностью;
i) предоставляет вместе с IEC 61508-1 и IEC 61508-2 требования к инструментальным средствам поддержки, таким как средства разработки и проектирования, трансляции, тестирования и отладки, управления конфигурацией.
Примечание - Взаимосвязь между IEC 61508-2 и настоящим стандартом показана на рисунке 5;
j) не применяется для медицинского оборудования в соответствии с серией стандартов IEC 60601 [4].
1.2 IEC 61508-1, IEC 61508-2, IEC 61508-3 и IEC 61508-4 являются базовыми стандартами по безопасности, хотя этот статус не применим в контексте Е/Е/РЕ систем, связанных с безопасностью, имеющих низкую сложность (пункт 3.4.4 IEC 61508-4). В качестве базовых стандартов по безопасности, они предназначены для использования техническими комитетами при подготовке стандартов в соответствии с принципами, изложенными в руководстве IEC 104 и руководстве ISO/IEC 51. IEC 61508-1, IEC 61508-2, IEC 61508-3 и IEC 61508-4 предназначены для использования в качестве самостоятельных стандартов. Функция безопасности настоящего стандарта не применима к медицинскому оборудованию, соответствующему требованиям серии горизонтальных стандартов IEC 60601 [4].
1.3 В круг обязанностей технического комитета входит использование (там, где это возможно) основополагающих стандартов по безопасности при подготовке собственных стандартов. В этом случае требования, методы проверки или условия проверки настоящего основополагающего стандарта по безопасности не будут применяться, если на них нет конкретной ссылки, или они не включены в стандарты, подготовленные этими техническими комитетами.
1.4 Общая структура IEC 61508-1 - IEC 61508-7 и роль IEC 61508-3 в достижении функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью, показана на рисунке 1. Структура жизненного цикла всей системы безопасности показана на рисунке 2.
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие международные документы и стандарты* (для датированных ссылок применяют только указанное издание ссылочного документа):
ISO/IEC Guide 51:1999, Safety aspects - Guidelines for their inclusion in standards (Аспекты безопасности. Руководящие указания по включению в стандарты)
IEC Guide 104:1997, The preparation of safety publications and the use of basic safety publications and group safety publications (Подготовка публикаций по безопасности и использование базовых публикаций по безопасности и публикаций по безопасности групп)
IEC 61508-1:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 1: General requirements (Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 1. Общие требования)
IEC 61508-2:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 2: Requirements for electrical/electronic / programmable electronic safety-related systems (Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 2. Требования к системам электрическим/электронным/программируемым электронным, связанным с безопасностью)
IEC 61508-4:2010, Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 4: Definitions and abbreviations (Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 4. Термины и определения)
3 Термины и определения
В настоящем стандарте применены термины по IEC 61508-4.
4 Соответствие настоящему стандарту
Требования, которые следует выполнять для соответствия настоящему стандарту, приведены в IEC 61508-1 (раздел 4).
5 Документация
Задачи и требования, предъявляемые к документации, приведены в IEC 61508-1 (раздел 5).
6 Дополнительные требования к управлению программным обеспечением, связанным с безопасностью
6.1 Цели
Цели подробно рассмотрены в 6.1 IEC 61508-1.
6.2 Требования
6.2.1 В дополнение к требованиям, описанным в 6.2 IEC 61508-1, предъявляются следующие требования.
6.2.2 Планирование функциональной безопасности должно определять стратегию поставок, разработки, интеграции, верификации, подтверждения соответствия и модификации программного обеспечения в той мере, в какой этого требует уровень полноты безопасности функций, реализуемых Е/Е/РЕ системой, связанной с безопасностью.
Рисунок 1 - Общая структура стандартов серии IEC 61508
Рисунок 2 - Структура жизненного цикла всей системы безопасности
Примечание - Философия настоящего подхода состоит в использовании планирования функциональной безопасности в качестве возможности для приспособления настоящего стандарта для учета требуемой полноты безопасности для каждой функции безопасности, реализуемой Е/Е/РЕ системой, связанной с безопасностью.
6.2.3 Система управления конфигурацией программного обеспечения должна:
a) использовать административные и технические средства контроля на протяжении жизненного цикла программного обеспечения системы безопасности для того, чтобы управлять изменениями в программах и таким образом гарантировать непрерывное выполнение указанных в спецификациях требований к программному обеспечению, связанному с безопасностью;
b) гарантировать выполнение операций, необходимых для того, чтобы продемонстрировать достижение заданной стойкости к систематическим отказам программного обеспечения;
c) осуществлять аккуратную поддержку с использованием уникальной идентификации всех элементов конфигурации, которые необходимы для обеспечения требований полноты безопасности Е/Е/РЕ системы, связанной с безопасностью. Элементы конфигурации должны включать в себя, как минимум, следующее: анализ системы безопасности и требования к системе безопасности; спецификацию программного обеспечения и проектную документацию; исходный текст программ; план и результаты тестирования; документацию о проверках; ранее разработанные программные элементы и пакеты, которые должны быть включены в Е/Е/РЕ систему, связанную с безопасностью; все инструментальные средства и системы разработки, которые использовались при создании, тестировании или выполнении иных действий с программным обеспечением Е/Е/РЕ системы, связанной с безопасностью;
d) использовать процедуры контроля над внесением изменений для того, чтобы:
- предотвращать несанкционированные модификации,
- документально оформлять запросы на выполнение модификаций,
- анализировать влияние предлагаемых модификаций и утверждать либо отвергать модификации,
- подробно документально оформлять модификации и выдавать полномочия на выполнение всех утвержденных модификаций,
- устанавливать основные параметры конфигурации системы для этапов разработки программного обеспечения и документально оформлять (частичное) тестирование интеграции системы,
- гарантировать объединение и встраивание всех подсистем программного обеспечения (включая переработку более ранних версий).
Примечание 1 - Для осуществления руководства и применения административных и технических средств контроля необходимы наличие полномочий и принятие управленческих решений.
Примечание 2 - С одной стороны, анализ влияния может включать неформальную оценку. С другой стороны, анализ влияния может включать в себя строгий формальный анализ возможного неблагоприятного воздействия всех предложенных изменений, которые могут быть неверно поняты или неверно осуществлены. Руководство по анализу влияния см. [5];
e) гарантировать, что осуществлены соответствующие меры, чтобы корректно загружать прошедшие подтверждение соответствия элементы программного обеспечения и данные в систему во время ее выполнения.
Примечание - Допускается рассматривать отдельные целевые системы, а также общие системы. Программному обеспечению, кроме приложений, возможно, понадобился бы безопасный метод загрузки, например, для встроенных программ программируемых устройств;
f) документально оформлять перечисленную ниже информацию, для того чтобы обеспечить возможность последующего аудита функциональной безопасности: состояние конфигурации, текущее состояние системы, обоснование (с учетом результатов анализа влияния) и утверждение всех модификаций, подробное описание всех модификаций;
h)* строго документально оформлять каждую версию программного обеспечения, связанного с безопасностью. Обеспечить хранение всех версий программного обеспечения и всей относящейся к ним документации, а также версий данных для обеспечения возможности сопровождения и выполнения модификаций на протяжении всего периода использования разработанного программного продукта.
Примечание - Дополнительную информацию по управлению конфигурацией см. [5].
7 Требования к жизненному циклу программного обеспечения системы безопасности
7.1 Общие положения
7.1.1 Цели
Целью требований, излагаемых в настоящем подразделе, является разделение процесса разработки программного обеспечения на этапы и процессы (см. таблицу 1 и рисунки 3-6).
7.1.2 Требования
7.1.2.1 В соответствии с IEC 61508-1 (раздел 6) при планировании системы безопасности должен быть выбран и специфицирован жизненный цикл для разработки программного обеспечения системы безопасности.
7.1.2.2 Может использоваться любая модель жизненного цикла программного обеспечения системы безопасности при условии, что она соответствует всем целям и требованиям настоящего раздела.
7.1.2.3 Каждая стадия жизненного цикла программного обеспечения системы безопасности должна быть разделена на элементарные процессы. Для каждой стадии должны быть определены область применения, входные данные и выходные данные.
Примечание - См. рисунки 3, 4 и таблицу 1.
7.1.2.4 При условии, что жизненный цикл программного обеспечения системы безопасности соответствует требованиям таблицы 1, приемлемо адаптировать V-модель (см. рисунок 6) с учетом полноты безопасности и сложности проекта.
Примечание 1 - Модель жизненного цикла программного обеспечения системы безопасности, которая соответствует требованиям данного раздела, может быть соответственно настроена для конкретных потребностей проекта или организации. Полный список стадий жизненного цикла, приведенный в таблице 1, относится к большим заново разрабатываемым системам. Для небольших систем может оказаться целесообразным, например, объединить стадии проектирования системы программного обеспечения и проектирования архитектуры.
Примечание 2 - Характеристики систем, управляемых данными, описание которых можно найти в приложении G (например, языки программирования с полной или ограниченной изменчивостью, степень конфигурации данных), могут использоваться для настройки жизненного цикла программного обеспечения системы безопасности.
7.1.2.5 Любая настройка жизненного цикла программного обеспечения системы безопасности должна быть обоснована функциональной безопасностью.
7.1.2.6 Процедуры обеспечения качества и безопасности должны быть интегрированы в процессы жизненного цикла систем безопасности.
7.1.2.7 Для каждой стадии жизненного цикла следует использовать соответствующие методы и мероприятия. В приложениях А и В приведены рекомендации по выбору методов и средств, а также ссылки на [5] и [6]. В [5] и [6] приведены рекомендации по выбору конкретного метода для обеспечения свойств, требуемых для систематической полноты безопасности. Методы, выбранные в соответствии с этими рекомендациями, сами по себе не гарантируют достижения необходимой полноты безопасности.
Примечание - Успех в достижении систематической полноты безопасности зависит от выбора методов с учетом следующих факторов:
- согласованность и взаимодополняющий характер выбранных методов, языков и инструментов для всего цикла разработки;
- полностью ли понимают разработчики используемые ими методы, языки и инструментальные средства;
- насколько соответствуют методы, языки и инструментальные средства конкретным проблемам, с которыми сталкиваются разработчики в процессе разработки.
7.1.2.8 Результаты процессов жизненного цикла программного обеспечения системы безопасности должны быть документально оформлены (см. раздел 5).
Примечание - IEC 61508-1 (раздел 5) рассматривает документальное оформление результатов стадий жизненного цикла системы безопасности. При разработке некоторых Е/Е/РЕ систем, связанных с безопасностью, результаты некоторых стадий жизненного цикла системы безопасности могут быть оформлены в виде отдельных документов, тогда как результаты от других стадий могут объединяться в один документ. Существенным является требование, чтобы результаты стадии жизненного цикла системы безопасности соответствовали ее предназначению.
7.1.2.9 Если на какой-либо стадии жизненного цикла программного обеспечения системы безопасности возникает необходимость внести изменение, относящееся к более ранней стадии жизненного цикла, то, во-первых, используя анализ влияния, необходимо определить, какие модули программного обеспечения затрагиваются изменениями, и во-вторых, какие действия на более ранней стадии жизненного цикла системы безопасности должны быть выполнены повторно.
Примечание - С одной стороны, анализ влияния может представлять собой неформальную оценку. С другой стороны, он может включать в себя строгий формальный анализ возможных неблагоприятных последствий всех предполагаемых изменений, которые, возможно, были плохо продуманы или неверно реализованы. Руководящие указания по анализу влияния см. [5].
Рисунок 3 - Структура жизненного цикла Е/Е/РЕ системы безопасности (стадия реализации)
Рисунок 4 - Структура жизненного цикла программного обеспечения системы безопасности (стадия реализации)
Рисунок 5 - Взаимосвязь и области применения IEC 61508-2 и IEC 61508-3
Рисунок 6 - Стойкость к систематическим отказам и жизненный цикл разработки программного обеспечения (V-модель)
Таблица 1 - Жизненный цикл программного обеспечения (ПО) системы безопасности: обзор
Стадия жизненного цикла ПО системы безопасности (номер стадии соответствует номеру блока на рисунке 4) | Задача | Область применения | Номер пункта или раздела | Входные данные | Выходные данные |
10.1 Спецификация требований к ПО системы безопасности | Указать требования: к системе программируемой электроники (ПЭ); к ПО, связанному с безопасностью, в виде требований к функциям безопасности ПО и стойкости к систематическим отказам ПО.
Указать необходимые для реализации требуемых функций безопасности требования к функциям безопасности ПО для каждой Е/Е/РЕ системы, связанной с безопасностью.
Указать требования стойкости к систематическим отказам ПО для каждой Е/Е/РЕ системы, связанной с безопасностью, необходимые для достижения уровня полноты безопасности, указанного для каждой функции безопасности, назначенной этой Е/Е/РЕ системе, связанной с безопасностью | ПЭ система.
Система ПО | 7.2.2 | Спецификация требований к Е/Е/РЕ системе безопасности в результате распределения (см. IEC 61508-1)
Спецификация требований к Е/Е/РЕ системе безопасности (из IEC 61508-2) | Спецификация требований к ПО системы безопасности |
10.2 Планирование подтверждения соответствия безопасности системы | Разработать план подтверждения соответствия безопасности системы для аспектов ПО | ПЭ система.
Система ПО | 7.3.2 | Спецификация требований к ПО системы безопасности | План подтверждения соответствия безопасности системы для аспектов ПО |
для аспектов ПО | Архитектура:
разработать архитектуру ПО, которая соответствует указанным требованиям к ПО, связанному с безопасностью, для необходимого уровня полноты безопасности;
оценить требования, предъявляемые к ПО со стороны архитектуры аппаратных средств Е/Е/РЕ системы, связанной с безопасностью, включая значение взаимодействия между программным обеспечением и аппаратными средствами Е/Е/РЕ системы, для безопасности управляемого оборудования | ПЭ система.
Система ПО | 7.4.3 | Спецификация требований к ПО системы безопасности.
Проект архитектуры аппаратных средств Е/Е/РЕ системы (из IEC 61508-2) | Описание проекта архитектуры ПО.
Спецификация проверки интеграции архитектуры ПО.
Спецификация проверки интеграции ПО/ПЭ(как требует IEC 61508-2) |
| Инструментальные средства поддержки и языки программирования:
выбрать подходящий набор инструментальных средств, включая языки программирования и компиляторы, системные интерфейсы времени выполнения, пользовательские интерфейсы и форматы и представления данных для требуемого уровня полноты безопасности в течение всего жизненного цикла ПО системы безопасности для верификации, подтверждения соответствия, оценки и модификации | ПЭ система.
Система ПО. Инструментальные средства поддержки.
Язык программирования | 7.4.4 | Спецификация требований к ПО системы безопасности.
Описание проекта архитектуры ПО | Инструментальные средства поддержки и стандарты кодирования.
Выбор инструментов разработки |
| Детальное проектирование и разработка (проект программной системы):
спроектировать и реализовать ПО, которое соответствует указанным требованиям к ПО системы безопасности для необходимого уровня полноты безопасности; ПО должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации | Проектирование архитектуры основных компонентов и подсистем ПО | 7.4.5 | Описание проекта архитектуры ПО.
Инструментальные средства поддержки и стандарты кодирования | Спецификация проекта системы ПО.
Спецификация тестирования интеграции системы ПО |
| Детальное проектирование и разработка (проект отдельных программных модулей):
спроектировать и реализовать ПО, которое соответствует указанным требованиям к ПО системы безопасности для необходимого уровня полноты безопасности; ПО должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации | Проект системы ПО | 7.4.5 | Спецификация проекта системы ПО.
Инструментальные средства поддержки и стандарты кодирования | Спецификация проекта программного модуля.
Спецификация тестирования программного модуля |
| Детальная реализация исходного текста:
- спроектировать и реализовать ПО, которое соответствует указанным требованиям к ПО системы безопасности для необходимого уровня полноты безопасности; ПО должно быть пригодным к анализу и верификации и поддерживать возможность безопасной модификации | Отдельные программные модули | 7.4.6 | Спецификация проекта программного модуля.
Инструментальные средства поддержки и стандарты кодирования | Листинг исходного текста.
Обзорный отчет по исходному тексту |
| Тестирование программных модулей:
- верифицировать выполнение требований к ПО, связанному с безопасностью (в терминах требуемых функций безопасности и стойкости к систематическим отказам ПО);
- показать, что каждый программный модуль выполняет предназначенные для него функции и не выполняет непредусмотренных действий;
- гарантировать в той мере, насколько это уместно, что конфигурация данных ПЭ систем выполняет указанные требования стойкости к систематическим отказам ПО | Программные модули | 7.4.7 | Спецификация тестирования программного модуля.
Листинг исходного текста.
Обзорный отчет по исходному тексту | Результаты тестирования программного модуля.
Верифицированные и проверенные программные модули |
10.3 Проектирование и разработка ПО | Проверка интеграции ПО:
- верифицировать выполнение требований к ПО системы безопасности (в терминах требуемых функций безопасности и стойкости к систематическим отказам ПО);
- показать, что каждый программный модуль выполняет предназначенные для него функции и не выполняет непредусмотренных действий;
- гарантировать в той мере, насколько это уместно, что конфигурация данных ПЭ систем выполняет указанные требования стойкости к систематическим отказам ПО | Архитектура ПО.
Система ПО | 7.4.8 | Спецификация тестирования интеграции программной системы | Результаты тестирования интеграции программной системы.
Верифицированная и проверенная программная система |
10.4 Интеграция программируемой электроники (аппаратные средства и программное обеспечение) | Интегрировать ПО с выбранной программируемой электронной аппаратурой.
Объединить ПО и аппаратные средства в связанных с безопасностью программируемых электронных устройствах для того, чтобы гарантировать их совместимость и выполнение требований к необходимому уровню полноты безопасности | Аппаратное обеспечение программируемой электроники.
Интегрированное ПО | 7.5.2 | Спецификация тестирования интеграции архитектуры ПО.
Спецификация тестирования интеграции программирумой электроники (IEC 61508-2).
Интегрированная программирумая электроника | Результаты тестирования интеграции архитектуры ПО.
Результаты тестирования интеграции программируемой электроники.
Верифицированная и проверенная интегрированная программируемая электроника |
10.5 Процедуры эксплуатации и модификации ПО | Предоставить информацию и процедуры, относящиеся к ПО и необходимые для того, чтобы гарантировать соблюдение функциональной безопасности Е/Е/РЕ систем, связанных с безопасностью, во время эксплуатации и модификации | Аппаратное обеспечение программируемой электроники.
Интегрированное ПО | 7.6.2 | По необходимости вся информация, описанная выше | Процедуры эксплуатации и модификации ПО |
10.6 Подтверждение соответствия безопасности системы аспектов ПО | Обеспечить гарантию, что интегрированная система соответствует указанным требованиям к ПО, связанному с безопасностью, для заданного уровня полноты безопасности | Аппаратное обеспечение программируемой электроники.
Интегрированное ПО | 7.7.2 | План подтверждения соответствия безопасности системы аспектов ПО | Результаты подтверждения соответствия ПО безопасности системы.
Принятое ПО |
Модификация ПО | Внести поправки, улучшения или модификации в принятое ПО, гарантируя, что требуемый уровень стойкости к систематическим отказам ПО будет сохранен | Аппаратное обеспечение программируемой электроники.
Интегрированное ПО | 7.8.2 | Процедуры модификации ПО.
Результаты модификации ПО | Результаты анализа влияния модификации ПО.
Журнал модификации ПО |
Верификация ПО | Протестировать и оценить выходные данные для заданной стадии жизненного цикла ПО системы безопасности для того, чтобы гарантировать правильность и соответствие выходным данным и стандартам для этой стадии | Зависит от стадии | 7.9.2 | Соответствующий план верификации (зависит от стадии) | Соответствующий отчет по верификации (зависит от стадии) |
Оценка функциональной безопасности ПО | Изучить и принять решение по функциональной безопасности аспектов ПО, которая обеспечивается Е/Е/РЕ системами, связанными с безопасностью | Для всех стадий, перечисленных выше | 8 | План оценки функциональной безопасности ПО | Отчет по оценке функциональной безопасности ПО |
7.2 Спецификация требований к программному обеспечению системы безопасности
Примечание - Данная стадия представлена на рисунке 4 (см. 10.1).
7.2.1 Цели
7.2.1.1 Первой целью настоящего подраздела является определение требований к программному обеспечению, связанному с безопасностью, как требований к функциям безопасности программного обеспечения и требований стойкости к систематическим отказам программного обеспечения.
7.2.1.2 Второй целью настоящего подраздела является определение требований к функциям безопасности программного обеспечения каждой Е/Е/РЕ системы, связанной с безопасностью, которые нужны для реализации этих функций безопасности.
7.2.1.3 Третьей целью настоящего подраздела является определение требований стойкости к систематическим отказам программного обеспечения для каждой связанной с безопасностью Е/Е/РЕ системы, необходимых для достижения уровня полноты безопасности, назначенного каждой функции безопасности, реализуемой Е/Е/РЕ системой, связанной с безопасностью.
7.2.2 Требования
Примечание 1 - В большинстве случаев эти требования выполняются комбинацией базового встраиваемого программного обеспечения и программных модулей, которые разработаны специально для конкретного применения. Именно комбинация этих двух видов программного обеспечения позволяет достигать характеристик, описанных в подразделах, приводимых ниже. Точная граница между базовым и прикладным программным обеспечением зависит от выбранной архитектуры программной системы (см. 7.4.3).
Примечание 2 - Для выбора соответствующих методов и средств (см. приложения А и В) для осуществления требования данного пункта, необходимо рассмотреть следующие свойства (см. приложение С, где даны указания по интерпретации свойств, и приложение F IEC 61508-7, где даны их неформальные определения) спецификации требований к программному обеспечению системы безопасности:
- полнота охвата потребностей безопасности программным обеспечением;
- корректность охвата потребностей безопасности программным обеспечением;
- отсутствие ошибок в самой спецификации, включая отсутствие неоднозначности;
- ясность требований к системе безопасности;
- отсутствие неблагоприятного взаимовлияния функций, не связанных с безопасностью, и функций безопасности, реализуемых программным обеспечением системы безопасности;
- способность обеспечения проведения оценки и подтверждения соответствия.
Примечание 3 - Потребности безопасности, которым должно соответствовать программное обеспечение, описываются набором функций безопасности и соответствующими требованиями полноты безопасности, определенных для функций программного обеспечения в проекте Е/Е/РЕ системы. (Полный набор требований к системе безопасности - гораздо шире, так как включает также функции безопасности, которые выполняются не программным обеспечением, а другими средствами). Полнота спецификации требований к программному обеспечению системы безопасности решающим образом зависит от эффективности более ранних стадий жизненного цикла системы.
7.2.2.1 Если требования к программному обеспечению, связанному с безопасностью, уже были определены в требованиях к Е/Е/РЕ системе, связанной с безопасностью (см. 7.2 IEC 61508-2), повторять их не требуется.
7.2.2.2 Спецификация требований к программному обеспечению, связанному с безопасностью, должна быть выработана на основе заданных требований к безопасности Е/Е/РЕ системы, связанной с безопасностью (IEC 61508-2), и любых требований к планированию безопасности (см. раздел 6). Эта информация должна быть доступна для разработчика программного обеспечения.
Примечание 1 - Это требование означает, что должно быть тесное взаимодействие между разработчиком Е/Е/РЕ системы и разработчиком программного обеспечения (IEC 61508-2 и IEC 61508-3) По мере того как требования к безопасности и архитектура программного обеспечения (см. 7.4.3) становятся более определенными, может проявляться влияние на архитектуру аппаратных средств Е/Е/РЕ системы, и по этой причине становится важным тесное взаимодействие между разработчиками аппаратных средств и программного обеспечения (см. рисунок 5).
Примечание 2 - Проект программного обеспечения может включать уже существующее и многократно использованное программное обеспечение. Такое программное обеспечение может быть разработано без учета спецификации требования к создаваемой системе. В 7.4.2.12 представлены требования к уже существующему программному обеспечению, чтобы удовлетворить спецификации требований к программному обеспечению системы безопасности.
7.2.2.3 Спецификация требований к программному обеспечению, связанному с безопасностью, должна быть достаточно подробной для того, чтобы обеспечить стадии проектирования и внедрения информации для реализации требуемой полноты безопасности (включая требования к независимости, см. IEC 61508-2) и позволить выполнить оценку функциональной безопасности.
Примечание - Уровень детальности спецификации может изменяться в зависимости от сложности применения. Соответствующая спецификация функционального поведения может включать требования к точности, синхронизации и производительности, емкости, устойчивости, допустимой перегрузки и другие свойства, характеризующие конкретное применение.
7.2.2.4 Для решения проблемы независимости должен быть выполнен подходящий анализ отказов по общей причине. Если выявлены вероятные механизмы отказа, то должны быть приняты эффективные меры защиты.
Примечание - В приложении F приведены методы достижения одного аспекта независимости программного обеспечения.
7.2.2.5 Разработчик программного обеспечения должен просмотреть информацию, содержащуюся в 7.2.2.2 для того, чтобы гарантировать, что требования определены адекватным образом. В частности, разработчик программного обеспечения должен учесть:
a) функции безопасности;
b) конфигурацию или архитектуру системы;
c) требования к полноте безопасности аппаратных средств (программируемой электроники, датчиков и исполнительных устройств);
d) требования стойкости к систематическим отказам программного обеспечения;
e) производительность и время отклика;
f) интерфейсы оборудования и оператора, включая разумно предвидимые нарушения.
Примечание - Необходимо рассмотреть совместимость с любыми уже существующими применениями.
7.2.2.6 В специфицированных требованиях к программному обеспечению, связанному с безопасностью, должны быть подробно описаны все соответствующие режимы работы УО, Е/Е/РЕ системы и любых оборудования или системы, подсоединенных к Е/Е/РЕ системе, если только они не были уже адекватно определены в требованиях к системе безопасности, специфицированных для Е/Е/РЕ системы, связанной с безопасностью.
7.2.2.7 В спецификации требований к программному обеспечению системы безопасности должны быть определены и документально оформлены все, связанные с безопасностью, и иные необходимые ограничения, связанные с взаимодействием между аппаратными средствами и программным обеспечением.
7.2.2.8 В той степени, в которой этого требует описание проекта архитектуры аппаратных средств Е/Е/РЕ систем, и с учетом возможного увеличения сложности спецификация требований к программному обеспечению системы безопасности должна учитывать:
a) самоконтроль программного обеспечения (например, IEC 61508-7);
b) мониторинг программируемой электронной аппаратуры, датчиков и исполнительных устройств;
c) периодическое тестирование функций безопасности во время выполнения программы;
d) предоставление возможности тестирования функций безопасности во время работы УО;
e) функции программного обеспечения для выполнения контрольных испытаний и всех диагностических тестов, чтобы выполнить требование полноты безопасности Е/Е/РЕ системы, связанной с безопасностью.
Примечание - Увеличение сложности, которое может возникнуть из вышеупомянутых соображений, может потребовать пересмотра архитектуры.
7.2.2.9 Если Е/Е/РЕ система, связанная с безопасностью, должна выполнять функции, не относящиеся к безопасности, эти функции должны быть четко указаны в спецификации требований к программному обеспечению системы безопасности.
Примечание - Требования к отсутствию взаимовлияния функций, связанных и несвязанных с безопасностью, см. 7.4.2.8 и 7.4.2.9.
7.2.2.10 Спецификация требований к программному обеспечению системы безопасности должна выражать необходимые характеристики безопасности продукции, а не его проекта, как это определяется при планировании системы безопасности (см. раздел 6 IEC 61508-1). С учетом 7.2.2.1-7.2.2.9 в зависимости от конкретных обстоятельств должны быть определены следующие положения:
а) требования к функциям программного обеспечения системы безопасности:
1) функции, которые позволяют УО достигать или поддерживать безопасное состояние,
2) функции, связанные с обнаружением, оповещением и обработкой ошибок аппаратных средств программируемой электроники,
3) функции, связанные с обнаружением, оповещением и обработкой ошибок датчиков и исполнительных устройств,
4) функции, связанные с обнаружением, оповещением и обработкой ошибок в самом программном обеспечении (самоконтроль программного обеспечения),
5) функции, связанные с периодическим тестированием функций безопасности в режиме реального времени (в предопределенной операционной среде),
6) функции, связанные с периодическим тестированием функций безопасности в автономном режиме (то есть в условиях, в которых функция безопасности УО не выполняется),
7) функции, обеспечивающие модификацию ПЭ системы безопасности,
8) интерфейсы функций, не связанных с безопасностью,
9) производительность и время отклика,
10) интерфейсы между программным обеспечением и ПЭ системой.
Примечание - Интерфейсы должны включать в себя средства программирования в автономном и неавтономном режимах,
11) средства коммуникации, связанные с безопасностью;
b) требования стойкости к систематическим отказам программного обеспечения:
1) уровень(и) полноты безопасности для каждой функции по перечислению а).
Примечание - Назначение полноты безопасности элементам программного обеспечения описано в приложении A IEC 61508-5,
2) требования независимости между функциями.
7.2.2.11 Если требования к программному обеспечению системы безопасности выражены или выполнены в виде конфигурации данных, то эти данные должны быть:
a) согласованы с требованиями к системе безопасности;
b) выражены значениями из допустимого диапазона и санкционированными комбинациями реализующих их параметров;
c) определены способом, который совместим с базовым программным обеспечением (например, последовательность выполнения, время выполнения, структуры данных, и т.д.).
Примечание 1 - Это требование к прикладным данным относится, в частности, к применениям, управляемым данными. Они характеризуются следующим образом: исходный код уже существует, а главная цель разработки состоит в обеспечении уверенности, что конфигурации данных правильно задает поведение, требуемое от применения. Между элементами данных могут быть сложные зависимости, и достоверность данных может меняться с течением времени.
Примечание 2 - Указания по системам, управляемым данными, см. в приложении G.
7.2.2.12 Если данные определяют интерфейс между программным обеспечением и внешними системами, то в дополнение к п.7.4.11 IEC 61508-2 необходимо рассмотреть следующие характеристики:
a) необходимость согласованности при определении данных;
b) недостоверные, некорректные или неактуальные значения;
c) время отклика и пропускная способность, в том числе в условиях максимальной загрузки;
d) максимально и минимально возможное время выполнения и зависание;
e) переполнение и потеря данных в памяти.
7.2.2.13 Параметры эксплуатации должны быть защищены от:
а) недостоверных, находящихся вне определенного диапазона или несвоевременных, значений;
б) несанкционированных изменений;
в) искажений.
Примечание 1 - Следует рассмотреть защиту от несанкционированных изменений как программных, так и непрограммных средств. Необходимо отметить, что эффективная защита от несанкционированных изменений программного обеспечения может отрицательно отразиться на безопасности, например, если изменения необходимо выполнить быстро и в напряженных условиях.
Примечание 2 - Хотя человек может быть частью системы, связанной с безопасностью (см. раздел 1 IEC 61508-1), требования человеческого фактора, связанные с проектированием Е/Е/РЕ систем, связанных с безопасностью, в настоящем стандарте подробно не рассматриваются. Однако там, где это необходимо, должны быть рассмотрены следующие соображения, связанные с человеком:
- информационная система оператора должна использовать пиктографическое представление и терминологию, с которой знакомы операторы. Они должны быть четкими, понятными и лишенными ненужных деталей и/или аспектов;
- информация об УО, выведенная оператору на экран, должна подробно и достоверно отображать физическое состояние УО;
- если на экране дисплея оператору представлена информация о выполняющихся в УО процессах и/или если оператор выполняет возможные действия, последствия которых нельзя сразу заметить, то выведенная на экран в автоматическом режиме информация должна показать состояние, в котором находится представленная на дисплее система, или последовательность действий, в которой указано, какое состояние последовательности достигнуто, какие операции могут быть выполнены и какие могут быть возможные последствия.
7.3 Планирование подтверждения соответствия безопасности системы для аспектов программного обеспечения
Примечание 1 - Эта стадия представлена на рисунке 4 (см. блок 10.2).
Примечание 2 - Подтверждение соответствия для программного обеспечения обычно не может быть выполнено отдельно от используемого им оборудования и системной среды.
7.3.1 Цель
Целью требований настоящего подраздела является разработка плана подтверждения соответствия безопасности системы для аспектов программного обеспечения, связанного с безопасностью.
7.3.2 Требования
7.3.2.1 В ходе планирования должны быть определены процедурные и технические шаги, которые необходимо выполнить для того, чтобы продемонстрировать, что программное обеспечение соответствует требованиям безопасности.
7.3.2.2 План подтверждения соответствия безопасности системы для аспектов программного обеспечения должен содержать следующие положения:
a) точная дата, когда должно происходить подтверждение соответствия;
b) перечень лиц, осуществляющих подтверждение соответствия;
c) идентификацию соответствующих режимов работы УО, включая:
- подготовку к использованию, а также установку и настройку,
- работу в режиме запуска и обучения, в автоматическом, ручном, полуавтоматическом и стационарном режимах,
- переустановку, выключение, сопровождение,
- предполагаемые ненормальные условия и предполагаемые ошибки оператора;
d) идентификация программного обеспечения, связанная с безопасностью, для которого должна быть проведена процедура подтверждения соответствия, для каждого режима работы УО до момента его ввода в эксплуатацию;
e) техническая стратегия для подтверждения соответствия (например, аналитические методы, статистическое тестирование и т.п.);
f) средства (методы) и процедуры в соответствии с перечислением е), которые должны быть использованы для того, чтобы подтвердить, что каждая функция безопасности соответствует установленным требованиям к функциям безопасности и требованиям стойкости к систематическим отказам программного обеспечения;
g) условия, в которых должны происходить процедуры подтверждения соответствия (например, при тестировании может потребоваться использование калиброванных инструментов и оборудования);
h) критерии прохождения/непрохождения подтверждения соответствия;
i) политика и процедуры, используемые для оценки результатов подтверждения соответствия, в частности, при оценке отказов.
Примечание - Эти требования основаны на общих требованиях подраздела 7.8 IEC 61508-1.
7.3.2.3 Подтверждение соответствия должно дать обоснование выбранной стратегии. Техническая стратегия для подтверждения соответствия программного обеспечения, связанного с безопасностью, должна содержать следующую информацию:
a) выбор ручных или автоматических методов, или и тех и других;
b) выбор статических или динамических методов, или и тех и других;
c) выбор аналитических или статистических методов, или и тех и других;
d) выбор критериев приемки на основе объективных факторов или экспертной оценки, или и тех и другой.
7.3.2.4 В рамках процедуры подтверждения соответствия аспектов программного обеспечения, связанного с безопасностью, если этого требует уровень полноты безопасности (раздел 8 IEC 61508-1), область применения и содержание плана подтверждения соответствия безопасности системы аспектов программного обеспечения должны быть изучены экспертом или третьей стороной, представляющей эксперта. Эта процедура должна также включать в себя заявление о присутствии эксперта при испытаниях.
7.3.2.5 Критерии прохождения/непрохождения при завершении подтверждения соответствия программного обеспечения должны включать в себя:
a) необходимые входные сигналы, включая их последовательность и значения;
b) предполагаемые выходные сигналы, включая их последовательность и значения, и
c) другие критерии приемки, например, использование памяти, синхронизацию, допустимые интервалы значений.
7.4 Проектирование и разработка программного обеспечения
Примечание - Эта стадия представлена на рисунке 4 (см. 10.3).
7.4.1 Цели
7.4.1.1 Первой целью требований настоящего подраздела является создание такой архитектуры программного обеспечения, которая соответствовала бы заданным требованиям к программному обеспечению, связанному с безопасностью, в отношении необходимого уровня полноты безопасности.
7.4.1.2 Второй целью требований настоящего подраздела является оценка требований, предъявляемых к программному обеспечению со стороны архитектуры аппаратных средств Е/Е/РЕ системы, связанной с безопасностью, включая значение взаимодействия между аппаратными средствами и программным обеспечением Е/Е/РЕ систем для обеспечения безопасности управляемого оборудования.
7.4.1.3 Третьей целью требований настоящего подраздела является выбор подходящего набора инструментальных средств, включая языки программирования и компиляторы, интерфейсы системы времени выполнения, интерфейсы пользователя и форматы и представления данных, который соответствовал бы заданному уровню полноты безопасности на протяжении всего жизненного цикла программного обеспечения системы безопасности и способствовал бы выполнению процессов верификации, подтверждения соответствия, оценки и модификации.
7.4.1.4 Четвертой целью требований настоящего подраздела является проектирование и реализация программного обеспечения, которое соответствовало бы специфицированным требованиям к программному обеспечению, связанному с безопасностью, для необходимого уровня полноты безопасности. Это программное обеспечение должно быть пригодным для анализа и верификации и обладать способностью к безопасной модификации.
7.4.1.5 Пятой целью требований настоящего подраздела является проверка выполнения требований к программному обеспечению, связанному с безопасностью (в отношении необходимых функций безопасности и стойкости к систематическим отказам программного обеспечения).
7.4.1.6 Шестой целью требований настоящего подраздела является гарантирование, в той мере, насколько это уместно, того, что конфигурирование данными ПЭ систем соответствует указанным в настоящем подразделе требованиям стойкости к систематическим отказам программного обеспечения.
7.4.2 Общие требования
7.4.2.1 В зависимости от природы процесса разработки программного обеспечения ответственными за соответствие требованиям 7.4 могут быть: или только поставщик связанного с безопасностью программного окружения (например, поставщик PLS), или только пользователь этого окружения (например, разработчик прикладных программ), или поставщик и пользователь. Распределение ответственности должно быть определено во время планирования системы безопасности (см. раздел 6).
Примечание - О характеристиках системы и архитектуры программного обеспечения, для которых необходима определенность при выборе подразделения, ответственного за соответствие требованиям 7.4, см. 7.4.3.
7.4.2.2 В соответствии с требуемым уровнем полноты безопасности и конкретными техническими требованиями к функции безопасности выбранный метод проектирования должен обладать характеристиками, которые облегчают:
a) абстрактное представление, разделение на модули и другие характеристики, контролирующие уровень сложности;
b) выражение:
1) выполняемых функций,
2) обмена данными между элементами,
3) информации, относящейся к последовательности и времени выполнения программ,
4) ограничений синхронизации,
5) параллельного и синхронизированного доступа к совместно используемым ресурсам,
6) структур данных и их свойств,
7) проектных предположений и их зависимостей,
8) обработки исключений,
9) проектных предположений (предварительных условий, постусловий, инвариантов),
10) комментариев;
c) возможность описания нескольких представлений проекта, включая представление структуры и представление поведения;
d) понимание разработчиками и другими лицами, которые должны иметь дело с проектом;
e) верификацию и оценку соответствия.
7.4.2.3 Тестируемость и способность к модификации системы безопасности должны быть предусмотрены на этапе проектирования для того, чтобы облегчить реализацию этих характеристик в окончательной версии системы, связанной с безопасностью.
Примечание - Например, режимы эксплуатации в машиностроении и на обрабатывающих предприятиях.
7.4.2.4 Выбранный метод проектирования должен обладать характеристиками, облегчающими модификацию программного обеспечения. К числу таких характеристик относят модульность, скрытие информации и инкапсуляцию.
7.4.2.5 Представление проекта должно основываться на нотации, которая является однозначно определенной или ограничена до однозначно определенных свойств.
7.4.2.6 Проект должен, насколько это возможно, минимизировать ту часть программного обеспечения, которая связана с безопасностью.
7.4.2.7 Проект программного обеспечения должен включать в себя (соразмерно требуемому уровню полноты безопасности) средства самоконтроля потоков управления и потоков данных. При обнаружении отказа должны быть выполнены соответствующие действия.
7.4.2.8 Если программное обеспечение должно реализовать функции как относящиеся, так и не относящиеся к безопасности, оно в целом должно рассматриваться как относящееся к безопасности, если в проекте не предусмотрены соответствующие меры, гарантирующие, что отказы функций, не относящихся к безопасности, не могут оказать негативное влияние на функции, относящиеся к безопасности.
7.4.2.9 Если программное обеспечение должно реализовать функции безопасности, имеющие различный уровень полноты безопасности, то следует считать, что все программное обеспечение имеет уровень наивысший среди этих уровней, если только в проекте не будет продемонстрирована достаточная независимость функций, имеющих различный уровень полноты безопасности. Должно быть продемонстрировано, что либо независимость обеспечена в пространстве и во времени, либо любые нарушения независимости находятся под контролем. Обоснование независимости должно быть документально оформлено.
Примечание - Методы достижения одного аспекта независимости программного обеспечения приведены в приложении F.
7.4.2.10 Если стойкость к систематическим отказам элемента программного обеспечения ниже, чем уровень полноты безопасности функции безопасности, к которой он относится, то этот элемент должен использоваться в сочетании с другими элементами, такими, что стойкость к систематическим отказам такого сочетания элементов будет равна уровню полноты безопасности функции безопасности.
7.4.2.11 Если функция безопасности реализуется с использованием комбинации элементов программного обеспечения, для которых известны их значения стойкости к систематическим отказам, то к такой комбинации элементов должны применяться требования стойкости к систематическим отказам, представленные в 7.4.3 IEC 61508-2.
Примечание - Существует различие между функцией безопасности, от начала до конца реализуемой одним или более элементами, и функцией безопасности элемента, то есть каждого из элементов, участвующего в реализации. Если два элемента объединяются для достижения более высокой стойкости к систематическим отказам, то в такой комбинации каждый из этой пары элементов должен быть способен к предотвращению/смягчению опасного события, при этом функции безопасности каждого из этих элементов не обязательно должны быть идентичны, и не требуется, чтобы каждый из элементов комбинации был способен независимо обеспечивать функциональную безопасность, которая задана для всей комбинации.
Пример - В управлении электронного дросселя автомобиля функция безопасности "предотвращение нежелательного ускорения" полностью реализуется на двух процессорах. Функция безопасности элемента, реализуемая основным контроллером, управляет поведением дросселя в режиме запрос/ответ. Функция безопасности элемента, реализуемая вторым процессором, выполняет разнообразный контроль (см. С.3.4 IEC 61508-7) и аварийный останов в случае необходимости. Комбинация этих двух процессоров дает более высокую уверенность в том, что выполнение всей функции безопасности "предотвращение нежелательного ускорения" будет обеспечено.
7.4.2.12 Если для реализации всей или части функции безопасности используется вновь уже существующий элемент программного обеспечения, то этот элемент должен соответствовать обоим следующим требованиям систематической полноты безопасности:
a) соответствовать требованиям одного из следующих способов обеспечения соответствия:
Примечание 2 - В соответствии с 3.2.8 IEC 61508-4 уже существующее программное обеспечение может быть доступным коммерческим продуктом, или оно, возможно, было разработано конкретной организацией для предыдущего изделия или системы. Уже существующее программное обеспечение могло или не могло быть разработано в соответствии с требованиями настоящего стандарта.
Примечание 3 - Требования к уже существующим элементам применяются также к библиотеке времени выполнения или интерпретатору;
b) разработать руководство по безопасности (см. приложение D IEC 61508-2 и приложение D настоящего стандарта), которое дает достаточно точное и полное описание элемента для обеспечения оценки полноты конкретной функции безопасности, полностью или частично зависящей от уже существующего элемента программного обеспечения.
Примечание 1 - Руководство по безопасности может быть получено из собственной документации поставщика элемента и описания процесса разработки поставщика элемента или создано либо расширено дополнительными квалифицированными действиями, выполненными разработчиком системы, связанной с безопасностью, или третьей стороной. В некоторых случаях может понадобиться инженерный анализ для создания спецификации или разработки документации, соответствующей требованиям данного пункта с учетом сложившихся правовых условий (например, авторское право или права интеллектуальной собственности).
Примечание 2 - Обоснование элемента может быть разработано во время планирования безопасности (см. раздел 6).
а) Спецификация требований к программному обеспечению системы безопасности для элемента в его новом приложении должна быть документально оформлена подробно, в соответствии с требованиями настоящего стандарта для любого элемента, связанного с безопасностью, с той же стойкостью к систематическим отказам. Спецификация требований к программному обеспечению системы безопасности должна охватывать функциональное и безопасное поведение, и применена к элементу в его новом применении, как определено в 7.2. (см. таблицу 1).
b) Обоснование для использования элемента программного обеспечения должно представить свидетельства о том, что были рассмотрены требуемые свойства системы безопасности, определенные в 7.2.2, 7.4.3, 7.4.4, 7.4.5, 7.4.6, 7.4.7, 7.5.2, 7.7.2, 7.8.2, 7.9.2 и разделе 8 с учетом требований приложения С.
c) В достаточно подробно документально оформленном проекте элемента должны быть представлены свидетельства соответствия со спецификацией требований и требуемой стойкостью к систематическим отказам. См. 7.4.3, 7.4.5 и 7.4.6 и таблицы А.2 и А.4 приложения А.
d) Свидетельства по 7.4.2.13, перечисление а) и по 7.4.2.13, перечисление b) должны охватывать интеграцию программного обеспечения и аппаратных средств. См. 7.5 и таблицу А.6 приложения А.
e) Требуется доказательство, что для элемента были выполнены процедуры проверки и подтверждения соответствия, используя систематический подход с документально оформленным тестированием и анализом всех частей проекта элемента и кода. См. 7.4.7, 7.4.8, 7.5, 7.7, 7.9 и таблицы А.5-А.7 и А.9 приложения А, а также, связанные с ними таблицы приложения В.
Примечание - Для того, чтобы удовлетворить требованиям тестирования может быть использован положительный опыт применения вероятностных методов и метода "черного ящика" (см. таблицы А.7 приложения А и В.3 приложения В).
f) Если элемент программного обеспечения выполняет функции, которые не требуются системе, связанной с безопасностью, то должно быть представлено свидетельство о том, что ненужные функции не мешают Е/Е/РЕ системе соответствовать требованиям безопасности.
Примечание - Способы, соответствующие данному требованию, включают в себя:
- устранение таких функций из проекта;
- отключение таких функций;
- использование соответствующей архитектуры системы (например, декомпозиция на части, упаковка в отдельный файл, разнообразие, проверка достоверности выходов);
- увеличение объема тестирования.
g) Должно быть доказано, что все вероятностные механизмы отказа элемента программного обеспечения были идентифицированы и реализованы соответствующие меры их ослабления.
Примечание - Соответствующие меры ослабления включают в себя:
- использование соответствующей архитектуры системы (например, декомпозиция на части, упаковка в отдельный файл, разнообразие, проверка достоверности выходов),
- обработка исключений.
h) При планировании использования элемента должны быть идентифицированы конфигурация элемента программного обеспечения, среды выполнения программного и аппаратного обеспечения и (при необходимости) конфигурация системы компиляции/редактирования связей.
i) Обоснованием использования элемента должно быть проведение для него процедуры подтверждения соответствия только для тех применений, которые соответствуют предположениям руководства для этого элемента по безопасности применяемых изделий (см. приложение D IEC 61508-2 и приложение D настоящего стандарта).
7.4.2.14 Пункт 7.4.2, насколько это уместно, должен применяться к данным и языкам генерации данных.
Примечание - Руководящие указания по системам, управляемым данными, см. в приложении G.
a) Если ПЭ система обладает уже существующей функциональностью, которая сконфигурирована данными и соответствует конкретным требованиям применения, то проект прикладного программного обеспечения должен соответствовать степени конфигурируемости применения, существующей у предварительно поставляемой функциональности и сложности ПЭ системы, связанной с безопасностью.
b) Если функциональность ПЭ системы, связанной с безопасностью, определена в значительной степени или в основном конфигурационными данными, то для предотвращения появления отказов во время проектирования, производства, загрузки и модификации данных конфигурации и уверенности, что конфигурационные данные правильно формируют логику применения, должны использоваться соответствующие методы и средства.
c) Спецификация структур данных должна быть:
1) не противоречивой функциональным требованиям системы, включая данные применения,
2) полной,
3) внутренне непротиворечивой,
4) такой, чтобы структуры данных были защищены от изменения или повреждения.
d) Если ПЭ система обладает уже существующей функциональностью, которая сконфигурирована данными и соответствует определенным требованиям применения, то сам процесс конфигурации должен быть соответственно документально оформлен.
7.4.3 Требования к проектированию архитектуры программного обеспечения
Примечание 1 - Архитектура программного обеспечения определяет основные элементы и подсистемы программного обеспечения, их взаимосвязь, способ реализации необходимых характеристик и, в частности, полноты безопасности. Архитектура программного обеспечения также определяет общее поведение программного обеспечения, и как элементы программного обеспечения реализуют интерфейс и взаимодействуют между собой. Примерами основных компонентов программного обеспечения являются операционные системы, базы данных, подсистемы ввода и вывода УО, коммуникационные подсистемы, прикладные программы, инструментальные средства программирования и диагностики и т.п.
Примечание 2 - В некоторых отраслях промышленности архитектура программного обеспечения может называться "описание функций или спецификация функций проекта" (хотя эти документы могут также включать в себя вопросы, относящиеся к аппаратным средствам).
Примечание 3 - В некоторых случаях пользовательского прикладного программирования, в частности, в языках, используемых в программируемых логических контроллерах (ПЛК) (IEC 61508-6, приложение Е), архитектура определяется поставщиком как стандартная характеристика ПЛК. Однако в соответствии с требованиями настоящего стандарта к поставщику может быть предъявлено требование, гарантировать пользователю соответствие поставляемого продукта требованиям 7.4. Пользователь приспосабливает ПЛК, используя стандартные возможности программирования, например, многозвенные логические схемы. Требования 7.4.3-7.4.8 остаются в силе. Требование определения и документирования архитектуры может рассматриваться как информация, которую пользователь может использовать при выборе ПЛК (или эквивалентного ему устройства) для применения.
Примечание 4 - С точки зрения системы безопасности стадия разработки архитектуры программного обеспечения соответствует периоду, когда для программного обеспечения разрабатывается базовая стратегия безопасности.
Примечание 5 - Хотя стандарты серии IEC 61508 устанавливают числовые значения целевых мер отказов для функций безопасности, выполняемых Е/Е/РЕ системами, связанными с безопасностью, систематическая полнота безопасности, обычно не определяется количественно (см. 3.5.6 IEC 61508-4), но полнота безопасности программного обеспечения (см. 3.5.5 IEC 61508-4) определяется как стойкость к систематическим отказам со шкалой уверенности от 1 до 4 (см. 3.5.9 IEC 61508-4). Для целей настоящего стандарта принято, что программная ошибка может быть безопасной или опасной в зависимости от специфики использования программного обеспечения. Архитектура системы/программного обеспечения должна быть такой, чтобы опасные отказы элемента были ограничены каким-либо архитектурным ограничением, а методы разработки должны эти ограничения учитывать. В соответствии с требованиями настоящего стандарта методы разработки и подтверждения соответствия применяют со всей строгостью, которая является качественно согласованной с требуемой стойкостью к систематическим отказам.
Примечание 6 - Для выбора соответствующих методов и средств (см. приложения А и В), выполняющих требования настоящего пункта, должны быть рассмотрены следующие свойства (см. руководство по интерпретации свойств в приложении С и неформальные описания методов и средств в приложении F IEC 61508-7) архитектуры программного обеспечения:
- полнота спецификации требований к программному обеспечению системы безопасности;
- корректность спецификации требований к программному обеспечению системы безопасности;
- отсутствие собственных ошибок проекта;
- простота и ясность;
- предсказуемость поведения;
- верифицируемость и тестируемость проекта;
- отказоустойчивость;
- защита от отказов по общей причине, вызванной внешним событием.
7.4.3.1 В зависимости от характера разработки программного обеспечения ответственность за соответствие 7.4.4 может лежать на нескольких сторонах. Распределение ответственности должно быть документально оформлено во время планирования системы безопасности (см. раздел 6 IEC 61508-1).
7.4.3.2 Проект архитектуры программного обеспечения должен быть создан поставщиком программного обеспечения и/или разработчиком, описание архитектуры должно быть подробным. Описание должно:
a) содержать выбор и обоснование (см. 7.1.2.7) интегрированного набора методов и мероприятий, которые будут необходимы в течение жизненного цикла программного обеспечения системы безопасности для того, чтобы соответствовать требованиям к программному обеспечению системы безопасности для заданного уровня полноты безопасности. Эти методы и мероприятия включают в себя стратегию проектирования программного обеспечения для обеспечения устойчивости к отказам (совместимую с аппаратными средствами) и избежания отказов, в том числе, включая в себя (при необходимости) избыточность и разнообразие;
b) основываться на разделении на элементы/подсистемы, для каждой из которых должна предоставляться следующая информация:
1) проводилась ли верификация и если проводилась, то при каких условиях,
2) связан ли каждый из этих компонентов/подсистем с безопасностью или нет,
3) существует ли стойкость к систематическим отказам для компонента/подсистемы программного обеспечения;
c) определять все взаимодействия между программным обеспечением и аппаратным средствами, а также оценивать и детализировать их значение.
Примечание - Если взаимодействие между программным обеспечением и аппаратными средствами уже определено архитектурой системы, то достаточно сослаться на архитектуру системы;
d) использовать для представления архитектуры нотацию, которая является однозначно определенной или ограничена до подмножества однозначно определенных характеристик;
e) содержать набор проектных характеристик, которые должны использоваться для поддержания полноты безопасности всех данных. В число таких данных допускается включать входные и выходные производственные, коммуникационные данные, данные интерфейса оператора, сопровождения и хранящиеся во внутренних базах данных;
f) определять соответствующие тесты интеграции архитектуры программного обеспечения для обеспечения выполнения спецификации требований к программному обеспечению системы безопасности для заданного уровня полноты безопасности.
7.4.3.3 Любые изменения, которые может потребоваться внести в спецификацию требований к Е/Е/РЕ системе безопасности (см. 7.4.3.2), после использования мероприятий по 7.4.3.2 должны быть согласованы с разработчиком Е/Е/РЕ систем и документально оформлены.
Примечание - Итерационное взаимодействие между архитектурой аппаратных средств и программного обеспечения является неизбежным (см. рисунок 5), поэтому существует необходимость в обсуждении с разработчиком аппаратуры таких вопросов, как спецификация тестирования интеграции программируемой электронной аппаратуры и программного обеспечения (см. 7.5).
7.4.4 Требования к инструментальным средствам поддержки, включая языки программирования
Примечание - Для выбора соответствующих методов и средств (см. приложения А и В) для выполнения требований настоящего пункта должны быть рассмотрены следующие свойства (см. руководство по интерпретации свойств в приложении С и неформальные описания методов и средств в приложении F IEC 61508-7) архитектуры программного обеспечения:
- уровень, до которого инструментальные средства поддерживают разработку программного обеспечения с требуемыми свойствами программного обеспечения;
- четкость работы и функциональность инструментальных средств;
- корректность и воспроизводимость результата.
7.4.4.1 Программное обеспечение инструментальных средств поддержки, работающее в неавтономном режиме, должно рассматриваться как элемент программного обеспечения системы, связанной с безопасностью.
Примечание - Примеры инструментальных средств поддержки, работающие в автономном и неавтономном режиме см. в 3.2.10 и 3.2.11 IEC 61508-4.
7.4.4.2 Действие по выбору программного обеспечения инструментальных средств поддержки, работающих в автономном режиме, должно быть тесно связанным с частью действий по разработке программного обеспечения.
Примечание 1 - Требования к жизненному циклу разработки программного обеспечения см. в 7.1.2.
Примечание 2 - Для увеличения целостности программного обеспечения за счет уменьшения вероятности появления или необнаружения отказов во время его разработки должны использоваться соответствующие инструментальные средства, работающие в неавтономном режиме, поддерживающие разработку программного обеспечения. Примерами инструментальных средств, использующихся на стадиях разработки жизненного цикла программного обеспечения, являются:
a) инструментальные средства преобразования или трансляции, которые преобразуют программное обеспечение или представление проекта (например, текст или схему) из одного уровня абстрактного представления в другой уровень: инструментальные средства усовершенствования проекта, компиляторы, ассемблеры, компоновщики, редакторы связей, загрузчики и средства генерации кода;
b) средства оценки и подтверждения соответствия, такие как статические анализаторы кода, средства контроля тестового охвата, средства доказательства теорем и средства моделирования;
c) инструментальные средства диагностики для поддержки и контроля программного обеспечения в процессе эксплуатации;
d) инструментальные средства инфраструктуры, такие как системы поддержки разработок;
e) инструментальные средства управления конфигурацией, такие как средства управления версиями;
f) инструментальные средства данных применения, которые создают или поддерживают данные, необходимые для определения параметров и создания экземпляров функций системы. Такие данные включают в себя параметры функций, диапазоны инструментальных средств, уровни срабатывания и отключения аварийных сигналов, состояния выхода, которые будут восприняты как отказы.
Примечание 3 - Инструментальные средства поддержки, работающие в автономном режиме, должны быть выбраны как интегрируемые. Инструментальные средства интегрированы, если они работают совместно так, чтобы, выходы одного инструментального средства имели соответствующее содержание и формат для автоматической передачи на вход к следующему инструментальному средству, минимизируя таким образом возможность появления ошибки человека при повторной обработке промежуточных результатов.
Примечание 4 - Инструментальные средства поддержки, работающие в автономном режиме, должны быть выбраны как совместимые с потребностями применения системы, связанной с безопасностью, и интегрированного комплекса инструментальных средств.
Примечание 5 - Необходимо рассмотреть наличие подходящих инструментальных средств, чтобы предоставить сервисы, необходимые для всего жизненного цикла Е/Е/РЕ системы, связанной с безопасностью, (например, средства поддержки спецификаций, проектирования, реализации, документирования, модификации).
Примечание 6 - Необходимо уделить внимание компетентности пользователей выбранных инструментальных средств. Требования к компетентности см. раздел 6 IEC 61508-1.
7.4.4.3 Выбор инструментальных средств поддержки, работающих в автономном режиме, должен быть обоснован.
7.4.4.4 Все инструментальные средства поддержки классов Т2 и Т3, работающие в автономном режиме, должны иметь спецификацию или документацию на это средство, в которой ясно определено поведение инструментального средства и любые инструкции или ограничения при их использовании. Требования к жизненному циклу разработки программного обеспечения см. в 7.1.2, а для категорий программного обеспечения инструментальных средств поддержки, работающих в автономном режиме, см. в 3.2.11 IEC 61508-4.
Примечание - Такая "спецификация или документация на инструментальное средство" не является руководством по безопасности применяемого элемента (см. приложение D IEC 61508-2 и настоящий стандарт) непосредственно для самого инструментального средства. Руководство по безопасности для применяемого элемента касается уже существующего элемента, который включен в исполняемую систему, связанную с безопасностью. Если уже существующий элемент был сгенерирован инструментальным средством класса Т3 и затем включен в исполняемую систему, связанную с безопасностью, то любая релевантная информация (например, если в документации для оптимизирующего компилятора указано, что порядок оценки параметров функции не гарантируется) из "спецификации или документации на инструментальное средство" должна быть включена в руководство по безопасности для применяемого элемента, что позволяет провести оценку полноты конкретной функции безопасности, которая полностью или частично зависит от элемента, включенного в исполняемую систему, связанную с безопасностью.
7.4.4.5 Для того, чтобы определить уровень доверия к инструментальным средствам и возможные механизмы отказа инструментальных средств, которые могут повлиять на исполняемое программное обеспечение, должна быть выполнена оценка инструментальных средств поддержки классов Т2 и Т3, работающих в автономном режиме. Если механизмы отказа идентифицированы, то должны быть использованы соответствующие меры по их ослаблению.
Примечание 1 - Программное обеспечение HAZOP реализует один из методов анализа последствий возможных отказов, который можно использовать для программного обеспечения инструментального средства.
Примечание 2 - Примерами мер по ослаблению являются: предотвращение известных ошибок, ограниченное использование функциональности инструментального средства, проверка выходных результатов инструментального средства, использование разнообразных инструментальных средств для той же цели.
7.4.4.6 Для каждого инструментального средства в классе Т3 должно быть в наличии свидетельство о том, что инструментальное средство соответствует спецификации или документации на него. Такое свидетельство может быть основано на подходящей комбинации информации о предыдущем успешном использовании в подобных средах и для подобных применений (в данной организации или в других организациях), и подтверждении соответствия инструментального средства, как определено в 7.4.4.7.
Примечание 1 - История версий может обеспечивать уверенность в полноте готовности инструментального средства, а также должны быть учтены записи ошибок / несоответствий, когда инструментальное средство используется для разработки в новой среде.
Примечание 2 - Свидетельство для инструментального средства класса Т3 может также использоваться для инструментальных средств класса Т2 для оценки правильности их результатов.
7.4.4.7 Результаты подтверждения соответствия инструментальных средств должны быть документально оформлены и содержать:
a) хронологическую запись действий по подтверждению соответствия;
b) версию используемого руководства по инструментальному средству;
c) функции инструментального средства, для которых проводится процедура подтверждения соответствия;
d) используемые инструментальные средства и оборудование;
e) результаты действия по подтверждению соответствия; документально оформленные результаты подтверждения соответствия должны установить, что подтверждено соответствие программного обеспечения или существуют причины для отказа;
f) контрольные примеры и их результаты для последующего анализа;
g) несоответствия между ожидаемыми и фактическими результатами.
7.4.4.8 Если свидетельство соответствия по 7.4.4.6 недоступно, то должны быть предприняты эффективные меры для управления отказами рассматриваемой системы, связанной с безопасностью, которые являются следствием ошибок инструментального средства.
Примечание - Примером такой меры является средство генерации разнообразного избыточного кода, которое позволяет обнаружить, и управлять отказами рассматриваемой системы, связанной с безопасностью, которые произошли в ней из-за ошибок транслятора.
7.4.4.9 Должна быть проверена совместимость инструментальных средств в интегрированном комплексе инструментальных средств.
Примечание - Инструментальные средства интегрированы, если они работают совместно так, чтобы выходы одного инструментального средства имели соответствующее содержание и формат для автоматической передачи на вход к следующему инструментальному средству, минимизируя таким образом возможность появления ошибки человека при повторной обработке промежуточных результатов. См. В.3.5 приложения В IEC 61508-7.
7.4.4.10 В той степени, в которой этого требует уровень полноты безопасности, выбранное представление программного обеспечения или проекта (включая язык программирования) должно:
a) иметь транслятор, оцененный для проверки его пригодности (если необходимо), включая подтверждение соответствия требованиям национальных или международных стандартов;
b) использовать свойства языка, определенные только для него;
c) соответствовать характеристикам применения;
d) обладать свойствами, облегчающими обнаружение ошибок при проектировании или программировании;
е) поддерживать характеристики, соответствующие методу проектирования.
Примечание 1 - Языки программирования являются классом программного обеспечения и используются для представлений проекта. Транслятор преобразует программное обеспечение или представление проекта (например, текст или блок-схему) из одного уровня абстракции в другой уровень. Примерами трансляторов являются: инструменты усовершенствования проекта, компиляторы, ассемблеры, компоновщики, редакторы связей, загрузчики и инструменты генерации кода.
Примечание 2 - Оценка транслятора может быть выполнена для конкретного проекта применения или класса применений. В последнем случае вся необходимая информация об инструментальном средстве ("спецификации или руководстве по инструментальному средству", см. 7.4.4.4), его назначении и надлежащем использовании должна быть доступной пользователю инструментального средства. В таком случае оценка инструментального средства для конкретного проекта может быть сокращена до проверки общей пригодности инструментального средства для проекта и соответствия со "спецификацией или руководством по инструментальному средству" (то есть оценивают правильное использование инструментального средства). Правильное использование инструментального средства может включать в себя дополнительные действия по проверке в рамках конкретного проекта.
Примечание 3 - Для того, чтобы оценить пригодность транслятора для выполнения своей цели согласно заданным критериям, которые должны включать в себя функциональные и нефункциональные требования, может использоваться процедура подтверждения соответствия (то есть набор тестовых программ, корректная трансляция которых известна заранее). Основным методом подтверждения соответствия транслятора его функциональным требованиям может быть динамическое тестирование. По возможности должна использоваться автоматическая процедура тестирования.
7.4.4.11 Если требования 7.4.4.10 не могут быть полностью выполнены, то необходимо обосновать пригодность языка для выполнения своей цели, а также использовать любые дополнительные меры, направленные на устранение любых идентифицированных недостатков языка.
7.4.4.12 Языки программирования для разработки всего программного обеспечения, связанного с безопасностью, должны использоваться в соответствии со стандартами составления программ для таких языков.
Примечание - Руководящие указания по использованию стандартов кодирования для программного обеспечения системы безопасности см. в IEC 61508-7.
7.4.4.13 Стандарты составления программ должны определять правильные методы программирования, запрещать использование небезопасных возможностей языка (например, неопределенных особенностей языка, неструктурированных конструкций и т.п.), упрощать проверку и тестирование и определять процедуры для документирования исходного текста. Документация, относящаяся к исходному тексту, должна содержать, по меньшей мере, следующую информацию:
a) юридическое лицо (например, компания, автор(ы) и т.д.);
b) описание;
c) входные и выходные данные;
d) историю управления конфигурацией.
7.4.4.14 Если выполняется автоматическая генерация кода или применяется автоматический транслятор, то необходимо провести оценку пригодности автоматического транслятора для разработки системы, связанной с безопасностью, для тех стадий жизненного цикла разработки, на которых применяют инструментальные средства поддержки разработки.
7.4.4.15 Если инструментальные средства поддержки классов Т2 и Т3, работающие в автономном режиме, генерируют элементы для базовой конфигурации, то управление конфигурацией должно гарантировать, чтобы информация об инструментальных средствах была записана в базовой конфигурации. В частности, информация об инструментальных средствах должна включать в себя:
a) идентификацию инструментального средства и его версии;
b) идентификацию элементов базовой конфигурации, для которых использовалась данная версия инструментального средства;
c) последовательность использования инструментального средства (включая параметры инструментального средства, опции и выбранные сценарии) для каждого базового элемента конфигурации.
Примечание - Цель данного подпункта состоит в том, чтобы позволить реконструировать базовую конфигурацию.
7.4.4.16 Управление конфигурацией должно гарантировать, что для инструментальных средств в классах Т2 и Т3 используются только квалифицированные версии.
7.4.4.17 Управление конфигурацией должно гарантировать, что используются только инструментальные средства, совместимые друг с другом и с системой, связанной с безопасностью.
Примечание - Аппаратные средства системы, связанной с безопасностью, могут также наложить ограничения на совместимость программного обеспечения инструментальных средств, например, эмулятор процессора должен быть точной моделью реальной электроники процессора.
7.4.4.18 Каждая новая версия инструментального средства поддержки, работающего в автономном режиме, должна быть квалифицирована. Эта квалификация может опираться на доказательства, представленные для более ранней версии, при наличии достаточных доказательств при условии, что:
a) функциональные различия (при наличии) не будут влиять на совместимость инструментального средства с остальной частью набора инструментальных средств и
b) новая версия вряд ли будет содержать принципиально новые, неизвестные отказы.
Примечание - Доказательство того, что новая версия вряд ли будет содержать принципиально новые, неизвестные отказы, может быть основано на ясной идентификации выполненных изменений, анализе действий по проверке и подтверждению соответствия, выполняемых для новой версии, и любом существующем опыте работы других пользователей с новой версией.
7.4.4.19 В зависимости от характера разработки программного обеспечения ответственность за соответствие требованиям 7.4.4 может лежать на нескольких сторонах. Распределение ответственности должно быть документально оформлено во время планирования системы безопасности (см. раздел 6 IEC 61508-1).
7.4.5 Требования к детальному проектированию и разработке - проектирование системы программного обеспечения
Примечание 1 - Под детальным проектированием понимается разделение основных элементов архитектуры на систему программных модулей, проектирование отдельных программных модулей и их программирование. В небольших приложениях проектирование программных систем и архитектуры может быть объединено.
Примечание 2 - Характер детального проектирования и разработки могут изменяться в зависимости от характера процессов разработки программ и архитектуры программного обеспечения (см. 7.4.3). Если прикладное программирование выполняется, например, с помощью языков многозвенных логических схем и функциональных блоков, то детальное проектирование может рассматриваться скорее как конфигурирование, чем как программирование. Тем не менее, правильный стиль программирования состоит в структурировании программного обеспечения, включая организацию модульной структуры, которая выделяет (насколько это возможно) блоки, связанные с безопасностью; в использовании проверок на попадание в интервал допустимых значений и других возможностей защиты от ошибок при вводе исходных данных; в использовании ранее верифицированных программных модулей; в применении проектных решений, которые облегчают выполнение будущих модификаций программного обеспечения.
Примечание 3 - При выборе соответствующих методов и средств (см. приложения А и В настоящего стандарта) для выполнения требований настоящего пункта должны быть рассмотрены следующие свойства (см. руководство по интерпретации свойств в приложении С настоящего стандарта и неформальные описания методов и средств в приложении F IEC 61508-7) проектирования и разработки:
- полнота спецификации требований к программному обеспечению системы безопасности;
- корректность спецификации требований к программному обеспечению системы безопасности;
- отсутствие собственных ошибок проекта;
- простота и ясность;
- предсказуемость поведения;
- поддающийся проверке и тестированию проект;
- отказоустойчивость/обнаружение неисправностей;
- отсутствие отказов по общей причине.
7.4.5.1 В зависимости от характера разработки программного обеспечения ответственность за соответствие требованиям 7.4.4 может лежать на нескольких сторонах. Распределение ответственности должно быть документально оформлено во время планирования системы безопасности (см. раздел 6 IEC 61508-1).
7.4.5.2 До начала детального проектирования должна быть подготовлена следующая информация: спецификация требований к Е/Е/РЕ системе, связанной с безопасностью, описание проекта архитектуры программного обеспечения, план подтверждения соответствия аспектов программного обеспечения системы безопасности.
7.4.5.3 Программное обеспечение следует разрабатывать так, чтобы достигалась модульность, тестируемость и способность к модификации системы безопасности.
7.4.5.4 Дальнейшее уточнение проекта для каждого главного элемента/подсистемы в описании проекта архитектуры программного обеспечения должно основываться на декомпозиции системы на программные модули (т.е. на спецификации проекта программной системы). Необходимо специфицировать проект каждого программного модуля и проверки этих модулей.
Примечание 1 - Об уже существующих элементах программного обеспечения см. 7.4.2.
Примечание 2 - Верификация состоит из тестирования и анализа.
7.4.5.5 Должны быть определены соответствующие проверки интеграции программной системы, показывающие, что программная система соответствуют требованиям к программному обеспечению системы безопасности для заданного уровня полноты безопасности.
7.4.6 Требования к реализации исходных текстов программ
Примечание - В соответствии с требуемым уровнем полноты безопасности исходный код должен обладать следующими свойствами (о конкретных методах см. приложения А и В, руководящие указания по интерпретации свойств см. в приложении С к настоящему стандарту):
Для получения доступа к полной версии без ограничений вы можете выбрать подходящий тариф или активировать демо-доступ.