JSF++ AV (Joint Strike Fighter Air Vehicle) C++ Coding-Standard mit CppDepend
Wie CppDepend den JSF Air Vehicle C++ Coding-Standard (JSF++) durchsetzt: Regelautomatisierung, MISRA-abgeleitete Prüfungen und Architekturkontrolle für sicherheitskritisches Avionik-C++.
Was CppDepend standardmäßig unterstützt. CppDepend wird mit integrierten Regelsätzen ausgeliefert für MISRA C/MISRA C++, CWE, CERT C/CERT C++ und AUTOSAR C++14 — und kein anderer Standard. Alle anderen Standards, einschließlich diesem, werden durchgesetzt über benutzerdefinierte CQLinq-Regeln die Ihr Team schreibt (bei Bedarf mit unserer Hilfe), plus Architekturvalidierung und CI-Quality-Gates.
JSF++ AV (Joint Strike Fighter Air Vehicle Coding Standards, Lockheed Martin, 2005) ist einer der einflussreichsten C++-Coding-Standards für sicherheitskritische Avionik. Für das F-35-Programm geschrieben, definiert er 221 Regeln zu Sprachteilmengen, Exception-Handling, Speicherverwaltung, Templates und Determinismus. Er beeinflusste MISRA C++:2008 maßgeblich und bleibt eine Referenz für Verteidigungsprogramme, die C++ unter DO-178C fliegen.
Zentrale JSF++-AV-Regelthemen
Vorhersagbares Verhalten: kein undefiniertes oder implementierungsdefiniertes Verhalten; strikte Initialisierungs- und Typsicherheitsregeln.
Deterministische Ressourcennutzung: strenge Kontrolle über dynamischen Speicher — Allokation nur in definierten Phasen, keine Leaks, begrenzte Nutzung.
Exception-Disziplin: Exceptions nur unter strikten Mustern (oder verboten), damit der Kontrollfluss analysierbar bleibt.
Überprüfbarer Code: Grenzen für Komplexität, Funktionsgröße und Kopplung, damit Code von Menschen und Tools verifizierbar bleibt.
Wie CppDepend JSF++-artige Durchsetzung automatisiert
Benutzerdefinierte CQLinq-Regeln: formalisieren Sie JSF++-AV-Regeln (und Ihre programmspezifische Anpassung) als ausführbare Abfragen — keine manuellen Checklisten mehr.
MISRA C++ integriert: JSF++ teilt den Großteil seiner DNA mit MISRA C++:2008 — der integrierte Regelsatz deckt den gemeinsamen Kern sofort ab.
Architekturkontrolle: setzen Sie das Layering zwischen Missions-Software, Plattformdiensten und Treibern durch.
Quality Gates: machen Sie JSF++-Compliance zu einem merge-blockierenden Kriterium in CI, mit Baselines für Legacy-Code.
Nachweise für Audits: exportierbare regelbasierte Compliance-Berichte für Programm-Reviews.