CppDepend
Medizinprodukte — Fallstudie

Fallstudie: IEC-62304-Compliance und Code-Wartbarkeit in eingebetteten Medizinprodukten erreichen

Der Kunde entwickelte Embedded-Firmware für ein Patientenüberwachungsgerät der Klasse III in der Herzversorgung. Aufgrund seines lebenskritischen Charakters musste die Software IEC 62304 (Sicherheitsklasse C)…

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: IEC-62304-Compliance und Code-Wartbarkeit in eingebetteten Medizinprodukten erreichen

Branche: MedizinprodukteKundenprofil: US-amerikanisches MedTech-Unternehmen, spezialisiert auf implantierbare und diagnostische GeräteBereich: Embedded-Software für Patientenüberwachung und drahtlose TelemetrieTeamgröße: 35 Embedded-Software-IngenieureSprachen: C, C++Zentrale Normen: IEC 62304, FDA Guidance, MISRA C/C++, CERT C

Die Herausforderung

Der Kunde entwickelte Embedded-Firmware für ein Patientenüberwachungsgerät der Klasse III in der Herzversorgung. Aufgrund seines lebenskritischen Charakters musste die Software IEC 62304 (Sicherheitsklasse C) und FDA-Richtlinien erfüllen und gleichzeitig strenge interne Standards für Portabilität, Robustheit und Rückverfolgbarkeit einhalten.

Das Team stieß während der Entwicklung auf mehrere Hindernisse:

  • Manuelle Verifikation war nicht tragbar: Manuelle Code-Reviews für Sicherheits- und Portabilitätsregeln (MISRA, CERT) waren fehleranfällig und verschlangen ~30 % der Entwicklungszeit.
  • Schwierigkeiten bei der Durchsetzung interner Sicherheitsregeln: Kritische Logik wie Geräte-Start-Routinen musste strengen Kontrollfluss- und Ressourcenallokations-Mustern folgen, die inkonsistent durchgesetzt wurden.
  • Audit-Dokumentation war über mehrere Tools verstreut, erforderte erhebliche Nachbereitung und hinkte Codeänderungen oft hinterher.
  • Legacy-Code-Risiko: Ältere Module (teils über 10 Jahre alt) wurden wiederverwendet und entsprachen nicht modernen Sicherheitserwartungen.

Sie benötigten eine statische Analyselösung, die formale Sicherheitsprozesse unterstützen, Regeldurchsetzung automatisieren und Rückverfolgbarkeits-Artefakte im Einklang mit IEC 62304 Abschnitt 5.5 und 5.7 liefern konnte (Verifikations- und Architekturdesign-Dokumentation).

Die Lösung: CppDepend

CppDepend wurde als zentrales Quality-Gate-Tool während des Übergangs des Projekts vom Prototyp zur regulatorischen Einreichung eingeführt. Zentrale Ziele:

  • Automatisierung von Compliance-Prüfungen für MISRA, CERT und interne Coding-Richtlinien
  • Erstellung von Codemetriken und Dokumentation zur Einreichung bei Benannten Stellen
  • Sicherstellung langfristiger Wartbarkeit durch kontinuierliche Architekturvalidierung
  • Schaffung von Transparenz technischer Schulden zur Unterstützung des Risikomanagements

CppDepends anpassbare CQLinq-Regel-Engine und leistungsstarke Abhängigkeitsanalyse ermöglichten es, die Plattform sowohl an regulatorische als auch interne Anforderungen anzupassen.

Umsetzungsstrategie

Phase 1 – Sicherheits-Baseline (Wochen 1–3)

  • Gesamte Embedded-Codebasis (~400K LOC) gescannt und identifiziert:
  • ~950 MISRA-Verstöße
  • 40+ Funktionen über dem Schwellenwert für zyklomatische Komplexität
  • Über 200 riskante Konstrukte (z. B. dynamischer Speicher, tiefe Verschachtelung)

Phase 2 – Standards-Integration (Wochen 4–6)

  • Eine Reihe benutzerdefinierter CQLinq-Regeln entwickelt zur Durchsetzung von Ressourcenmanagement-Vorgaben, Startup-Sequenzierungs-Richtlinien und Fehlerbehandlungslogik.
  • Berichte an IEC-62304-Verifikationsschritte und FDA-Software-Dokumentationsleitfaden angeglichen.

Phase 3 – Automatisierung & Rückverfolgbarkeit (Wochen 7–10)

  • CppDepend in die CI/CD-Pipeline (Jenkins-basiert) mit nächtlichen Berichten integriert.
  • Visuelle Architekturdiagramme zur Begleitung von Software-Risikoanalyse-Dokumenten erstellt (gemäß ISO 14971).
  • Zusammenfassungs-Dashboards zum internen Confluence für QA- und V&V-Teams hinzugefügt.

Ergebnisse nach 10 Wochen

MetrikVor CppDependNach 10 Wochen
MISRA/CERT-Verstöße950+< 120
Funktionen über dem Komplexitätsschwellenwert40+8
Zeit zur Erstellung der Audit-Dokumentation4–5 Tage< 6 Stunden
Schätzung technischer Schulden (SQA)~17%8.3%
Vor Release erkannte Regressionsprobleme~60 % manuell95 % automatisiert

Ergebnisse & Vorteile

  • Vereinfachte IEC-62304-Verifikation: CppDepend wurde direkt verwendet, um IEC-62304-Abschnitte zu Verifikation und Architektur zu erfüllen, was Audits vereinfachte.
  • Verbesserte Codequalität: Teams berichteten von weniger Defekten, klarerem Code und mehr Vertrauen in wiederverwendete Module.
  • Entwickler-Befähigung: Feedbackschleifen wurden durch die Integration der Analyse in die tägliche Entwicklung verkürzt, wodurch Regelverstöße vor Erreichen der QA verhindert wurden.
  • Skalierbar für zukünftige Produkte: CppDepend-Templates und -Regeln wurden für andere Geräte in der Pipeline des Kunden wiederverwendet, was die Wiederverwendung von Sicherheitsprozessen beschleunigte.

Warum CppDepend?

CppDepend bot eine einzigartige Kombination aus normbasierter Regelprüfung, benutzerdefinierter Regelerweiterbarkeit und regulatorisch ausgerichtetem Reporting. Im Gegensatz zu einfachen Lintern half es dem Team, über Architekturdesign, Risikoexposition und langfristige Code-Nachhaltigkeit nachzudenken — ideal für den Entwicklungslebenszyklus von Medizinprodukten.

Fazit

Mit CppDepend verbesserte das MedTech-Team die Code-Compliance deutlich, reduzierte den Review-Aufwand und optimierte die Sicherheitsdokumentation. Dadurch reichten sie ihr Klasse-III-Gerät mit stärkerer Begründung und schnellerer Audit-Bearbeitung ein — und machten ihren Code zukunftssicher für Wartung und Wiederverwendung in Folgemodellen.

← Zurück zur Übersicht Medizinprodukte

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.