ГОСТ Р МЭК 61508-7—2007
физическом ресурсе и дальнейшему повторному преобразованию логической архитектуры в ограниченные ре
сурсы. остающиеся функционирующими. Несмотря на то. что данный метод в основном традиционно ограничен
только восстановлением отказавших модулей аппаратных средств, он применим также к ошибкам в программных
средствах при наличии достаточной «избыточности времени прогона» для повторного выполнения программы
или при наличии достаточных избыточных данных, которые обеспечат незначительнее влияние отдельному и
изолированному отказу.
Данный метод должен рассматриваться на первом этапе проектирования системы.
Литература:
Critical Issues in the Design of Reconfigurable Control Computer. H. Schmid. J. Lam. R. Naro and K. Weir. FTCS
14 June 1984. IEEE. 1984.
Assigning Processes to Processors: A Fautt-lolerant Approach. G. Kar and C N. Nikolaou. Watson Research
Centre. Yorktown, June 1984.
C.4 Инструменты разработки и языки программирования
С.4.1 Строго типизированные языки программирования
П р и м е ч а н и е — Ссылка на данный метод^средство приведена в МЭК 61508-3 (таблица А.З).
Цель: снижение вероятности ошибок путем использования языка, который компилятором обеспечивает
высокий уровень проверки.
Описание: если скомпилирован строго типизированный язык программирования, то проводится много про
верок по использованию типов переменных, например в вызовах процедур и доступе к внешним данным. Компи
ляция может оказаться безуспешной, и будет выдано сообщение об ошибке при любом использовании типа
переменных, которое не соответствует заранее установленным правилам.
Подобные языки обычно позволяют определять установленные пользователем типы данных на основе
типов данных базового языка (например целое число, реальное число). Затем эти типы могут быть использованы
также. как и базовый тип. Вводятся строже проверки, чтобы гарантировать использование правильного типа. Эти
проверки проводятся для всей программы, даже если она построена из отдельных скомпилированных модулей.
Данные проверки гарантируют также, чточисло итип аргументов конкретной процедуры соответствуют
числуитипу аргументов в ее вызове, даже если к ней обращаются из отдельно скомпилированных программных
модулей.
Строго типизированные языки обычно обеспечивают другие аспекты проверенной на практике технике
программного обеспечения, например, легхо анализируемые структуры управления (if... then... else..., do... while и
т. п.). которые приводят к четко структурированным программам.
Типичными примерами строго типизированных языков являются Pascal [21], Ada [23] и Modula 2 [27].
Литература:
In Search of Effective Diversity: a Six Language Study of Fault-Tolerant Flight Control Software. A. Avizienis. M. R.
Lyu and W. Schutz. 18th Symposium on Fault-Tolerant Computing. Tokyo. Japan. 27—30 June 1988. IEEE Computer
Society Press. 1988. ISBN 0-8186-0867-6.
C.4.2 Подмножество языка
П р и м е ч а н и е — Ссылка на данный мвтод’средство приведена в МЭК 61508-3 (таблица А.З).
Цель: снижение вероятности внесения программных ошибок и повышение вероятности обнаружения ос
тавшихся ошибок.
Описание: язык исследуется для определения программных конструкций, подверженных ошибкам либо
сложных для анализа, например, при использовании методов статического анализа. После этого определяется
языковое подмножество, которое исключает такие конструкции.
Литература:
Requirements for programming languages in safety and security software standard. B. A. Wichmann. Computer
Standards and Interfaces. Vol. 14. pp 433—441. 1992.
Safer C: Developing Software for High-integrity and Safety-critical Systems. L. Hatton. McGraw-Hill. 1994. ISBN
0-07-707640-0.
C.4.3 Сертифицированные средства
П р и м е ч а н и е — Ссылка на данный методГсредство приведена в МЭК 61508-3 (таблица А.З).
Цель: помощь разработчику на различных этапах разработки программных средств в использовании необ
ходимых инструментальных средств, которые, где это возможно, должны быть сертифицированы с тем. чтобы
обеспечить конкретную степень уверенности в корректности результатов.
Описание: сертификацию инструментальных средств в общем случае допускается проводить независимо,
как правило, в национальных органах по сертификации, по независимому набору критериев, находящемуся обыч
но в национальных или международных стандартах. В идеальном случае инструментальные средства, применя
емые на всех стадиях разработки (спецификация, проектирование, кодирование, тестирование и оценка соответ
ствия). и те из них. которые используются в управлении конфигурацией, должны быть сертифицированы.
47