5.5 Результаты работы
6.1 Цели
Цели настоящей подстадии:
a) определить или уточнить требования безопасности программного обеспечения, вытекающие из концепции технической безопасности и спецификации архитектуры системы;
b) определить связанные с безопасностью функции и свойства реализуемого программного обеспечения;
c) уточнить требования к аппаратно-программному интерфейсу, разрабатываемому в соответствии с требованиями раздела 6 ИСО 26262-4;
d) удостовериться в том, что требования безопасности программного обеспечения и требования к аппаратно-программному интерфейсу пригодны для разработки программного обеспечения и соответствуют концепции технической безопасности и спецификации архитектуры системы.
6.2 Общие положения
Требования технической безопасности уточняются и распределяются для аппаратных средств и программного обеспечения на стадии проектирования архитектуры системы, представленной в разделе 6 ИСО 26262-4. Спецификация требований безопасности программного обеспечения учитывает, в частности, ограничения аппаратных средств и влияние этих ограничений на программное обеспечение. Настоящая подстадия включает в себя спецификацию требований безопасности программного обеспечения для обеспечения последующих стадий проектирования.
6.3 Входная информация
6.3.1 Предварительные требования
Необходима следующая информация:
- спецификация требований технической безопасности в соответствии с 6.5.1 ИСО 26262-4;
- концепция технической безопасности в соответствии с 6.5.2 ИСО 26262-4;
- спецификация архитектуры системы в соответствии с 6.5.3 ИСО 26262-4;
- спецификация аппаратно-программного интерфейса в соответствии с 6.5.4 ИСО 26262-4;
- документация на среду разработки программного обеспечения в соответствии с 5.5.1.
6.3.2 Дополнительная информация
Может быть учтена следующая информация:
- спецификация проекта аппаратных средств (см. 7.5.1 ИСО 26262-5);
- спецификация не связанных с безопасностью функций и свойств программного обеспечения (из внешнего источника).
6.4 Требования и рекомендации
6.4.1 Требования безопасности программного обеспечения должны быть определены с учетом необходимых функций и свойств программного обеспечения, связанных с безопасностью, отказы которого могут привести к нарушению требований технической безопасности, распределенных для программного обеспечения.
Примечания
1 Требования безопасности программного обеспечения либо определяются непосредственно из требований технической безопасности, распределенных для программного обеспечения, либо представляют собой требования к функциям и свойствам программного обеспечения, которые, если они не выполнены, могут привести к нарушению требований технической безопасности, распределенных для программного обеспечения.
Примеры
1 Связанными с безопасностью функциями программного обеспечения могут быть функции:
- обеспечивающие безопасное выполнение некоторой функции в установленном режиме;
- которые обеспечивают системе достижение или поддержание безопасного состояния или состояния со сниженной функциональностью;
- связанные с обнаружением, индикацией и ослаблением сбоев элементов аппаратного обеспечения, связанных с безопасностью;
- самотестирования или мониторинга, связанные с обнаружением, индикацией и ослаблением отказов в операционной системе, базовом программном обеспечении или в прикладном программном обеспечении;
- связанные с бортовыми и автономными испытаниями во время производства, эксплуатации, обслуживания и вывода из эксплуатации;
- позволяющие вносить изменения в программное обеспечение в процессе производства и обслуживания;
- связанные с рабочими характеристиками или критичными по времени операциями.
2 Свойства, связанные с безопасностью, включают в себя: робастность к ошибочным входным значениям, независимость или отсутствие влияния между различными выполняемыми функциями, или отказоустойчивость программного обеспечения.
2 Для определения дополнительных требований безопасности программного обеспечения или для подтверждения их выполнения допускается использовать анализ безопасности (см. 7.4.10 или 7.4.11).
6.4.2 Спецификация требований безопасности программного обеспечения должна быть сформирована из требований технической безопасности, концепции технической безопасности и архитектуры системы в соответствии с требованиями 6.4.1 и 6.4.5 ИСО 26262-4 и должна содержать:
a) спецификацию и управление требованиями безопасности в соответствии с требованиями раздела 6 ИСО 26262-8;
b) определенные конфигурации системы и аппаратных средств.
Пример - Параметры конфигурации могут включать в себя следующее: получение управления, полосу пропускания и делитель частоты системных часов;
c) спецификацию аппаратно-программного интерфейса;
d) соответствующую требованиям спецификацию проекта аппаратных средств;
e) временные ограничения.
Пример - Время выполнения или реакции, определяемое требуемым временем отклика на уровне системы;
f) внешние интерфейсы.
Пример - Коммуникационные и пользовательские интерфейсы;
g) описание каждого рабочего режима и каждого перехода между рабочими режимами транспортного средства, системы или аппаратных средств, оказывающих влияние на программное обеспечение.
Пример - Рабочие режимы включают в себя следующее: режим отключения или ожидания, установка в начальное состояние, штатный режим работы, режим ограниченной функциональности и расширенный режим для тестирования или записи в постоянное запоминающее устройство.
6.4.3 Если для требований безопасности программного обеспечения применяется декомпозиция УПБТС, то должны соблюдаться требования раздела 5 ИСО 26262-9.
6.4.4 Спецификация аппаратно-программного интерфейса, формируемая в соответствии с требованиями раздела 6 ИСО 26262-4, должна быть в достаточной степени уточнена до уровня, позволяющего обеспечить корректное управление и использование аппаратных средств программным обеспечением, и должна содержать описание каждой связанной с безопасностью зависимости между аппаратными средствами и программным обеспечением.
6.4.5 Если встроенное программное обеспечение выполняет другие функции в дополнение к тем функциям, для которых требования безопасности указаны в 6.4.1, то в соответствии с применяемой системой управления качеством должна быть определена спецификация этих функций и их свойств.
6.4.6 Уточненная спецификация аппаратно-программного интерфейса должна быть проверена совместно с лицами, ответственными за разработку системы, аппаратных средств и программного обеспечения.
6.4.7 Требования безопасности программного обеспечения и уточненные требования к спецификации аппаратно-программного интерфейса должны быть верифицированы в соответствии с требованиями разделов 6 и 9 ИСО 26262-8, чтобы показать:
a) их пригодность для разработки программного обеспечения;
b) их соответствие и согласованность с требованиями технической безопасности;
c) их соответствие с проектом системы;
d) их согласованность с аппаратно-программным интерфейсом.
6.5 Результаты работы
В результате выполнения требований 6.4.4.
Примечание - Данный результат работы совпадает с результатом работы, представленным в 6.5.2 ИСО 26262-5.
Цели настоящей подстадии:
a) разработать архитектуру программного обеспечения, удовлетворяющую требованиям безопасности программного обеспечения и другим требованиям к программному обеспечению;
b) проверить соответствие архитектуры программного обеспечения требованиям безопасности программного обеспечения с требуемым значением УПБТС;
c) обеспечить реализацию и верификацию программного обеспечения.
Архитектура программного обеспечения описывает элементы архитектуры программного обеспечения и их взаимодействие в иерархической структуре. В нем описываются статические аспекты, такие как интерфейсы между компонентами программного обеспечения, а также динамические аспекты, такие как последовательности процессов и их временные характеристики.
Примечание - Архитектура программного обеспечения не всегда ограничивается одним микроконтроллером или ЭБУ. В настоящем подразделе также рассматривается архитектура программного обеспечения для каждого микроконтроллера.
Архитектура программного обеспечения должна удовлетворять как требованиям к программному обеспечению, связанным с безопасностью, так и другим требованиям к программному обеспечению. Следовательно, на рассматриваемой подстадии связанные с безопасностью и не связанные с безопасностью требования к программному обеспечению рассматриваются в рамках единого процесса разработки.
Архитектура программного обеспечения предусматривает средства для реализации как требований к программному обеспечению, так и требований безопасности программного обеспечения с предусмотренным значением УПБТС, а также средства для управления сложностью рабочего проектирования и реализации программного обеспечения.
7.3.1 Предварительные требования
Необходима следующая информация:
- документация на среду разработки программного обеспечения в соответствии с 5.5.1;
- спецификация (уточненная) аппаратно-программного интерфейса в соответствии с 6.5.2;
- спецификация требований безопасности программного обеспечения в соответствии с 6.5.1.
7.3.2 Дополнительная информация
Может быть учтена следующая информация:
- концепция технической безопасности (см. 6.5.2 ИСО 26262-4);
- спецификация архитектуры системы (см. 6.5.3 ИСО 26262-4);
- о доступных квалифицированных компонентах программного обеспечения (см. раздел 12 ИСО 26262-8);
- спецификация не связанных с безопасностью функций и свойств программного обеспечения и других требований к программному обеспечению в соответствии с 6.4.5 (из внешнего источника).
7.4.1 Во избежание систематических сбоев в архитектуре программного обеспечения и в последующей разработке архитектура программного обеспечения должна быть описана с учетом следующих характеристик, используя для этого представления архитектуры программного обеспечения, приведенные в таблице 2:
a) понятность;
b) согласованность;
c) простота;
d) верифицируемость;
e) модульность;
f) абстрактность представления.
Примечание - Абстрактность представления может быть реализована с использованием иерархических структур, схем группирования или представлений для выражения статических, динамических и связанных с развертыванием на аппаратных средствах аспектов архитектуры;
g) инкапсуляция;
h) удобство сопровождения.
Таблица 2
7.4.2 При разработке архитектуры программного обеспечения необходимо рассмотреть следующее:
a) верифицируемость архитектуры программного обеспечения.
Примечание - Это подразумевает двунаправленную прослеживаемость между архитектурой программного обеспечения и требованиями безопасности программного обеспечения;
b) возможность применения конфигурируемого программного обеспечения;
c) возможность разработки и реализации программных модулей;
d) тестируемость архитектуры программного обеспечения во время тестирования интеграции программного обеспечения;
e) возможность сопровождения архитектуры программного обеспечения.
7.4.3 Для предотвращения систематических сбоев архитектура программного обеспечения должна обладать следующими свойствами в случае применения принципов, перечисленных в таблице 3:
a) понятность;
b) согласованность;
c) простота;
d) верифицируемость;
e) модульность;
f) инкапсуляция;
g) удобство сопровождения.
Таблица 3
Примечания
1 Поскольку методы, приведенные в таблице 3, не являются взаимоисключающими, между ними может потребоваться компромисс.
2 Показателями высокой сложности могут быть:
- значительное ветвление потока управления или данных;
- чрезмерное число требований, распределяемых к отдельному элементу проекта;
- чрезмерное количество интерфейсов у одного элемента проекта или взаимодействий между элементами проекта;
- сложные типы или чрезмерное количество параметров;
- чрезмерное количество глобальных переменных;
- трудности с предоставлением доказательств пригодности и полноты обнаружения и обработки ошибок;
- трудности с обеспечением требуемого охвата тестами;
- наличие ясности только у нескольких экспертов или только у участников проекта.
3 Эти свойства и принципы также применимы к подпрограммам (например, к функции обработки прерываний).
7.4.4 Архитектура программного обеспечения должна быть разработана до уровня, где идентифицированы все программные модули.
7.4.5 Архитектура программного обеспечения должна описывать:
a) статические аспекты элементов архитектуры программного обеспечения.
Примечания
1 Статическими свойствами проекта являются:
- структура программного обеспечения, включая ее иерархические уровни;
- типы данных и их характеристики;
- внешние интерфейсы программных компонентов;
- внешние интерфейсы встроенного программного обеспечения;
- глобальные переменные;
- ограничения, в том числе область применения архитектуры и внешние зависимости.
2 В случае разработки, основанной на моделировании, моделирование структуры является неотъемлемой частью всего процесса моделирования. Моделируемая структура может зависеть от выбранного языка моделирования;
b) динамические свойства проекта элементов архитектуры программного обеспечения.
Примечания
1 Динамическими свойствами проекта являются:
- функциональная последовательность событий и реакций на них;
- логическая последовательность обработки данных;
- поток управления и распараллеливание процессов;
- поток данных через интерфейсы и глобальные переменные;
- временные ограничения.
2 Для определения динамических характеристик (например, задач, временных интервалов и прерываний) рассматриваются различные рабочие состояния (например, включение питания, остановка двигателя, штатный режим работы, калибровка и диагностика).
3 Для описания динамических характеристик (например, задач, временных интервалов и прерываний) определяются коммуникационные связи и их распределение в аппаратных средствах системы (например, в ЭБУ и каналах связи).
7.4.6 Требования безопасности программного обеспечения должны быть иерархически распределены для компонентов программного обеспечения вплоть до модулей программного обеспечения. В результате каждый компонент программного обеспечения должен быть разработан в соответствии с самым высоким значением УПБТС среди распределенных для него требований.
Примечание - В процессе разработки проекта и распределения требований может потребоваться разделение или дальнейшее уточнение требований безопасности программного обеспечения в соответствии с разделом 6.
7.4.7 Если элемент архитектуры предварительно существующего программного обеспечения используется без изменений для обеспечения соответствия установленным требованиям безопасности без его разработки в соответствии с серией стандартов ИСО 26262, то этот элемент должен быть квалифицирован в соответствии с разделом 12 ИСО 26262-8.
Примечания
1 Использование квалифицированных компонентов программного обеспечения не отменяет применение требований разделов 10 и 11. Однако некоторые виды действий, описанные в разделах 8 и 9, могут быть опущены.
2 Пригодность повторного использования элементов программного обеспечения, разработанных в соответствии с серией стандартов ИСО 26262, подтверждается при верификации архитектуры программного обеспечения.
7.4.8 Если встроенное программное обеспечение реализуется с использованием компонентов программного обеспечения с различными значениями УПБТС или с использованием компонентов программного обеспечения, связанных с безопасностью и не связанных с безопасностью, то все встроенное программное обеспечение должно рассматриваться в соответствии с самым высоким значением УПБТС, если компоненты программного обеспечения не удовлетворяют критериям совместимости в соответствии с требованиями раздела 6 ИСО 26262-9.
7.4.9 Если для устранения взаимного влияния между программными компонентами используется программное управление разделами (см. приложение D), то следует обеспечить, чтобы:
a) общие ресурсы использовались таким образом, чтобы отсутствовало влияние между разделами программного обеспечения.
Примечания
1 Между задачами внутри программного раздела взаимное влияние возможно.
2 Один программный раздел не может ни изменить код или данные другого программного раздела, ни управлять неразделяемыми ресурсами других программных разделов.
3 Услуги, получаемые от разделяемых ресурсов одним программным разделом, не могут зависеть от услуг, получаемых другим программным разделом. Они включают в себя производительность соответствующих ресурсов, а также частоту, задержку, фазовое дрожание и длительность запланированного доступа к ресурсу;
b) программное управление разделами поддерживается специальными функциями аппаратных средств или эквивалентными средствами (данное требование распространяется на значение УПБТС, равное D, в соответствии с 4.4).
Пример - Функция аппаратных средств, такая как блок управления памятью;
c) программный компонент, который реализует управление программными разделами, разработан в соответствии с самым высоким значением УПБТС, назначенным любому из требований к программным разделам.
Примечание - Обычно управление программными разделами предоставляет или обеспечивает операционная система;
d) подтверждение эффективности разделения программного обеспечения было сформировано при интеграции и верификации программного обеспечения (в соответствии с требованиями раздела 10).
7.4.10 На уровне архитектуры программного обеспечения в соответствии с требованиями раздела 8 ИСО 26262-9 должен быть выполнен анализ безопасности для того, чтобы:
- предоставить доказательства пригодности программного обеспечения для выполнения определенных связанных с безопасностью функций и свойств согласно требуемому значению УПБТС.
Примечание - Свойства, связанные с безопасностью, включают в себя независимость и требования к отсутствию влияния;
- определить или подтвердить связанные с безопасностью части программного обеспечения;
- сформировать спецификацию и выполнить проверку эффективности мер обеспечения безопасности.
Примечания
1 Меры обеспечения безопасности включают в себя механизмы безопасности, которые были получены на основе анализа безопасности и могут охватывать проблемы, связанные со случайными отказами аппаратных средств, а также со сбоями программного обеспечения.
2 Дополнительную информацию о применении анализа безопасности на уровне архитектуры программного обеспечения и выборе соответствующих мер безопасности см. в приложении E.
7.4.11 Если реализация требований безопасности программного обеспечения зависит от отсутствия влияния или достаточной независимости между программными компонентами, то должен быть выполнен анализ зависимых отказов и их влияния в соответствии с требованиями раздела 7 ИСО 26262-9.
Примечание - Дополнительную информацию о применении анализа зависимых отказов на уровне архитектуры программного обеспечения см. в приложении E настоящего стандарта и в приложении C ИСО 26262-9.
7.4.12 Механизмы безопасности для выявления и обработки ошибок должны применяться в зависимости от результатов анализа безопасности на уровне архитектуры программного обеспечения в соответствии с 7.4.10 или 7.4.11.
Примечания
1 Приложение E содержит указания для принятия решения о том, требуются ли механизмы безопасности для вида отказов.
2 Механизмы безопасности для выявления ошибок могут включать в себя следующее:
- контроль допустимых значений входных и выходных данных;
- проверку достоверности (например, использование эталонной модели требуемого функционирования, проверку утверждений или сравнение сигналов из различных источников);
- обнаружение ошибок данных (например, коды обнаружения ошибок и резервирование хранилищ данных);
- мониторинг выполнения программы внешними средствами, например специализированной интегральной схемой (СИС) или другим элементом программного обеспечения, выполняющим функцию сторожевого таймера. Мониторинг может быть логическим или временным либо и тем, и другим;
- временной мониторинг исполнения программы;
- использование при проектировании разнообразия;
- механизмы управления контролем доступа, реализованные программным обеспечением или аппаратными средствами, обеспечивающие предоставление или отказ в доступе к общим ресурсам, связанным с безопасностью.
3 Механизмы безопасности для обработки ошибок могут включать в себя следующее:
- отключение для достижения и обеспечения безопасного состояния;
- статический механизм восстановления (например, блоки восстановления, восстановление предыдущего состояния, восстановление без возврата и восстановление посредством повтора);
- постепенное снижение эффективности путем расположения по приоритетам реализуемых функций для минимизации негативного влияния возможных отказов на функциональную безопасность;
- проектирование однородной избыточности, которая в основном управляет последствиями нестабильных сбоев или случайными сбоями в аппаратных средствах, на которых выполняется аналогичное программное обеспечение (например, временная избыточность выполнения программного обеспечения);
- проектирование разнообразия, которое подразумевает разнородное программное обеспечение в каждом параллельном канале и в основном направлено на предотвращение или управление систематическими сбоями в программном обеспечении;
- коды исправления данных;
- управление правами доступа, реализуемое в программном обеспечении или аппаратных средствах, выполняющее предоставление или отказ в доступе к общим ресурсам, связанным с безопасностью.
4 Механизмы безопасности программного обеспечения (включая общие механизмы робастности) могут быть проанализированы на уровне системы для выявления возможного влияния на ее функционирование и проверки их соответствия требованиям технической безопасности.
7.4.13 Должна быть выполнена верхняя оценка ресурсов, необходимых для встроенного программного обеспечения, в том числе:
a) время выполнения;
b) объем памяти.
Пример - ОЗУ для стеков и динамически распределяемых областей памяти, ПЗУ для программ и неизменяемых данных;
c) коммуникационные ресурсы.
7.4.14 Архитектура программного обеспечения должна быть верифицирована в соответствии с требованиями раздела 9 ИСО 26262-8, используя методы верификации архитектуры программного обеспечения, перечисленные в таблице 4, чтобы продемонстрировать достижение следующих целей:
a) соответствие архитектуры программного обеспечения требованиям безопасности программного обеспечения с требуемым значением УПБТС;
b) доказательство соответствия архитектуры программного обеспечения требованиям программного обеспечения с требуемым значением УПБТС, используя результаты анализа или исследования этого проекта;
c) совместимость с целевой внешней средой.
Примечание - Целевая среда - это среда, в которой выполняется программное обеспечение. Она может включать в себя операционную систему и базовое программное обеспечение в дополнение к целевым аппаратным средствам и их ресурсам, как указано в 7.4.13;
d) соблюдение руководств по проектированию.
Таблица 4
В результате выполнения требований 7.4.10.
В результате выполнения требований 7.4.11.
В результате выполнения требований 7.4.14.
Цели настоящей подстадии:
a) разработать проект модуля программного обеспечения в соответствии с архитектурой программного обеспечения, критериями проектирования и распределенными требованиями программного обеспечения, которые обеспечивают реализацию и верификацию модуля программного обеспечения;
b) реализовать модули программного обеспечения в соответствии с требованиями.
На основе архитектуры программного обеспечения разрабатывается детальный проект модулей программного обеспечения. Такой детальный проект может быть представлен в виде модели.
Реализация на уровне исходного кода может быть создана вручную или сгенерирована автоматически по результатам проектирования, используя среду разработки программного обеспечения.
При разработке проекта отдельного модуля программного обеспечения реализуются как требования безопасности программного обеспечения, так и все не связанные с безопасностью требования. Следовательно, на данной подстадии связанные с безопасностью и не связанные с безопасностью требования рассматриваются в рамках единого процесса разработки.
8.3.1 Предварительные требования
Необходима следующая информация:
- документация на среду разработки программного обеспечения в соответствии с 5.5.1;
- спецификация аппаратно-программного интерфейса (уточненная) в соответствии с 6.5.2;
- спецификация архитектуры программного обеспечения в соответствии с 7.5.1;
- спецификация требований безопасности программного обеспечения в соответствии с 6.5.1;
- данные конфигурации в соответствии с C.5.3, если применимы;
- калибровочные данные в соответствии с C.5.4, если применимы.
8.3.2 Дополнительная информация
Может быть учтена следующая информация:
- концепция технической безопасности (см. 6.5.2 ИСО 26262-4);
- спецификация архитектуры системы (см. 6.5.3 ИСО 26262-4);
- спецификация функций и свойств программного обеспечения, не связанных с безопасностью (из внешнего источника);
- отчет по анализу безопасности (см. 7.5.2);
- отчет по анализу зависимых отказов (см. 7.5.3).
8.4.1 Требования настоящего подраздела должны соблюдаться, если модуль программного обеспечения является элементом, связанным с безопасностью.
Примечание - Слова "связанный с безопасностью" означают, что модуль реализует требования безопасности или что критерии совместимости (см. раздел 6 ИСО 26262-9) этого модуля с другими модулями не выполнены.
a) соответствовать требованиям программного обеспечения, распределенным для модуля программного обеспечения с требуемым значением УПБТС;
b) соответствовать спецификации архитектуры программного обеспечения;
c) соответствовать спецификации аппаратно-программного интерфейса, если применимо.
Пример - Полнота и согласованность интерфейсов с другими модулями программного обеспечения; корректность, точность и своевременность ввода или вывода данных.
8.4.3 Во избежание систематических сбоев и для обеспечения того, чтобы проект модуля программного обеспечения достиг следующих свойств, проект модуля программного обеспечения должен быть описан с использованием представлений, перечисленных в таблице 5.
a) последовательность;
b) понятность;
c) удобство сопровождения;
d) верифицируемость.
Таблица 5
Примечание - Если используется разработка, основанная на моделировании, с автоматической генерацией кода, то эти способы представления проекта модуля программного обеспечения применяются для модели, которая служит основой для генерации кода.
8.4.4 Спецификация модулей программного обеспечения должна описывать выполняемые ими функции и внутренний проект этих модулей до уровня детализации, необходимого для их реализации.
Пример - Внутренний проект может включать в себя ограничения на использование регистров и запоминающего устройства.
8.4.5 Принципы проектирования для разработки и реализации модуля программного обеспечения на уровне исходного кода, которые перечислены в таблице 6, должны применяться для достижения следующих свойств:
a) корректного порядка выполнения подпрограмм и функций внутри программных модулей, основанного на архитектуре программного обеспечения;
b) согласованности интерфейсов между модулями программного обеспечения;
c) корректности потока данных и управления между и внутри модулей программного обеспечения;
d) простоты;
e) читаемости и полноты;
f) робастности.
Пример - Методы предотвращения недостоверных значений, ошибок исполнения, деления на ноль, и ошибок потока данных и потока управления;
g) пригодности программного обеспечения для модификации;
h) верифицируемости.
Таблица 6
модуля программного обеспечения
Примечание - MISRA C (для языка C) [3] включает в себя многие из принципов, перечисленных в таблице 8.
Примечание - В случае разработки, основанной на моделировании, модель реализации и вспомогательная документация к ней с использованием методов, перечисленных в таблицах 5 и 6, определяет модули программного обеспечения.
В результате выполнения требований 8.4.5.
Цели настоящей подстадии:
a) предоставить доказательства того, что проект модуля программного обеспечения удовлетворяет распределенным требованиям программного обеспечения и подходит для реализации;
b) подтвердить, что определенные меры безопасности, полученные в результате анализа безопасности в соответствии с 7.4.10 и 7.4.11, выполнены надлежащим образом;
c) предоставить доказательства того, что реализованный модуль программного обеспечения соответствует проекту модуля и распределенным требованиям программного обеспечения с требуемым значением УПБТС;
d) предоставить достаточные доказательства того, что модуль программного обеспечения не реализует ни нежелательных функций, ни нежелательных свойств, влияющих на функциональную безопасность.
Проект модуля программного обеспечения и реализованные модули программного обеспечения верифицируются с помощью соответствующей комбинации мер верификации, таких как отчеты, исследования и тестирование.
Для верификации проекта каждого модуля программного обеспечения учитываются как требования безопасности программного обеспечения, так и все требования, не связанные с безопасностью. Таким образом, на данном подэтапе требования, связанные и не связанные с безопасностью, выполняются в рамках единого процесса разработки.
9.3.1 Предварительные требования
Необходима следующая информация:
- спецификация аппаратно-программного интерфейса (уточненная) в соответствии с 6.5.2;
- спецификация архитектуры программного обеспечения в соответствии с 7.5.1;
- спецификация проекта модуля программного обеспечения в соответствии с 8.5.1;
- реализация модуля программного обеспечения в соответствии с 8.5.2;
- данные конфигурации в соответствии с C.5.3, если применимы;
- калибровочные данные в соответствии с C.5.4, если применимы.
- отчет по анализу безопасности в соответствии с 7.5.2;
- документация на среду разработки программного обеспечения в соответствии с 5.5.1.
9.3.2 Дополнительная информация
Может быть учтена следующая информация:
- не задается.
9.4.1 Требования настоящего подраздела должны соблюдаться, если модуль программного обеспечения является элементом, связанным с безопасностью.
Примечания
1 Согласно ИСО 26262-1 слова "элемент, связанный с безопасностью" означают, что модуль реализует требования безопасности или что критерии совместимости (см. раздел 6 ИСО 26262-9) этого модуля с другими модулями не выполнены.
2 Требования настоящего раздела касаются модулей программного обеспечения, связанных с безопасностью. Для проверки других модулей программного обеспечения допускается применять другие стандарты на программное обеспечение (см. 5.4.5.1 ИСО 26262-2).
3 При разработке программного обеспечения на основе модели соответствующие части модели реализации также являются объектами планирования верификации. В зависимости от выбранного процесса разработки программного обеспечения объектами верификации могут быть код, полученный из этой модели, сама модель или и то, и другое.
9.4.2 Проект модуля программного обеспечения и реализованный модуль программного обеспечения должны быть верифицированы в соответствии с требованиями раздела 9 ИСО 26262-8 путем применения соответствующей комбинации методов, представленных в таблице 7, для подтверждения:
a) соответствия требованиям раздела 8 к проектированию и реализации модуля.
Примечания
1 Требования безопасности программного обеспечения относятся как к функциям, так и к свойствам программного обеспечения.
2 Выполнение верификации на уровне модели может заменить верификацию на уровне исходного кода при условии, что генерация кода сохраняет свойства модуля (например, достаточную уверенность в используемых генераторах кода).
Пример - Доказательство эффективной реализации механизмов выявления и обработки ошибок, определенных для достижения робастности модуля программного обеспечения в случае ошибочных входных данных;
b) соответствия исходного кода со спецификацией его проекта.
Примечание - В случае разработки, основанной на моделировании, также применяется требование перечисления b);
c) соответствия со спецификацией аппаратно-программного интерфейса (в соответствии с требованиями 6.4.4), если применимо;
d) уверенности в отсутствии непреднамеренных функций и свойств;
e) достаточного уровня обеспечения ресурсами для поддержки его функций и свойств;
f) соответствия реализации мер безопасности результатам анализа безопасности, выполненного согласно требованиям 7.4.10 и 7.4.11.
Таблица 7
9.4.3 В соответствии с требованиями 9.4.2 для получения подходящих тестовых сценариев для испытания модуля программного обеспечения должны быть использованы методы, перечисленные в таблице 8.
Таблица 8
модуля программного обеспечения
9.4.4 Для того, чтобы оценить полноту верификации и предоставить доказательства того, что цели, поставленные перед испытанием модуля, надлежащим образом достигнуты, должен быть определен охват требований на уровне модуля программного обеспечения и должно быть измерено структурное покрытие с помощью метрик, перечисленных в таблице 9. Если достигаемое структурное покрытие считается недостаточным, то либо должны быть определены дополнительные тестовые сценарии, либо должно быть предоставлено обоснование, основанное на других методах.
Примечание - Отсутствие целевого значения структурного покрытия или его низкое целевое значение должно быть обосновано.
Примеры
1 Анализ структурного покрытия может выявить недостатки в тестовых сценариях при тестировании на основе требований, несоответствия в требованиях, неисполняемый код, выводящий из строя код или непреднамеренную функциональность.
2 Для уровня покрытия, достигаемого на основе принятого неисполняемого кода (например, кода для отладки) или сегментов кода в зависимости от различных конфигураций программного обеспечения, может быть предоставлено обоснование; либо не охваченный покрытием код может быть верифицирован с помощью дополнительных методов (например, с помощью проверок).
3 Обоснование может быть основано на современном уровне развития техники.
Таблица 9
программного обеспечения
Примечания
1 Структурное покрытие может быть определено путем использования соответствующих программных инструментальных средств.
2 При разработке, основанной на моделировании, анализ структурного покрытия может быть выполнен на уровне модели с использованием аналогичных метрик структурного покрытия для моделей.
Пример - Анализ структурного покрытия, выполняемый на уровне модели, может заменить метрики покрытия исходного кода, если показано, что они эквивалентны, с обоснованиями, основанными на свидетельствах того, что это покрытие представляет уровень кода.
3 Если для определения степени покрытия используется инструментированный код, то может потребоваться показать, что инструментирование не влияет на результаты тестирования. Это может быть сделано путем повторения репрезентативных тестовых сценариев с использованием неинструментированного кода.
9.4.5 Для достижения целей тестирования модуля испытательная среда тестирования модуля программного обеспечения должна быть как можно более близка к целевой среде. Если тестирование модуля программного обеспечения выполняется не в целевой среде, то должны быть проанализированы различия исходного и объектного кодов, а также различия между средой тестирования и целевой средой для того, чтобы определить дополнительные тесты в целевой среде для последующих стадий тестирования.
Примечания
1 Различия между средой тестирования и целевой средой могут возникнуть в исходном коде или в объектном коде, например из-за различной разрядности слов данных и адресных слов процессоров.
2 В зависимости от области применения тестов для выполнения модуля программного обеспечения используется соответствующая среда тестирования (например, целевой процессор, процессор-эмулятор или разрабатываемая система).
3 Тестирование модуля программного обеспечения может быть выполнено в различных средах, например:
- тестирование с моделью в контуре обратной связи;
- тестирование с программой в контуре обратной связи;
- тестирование с процессором в контуре обратной связи;
- тестирование с аппаратными средствами в контуре обратной связи.
4 При разработке, основанной на моделировании, тестирование модуля программного обеспечения может быть выполнено на уровне модели с помощью сравнительных тестов между моделью и объектным кодом. Сравнительные тесты используются, чтобы обеспечить эквивалентность функционирования модели, учитывающей цели тестирования, и автоматически сгенерированного кода.
В результате выполнения требований 9.4.2.
Цели настоящей подстадии:
a) определить этапы интеграции и интегрировать элементы программного обеспечения до полной интеграции встроенного программного обеспечения;
b) проверить, что определенные меры безопасности, полученные из анализа безопасности на уровне архитектуры программного обеспечения, реализованы надлежащим образом;
c) предоставить доказательства того, что интегрированные программные модули и компоненты удовлетворяют требованиям, которые определены для них в архитектуре программного обеспечения;
d) предоставить достаточные доказательства того, что интегрированное программное обеспечение не реализует ни нежелательных функций, ни нежелательных свойств, влияющих на функциональную безопасность.
На данной подстадии верифицируются определенные уровни интеграции и интерфейсы между элементами программного обеспечения на соответствие архитектуре программного обеспечения. Этапы интеграции и верификации элементов программного обеспечения связаны с иерархической архитектурой программного обеспечения.
Встроенное программное обеспечение может состоять из связанных и не связанных с безопасностью элементов программного обеспечения.
10.3.1 Предварительные требования
Необходима следующая информация:
- спецификация аппаратно-программного интерфейса (уточненная) в соответствии с 6.5.2;
- спецификация архитектуры программного обеспечения в соответствии с 7.5.1;
- отчет по анализу безопасности в соответствии с 7.5.2;
- отчет по анализу зависимых отказов в соответствии с 7.5.3;
- реализация модуля программного обеспечения в соответствии с 8.5.2;
- данные конфигурации в соответствии с C.5.3, если применимы;
- калибровочные данные в соответствии с C.5.4, если применимы;
- документация на среду разработки программного обеспечения в соответствии с 5.5.1;
- спецификация верификации программного обеспечения в соответствии с 9.5.1.
10.3.2 Дополнительная информация
Может быть учтена следующая информация:
- о доступных квалифицированных компонентах программного обеспечения (см. раздел 12 ИСО 26262-8).
10.4.1 Должен быть определен подход к интеграции программного обеспечения и описаны этапы иерархической интеграции отдельных программных модулей в программные компоненты до полной интеграции встроенного программного обеспечения, а также должны быть рассмотрены:
a) требования, связанные с достижением целей верификации, предусмотренные в 10.4.2;
b) функциональные зависимости, которые важны для интеграции программного обеспечения;
c) зависимости между интеграцией программного обеспечения и интеграцией аппаратно-программного обеспечения.
Примечание - При разработке, основанной на моделировании, интеграция программного обеспечения может быть заменена на интеграцию на уровне модели с последующей автоматической генерацией кода из интегрированной модели (см. приложение B).
10.4.2 Интеграция программного обеспечения должна быть верифицирована в соответствии с требованиями раздела 9 ИСО 26262-8, соответствующей комбинацией методов, представленных в таблице 10, для подтверждения того, что иерархически интегрированные программные модули, программные компоненты и интегрированное встроенное программное обеспечение достигают:
a) соответствия с архитектурой программного обеспечения согласно требованиям раздела 7;
b) соответствия со спецификацией аппаратно-программного интерфейса согласно требованиям 6.5.2;
c) заданных функциональных возможностей;
d) заданных свойств.
Пример - Безотказность из-за отсутствия недоступного программного обеспечения, устойчивость к ошибкам на входах, робастность вследствие эффективного обнаружения и обработки ошибок;
e) обеспечения достаточных ресурсов для поддержки функциональности;
f) эффективности мер безопасности, полученных из анализа безопасности в соответствии с 7.4.10 и 7.4.11, если это применимо.
Примечание - Меры безопасности могут включать в себя программное управление разделами.
Таблица 10
Примечание - При разработке, основанной на моделировании, объектами верификации могут быть модели, связанные с компонентами программного обеспечения.
10.4.3 Для формирования соответствующих тестовых сценариев для методов тестирования интеграции программного обеспечения, выбранных в соответствии с 10.4.2, тестовые сценарии должны быть получены, используя методы, перечисленные в таблице 11.
Таблица 11
Методы получения тестовых сценариев для тестирования
интеграции программного обеспечения
10.4.4 Для оценки полноты верификации и подтверждения того, что цели испытаний по тестированию интеграции надлежащим образом достигнуты, должен быть определен охват требований тестовыми сценариями на уровне архитектуры программного обеспечения. При необходимости указываются дополнительные тестовые сценарии или приводится обоснование, основанное на других методах.
10.4.5 Данное требование распространяется на значения УПБТС (A), (B), C и D в соответствии с 4.4. Для оценки полноты тестовых сценариев и получения уверенности в том, что цели испытаний при тестировании интеграции надлежащим образом достигнуты, должно быть оценено структурное покрытие в соответствии с методами, перечисленными в таблице 12. Если достигнутое структурное покрытие считается недостаточным, то либо должны быть определены дополнительные тестовые сценарии, либо должно быть предусмотрено обоснование, основанное на других методах.
Пример - Анализ структурного покрытия может выявить недостатки в тестовых сценариях при тестировании на основе требований, несоответствия в требованиях, неисполняемый код, выводящий из строя код или непреднамеренную функциональность.
Таблица 12
программного обеспечения
Примечания
1 Структурное покрытие может быть определено путем использования соответствующих программных инструментальных средств.
2 При разработке, основанной на моделировании, тестирование архитектуры программного обеспечения может быть выполнено на уровне модели с использованием аналогичных метрик структурного покрытия для моделей.
10.4.6 Должно быть верифицировано, что встроенное программное обеспечение, которое в соответствии с требованиями раздела 11 ИСО 26262-4 должно быть частью выпускаемого изделия, содержит все специфицированные функции и свойства, а также содержит только такие неспецифицированные функции, которые не влияют на соответствие требованиям безопасности программного обеспечения.
Пример - В этом контексте неспецифицированные функции включают в себя код, используемый для отладки или инструментирования.
Примечание - Если может быть обеспечено отключение таких неспецифицированных функций, то оно является приемлемым способом соответствия данному требованию. В противном случае удаление такого кода является изменением (см. раздел 8 ИСО 26262-8).
10.4.7 Среда тестирования при тестировании интеграции программного обеспечения для достижения целей тестирования интеграции должна быть как можно более близка к целевой среде. Если тестирование интеграции программного обеспечения не выполняется в целевой среде, то должны быть проанализированы различия исходного и объектного кодов, а также различия между средой тестирования и целевой средой для того, чтобы специфицировать дополнительные тесты в целевой среде в течение последующих стадий тестирования.
Примечания
1 Различия между средой тестирования и целевой средой могут возникнуть в исходном коде или в объектном коде, например за счет разной разрядности слов данных и адресных слов процессоров.
2 Используемые среды тестирования зависят от области применения тестов и иерархического уровня интеграции выполняемых элементов программного обеспечения. Такой средой тестирования может быть целевой процессор для окончательной интеграции, или эмулятор процессора, или система разработки для предыдущих этапов интеграции.
3 Тестирование интеграции программного обеспечения может быть выполнено в различных средах, например:
- тестирование с моделью в контуре обратной связи;
- тестирование с программой в контуре обратной связи;
- тестирование с процессором в контуре;
- тестирование с аппаратными средствами в контуре обратной связи.
В результате выполнения требований 10.4.1.
В результате выполнения требований 10.4.2.
Цель данной подстадии - предоставить свидетельства, что встроенное программное обеспечение:
a) выполняет требования безопасности при реализации в целевой среде;
b) не реализует ни нежелательных функций, ни нежелательных свойств, влияющих на функциональную безопасность.
Целью этих действий является подтверждение того, что встроенное программное обеспечение выполняет требования безопасности в целевой среде. Такие подтверждения могут быть представлены с использованием подходящих результатов других действий по верификации.
Примечание - Рекомендуется выполнять тестирование встроенного программного обеспечения лицом, отличным от того, которое реализовало это программное обеспечение.
11.3.1 Предварительные требования
Необходима следующая информация:
- спецификация архитектуры программного обеспечения в соответствии с 7.5.1;
- спецификация требований безопасности программного обеспечения (уточненная) в соответствии с 6.5.1;
- встроенное программное обеспечение в соответствии с 10.5.2;
- калибровочные данные в соответствии с C.5.4, если применимы;
- документация на среду разработки программного обеспечения в соответствии с 5.5.1;
- спецификация верификации программного обеспечения (уточненная) в соответствии с 10.5.1.
11.3.2 Дополнительная информация
Может быть учтена следующая информация:
- концепция технической безопасности (см. 6.5.2 ИСО 26262-4);
- спецификация архитектуры системы (см. 6.5.3 ИСО 26262-4);
- стратегия интеграции и тестирования (см. 7.5.1 ИСО 26262-4);
- отчет по интеграции и тестированию (см. 7.5.2 ИСО 26262-4).
11.4.1 Чтобы убедиться, что встроенное программное обеспечение отвечает требованиям безопасности программного обеспечения в целевой среде, необходимо провести испытания в подходящих средах тестирования, перечисленных в таблице 13, и в соответствии с требованиями раздела 9 ИСО 26262-9.
Примечание - Тестовые сценарии, которые уже существуют, могут быть использованы повторно, например для тестирования интеграции программного обеспечения.
Таблица 13
программного обеспечения
11.4.2 Для подтверждения того, что встроенное программное обеспечение удовлетворяет требованиям программного обеспечения, которые определяются соответствующим значением УПБТС, тестирование встроенного программного обеспечения должно выполняться с использованием методов, перечисленных в таблице 14.
Таблица 14
Методы тестирования встроенного программного обеспечения
11.4.3 Соответствующие тестовые сценарии для испытания программного обеспечения в соответствии с 11.4.2 должны быть получены с использованием методов, перечисленных в таблице 15.
Таблица 15
Методы получения тестовых сценариев для испытания
встроенного программного обеспечения
a) на соответствие ожидаемым результатам;
b) охват требований безопасности программного обеспечения.
Примечание - Результаты включают в себя охват диапазонов конфигурации и калибровки. См. приложение C.
(справочное)
В ПРОЦЕССЕ УПРАВЛЕНИЯ РАЗРАБОТКОЙ ИЗДЕЛИЯ
НА УРОВНЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Таблица A.1 содержит обзор целей, предварительных требований и результатов работы конкретных стадий разработки изделия на уровне программного обеспечения.
Таблица A.1
Обзор разработки изделия на уровне программного обеспечения
(справочное)
B.1 Цели
В настоящем приложении разъясняются возможные преимущества использования и потенциальные проблемы подходов к разработке, основанной на моделировании (РОМ), используемых в процессе разработки на уровне программного обеспечения.
Примечание - Настоящее приложение не подразумевает, что подходы к разработке, основанной на моделировании, ограничиваются только разработкой программного обеспечения.
B.2 Общие положения
В настоящем подразделе представлена информация, которая является общей для различных случаев использования РОМ (например, при спецификации требований, проектировании, верификации/тестировании). Подраздел B.3 содержит анализ конкретных случаев, основанный на приведенных в качестве примеров сценариях использования.
B.2.1 Введение
Модели могут использоваться для отображения информации или представлений информации, требуемой на стадии разработки, а также для абстрактного проектирования и реализации одного или нескольких элементов программного обеспечения или среды программного обеспечения. Сами модели могут состоять из описаний моделируемого объекта на различных иерархических уровнях детализации или из ссылок на уточненные модели на более низком иерархическом уровне (например, иерархическая структура с представлениями в виде "черного ящика" и "белого ящика" для каждого элемента модели). Модель разрабатывается с использованием языка моделирования.
Языки моделирования могут быть графическими и/или текстовыми. Они могут быть формальными (например, язык на основе формальных математических определений) или полуформальными (например, структурированный язык с не полностью определенной семантикой). Языки моделирования могут быть описаны в международных стандартах (например,
Кроме самого языка моделирования руководства по моделированию и/или подходящие инструментальные средства являются средствами достижения правильно определенного синтаксиса, семантики и соблюдения руководств по моделированию.
Пример - Приведенные в руководствах соглашения по именованию или по стилю обеспечивают достижение таких критериев, как "понятность", в то время как выбор подмножеств языков, исключая неоднозначные конструкции, обеспечивает как "понятность", так и корректное преобразование и выполнение модели. При моделировании или преобразовании моделей подходящие моделирующие машины или генераторы кода могут дополнять требуемые семантики, такие как детерминированный порядок выполнения или преобразования, при наличии достаточных знаний о детальном функционировании моделирующих машин или генераторов кода.
В настоящем приложении рассматриваются следующие примеры использования подходов к разработке, основанной на моделировании:
- спецификация требований безопасности программного обеспечения (раздел 6 настоящего стандарта и раздел 6 ИСО 26262-8);
- разработка архитектуры программного обеспечения (раздел 7);
- проектирование и реализация модулей программного обеспечения с автоматической генерацией кода или без него (раздел 8);
- проектирование, реализация и интеграция компонентов программного обеспечения, включая автоматическую генерацию кода из моделей компонентов программного обеспечения (разделы 8, 9 и 10);
B.2.2 Общие вопросы пригодности
Пригодность выбранного подхода к разработке, основанной на моделировании, для предполагаемого применения, включая методы моделирования, обозначения, языки или инструментальные средства, может оцениваться по таким вопросам, как:
- достижение критериев, предусмотренных серией стандартов ИСО 26262, для соответствующего этапа разработки (например, понятность, полнота, верифицируемость, однозначность, точность) при выбранном(ых) подходе(ах);
- знания и опыт работы с выбранным(и) подходом(ами);
- адекватность определения синтаксиса и семантики;
- адекватность предметной области приложения (например, функционирование в реальном времени, соответствие структур данных, генерация программного обеспечения для микроконтроллера с фиксированной точкой и с плавающей точкой);
- роль модели в жизненном цикле программного обеспечения (например, разработка требований безопасности, выражающих статические или динамические характеристики проектов архитектуры);
- обеспечение управления сложностью путем соблюдения принципов абстракции, инкапсуляции, иерархии и модульности;
- моделирование сотрудничества между внутренними/внешними партнерами по разработке (например, согласованность данных в процессе обмена данными);
- требуемое и реально имеющееся доверие к программным инструментальным средствам (см. раздел 11 ИСО 26262-8);
- квалификация компонентов программного обеспечения (например, программных библиотек), используемых в рамках выбранного подхода РОМ или включенных в среду РОМ (см. раздел 12 ИСО 26262-8).
B.2.3 Возможное влияние РОМ на жизненный цикл программного обеспечения
Модель может быть использована для представления ряда результатов работы, описанных в настоящем стандарте (например, разработки требований, проекта архитектуры, детального проекта и интеграции программного обеспечения на основе модели с генерацией кода). По сравнению с традиционным процессом разработки программного обеспечения с четким разделением стадий при разработке на основе модели можно отметить более тесное объединение стадий "Требования безопасности программного обеспечения", "Архитектура программного обеспечения", "Проектирование и реализация программного обеспечения" и т.д. Возможные преимущества рассматриваемого подхода (например, непрерывность, обмен информацией на протяжении всего жизненного цикла разработки программного обеспечения, согласованность) достаточно привлекательны, но этот подход может также вызвать проблемы, связанные с появлением систематических сбоев (см. B.3).
В настоящем подразделе приводится обсуждение преимуществ и возможных проблем, основанное на примерах использования.
B.3.1 Спецификация требований безопасности программного обеспечения (раздел 6 настоящего стандарта и раздел 6 ИСО 26262-8)
Модели могут использоваться для представления функциональных возможностей, функционирования, проекта или свойств программного обеспечения, которые должны быть реализованы с учетом требований безопасности (например, разомкнутый или замкнутый контур управления, управляемые системы, состояния и переходы, функции мониторинга или свойства независимости), а также для верификации и валидации требований с помощью имитационных или формальных методов.
Модели могут быть удобными средствами для достижения характеристик требований безопасности и являются средствами, которые удовлетворяют требованиям использования полуформальных или формальных нотаций, как указано в разделе 6 ИСО 26262-8.
Пример - При определении конечного автомата, используя подход, основанный на модели, соответствующая модель фиксирует требуемые состояния и переходы интуитивно понятным и однозначным образом. Удобно то, что такая модель представляет более одного элементарного требования по сравнению с текстовой спецификацией того же конечного автомата. Надлежащим обоснованием является то, что для рассматриваемой цели полноту, верифицируемость и внутреннюю согласованность спецификации можно лучше всего достигнуть и обеспечить в модели без дублирования информации.
Однако следует иметь в виду, что при использовании моделей требований можно упустить требования безопасности, которые не могут быть выражены с помощью выбранного подхода к разработке, основанного на моделировании. По этой причине в разделе 6 ИСО 26262-8 обращается особое внимание на соответствующее сочетание текстовых требований и других нотаций.
Пример - Требования, связанные с робастностью программного обеспечения при отсутствии или ошибочности входов.
B.3.2 Разработка архитектуры программного обеспечения (раздел 7)
Модели могут использоваться для представления архитектуры программного обеспечения, в частности для описания ее:
a) статических свойств (например, компонентов, их интерфейсов и потоков данных, атрибутов компонентов);
b) динамических свойств (например, функциональной последовательности событий, планирования, передачи сообщений).
Модели вместе с руководствами по моделированию могут быть удобными средствами для достижения свойств и реализации принципов для проектов архитектуры, связанных с безопасностью, и являются средствами, которые удовлетворяют требованиям использования полуформальных или формальных нотаций, как указано в разделе 7.
Однако следует иметь в виду, что один подход к моделированию может не отражать все требуемые свойства, например модели, нацеленные на реализацию функций программного обеспечения, часто не описывают весь проект архитектуры, включающий элементы базового программного обеспечения или операционной системы), а также модель может быть не вполне понятной без дополнительных текстовых объяснений (например, для различных сотрудничающих сторон).
Модели вместе с руководствами по моделированию и кодированию могут использоваться для разработки детального проекта и самого модуля программного обеспечения на более высоком уровне абстракции. При использовании РОМ исполняемый код может быть получен непосредственно из модели путем генерации кода.
РОМ обеспечивает автоматическую проверку согласованности (например, типизации данных, корректности данных перед использованием) и верификацию формальными методами, имитационное моделирование, статический анализ или тестирование модулей программного обеспечения с моделью в контуре обратной связи либо с программой в контуре обратной связи. В зависимости от доверия к генерации кода (см. раздел 11 ИСО 26262-8) автоматическое формирование кода из модели может снизить риск ошибок кодирования по сравнению с ручным кодированием.
Однако следует иметь в виду, что:
- свойства проекта, которые не могут быть выражены нотациями моделирования, могут быть не охвачены, если они не были документально оформлены в какой-либо другой подходящей форме. Даже тестирование модуля (например, с использованием сравнительного теста) может их не обнаружить, если все тесты получены только на основе такой "неполной" модели;
- свойства кода, связанные с безопасностью, такие как робастность, могут быть не реализованы, если моделируется только предполагаемая функция. Свойства кода часто достигаются соответствующей комбинацией свойств модели и свойств генерации кода (например, если деление генерируется генератором кода "как есть", то предотвращение деления на ноль будет проверяться на уровне модели. Если генератор кода обрабатывает деление на ноль с помощью надежного шаблона проектирования, то проблема деления на ноль в модели может быть нивелирована);
- сбои могут появиться в результате некорректной адресации или особенностей обработки численной точности (например, если модель непосредственно унаследована из теории управления). Например, проблемы, связанные с различными свойствами точности компьютерной среды инженера по управлению и целевой среды;
- сбои могут появиться при создании дискретных моделей функционирования программного обеспечения из непрерывных моделей (например, влияние дискретизации значений и/или времени, время выполнения вычислений, обработка параллельных задач);
- результаты моделирования или верификации (например, результаты проверок согласованности) могут зависеть от инструментальных средств, поскольку различные механизмы моделирования или средства проверки модели могут быть реализованы семантически по-разному (например, семантики языка моделирования не предназначены для решения алгоритмических проблем);
- использование ресурсов в случае автоматического кодирования (время выполнения и используемая память) может отличаться от их использования при ручном кодировании. Кроме того, возможности средств оптимизации ресурсов могут быть более ограниченными;
- в случае автоматического кодирования довольно трудно обеспечить верификацию эквивалентности сгенерированного исходного кода и ручного кода.
B.3.4 Проектирование, реализация и интеграция компонентов программного обеспечения, включая автоматическое формирование кода из моделей компонентов программного обеспечения (разделы 8, 9 и 10)
Модели вместе с руководствами по моделированию и кодированию могут использоваться для проектирования, реализации и интеграции программного обеспечения на более высоком уровне абстракции. Таким образом, программные компоненты или даже встроенное программное обеспечение могут быть реализованы посредством генерации кода из интегрированной модели.
Данный подход предполагает тесное взаимодействие различных стадий разработки программного обеспечения, и поэтому преимущества такого подхода по сравнению с возможными проблемами должны быть тщательно оценены (см. указания, приведенные выше), включая реализацию соответствующих мер безопасности (например, использование отдельных моделей испытаний для получения дополнительных тестовых сценариев).
Модели могут служить средством верификации результатов работ (например, модель проекта, код). Такая модель называется моделью верификации. Модели верификации могут использоваться, например, в качестве основы для сравнительного тестирования, создания тестовых сценариев или для представления свойств, связанных с безопасностью, в качестве основы для формальной верификации (так как для этого требуется, чтобы модель для верификации также была формальной).
Модели также могут служить средством для обеспечения возможностей или обеспечения действий по верификации (например, модель объекта, необходимая для тестирования с аппаратными средствами в контуре систем управления с обратной связью путем имитации среды тестируемого устройства).
Использование моделей для целей верификации может позволить раннее и эффективное обнаружение сбоев/отказов в результатах работы (включая программное обеспечение), более эффективное формирование тестовых сценариев, высокоавтоматизированное тестирование или даже применение формальных методов верификации.
Однако следует иметь в виду, что:
- без доказательств пригодности модели, используемой для целей верификации, достоверность соответствующих результатов может быть сомнительной (например, неадекватные модели объекта могут привести к некорректным результатам испытаний);
- для обеспечения достоверных результатов зрелость модели верификации должна соответствовать целевой зрелости объекта верификации;
- тестовые сценарии, созданные на основе модели, которая также используется для генерации кода, не могут служить единственным источником для верификации как самой модели, так и кода, созданного на ее основе.
(обязательное)
C.1 Цели
Цели конфигурации программного обеспечения заключаются в следующем:
a) обеспечить управление изменениями при функционировании программного обеспечения для различных приложений;
b) представить доказательства того, что данные о конфигурации и калибровочные данные соответствуют требованиям, предъявляемым к УПБТС;
c) предоставить доказательства того, что встроенное программное обеспечение для конкретного приложения и его калибровочные данные подходят для запуска в производство.
C.2 Общие положения
Конфигурация программного обеспечения позволяет разработку конкретного прикладного программного обеспечения с использованием данных о конфигурации и данных о калибровке (см. рисунок C.1).
![]() Рисунок C.1 - Создание конкретного прикладного
программного обеспечения (ПО)
C.3 Входная информация
C.3.1 Предварительные требования
Предварительные требования определяются согласно соответствующим стадиям, в которых применяется конфигурирование программного обеспечения.
C.3.2 Дополнительная информация
Используется применимая дополнительная информация соответствующих стадий, в которых применяется конфигурирование программного обеспечения.
C.4 Требования и рекомендации
C.4.1 Чтобы в процессе жизненного цикла систем безопасности обеспечить корректное использование конфигурируемого программного обеспечения, должны быть определены данные о конфигурации. Они должны включать в себя следующее:
a) допустимые значения данных о конфигурации;
b) цель и использование данных о конфигурации;
c) диапазон, масштаб, единицы измерения;
d) взаимозависимость между различными элементами данных о конфигурации.
C.4.2 Должна быть выполнена верификация данных о конфигурации и их спецификации в соответствии с требованиями раздела 9 ИСО 26262-8 для подтверждения того, что:
a) данные о конфигурации соответствуют спецификации архитектуры программного обеспечения согласно 7.5.1 и спецификации проекта модуля программного обеспечения согласно 8.5.1;
b) значения используются в заданном для них диапазоне;
c) существует совместимость с другими конфигурационными данными.
Примечание - Тестирование конфигурируемого программного обеспечения осуществляется на стадиях тестирования жизненного цикла программного обеспечения (см. разделы 9, 10, 11 настоящего стандарта и раздел 7 ИСО 26262-4).
C.4.3 Значение УПБТС данных о конфигурации должно быть равно наибольшему значению УПБТС конфигурируемого программного обеспечения, в котором эти данные используются.
C.4.4 Согласно требованиям раздела 9 ИСО 26262-8 конфигурируемое программное обеспечение должно быть верифицировано с конфигурационными данными, которые предназначены для применения в разрабатываемом устройстве.
Примечание - На соответствие набору данных о конфигурации верифицируется только та часть встроенного программного обеспечения, функционирование которой зависит от данных о конфигурации.
C.4.5 Для конфигурируемого программного обеспечения может быть применен упрощенный жизненный цикл программного обеспечения системы безопасности в соответствии с рисунками C.2 или C.3.
Примечание - Полную верификацию сконфигурированного программного обеспечения можно достигнуть с помощью комбинации следующих действий по верификации:
Это достигается:
- верификацией диапазона допустимых данных о конфигурации при выполнении верификации, указанной в перечислении a), и демонстрацией соответствия этому диапазону выполнением верификации, указанной в перечислении b); либо
- демонстрацией соответствия диапазона допустимых данных о конфигурации, выполнением верификации, указанной в перечислении b), и выполнением верификации, указанной в перечислении c).
![]() программного обеспечения с конфигурируемым программным
обеспечением (ПО) и различными данными о конфигурации
и различными данными о калибровке
![]() программного обеспечения с конфигурируемым программным
обеспечением (ПО) с одинаковыми данными о конфигурации
и различными данными о калибровке
C.4.6 Чтобы обеспечить корректное функционирование и ожидаемые характеристики конфигурируемого программного обеспечения, должны быть определены данные о калибровке, связанные с компонентами программного обеспечения. Они должны включать в себя следующее:
a) допустимые значения данных о калибровке;
b) цель и использование данных о калибровке;
c) диапазон, масштаб и единицы измерения, если применимы, с их зависимостью от рабочего состояния;
d) известные взаимозависимости между различными данными о калибровке.
Примечание - Между данными о калибровке в рамках одного набора калибровочных данных или между данными о калибровке в разных наборах калибровочных данных могут существовать взаимозависимости такие же, как и для связанных с ними функций, реализованных в программном обеспечении отдельных ЭБУ;
e) известные взаимозависимости между данными о конфигурации и данными о калибровке.
Примечание - Данные о конфигурации могут оказать влияние на сконфигурированное программное обеспечение, которое использует данные о калибровке.
C.4.7 Значение УПБТС данных о калибровке должно быть равно наибольшему значению УПБТС требований безопасности к программному обеспечению, которое может быть нарушено этими данными.
C.4.8 В соответствии с требованиями раздела 9 ИСО 26262-8 определение калибровочных данных должно быть проверено для подтверждения того, что:
a) указанные калибровочные данные являются подходящими и соответствуют требованиям безопасности программного обеспечения в соответствии с 6.5.1;
b) указанные калибровочные данные соответствуют спецификации архитектуры программного обеспечения в соответствии с 7.5.1 и спецификации проекта модуля программного обеспечения в соответствии с 8.5.1;
c) указанные калибровочные данные согласуются и совместимы со спецификацией других калибровочных данных для предотвращения непреднамеренного воздействия.
C.4.9 Калибровочные данные, выпущенные для производства, должны быть верифицированы в соответствии с требованиями раздела 9 ИСО 26262-8 для подтверждения того, что:
a) выпущенные калибровочные данные соответствуют их спецификации (см. C.4.6);
b) калиброванный, специальный для приложения вариант встроенного программного обеспечения реализует определенные функциональные возможности и свойства, связанные с безопасностью.
Примечание - Верификация калибровочных данных также может быть выполнена на уровне системы.
C.4.10 Для обнаружения непреднамеренных изменений связанных с безопасностью данных о калибровке должны применяться механизмы для обнаружения непреднамеренных изменений данных, указанные в таблице C.1.
Таблица C.1
Механизмы для обнаружения непреднамеренного изменения данных
a) процедуры, которые должны соблюдаться;
b) инструментальные средства для создания калибровочных данных;
c) процедуры верификации данных о калибровке.
Примечание - Верификация данных о калибровке может включать в себя проверку диапазонов значений данных о калибровке или проверку взаимозависимости между различными данными о калибровке.
C.5 Результаты работы
В результате выполнения требований C.4.10.
(справочное)
D.1 Цели
Цель настоящего приложения состоит в том, чтобы привести примеры сбоев, которые могут вызвать взаимное влияние между элементами программного обеспечения (например, между элементами программного обеспечения различных разделов программного обеспечения). Кроме того, данное приложение рассматривает примеры возможных механизмов для предотвращения или обнаружения и смягчения последствий вышеупомянутых ошибок.
Примечание - Возможности и эффективность механизмов, используемых для предотвращения или обнаружения и смягчения соответствующих сбоев, оцениваются в процессе разработки.
D.2 Общие положения
D.2.1 Достижение отсутствия взаимного влияния
Для обеспечения или оценки устранения взаимного влияния между элементами программного обеспечения могут быть рассмотрены последствия типовых сбоев и распространение отказов, которые могут при этом возникать.
При временных ограничениях для элементов программного обеспечения, выполняемых в каждом разделе программного обеспечения, могут быть рассмотрены последствия следующих сбоев:
- блокирование выполнения;
- взаимоблокировки;
- динамические взаимоблокировки;
- некорректное распределение времени выполнения;
- некорректная синхронизация между элементами программного обеспечения.
Пример - Могут быть рассмотрены такие механизмы, как: диспетчеризация циклического выполнения; диспетчеризация на основе фиксированного приоритета; диспетчеризация, управляемая по времени; мониторинг времени работы процессора; мониторинг последовательности выполнения программы и мониторинг интенсивности входного потока.
D.2.3 Память
При доступе к памяти для элементов программного обеспечения, выполняемых в каждом разделе программного обеспечения, могут быть рассмотрены последствия следующих сбоев:
- повреждение содержания памяти;
- противоречие данных (например, из-за обновления во время выборки данных);
- переполнение или исчерпание стека;
- доступ к памяти по чтению или записи, выделенной для другого элемента программного обеспечения.
Примеры
1 Могут быть использованы такие механизмы, как: защита памяти, биты четности, код с исправлением ошибок (ECC), контроль циклическим избыточным кодом (CRC), резервное хранение, ограниченный доступ к памяти, статический анализ доступа к памяти программного обеспечения и статическое распределение.
2 В качестве подробного анализа безопасности для определения критически важных блоков памяти, для которых используются механизмы защиты, могут рассматриваться соответствующие методы верификации. Результаты анализа статического и семантического кода, анализа потока управления и потока данных могут служить доказательством для демонстрации отсутствия влияния.
При обмене информацией для каждого отправителя или каждого получателя допускается рассматривать перечисленные ниже причины сбоев или их последствия:
- повторение информации;
- потеря информации;
- задержка информации;
- ввод информации;
- нелегальное проникновение или некорректная адресация информации;
- некорректная последовательность информации;
- повреждение информации;
- асимметричная информация, посланная от отправителя к нескольким получателям;
- информация от отправителя, полученная только подмножеством получателей;
- блокирование доступа к каналу связи.
Примечание - Обмен информацией между элементами, выполняемый в разных разделах программного обеспечения или в различных электронных блоках управления, включает сигналы, данные, сообщения и т.д.
Примеры
1 Для обмена информацией можно использовать устройства В/В, шины данных и т.д.
2 Могут быть использованы такие механизмы, как: протоколы связи, повторная передача информации, обратная передача данных, подтверждение приема информации, соответствующая конфигурация штырьков В/В, раздельные однонаправленные объекты коммуникации между двумя узлами, непротиворечивые двусторонние объекты коммуникации, асинхронная передача данных, синхронная передача данных, управляемые событиями шины данных, управляемые событиями шины данных с доступом, управляемым по времени, управляемые по времени шины данных, минисегментирование и управление доступом к шине по приоритету.
3 Коммуникационные протоколы могут содержать такую информацию, как идентификаторы для объектов коммуникации, подтверждающие активность сообщения, активные счетчики, порядковые номера, коды для обнаружения ошибок и коды с исправлением ошибок.
4 В качестве подробного анализа безопасности для определения критически важного обмена данными, для которого используются механизмы защиты, могут рассматриваться соответствующие методы верификации. Результаты статического и семантического анализа кода, анализа потока управления и потока данных могут служить доказательством для демонстрации устранения влияния.
(справочное)
НА УРОВНЕ АРХИТЕКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
E.1 Цели
В настоящем приложении разъясняется возможное применение анализа безопасности и анализа зависимых отказов на уровне архитектуры программного обеспечения. Примеры, приведенные в настоящем приложении, призваны содействовать пониманию этих видов анализа и служить руководством для их применения.
E.2 Общие положения
E.2.1 Область применения и цель анализа
С помощью анализа безопасности или анализа зависимых отказов на уровне архитектуры программного обеспечения проверяется или подтверждается способность встроенного программного обеспечения выполнять определенные функции, демонстрируя при этом заданное функционирование и свойства с требуемой полнотой безопасности, соответствующей назначенному значению УПБТС.
Пригодность встроенного программного обеспечения для выполнения заданных функций и свойств с требуемой полнотой безопасности, соответствующей назначенному значению УПБТС, проверяется:
- выявлением возможных недостатков проектирования, условий, сбоев или отказов проекта, которые могут вызвать последовательность событий, приводящих к нарушению требований безопасности (например, с использованием индуктивного или дедуктивного метода); и
- анализом последствий возможных сбоев, отказов или последовательностей вызовов для функций и свойств, требуемых для элементов архитектуры программного обеспечения.
Достигнутый уровень независимости или отсутствия влияния между соответствующими элементами архитектуры программного обеспечения проверяется путем анализа архитектуры программного обеспечения с учетом зависимых отказов, т.е. проверяются:
- возможные единичные события, сбои или отказы, которые могут вызвать некорректное функционирование двух и более элементов программного обеспечения, которые должны функционировать независимо друг от друга (например, каскадные и/или отказы по общей причине, включая отказы общего вида); и
- возможные единичные события, сбои или отказы, которые могут распространяться от одного элемента программного обеспечения к другому, вызывая причинно-следственные цепочки событий, приводящих к нарушению требований безопасности (например, каскадные отказы).
Обеспечение независимости или устранение влияния между элементами архитектуры и программного обеспечения может потребоваться для:
- применения декомпозиция УПБТС на уровне программного обеспечения (см. 6.4.3);
- выполнения требований безопасности программного обеспечения (см. 7.4.11), например для подтверждения эффективности программных механизмов безопасности, таких как независимость между контролируемым элементом и средством контроля; или
- требуемой совместимости элементов архитектуры программного обеспечения (см. 7.4.6, 7.4.8 и 7.4.9 настоящего стандарта и раздел 6 ИСО 26262-9).
Роль анализа безопасности и анализа зависимых отказов на уровне архитектуры программного обеспечения обеспечивают как спецификация проекта, так и действия по верификации проекта.
Такой анализ может также выявить неполноту или несоответствия в заданных требованиях безопасности.
Результаты анализа безопасности и анализа зависимых отказов на уровне архитектуры программного обеспечения также являются основой для:
- спецификации и внедрения эффективных механизмов безопасности в изделии; или
- определения надлежащих мер безопасности на этапе разработки, которые подходят либо для предотвращения, либо для обнаружения и управления соответствующими сбоями или отказами, выявленными в ходе этих анализов.
На рисунке E.1 показана роль анализа безопасности на уровне архитектуры программного обеспечения в процессе разработки программного обеспечения, а также основные взаимосвязи или взаимодействия между требованиями безопасности программного обеспечения, архитектурой программного обеспечения и планом безопасности.
![]() Рисунок E.1 - Иллюстрация роли анализа,
ориентированного на безопасность программного обеспечения
в процессе его разработки
Пример - Рисунок E.2 иллюстрирует влияние, вызванное конфликтующим использованием разделяемого ресурса (например, общего элемента обработки). Как показано на рисунке E.2, программный компонент уровня QM оказывает влияние и предотвращает своевременное выполнение элемента программного обеспечения с заданным значением УПБТС. Аналогичное влияние может также возникать между компонентами программного обеспечения с различными значениями УПБТС. Настоящий рисунок иллюстрирует влияние на выполнение программ имеющих и не имеющих механизмов устранения влияния. Вводя в программу "контрольные точки" и реализуя контроль времени прохождения контрольных точек, можно обнаружить влияние на время выполнения и инициировать подходящую реакцию.
Без механизмов, обеспечивающих устранение влияния:
![]() С механизмами, обеспечивающих устранение влияния:
![]()
Рисунок E.2 - Пример влияния на временные характеристики,
приводящего к каскадному отказу
Анализ безопасности и анализ зависимых отказов предназначены для применения на уровне архитектуры программного обеспечения. Анализ безопасности на уровне кода (например, ошибок во время выполнения, таких как деление на ноль, доступ за пределы границ индекса массива) не требуется и не считается необходимым по следующим причинам:
- остаточный риск для этих типов сбоев можно считать достаточно низким при условии тщательного применения подхода к разработке программного обеспечения, описанного в настоящем стандарте, включающего выбор и применение подходящих методов; подходов и принципов разработки, таких как руководства по моделированию и программированию, правил проектирования и реализации, анализа моделей и/или кодов, семантического или статического анализа, модульного и интеграционного тестирования;
- эти типы сбоев при реализации соответствующих элементов архитектуры, как правило, вызывают такое же некорректное функционирование элемента на его интерфейсах, как это было выявлено в процессе анализа на уровне архитектуры. Поэтому анализ на более высоком уровне уже свидетельствует о том, что выбранные механизмы технической безопасности являются эффективными или что меры по обеспечению безопасности на этапе разработки являются достаточными для обеспечения адекватного обоснования.
E.2.2 Взаимосвязь между анализом безопасности и анализом зависимых отказов на уровне системы, аппаратных средств и программного обеспечения
Анализ безопасности и анализ зависимых отказов применяются на нескольких стадиях жизненного цикла разработки. Эти виды анализа могут быть связаны друг с другом.
При подходе, основанном на разделении, использованном на уровне системы, как правило, в результате разработки аппаратных средств обеспечивается то, что устройство обработки имеет достаточно низкий остаточный риск, связанный со сбоями аппаратных средств. Поэтому анализ безопасности программного обеспечения и анализ зависимых отказов программного обеспечения на уровне архитектуры программного обеспечения могут быть выполнены без учета аппаратных отказов.
Однако при некоторых условиях для аппаратных средств (например, недостаточная величина диагностического охвата случайных сбоев аппаратных средств элемента обработки, включая нестабильные сбои) может оказаться целесообразным учитывать негативное влияние аппаратных сбоев. В таких случаях выполняется конкретный анализ взаимодействия аппаратных средств и программного обеспечения, учитывающий, например:
- соответствие конкретного программного обеспечения с различными устройствами обработки многоядерных систем;
- детальное проектирование обрабатывающего элемента, на котором выполняется программное обеспечение, согласно статическим или динамическим аспектам архитектуры программного обеспечения; или
- достижимый диагностический охват выбранных механизмов безопасности программного обеспечения для программных отказов аппаратных средств.
Примечание - Анализ конкретного взаимодействия аппаратных средств и программного обеспечения может быть выполнен методами внесения дефектов (см. также 4.8 ИСО 26262-11).
E.2.3 Анализ безопасности в распределенной разработке программного обеспечения (включая разработку элементов программного обеспечения вне контекста - SEooC)
Встраиваемое программное обеспечение и его элементы часто реализуются несколькими организациями как распределенная разработка [включая изготовителя подлинного оборудования (OEM), его подрядчика (Tier 1), его субподрядчика (Tier 2), поставщика кремниевых ИС или поставщика программного обеспечения] и даже используя элементы безопасности вне контекста (например, базовое программное обеспечение, программное обеспечение, связанное с аппаратными средствами, коммерчески доступное программное обеспечение или операционные системы, разработанные как элементы безопасности вне контекста).
Важными задачами эффективного анализа безопасности при распределенной разработке программного обеспечения являются:
- определение и согласование области применения анализа и процедур или методов, используемых для проведения анализа, отдельно или совместно (включая обмен информацией/документацией или подтверждение допущений);
- определение и согласование общей ответственности за процесс анализа безопасности программного обеспечения и общих правил для участвующих организаций (например, для компонентов высокого уровня, правил доступа к ним);
- определение и согласование интерфейсов для анализа при использовании модульного подхода (например, согласованные модели отказов программного обеспечения на интерфейсах между различными областями применения, применяемый подход или обмениваемая информация/документы); и
- определение и согласование проверки результатов анализа.
E.3 Содержание анализа
Архитектура программного обеспечения содержит правила и решения высокого уровня (например, классификацию компонентов функциональной безопасности, правила доступа между компонентами), которые обеспечивают реализацию и обоснование достижения функциональной безопасности.
Общими составными частями эффективного анализа являются определения:
- цели анализа - см. E.3.1;
- области применения и границы - см. E.3.2;
- метода, применяемого для проведения анализа, - см. E.3.3; и
- средств или критериев обеспечения информативности, объективности и строгости анализа - см. E.3.4.
Цели предусмотрены разделом 7 настоящего стандарта и разделами 7 и 8 ИСО 26262-9.
Пример - Нарушение связанных с безопасностью функций или свойств, назначенных программному обеспечению, находится в области применения анализа, такого как анализ робастности или анализ детерминированного времени выполнения.
В зависимости от целей анализа определяется область его применения, в котором основное внимание уделяется соответствующим частям проекта архитектуры.
На область применения анализа могут влиять:
- соответствующая область применения поставки и распределенные обязанности, определенные в соглашении о разработке (DIA);
- конкретные цели анализа;
- стратегии архитектуры, основанные на зарекомендовавших себя на практике принципах проектирования (см. 7.4.3); или
- свойства, которые требуются от проекта архитектуры и которые задаются в концепции безопасности более высокого уровня, связанные с достижением достаточной независимости или с устранением влияния.
Примеры
1 В качестве аргумента того, что базовое программное обеспечение может рассматриваться как "черный ящик" при рассмотрении обмена связанными с безопасностью данными с внешними отправителями или получателями во время анализа безопасности, могут использоваться подходящие механизмы сквозной защиты данных.
2 Зависимости функций программного обеспечения от рабочих режимов, такие как связанная с безопасностью функция, которая является активной только в режиме, в котором другая критическая функция безопасно отключается функцией перехода в безопасный режим.
![]()
для обоснования безопасности
Пример - На рисунке E.3 показано анализируемое программное обеспечение, в котором в соответствии с концепцией безопасности связанные с безопасностью функции реализованы только в КПО U и управляются функцией мониторинга, реализованной в КПО V. Определение границ анализа на основе архитектуры вносит ясность касательно требуемых аргументов безопасности и обеспечивает выполнение последующих шагов, представленных в следующих разделах. В данном примере КПО Y может далее подробно не анализироваться, но только в том случае, если анализ КПО X, КПО V и КПО U в состоянии подтвердить предполагаемое отсутствие влияния (например, никакие уязвимости и дефекты программного кода в сторожевом модуле M не приведут к каскадным отказам в случае ошибок в сигналах A1 - An).
Из-за специфических особенностей программного обеспечения (например, отсутствие случайных отказов из-за износа или старения и отсутствие разработанного вероятностного метода) методы, разработанные для такого анализа на уровне системы или аппаратных средств, часто не могут быть без изменений использованы для программного обеспечения либо дать значимые результаты.
Общая структура методов анализа безопасности, как правило, состоит из средств обеспечения реализации структурированного подхода, хранения полученных знаний и формирования заключения.
Пример - Синтаксис и семантика для описания сбоев и их зависимостей в дереве отказов или сети функций, или списке элементов, или значения приоритетности риска, используемые в FMEA.
Основой для анализа безопасности и анализа зависимых отказов является архитектура программного обеспечения, описывающая статические характеристики (например, представленные блок-схемой, показывающей функциональные элементы и их интерфейсы/взаимосвязи), а также динамические характеристики (например, описанные упорядоченными, временными или представляющими состояния диаграммами) соответствующего программного обеспечения.
Анализ безопасности и анализ зависимых отказов в соответствии с архитектурой программного обеспечения могут быть реализованы как функциональные последовательности и/или как последовательности процессов, которые учитывают как статические, так и динамические характеристики. В ходе такого анализа для выявления связанных с безопасностью слабых сторон проекта могут использоваться модели сбоев программного обеспечения или такие вопросы, как: "Какой конкретный сбой или отказ, вызванный данным компонентом программного обеспечения или влияющий на него, может привести к нарушению установленных требований безопасности?"
Уточнения архитектуры программного обеспечения могут обеспечить возможность анализа безопасности и анализа зависимых отказов на требуемом уровне детализации, чтобы определить сбои или отказы на более низком уровне.
Уровень детализации, необходимый в ходе такого анализа, связан:
- с корректным выбором области применения при доработке проекта архитектуры;
- свойствами, обеспечивающими достижение конкретных целей анализов;
- обоснованием, основанным на стратегии архитектуры, подкрепленной "зарекомендовавшими себя на практике" принципами проектирования (см. 7.4.3); или
- обоснованием, основанным на достаточной независимости, включая достигнутое устранение влияния.
E.3.4.1 Классы факторов взаимовлияния для анализа зависимых отказов в соответствии с ИСО 26262-9
В приложении C ИСО 26262-9 определены классы факторов взаимовлияния с соответствующими примерами на уровне программного обеспечения, которые могут использоваться для улучшения результатов анализа зависимых отказов, выполняемого методами функциональных последовательностей или последовательностей процессов для программного обеспечения, к которому предъявляются требования независимости.
E.3.4.2 Содержание приложения D
Приложение D содержит модели сбоев программного обеспечения для анализа взаимного влияния между программными элементами, например:
- для временной согласованности и выполнения;
- памяти; или
- обмена информацией.
E.3.4.3 Анализ с использованием ключевых слов
Для систематического анализа возможных отклонений от определенного проектного замысла и их возможных последствий могут использоваться ключевые слова. Ключевые слова используются для формирования вопросов при проверке определенной функциональности или свойства элемента архитектуры при анализе безопасности. При использовании ключевых слов анализ безопасности отдельных функций или свойств каждого элемента проекта повторяется с каждым ключевым словом до тех пор, пока не будут проверены все заданные ключевые слова. Таким образом, ключевые слова являются средством систематического выполнения анализа и поддержки аргумента с точки зрения полноты.
Для описания функциональных аспектов архитектуры программного обеспечения часто используются диаграммы потока данных или аналогичные схемы (например, функциональные последовательности или последовательности процессов). На рисунке E.4 показано взаимодействие программных компонентов Y, U и V и соответствующей функциональной последовательности или последовательности процессов (например, на основе потока данных).
Ключевые слова допускается использовать для выявления слабых мест, сбоев и отказов. Выбор подходящих ключевых слов зависит от характеристик исследуемых функций, их выполнения, свойств, интерфейсов или обмениваемых данных.
![]()
программного обеспечения
Исходя из цели проекта, ключевые слова формируются путем объединения атрибутов проекта, соответствующих ключевых слов и их интерпретации, чтобы достичь общего понимания для анализа. В таблице E.1 приведены примеры выбора ключевых слов, применяемых к проекту на рисунке E.4.
Таблица E.1
Пример выбора ключевых слов, связанных с выполнением
программного обеспечения, планированием или взаимодействием
Во время анализа ключевые слова допускается применять, используя дедуктивный или индуктивный подход. В ходе анализа при необходимости возможно дальнейшее уточнение ключевых слов (например, для лучшего соответствия конкретным аспектам проекта).
Во время анализа, сопровождаемого ключевыми словами, такие слова используются в соответствии с выбранным методом (например, выбирается последовательность процессов или функций) для формирования вопросов, которые будут использоваться для проверки проекта и выявления возможных недостатков и их следствий. В таблице E.2 представлен пример анализа сигналов Ai - An, сопровождаемого ключевыми словами.
Таблица E.2
Пример анализа, сопровождаемого ключевыми словами
E.4 Стратегия смягчения недостатков, выявленных в ходе анализа безопасности и анализа зависимых отказов
Результаты анализа безопасности и анализа зависимых отказов на уровне архитектуры программного обеспечения позволяют выбрать адекватные меры безопасности для предотвращения или обнаружения и управления последствиями сбоев и отказов, которые могут привести к нарушению требований безопасности или к недостижению целей безопасности.
Стратегия определения мер безопасности может учитывать следующее:
- критичность каждого выявленного сбоя исходя из того, может ли он привести к недостижению цели безопасности или нарушить требования безопасности, распределенные по элементам архитектуры, и назначенное для них значение УПБТС;
- может ли проект архитектуры быть доработан для устранения выявленных недостатков или снижения критичности выявленного сбоя;
- эффективность определенных мер безопасности, применяемых при разработке, и их способность в достаточной степени смягчить выявленный сбой, учитывая его критичность, с предоставлением соответствующего обоснования (например, обоснования эффективности определенных мероприятий по верификации с учетом используемой при анализе модели этого сбоя программного обеспечения);
- эффективность определенных механизмов безопасности для смягчения выявленных критических сбоев, для которых меры, принятые в процессе разработки, считаются недостаточными;
- сложность архитектуры программного обеспечения (например, количество интерфейсов и компонентов программного обеспечения) или компонентов программного обеспечения (например, количество назначенных требований или размер компонента).
Пример - Для более сложного программного обеспечения обоснование, основанное исключительно на мерах, принимаемых в процессе разработки, подходит меньше.
В соответствии с вышеуказанной стратегией не всегда необходимо внедрять механизмы безопасности, которые способны предотвращать или обнаруживать и управлять последствиями таких сбоев или отказов в процессе эксплуатации.
(справочное)
НАЦИОНАЛЬНЫМ СТАНДАРТАМ
Таблица ДА.1
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/23/gost_17437.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||