CppDepend
Luft- & Raumfahrt und Verteidigung — Fallstudie

Fallstudie: Durchsetzung von DO-178C und Architekturkontrolle in der Entwicklung von Luftfahrtsoftware

Ein führendes Luftfahrttechnologie-Unternehmen entwickelte eingebettete Software für Avionik der nächsten Generation. Die Software musste die Sicherheitsstandards DO-178C Level A erfüllen — die höchste Assurance-Stufe…

Welche Standards unterstützt CppDepend standardmäßig? Die integrierten Regelsätze decken ab MISRA C/MISRA C++, CWE, CERT C/CERT C++ und AUTOSAR C++14 — und keinen anderen Standard. Für jede andere auf dieser Seite erwähnte Norm (ISO 26262, DO-178C, IEC 62304, IEC 61508, JSF++ AV, NIST SSDF, ASPICE…) wird die Konformität durchgesetzt durch benutzerdefinierte CQLinq-Regeln für Ihr Projekt geschrieben, plus Architekturvalidierung und CI-Quality-Gates.

Fallstudie: Durchsetzung von DO-178C und Architekturkontrolle in der Entwicklung von Luftfahrtsoftware

Branche: Luft- & Raumfahrt und VerteidigungKundenprofil: Globaler Luftfahrtzulieferer (nicht genannt)Bereich: Avioniksoftware für Flugsteuerungs- und NavigationssystemeTeamgröße: 100+ Ingenieure an verteilten StandortenSprachen: C und C++Zentrale Normen: DO-178C, MISRA C/C++, JSF++ AV

Die Herausforderung

Ein führendes Luftfahrttechnologie-Unternehmen entwickelte eingebettete Software für Avionik der nächsten Generation. Die Software musste die Sicherheitsstandards DO-178C Level A erfüllen — die höchste Assurance-Stufe für luftgestützte Systeme — sowie strenge interne Coding-Richtlinien und Branchenstandards wie MISRA C und JSF++ AV.

Trotz eines hochqualifizierten Teams und eines rigorosen V&V-Prozesses standen sie immer wieder vor folgenden Herausforderungen:

  • Fehlende Architekturtransparenz: Teams konnten Design-Schichtungsrichtlinien nur schwer validieren und unbeabsichtigte Abhängigkeiten zwischen Modulen erkennen.
  • Manueller Compliance-Aufwand: Code-Reviews für Standards wie MISRA waren langwierig und fehleranfällig, insbesondere in Legacy-Modulen.
  • Audit-Komplexität: Die Vorbereitung von Nachweisen für DO-178C-Ziele (insbesondere A-5, A-6, A-7) erforderte manuellen Aufwand und war nicht rückverfolgbar.
  • Langer Software-Lebenszyklus: Änderungen in aktuellen Projekten mussten mindestens 15–20 Jahre wartbar und sicher bleiben.

Sie benötigten eine skalierbare, automatisierte Lösung, um architektonische Konsistenz zu überwachen, die Einhaltung von Coding-Standards sicherzustellen und die Dokumentation für die Zertifizierung zu optimieren.

Die Lösung: CppDepend

CppDepend wurde nach einem internen Pilotprojekt mit drei Kandidaten-Tools ausgewählt. Die entscheidenden Faktoren waren:

  • Möglichkeit, Regeln mit CQLinq anzupassen, um JSF++ AV- und MISRA-Interpretationen abzubilden
  • Visuelle Abhängigkeitsgraphen zur Überwachung der Architektur über Teams und Zeit hinweg
  • Unterstützung der langfristigen Wartbarkeitsverfolgung (technische Schulden, Code-Churn, Metrik-Trends)
  • CI/CD-Integration, die Durchsetzung ohne Produktivitätseinbußen ermöglichte

CppDepend wurde als zentrale Analyse-Engine in ihrer Verifikations- und Validierungsstrategie (V&V) positioniert, insbesondere für strukturelle Abdeckung und die Durchsetzung von Design-Regeln.

Umsetzung

Phase 1 – Pilot (4 Wochen)

  • Analyse eines Legacy-Avionik-Subsystems (~400k LOC) für die Flugstabilisierung
  • Über 1.200 Regelverstöße erkannt (viele durch versteckte Include-Ketten und unbeabsichtigte schichtübergreifende Aufrufe)
  • Basis-Architekturdiagramme und Dashboards erstellt

Phase 2 – Richtliniendefinition (6 Wochen)

  • Etwa 80 benutzerdefinierte CQLinq-Regeln definiert, die interne Architektur- und JSF++-AV-Vorgaben abbilden
  • Alerts für unsichere Typumwandlungen, dynamische Speichernutzung und Schichtverletzungen erstellt
  • Berichte an die DO-178C-Dokumentationsstruktur (SOI-2 / SOI-3) angepasst

Phase 3 – CI-Integration & Team-Befähigung (8 Wochen)

  • CppDepend in die Jenkins-basierte CI-Pipeline integriert
  • Alle Builds erzeugten Compliance-Berichte und Metriken zu technischen Schulden
  • Entwickler erhielten Echtzeit-Feedback zu Code-Verstößen in Pull Requests

Ergebnisse nach 3 Monaten

MetrikVor CppDependNach 3 Monaten
Architektur-Regelverstöße1,220+< 150
Durchschnittliche V&V-Checklisten-Bearbeitung12–14 Stunden< 3 Stunden
Übersehene manuelle MISRA/JSF++-ProblemeHäufigNahe null
Warnungen zu struktureller Komplexität8521
Zeit zur Erstellung von Zertifizierungs-Traceability-Berichten5+ Tage< 6 Stunden

Ergebnisse & Vorteile

  • DO-178C-Unterstützung: CppDepend half bei den Zielen A-5 (Design), A-6 (Implementierung) und A-7 (Code-Standards), indem die Verifikation von Coding-Standards, Kontrollfluss-Komplexität und Architekturstruktur automatisiert wurde.
  • Langfristige Code-Gesundheit: Durch kontinuierliches Tracking von Metriken wie Code-Churn, Kopplung und Schulden konnte das Team Refactorings besser planen, ohne die Zertifizierung zu gefährden.
  • Reduzierter Audit-Aufwand: Von CppDepend generierte Berichte wurden direkt in der SOI-2- und SOI-3-Dokumentation verwendet, was tagelange manuelle Arbeit einsparte.
  • Verbesserte Entwicklungsgeschwindigkeit: Mit Quality Gates konnten sich Entwickler auf Funktionalität konzentrieren, während die Compliance im Hintergrund sichergestellt wurde.

Warum CppDepend?

CppDepend überzeugte nicht nur durch seine statische Analyseleistung, sondern auch durch Erweiterbarkeit und Visualisierungswerkzeuge. In einer sicherheitskritischen Domäne, in der jede Änderung Dokumentation, Rückverfolgbarkeit und Begründung erfordert, wurde CppDepend ein integraler Bestandteil des Software-Engineering-Workflows.

Fazit

CppDepend gab diesem Luftfahrt-Team eine skalierbare, automatisierte Möglichkeit, Architekturrichtlinien durchzusetzen, Codequalität über die Zeit zu verfolgen und den Zertifizierungsaufwand zu reduzieren. Durch Shift-Left der Codeanalyse — und indem Struktur und Standards in jedem Schritt sichtbar wurden — konnten sie sicherere, sauberere und besser zertifizierbare Avioniksoftware entwickeln.

← Zurück zur Übersicht Luft- & Raumfahrt und Verteidigung

Sehen Sie, was CppDepend in Ihrer Codebasis aufdeckt

Führen Sie die Analyse auf Ihren eigenen Projekten aus: Coding-Standards, Architekturvalidierung, technische Schulden und Quality Gates — in Minuten.