Открыть сервис

DO-178C

DO-178C (полное наименование — «Software Considerations in Airborne Systems and Equipment Certification») — это руководящий документ (стандарт), разработанный комитетом RTCA (Radio Technical Commission for Aeronautics) совместно с EUROCAE (European Organisation for Civil Aviation Equipment), который определяет требования к разработке, верификации и сертификации программного обеспечения для бортовых авиационных систем. Стандарт является основным нормативным документом, используемым авиационными властями (FAA, EASA, МАК) для оценки безопасности программного обеспечения, входящего в состав систем, критически важных для полёта.

История и предпосылки создания

Разработка стандартов для программного обеспечения в авиации началась в 1980-х годах, когда стало очевидно, что отказы программного обеспечения могут приводить к катастрофическим последствиям. Первым значимым документом стал DO-178A (1982 год), который заложил базовые принципы, но не содержал детальных критериев. В 1992 году была выпущена версия DO-178B, которая стала мировым стандартом на два десятилетия. Однако с развитием технологий, появлением сложных алгоритмов (например, в системах автоматического управления) и увеличением объёмов кода возникла необходимость в уточнении требований, особенно в области объектно-ориентированного программирования и формальных методов.

В 2011 году был опубликован DO-178C, который заменил DO-178B. Основные изменения коснулись:

  • Уточнения критериев для использования инструментов автоматизации (компиляторов, симуляторов).
  • Введения рекомендаций по применению формальных методов верификации.
  • Более строгого регулирования модификаций программного обеспечения (конфигурационное управление).
  • Учета современных языков программирования (например, Ada, C, C++) и их особенностей.

Структура и ключевые понятия

DO-178C не является законом, но признаётся авиационными властями как «приемлемый способ соответствия» требованиям сертификации. Стандарт делит программное обеспечение на пять уровней критичности (Level A — E), в зависимости от последствий отказа:

Уровни критичности (DAL — Design Assurance Level)

УровеньПоследствия отказаПримеры систем
AКатастрофические (гибель экипажа и пассажиров)Система управления полётом (fly-by-wire), автопилот
BОпасные/тяжёлые (травмы, потеря самолёта)Система предупреждения столкновений (TCAS)
CСущественные (ухудшение характеристик, задержка)Система управления топливом
DНезначительные (дискомфорт, но не нарушение безопасности)Система освещения салона
EБез влияния на безопасностьРазвлекательные системы (IFE)

Для каждого уровня устанавливаются строгие требования к процессам разработки, верификации и документированию. Чем выше уровень (A — самый строгий), тем больше объём подтверждающих материалов (артефактов) требуется.

Процессы жизненного цикла по DO-178C

Стандарт описывает три группы процессов, которые должны быть интегрированы в проект:

1. Планирование

На этом этапе разрабатываются планы:

  • План разработки ПО (Software Development Plan) — определяет методы, языки, инструменты.
  • План верификации (Software Verification Plan) — описывает стратегию тестирования и анализа.
  • План управления конфигурацией (Software Configuration Management Plan) — регламентирует контроль версий и изменений.
  • План обеспечения качества (Software Quality Assurance Plan) — устанавливает процедуры аудита.

2. Разработка

Включает:

  • Определение требований (Software Requirements) — формализация функциональных и интерфейсных требований к ПО.
  • Проектирование (Design) — архитектура, модули, интерфейсы.
  • Кодирование (Coding) — написание исходного кода.
  • Интеграция (Integration) — сборка системы.

3. Верификация и валидация

Это самый объёмный этап. Для уровня A требуется:

  • Покрытие кода (Code Coverage) — 100% покрытие по условиям, решениям и модифицированным условиям/решениям (MC/DC).
  • Тестирование — на уровне модулей, интеграции и системы.
  • Анализстатический анализ кода, формальные проверки.
  • Документирование — каждый тест, каждый анализ должен быть задокументирован.

Инструменты и их квалификация

DO-178C вводит понятие «квалифицированного инструмента». Если инструмент (например, компилятор, симулятор, генератор кода) используется в процессе разработки или верификации, он должен быть сертифицирован на соответствие определённому уровню критичности. Различают:

  • Инструменты разработки (Development Tools) — влияют на выходной код (например, автогенерация кода из моделей).
  • Инструменты верификации (Verification Tools) — проверяют корректность (например, статические анализаторы).

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

Применение в России и СНГ

В Российской Федерации и странах СНГ DO-178C не является обязательным государственным стандартом, но широко применяется при сертификации авиационной техники, особенно при разработке бортового оборудования для самолётов (например, МС-21, SSJ-100). Авиационные власти (Межгосударственный авиационный комитет — МАК) признают DO-178C как «приемлемый метод» при условии адаптации к национальным нормам (например, АП-25, АП-29). В России также существует ГОСТ Р 56035-2014, который частично гармонизирован с DO-178C, но не является полным аналогом.

Критика и ограничения

Несмотря на широкое признание, DO-178C имеет ряд критических замечаний:

  • Высокая стоимостьсертификация ПО уровня A может занимать до 50% бюджета проекта.
  • Бюрократизация — большое количество документов (артефактов) часто приводит к формальному подходу, а не к реальному повышению безопасности.
  • Сложность адаптации — стандарт ориентирован на традиционные императивные языки (C, Ada) и плохо применим к новым парадигмам (функциональное программирование, машинное обучение). В 2020-х годах началась работа над дополнением DO-178C для систем с искусственным интеллектом (DO-178C/AMC 20-193).
  • Отсутствие гибкости — жёсткие требования к процессам затрудняют использование agile-методологий.

Влияние на другие отрасли

Принципы DO-178C (особенно уровни DAL и требования к покрытию кода) были заимствованы другими отраслями:

Заключительные положения

DO-178C остаётся «золотым стандартом» для разработки критически важного программного обеспечения в авиации. Его применение обязательно для всех коммерческих и транспортных самолётов, сертифицируемых по нормам FAA и EASA. Несмотря на критику, альтернатив на данный момент не существует, и все новые проекты (включая беспилотные летательные аппараты) ориентируются на его требования.

Источники

  1. RTCA DO-178C: «Software Considerations in Airborne Systems and Equipment Certification» (2011).
  2. EUROCAE ED-12C: европейский аналог DO-178C.
  3. FAA Advisory Circular AC 20-115C: руководство по применению DO-178C.
  4. ГОСТ Р 56035-2014: «Программное обеспечение бортовых систем. Требования к разработке и верификации».
  5. Leveson, N. G. «Engineering a Safer World: Systems Thinking Applied to Safety» (MIT Press, 2011).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →