ГОСТ Р МЭК 61508-7—2012
С.2.6 Стандарты по проектированию и кодированию
П р и м е ч а н и е — Ссылка на данный метод/средство приведена в МЭК 61508-3 (таблица А.4).
С.2.6.1 Общие положения
Цель. Упрощение верификации, с тем чтобы поддержать групповой объективный подход и установить стан
дартный метод проектирования.
Описание. В самом начале между участниками проекта должны быть согласованы необходимые правила,
охватывающие рассмотренные ниже методы проектирования и разработки (например JSP. сети Петри и т. д.), а
также соответствующие стандарты кодирования (см. С.2.6.2).
Данные правила создаются для облегчения разработки, верификации, оценки и эксплуатации. При этом
должны учитываться доступные инструментальные средства, в частности, для аналитиков, а также развитие
средств проектирования.
Литература:
IEC 60880:2006. Nuclear power plants — Instrumentation and control systems important to safety — Software
aspects for computer-based systems performing category A functions.
Verein Deutscher Ingenieure. Software-Zuverlassigkeit — Grondlagen.KonstruktiveMass-nahmen,
Nachweisverfahren. VDI-Verlag. 1993. ISBN 3-18-401185-2.
C.2.6.2 Стандарты кодирования
П р и м е ч а н и е — Ссылка на данный метод/средство приведена в МЭК 61508-3 (таблица В.1).
Цель. Сократить вероятность ошибок в разрабагывемом коде, связанном с безопасностью, и упростить его
верификацию.
Описание. Следующие принципы указывают, как связанные с безопасностью правила кодирования (для лю
бого языка программирования) могут помочь в выполнении нормативных требований МЭК 61508-3 и вдостижении
информативных «требуемых свойств» (см. приложение F). Необходимо уделить внимание доступным инструмен
там поддержки.
Требования и рекомендации
М Э К6 1 50 в-3
У казания стандартов кодирования
Модульный подход (табли
ца А.2-7, таблица А.4-4)
Ограничение размера программного модуля (таблица В.9-1) и управление
сложностью программного обеспечения (таблица В.9-2). Примеры:
- определение «локальных»: размера, метрик сложности и предельных раз
меров (для модулей):
- определение «глобальных» метрик сложности и предельных размеров
(для всей структуры модулей),
- ограниченное число параметров/фиксированное число параметров под
программы (таблица В.9-4).
Оганичение доступа/инкапсуляиия информации (таблица В.9-3). например,
стимулы для того, чтобы использовать определенные функции языка.
Полностью определенный интерфейс (таблица В.9-6). Примеры:
- точная спецификация сигнатуры функции;
- программирование с проверкой ошибок (таблица А.2-За) и верификация
данных (7.9.2.7) с явной спецификацией предварительных условий и постус
ловий для функций, утверждений, инвариантов типов данных
Понятность кода
- содействие понятности кода
(7.4.4.13);
- читаемый, понятный и тести
руемый код (7.4.6)
Соглашения о присвоении имен, продвигающие значащие, однозначные
имена, например, предотвращение имен, которые можно перепутать (напри
мер IO и КЗ).
Символьные имена для числовых значений.
Процедуры и руководства для документирования исходного кода (7.4.4.13).
Например, в них;
- обьяснить. почему и зачем (а не только что) кодируется;
-
описать предостережения;
-
описать побочные эффекты.
Где это возможно, в исходном коде должна содержаться следующая инфор
мация (7.4.4.13):
-
юридическое лицо (например компания, автор(ы) и т. д.):
- описание кода;
-
входные и выходные данные;
- история управления конфигурацией.
(См. также модульный подход.)
40