ГОСТ Р МЭК 60880—2010
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) меры по реализации требований безопасности программного обеспечения, включая самоконтроль,
следует выбирать в начале проектирования (см. раздел В.З приложения В);
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 Реализация нового программного обеспечения на проблемно-ориентированных языках
В настоящем пункте рассматривается ситуация, когда часть функции безопасности категории А или
все такие функции обеспечиваются путем разработки новых компонентов программного обеспечения с
использованием проблемно-ориентированных языков.
15