Программное обеспечение для атомных объектов: аттестация, верификация и жизненный цикл
Расчёт выполнен, обоснование безопасности готово, а экспертиза спрашивает одно: чем аттестована программа и входит ли ваша задача в область её применения. Разбираем, какое ПО проходит аттестацию, что такое верификация и валидация, как строится управляемый жизненный цикл и почему выход за область аттестации обнуляет расчёт.

Проектная организация сдала обоснование безопасности с теплогидравлическим расчётом. Эксперт прочитал раздел и задал один вопрос: программа аттестована, но входит ли рассматриваемый режим в область её применения. Оказалось, что не входит. Расчёт пришлось переделывать на другом средстве, срок экспертизы уехал на квартал, а заказчик получил объяснительную. Разбираем, как устроены требования к программному обеспечению в атомной отрасли и почему область применения важнее самого факта аттестации.
Два разных мира
Под словами «ПО для атомного объекта» скрываются две разные истории с разными правилами. Первая — программные средства для расчётного обоснования безопасности: нейтронно-физические, теплогидравлические, прочностные, радиационные, вероятностные. Они проходят аттестацию. Вторая — программное обеспечение систем, важных для безопасности: то, что исполняется в контроллерах и на рабочих местах операторов. Оно проходит не аттестацию, а управляемый жизненный цикл с верификацией и валидацией. Требования и там и там вытекают из 170-ФЗ и федеральных норм и правил, опубликованных в библиотеке ЯРБ.
Аттестация расчётных программ
Программа, результаты которой используются для обоснования безопасности, должна быть аттестована. Аттестация подтверждает, что заложенные модели адекватны описываемым процессам, численная реализация корректна, погрешность оценена, а область применения очерчена. Результат оформляется аттестационным паспортом программного средства с указанием версии, назначения, диапазонов параметров и ограничений. Процедуру ведёт Ростехнадзор в установленном порядке.
Что входит в комплект на аттестацию
- Описание программы: назначение, физические и математические модели, принятые допущения.
- Описание численных методов и алгоритмов, оценка устойчивости и сходимости.
- Руководство пользователя и описание входных и выходных данных.
- Верификационный отчёт: сопоставление с аналитическими решениями, с экспериментальными данными, с результатами других аттестованных программ.
- Оценка погрешности результатов по каждой группе задач.
- Обоснование заявляемой области применения с границами по параметрам.
- Сведения о разработчике, порядке сопровождения и учёта версий.
Самая трудоёмкая часть — верификационный отчёт. Он строится на матрице задач: каждая заявленная область применения закрывается набором тестов с опубликованными или экспериментально полученными эталонными данными.
Область применения — красная линия
Применение программы за пределами области аттестации не допускается. Это не рекомендация, а условие, по которому эксперт проверяет расчёт. Выход за границы бывает неочевидным: диапазон давления или температуры за краем, геометрия, не охваченная тестами, режим, которого не было в верификационной матрице, другая версия программы. Если нужной области нет, есть три пути: расширить аттестацию, взять другое средство или обосновать результат консервативным подходом с запасом.
| Ситуация | Что делать |
|---|---|
| Задача внутри области аттестации | Расчёт, ссылка на паспорт с указанием версии |
| Параметры выходят за границы | Расширение области аттестации или замена программы |
| Изменена версия программы | Проверить, распространяется ли паспорт на эту версию |
| Программа собственной разработки | Аттестация до применения в обосновании |
| Результат носит оценочный характер | Явно указать статус, не использовать как обоснование |
Жизненный цикл ПО систем, важных для безопасности
Для встроенного и системного ПО правило другое: подтверждается не итоговый результат, а процесс. Жизненный цикл управляемый, этапы разделены, каждый завершается верификацией.
- Спецификация требований: функциональных, к времени реакции, к поведению при отказах.
- Архитектура: разделение функций по классам безопасности, изоляция критичных модулей.
- Детальное проектирование и кодирование по принятым правилам и ограничениям языка.
- Модульное, интеграционное и системное тестирование с измерением покрытия.
- Валидация системы в целом на соответствие исходным требованиям, включая испытания на комплексном стенде.
- Ввод в эксплуатацию и сопровождение с регистрацией дефектов и выпуском изменений.
Верификация и валидация: в чём разница
Верификация отвечает на вопрос, правильно ли сделан продукт на данном этапе: соответствует ли код проекту, проект — требованиям. Валидация отвечает на другой вопрос: тот ли продукт сделан, решает ли система задачу, ради которой создавалась, в реальных условиях применения. Обе процедуры выполняются лицами, независимыми от разработчиков соответствующего этапа, и документируются. Подпись разработчика под отчётом о верификации собственного кода экспертизу не устраивает.
Программу нельзя проверить, прогнав её один раз на удачном наборе данных. Доверие к ней создаёт прослеживаемость: от каждого требования к коду и от каждого кода к тесту.
Конфигурационное управление
Версия — не подпись в углу экрана. Управление конфигурацией означает, что известно, какая версия исходного кода, какие библиотеки и какие настройки соответствуют поставленной на объект сборке, кто и когда вносил изменения, каким тестам эта сборка подвергалась. Без этого невозможно ни расследовать отказ, ни обосновать внесение правки. Требования к управлению документацией и записями задаёт и программа обеспечения качества по НП-090-11.
Покупные и готовые компоненты
Операционные системы реального времени, библиотеки, среды исполнения контроллеров попадают в систему как готовые изделия. Для них выстраивают отдельное обоснование: опыт эксплуатации, ограничение используемой функциональности, дополнительное тестирование в составе системы, меры защиты от непредусмотренного поведения. Ссылка на популярность продукта на рынке обоснованием не является.
Где чаще всего рвётся
- Расчёт выполнен вне области аттестации или на неаттестованной версии.
- Верификационная матрица не покрывает заявленные режимы.
- Прослеживаемость требований до тестов отсутствует, покрытие не измерялось.
- Верификация выполнена автором кода.
- Изменения вносятся без повторного тестирования затронутых функций.
- Документация отстаёт от версии, поставленной на объект.
Атом-Плюс готовит комплекты документов на аттестацию программных средств, включая верификационные отчёты и обоснование области применения, выстраивает процедуры жизненного цикла программного обеспечения систем, важных для безопасности, и сопровождает организацию при экспертизе расчётных обоснований. Если у вас есть расчётная программа или встроенное ПО для атомного объекта, оставьте заявку в форме ниже.
Фото: Markus Spiske markusspiske, Wikimedia Commons, CC0









