CppDepend
Automobil — Fallstudie

Fallstudie: Verbesserung der Codequalität und MISRA-Compliance in eingebetteten Automobilsystemen

Ein großer Automobilzulieferer, der Software für Motorsteuerung und fortschrittliche Fahrerassistenzsysteme (ADAS) entwickelte, sah sich mit wachsender Komplexität seiner C/C++-Codebasis konfrontiert. Die eingebetteten Systeme mussten…

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: Verbesserung der Codequalität und MISRA-Compliance in eingebetteten Automobilsystemen

Branche: AutomobilKundenprofil: Europäischer Tier-1-Automobilzulieferer (nicht genannt)Bereich: Eingebettete Software für Antriebsstrang- und ADAS-SteuergeräteTeamgröße: ~60 Ingenieure auf drei KontinentenSprachen: C, C++Zentrale Normen: MISRA C, MISRA C++, ISO 26262

Die Herausforderung

Ein großer Automobilzulieferer, der Software für Motorsteuerung und fortschrittliche Fahrerassistenzsysteme (ADAS) entwickelte, sah sich mit wachsender Komplexität seiner C/C++-Codebasis konfrontiert. Die eingebetteten Systeme mussten die strengen MISRA- und ISO-26262-Anforderungen erfüllen, jedoch:

  • Manuelle MISRA-Compliance-Prüfungen waren zeitaufwendig und teamsübergreifend inkonsistent.
  • Die architektonische Schichtung wurde häufig verletzt, was zu Regressionen und längeren Debugging-Zyklen führte.
  • Entwickler hatten keine Transparenz über technische Schulden und die langfristige Wartbarkeit des Systems.
  • Audits für die ISO-26262-Dokumentation erforderten ad-hoc manuelle Berichte, deren Erstellung Tage dauerte.

Das Softwareteam benötigte eine automatisierte, integrierte Lösung, die Regelkonformität sicherstellen, architektonische Disziplin durchsetzen und die Zeit bis zum Audit verkürzen konnte, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.

Die Lösung: CppDepend

CppDepend wurde als statische Analyseplattform für alle kritischen Komponenten des Embedded-Software-Stacks eingeführt. Das Tool wurde direkt in die CI/CD-Pipeline des Teams integriert und auf interne Entwicklungsworkflows und Sicherheitsziele abgestimmt.

Genutzte Hauptfunktionen:

  • MISRA-C- und C++-Durchsetzung über anpassbare CQLinq-Regeln
  • Schichtungs- und Abhängigkeitsprüfungen zur Verhinderung architektonischen Drifts
  • CI-Integration mit Jenkins und GitLab für frühzeitiges Feedback
  • Tracking technischer Schulden und visuelle Dashboards
  • Benutzerdefinierte Quality Gates zum Blockieren nicht konformen Codes bei Merge Requests

Umsetzungsstrategie

  • Phase 1: Der erste Scan ergab über 2.000 MISRA-Verstöße und mehr als 150 Architektur-Regelverstöße modulübergreifend. Eine „Soft-Fail“-Politik wurde verwendet, um Teams schrittweise einzuführen und Trends zu verfolgen.
  • Phase 2: Die Regeln wurden verfeinert, um nicht nur MISRA, sondern auch interne Performance-, Portabilitäts- und Sicherheitsanforderungen abzubilden.
  • Phase 3: Dashboards wurden für Teamleiter erstellt, um die Qualitätsentwicklung zu überwachen, und Trend-Alerts wurden in Jenkins-Builds aktiviert.
  • Phase 4: Von CppDepend generierte Berichte wurden direkt in die bei Audits eingereichte ISO-26262-Dokumentation aufgenommen.

Ergebnisse nach 12 Wochen

MetrikVor CppDependNach 12 Wochen
MISRA-Verstöße2,030270
Architekturverstöße15827
Audit-Vorbereitungszeit3–5 Tage< 4 Stunden
Merge-Request-NacharbeitHochUm ~35 % reduziert

Ergebnisse & Vorteile

  • Automatisierte Compliance: Über 85 % der Durchsetzung von Coding-Standards sind nun automatisiert.
  • Kürzere Reviews: Manuelle Code-Reviews konzentrieren sich nun auf Logik statt auf Formatierung oder Struktur.
  • Audit-bereit: Sofortiger Zugriff auf aktualisierte Metriken und Berichte, die auf Sicherheitsanforderungen abgestimmt sind.
  • Verbesserte Zusammenarbeit: Visuelle Abhängigkeitsgraphen halfen neuen Ingenieuren, Subsystemgrenzen schneller zu verstehen.
  • Bessere Planung: Mit Trenddaten und Metriken zu technischen Schulden konnte das Team Refactoring-Maßnahmen strategisch priorisieren.

Warum CppDepend?

CppDepend überzeugte, weil es tiefe Codeanalyse, anpassbare Regeln und Architekturkontrolle in einer einzigen Lösung vereinte, die direkt in den Entwicklungsworkflow des Teams eingebunden wurde. Im Gegensatz zu einfachen Lintern oder Checkern bot es eine strategische Sicht auf die Codebasis — unverzichtbar in einem sicherheitskritischen Umfeld mit langem Lebenszyklus wie eingebetteter Automobilsoftware.

Fazit

Durch die Integration von CppDepend in ihren Entwicklungsworkflow transformierte der Automobilzulieferer die Durchsetzung von Coding-Standards, das Architekturmanagement und die Vorbereitung von ISO-26262-Audits. Was einst ein manueller, zeitaufwendiger Prozess war, wurde automatisiert, messbar und konsistent.

CppDepend befähigte die Entwicklungsteams, Probleme frühzeitig zu erkennen, Review-Aufwand zu reduzieren und sicherheitskritische Qualitätsstandards skalierbar einzuhalten. Dadurch steigerten sie die Produktivität, reduzierten technische Risiken und trieben die Entwicklung eingebetteter Fahrzeugsysteme der nächsten Generation zuversichtlich voran — unter Einhaltung der strengsten Automobil-Sicherheitsstandards.

← Zurück zur Automobil-Übersicht

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.