5.4.1 Должны быть спланированы действия и определены соответствующие методы разработки программного обеспечения изделия.
5.4.2 Должна быть выполнена настройка жизненного цикла разработки программного обеспечения изделия в соответствии с требованиями 6.4.5 ИСО 26262-2, на основе базовой модели стадии, приведенной на рисунке 2.
5.4.3 В случае создания конфигурируемого программного обеспечения применяется приложение С.
5.4.4 Процесс разработки программного обеспечения устройства, включая стадии жизненного цикла, методы, языки и инструментальные средства, должен быть согласованным для всех подстадий жизненного цикла программного обеспечения и быть совместимым со стадиями разработки на уровне системы и аппаратных средств так, чтобы необходимые данные могли быть преобразованы корректно.
Примечание - Последовательность стадий, задач и действий, включая итерации, для программного обеспечения устройства является гарантией обеспечения согласованности соответствующих результатов разработки аппаратных средств изделия (см. ИСО 26262-5) и результатов разработки на уровне системы (см. ИСО 26262-4).
Примечание - На рисунке конкретные разделы каждой части настоящего стандарта указаны следующим образом: "m-n", где "m" представляет собой номер части настоящего стандарта, а "n" указывает на номер ее раздела, например, 4-7 представляет раздел 7 ИСО 26262-4.
Рисунок 2 - Базовая модель стадии разработки программного обеспечения (ПО)
5.4.5 Для каждой подстадии разработки программного обеспечения должны быть выбраны, включая руководство по их применению,
a) методы и
b) соответствующие инструментальные средства.
5.4.6 Критериями выбора подходящего языка моделирования или программирования являются:
a) однозначность определения;
Пример - Синтаксиса и семантик языка.
b) поддержка встроенного программного обеспечения систем реального времени и обработка ошибок во время выполнения;
c) поддержка модульности, абстракции и структурированных конструкций.
Критерии, которые не получили достаточного развития в самом языке, должны быть поддержаны соответствующими рекомендациями или средой разработки.
Примечания
1 Выбранный язык программирования (например, ADA, С, С + +, Java, Ассемблер или графический язык моделирования) поддерживает свойства, приведенные в 5.4.7. Для выполнения этих свойств могут использоваться соответствующие рекомендации по программированию или моделированию.
2 Для тех частей программного обеспечения, где использование языков высокого уровня программирования не подходит, таких как низкоуровневое программное обеспечение интерфейса с техническими средствами, обработчики прерываний или критические по времени алгоритмы, могут быть использованы языки Ассемблера.
5.4.7 Для поддержки корректности разработки и реализации руководства по разработке и кодированию для моделирования или языков программирования должны рассматривать вопросы, перечисленные в таблице 1.
Примечания
1 Руководства по кодированию, как правило, различны для различных языков программирования.
2 Руководства по кодированию могут отличаться для разработки на основе модели.
3 Существующие руководства по кодированию могут быть модифицированы для разработки конкретного устройства.
Пример - MISRA С [3] и MISRA AC AGC [4] являются руководствами по кодированию для языка программирования С.
Таблица 1 - Вопросы, которые должны быть рассмотрены в руководствах по моделированию и кодированию