Рисунок 2 - Мероприятия жизненного цикла системы безопасности (в соответствии с МЭК 61513)
Программное обеспечение обычно вносит существенный вклад в функции, выполняемые СКУ. Оно может также поддерживать дополнительные функции, введенные в соответствии с проектом системы (например, инициализацию и контроль технического обеспечения, связь между подсистемами, синхронизацию подсистем). Таким образом, жизненный цикл безопасности программного обеспечения в большинстве случаев тесно связан с жизненным циклом безопасности системы. В частности, спецификация требований к программному обеспечению является частью или непосредственно вытекает из спецификации системы и проекта системы.
Хотя верификация новых компонентов программного обеспечения несомненно является частью жизненного цикла безопасности программного обеспечения, часто нет отдельной и четко установленной границы между интеграцией программного обеспечения и интеграцией системы. Поэтому в настоящем стандарте интеграция программного обеспечения рассматривается как часть интеграции системы. Валидация программного обеспечения также рассматривается как часть валидации системы.
Рисунок 3 - Схема мероприятий, относящихся к программному обеспечению в жизненном цикле системы безопасности (блоки, выделенные пунктиром, относятся к мероприятиям, на которые требования настоящего стандарта не распространяются)
Соотношение между мероприятиями жизненного цикла безопасности системы и жизненного цикла безопасности программного обеспечения показано на рисунках 2 и 3.
Необходимо отметить, что, хотя МЭК 61513 устанавливает два различных пути создания нового программного обеспечения (прикладное ПО и операционное ПО системы, см. рисунки 2 и 3), в настоящем стандарте требования к созданию нового программного обеспечения объединены в четыре группы:
5.5.1 и 6.5.1 - предусматривают требования, которые являются применимыми независимо от того, какая техника создания используется;
5.5.2 и 6.5.2 - предусматривают требования, специфичные для конфигурации ранее разработанного программного обеспечения и устройств, содержащих программное обеспечение, в частности, для установления параметров и других данных конфигурации;
5.5.3 и 6.5.3 - предусматривают требования, специфичные для разработки и проверки программного обеспечения, написанного на проблемно-ориентированных языках;
5.5.4 и 6.5.4 - предусматривают требования, специфичные для реализации и верификации программного обеспечения, написанного на универсальных языках.
Блоки схемы, обозначенные на рисунке 3 как "разработка/создание прикладного программного обеспечения" и "разработка нового операционного программного обеспечения системы", представляют большую и существенную часть жизненного цикла безопасности программного обеспечения. Более подробно деятельность, осуществляемая между составлением спецификации требований к ПО и валидацией системы с четким представлением трех различных путей реализации проекта программного обеспечения (конфигурация ранее разработанного программного обеспечения и устройств, использование проблемно-ориентированных языков и использование языков общего назначения) показана на рисунке 4.
Рисунок 4 - Мероприятия жизненного цикла безопасности программного обеспечения по МЭК 62138
Рисунок 5 - Алгоритм проверки корректности ранее разработанного программного обеспечения для СКУ класса безопасности 2
Еще одним мероприятием особой важности жизненного цикла безопасности программного обеспечения является выбор ранее разработанного программного обеспечения, поскольку этот тип программного обеспечения обычно представляет существенную часть завершенного и интегрированного программного обеспечения. Более подробно алгоритм проверки корректности ранее разработанного программного обеспечения для СКУ класса безопасности 2 представлен на рисунке 5.