Статус документа
Статус документа

ГОСТ Р МЭК 60880-2010 Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категории А

     7.1 Принципы проектирования и реализации

7.1.1 Общие сведения

7.1.1.1 Проект программного обеспечения должен включать самоконтроль (см. А.2.2 приложения А).

7.1.1.2 При обнаружении отказа должны быть предприняты надлежащие действия в соответствии с 6.2.

7.1.1.3 Структура программного обеспечения должна основываться на модульном принципе.

7.1.1.4 Структура программного обеспечения должна быть простой и понятной как в целом, так и в деталях.

7.1.1.5 Следует избегать изощренных приемов, рекурсивной структуры и сжатия кода.

7.1.1.6 Исходная программа должна быть понятной для квалифицированных специалистов, не участвующих в процессе разработки.

7.1.1.7 Исходная программа должна соответствовать документально оформленным правилам, предназначенным для улучшения ясности модифицируемости и тестируемости.

7.1.1.8 Следует обосновывать любые несоответствия правилам проектирования программного обеспечения.

7.1.1.9 Должна быть представлена полная и четко написанная документация к программному обеспечению.

7.1.1.10 Линии связи должны быть спроектированы в соответствии с требованиями к передаче данных, приведенными в 5.3.1.3 МЭК 61513.

7.1.1.11 Линии связи, используемые в одном резервном устройстве последовательных элементов, должны быть детерминистскими.

7.1.1.12 Из этих положений вытекают следующие рекомендации:

1) меры по реализации требований безопасности программного обеспечения, включая самоконтроль, следует выбирать в начале проектирования (см. раздел В.3 приложения В);

2) подход к проектированию программного обеспечения "сверху - вниз" предпочтительнее подхода "снизу - вверх" (см. раздел В.1 приложения В);

3) в начале проектирования каждого программного обеспечения следует устанавливать концептуальную модель его архитектуры (см. раздел В.2 приложения В);

4) написание программы следует осуществлять таким образом, чтобы это обеспечивало простоту проведения верификации (см. разделы В.4 и В.5 приложения В);

5) там, где используется стандартное программное обеспечение от производителя или поставщика, в дополнение к перечислению с) раздела В.2 приложения В применяются требования раздела 15;

6) использование проблемно-ориентированных языков предпочтительнее использования машинно-ориентированных языков (см. примечание раздела В.5 приложения В).

7.1.2 Реализация нового программного обеспечения на универсальных языках

В настоящем пункте рассматривается ситуация, когда часть или все функции безопасности категории А обеспечиваются разработкой компонентов программного обеспечения, использующих универсальные языки.

Универсальные языки являются обычно языками высокого уровня, такими как Ада, Си, Паскаль, либо языками ассемблера, предназначенными для используемой аппаратной платформы. Языки могут применяться для реализации функции любого рода при условии соблюдения соответствующих правил проектирования и кодирования.

7.1.2.1 На этапе проектирования программного обеспечения должны быть определены его компоненты, которые нужно разработать с помощью универсальных языков.

7.1.2.2 Для этих компонентов в процессе разработки следует определить этапы детального проектирования и кодирования.

7.1.2.3 Деятельность на этапе детального проектирования состоит в уточнении выходных данных этапа проектирования с тем, чтобы можно было на систематической основе проводить кодирование на выбранном языке (например, путем определения необходимых алгоритмов, структур данных, функциональных интерфейсов, ограничений и т.п.).

7.1.2.4 Уровень детализации информации на этапе детального проектирования зависит от используемого универсального языка. Если используется язык Ассемблера, то проект должен обеспечить подробно структурированные алгоритмы и представление данных.

7.1.2.5 На этапе кодирования детальный проект должен быть транслирован в исходный код в соответствии с заранее определенными правилами программирования, основанными на требованиях приложения В.

7.1.3 Реализация нового программного обеспечения на проблемно-ориентированных языках