CppDepend
Software-Anbieter — Fallstudie

Fallstudie: Produktentwicklung skalieren bei gleichbleibender Qualität mit CppDepend

Das Unternehmen entwickelte und pflegte eine Suite von Enterprise-Tools für großskalige Datenanalyse unter Windows, Linux und macOS. Die Flaggschiff-C++-Anwendung war im 9. Jahr und auf über…

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: Produktentwicklung skalieren bei gleichbleibender Qualität mit CppDepend

Branche: Software-ProduktentwicklungKundenprofil: Mittelgroßer B2B-Software-Anbieter für Enterprise-Datenanalyse-ToolsBereich: Plattformübergreifende C++-Desktop- und ServeranwendungenTeamgröße: 60 Ingenieure (Kernentwicklung, Plattform, QA und DevOps)Sprachen: C++, C#, Python (für Tests und Deployment)Zentrale Ziele: Codequalität, Architektur-Skalierbarkeit, Teamkonsistenz, CI-Governance

Die Herausforderung

Das Unternehmen entwickelte und pflegte eine Suite von Enterprise-Tools für großskalige Datenanalyse unter Windows, Linux und macOS. Die Flaggschiff-C++-Anwendung war im 9. Jahr und auf über 2,8 Millionen Codezeilen angewachsen. Sie standen vor erheblichen Skalierungs- und Qualitätsproblemen:

  • Architekturdrift: Teams, die an überlappenden Modulen arbeiteten (UI, Backend, Reporting-Engine), durchbrachen unbeabsichtigt das Layering und führten enge Kopplung ein.
  • Inkonsistente Coding-Praktiken: Ingenieure aus verschiedenen Teams und mit unterschiedlichem Hintergrund führten Stil-, Performance- und Speicherverwaltungs-Inkonsistenzen ein.
  • Regressionsmüdigkeit: Refactorings und neue Features führten zu häufigen Brüchen in nicht verwandten Systemteilen und erhöhten den QA-Aufwand.
  • Schleppendes Onboarding: Neue Mitarbeiter taten sich schwer, die Systemarchitektur zu verstehen, was die Zeit bis zur Produktivität verlängerte.
  • CI-Durchsetzungslücken: Ihre CI-Pipeline prüfte Formatierung und grundlegende Unit-Tests, aber es fehlten tiefe strukturelle Validierung und Wartbarkeitsprüfungen.

Das Führungsteam wollte die Entwicklungsgeschwindigkeit erhalten, ohne langfristige Qualität zu opfern, und das Produktwachstum mit saubererer Architektur und planbarerer Lieferung unterstützen.

Die Lösung: CppDepend

CppDepend wurde als zentrales Tool zur Analyse, Governance und Überwachung der C++-Codebasis des Produkts eingeführt. Es half dem Unternehmen, Designentscheidungen durchzusetzen, technische Schulden zu verhindern und Entwicklern Klarheit über Struktur und Gesundheit des Produkts zu geben.

Primäre Ziele:

  • Architektur-Layering- und Modularitätsregeln durchsetzen
  • Technische Schulden und Komplexitätstrends über die Zeit überwachen
  • Quality Gates in der CI-Pipeline automatisieren
  • Onboarding und Code-Navigation mit Visualisierungen unterstützen
  • Frühes Feedback während Feature-Entwicklung und Refactoring geben

CppDepends Fähigkeit, Regeln anzupassen, Live-Dashboards zu erstellen und sich in die GitHub-Actions-Pipeline zu integrieren, ermöglichte eine reibungslose Einführung.

Umsetzungsprozess

Phase 1 – Struktur-Audit & Hotspot-Identifikation (Wochen 1–2)

  • Kernprodukt-Komponenten analysiert auf:
  • Komponentenverstöße (z. B. UI → Data-Layer-Zugriff)
  • Komplexitäts-Hotspots (z. B. lange Funktionen, große Klassen, hoher Fan-in)
  • ~400 Architekturverletzungen und Hochrisikomodule identifiziert.

Phase 2 – Regelsatz- & Dashboard-Konfiguration (Wochen 3–5)

  • CQLinq-Regeln erstellt für:
  • „Kein UI-Modul darf von Plattformcode abhängen“
  • „Klassen mit > 1.000 Zeilen oder > 20 Methoden markieren“
  • „Methoden mit zyklomatischer Komplexität > 25 hervorheben“
  • Teamspezifische Dashboards für visuelles Feedback und wöchentliche Reviews erstellt.

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

  • CppDepend in GitHub-Actions-Workflows integriert
  • Schwellenwerte für Merge-Blocking basierend auf neuen Regelverstößen definiert
  • Brown-Bag-Sessions durchgeführt, um Entwicklern das Interpretieren von Ergebnissen und das Planen von Fixes beizubringen

Ergebnisse nach 2 Monaten

MetrikVor CppDependNach 8 Wochen
Architektur-Regelverstöße400+< 80
Verstöße gegen Komplexitätsregeln150+35
Regressionsvorfälle pro Release7–91–2
Durchschnittliche Onboarding-Zeit4–5 Wochen2–3 Wochen
Entwicklerzufriedenheit (interne Umfrage)6.3 / 108.2 / 10

Ergebnisse & Vorteile

  • Sauberere Architektur: Entwickler erhielten nun Echtzeit-Feedback bei Verstoß gegen Architekturregeln, was langfristigen Verfall verhinderte.
  • Skalierbare Governance: CppDepend diente als „stiller Reviewer“ und standardisierte Best Practices über alle Teams hinweg.
  • Schnelleres Onboarding: Visuelle Code-Maps und Regelerklärungen halfen neuen Ingenieuren, sich schneller einzuarbeiten.
  • CI-gesteuerte Quality Gates: Bugs und technische Schulden wurden früh erkannt, nicht erst in der QA.
  • Vertrauen ins Refactoring: Mit der Änderungsauswirkungsanalyse konnten Ingenieure Teile der Codebasis modernisieren, ohne Regressionen zu fürchten.

Warum CppDepend?

CppDepend bot mehr als traditionelle Linter oder Formatter — es gab dem Unternehmen eine gemeinsame architektonische Vision, gestützt durch durchsetzbare Regeln und visuelles Strukturbewusstsein. Es befähigte Leads, Entscheidungen auf Fakten statt Annahmen zu treffen, und half dem Team zu skalieren, ohne in Legacy-Komplexität zu ertrinken.

Fazit

CppDepend wurde zu einem Eckpfeiler der Codequalitätsstrategie dieses Software-Anbieters. Durch die direkte Einbettung der Analyse in Entwicklungs- und Lieferprozess liefert das Unternehmen nun schneller Releases, arbeitet neue Talente effektiver ein und liefert saubereren, wartbareren Code über alle Produktlinien hinweg — ohne die Innovation zu bremsen.

← Zurück zur Übersicht Software-Anbieter

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.