Жизненный цикл безопасности программного обеспечения и детализация требований к программному обеспечению
А.1 Жизненный цикл программного обеспечения
Процесс разработки программного обеспечения представлен на рисунке 3, на котором показаны деятельность по жизненному циклу, начиная со спецификации, включая проектирование и реализацию и заканчивая верификацией и валидацией.
Детализация требований к программному обеспечению описана в разделе А.2.
А.2 Детализация требований к программному обеспечению
А.2.1 Описание взаимных ограничений между техническим и программным обеспечениями
А.2.1.1 Должны быть описаны следующие аспекты:
- общие рабочие характеристики (разрядность, типы обмена, быстродействие и т.п.); во многих случаях достаточно бывает ссылки на справочники производителя оборудования;
- рабочие характеристики специального оборудования (конкретные драйверы, оборудование для передачи данных и т.п.);
- числовые ограничения;
- требования к комплектам стандартных программ;
- требования к самоконтролю технических средств;
- должна быть дана, по крайней мере, ссылка на документ с требованиями к техническим средствам.
А.2.1.2 Должны быть определены взаимные требования к техническим и программным обеспечениям с учетом регистрации отказа и реакции на выявление отказа.
Критерии, установленные в Руководстве МАГАТЭ NS-G-1.3, не допускают никакого дополнительного расширения, касающегося технического обеспечения компьютерных систем. Однако необходима документация ко всем требованиям к техническому обеспечению, влияющим на программное обеспечение, для того чтобы обеспечить основу интеграции технического и программного обеспечений и валидацию компьютерной системы.
А.2.1.3 Должно быть описано взаимодействие между функциями, принадлежащими к разным уровням безопасности (например, функциями категории А и функциями других категорий), и выполняемым программным обеспечением.
А.2.2 Самоконтроль
А.2.2.1 Рекомендуется, чтобы при отказах программного обеспечения автоматически предпринимались соответствующие действия с учетом следующих факторов:
- отказы должны быть определены с разумной степенью детализации;
- должен быть гарантирован максимально возможный отказоустойчивый выход;
- если такой гарантии нельзя предоставить, то несоответствие выхода системы должно касаться только менее существенных для безопасности требований;
- последствия отказов должны быть минимизированы;
- должны быть рассмотрены возможности включения корректирующих программ, таких, например, как возвращение в предыдущее состояние, восстановление системы;
- обслуживающему персоналу должна быть представлена достаточно подробная информация об отказах.
А.2.2.2 Система должна быть спроектирована так, чтобы был возможен соответствующий самоконтроль. Принципы проектирования, используемые для осуществления этой возможности, включают в себя:
- разбиение на модули;
- промежуточные проверки достоверности;
- использование резервирования и разнообразия; разнообразие может быть реализовано в качестве функционального разнообразия или разнообразия программного обеспечения;