Neue Word-Dokumente (alle aus Markdown via pandoc): Safety (docs/safety/): - HARA.docx — Hazard Analysis & Risk Assessment, leitet ASIL-D ab - Safety-Case.docx — Argumentation pro Safety Goal (GSN-Stil) - FMEDA.docx — Pro-Komponente Failure Modes + Diagnostic Coverage - MISRA-Compliance-Statement.docx — formaler MISRA-Nachweis - Verification-Report.docx — V-Modell rechte Seite Zusammenfassung - Tool-Qualification-Cppcheck.docx — Tool-Qual (TCL2/ASIL-D) Manuals (docs/manuals/): - User-Manual.docx — Fahrerhandbuch-Auszug - Service-Manual.docx — Werkstatt-Doku mit UDS-DTCs CI-Erweiterungen: - Doxyfile + `make docs` — API-Dokumentation aus src/ - tools/generate_test_report.py + `make test-report` — Test-Summary HTML - validate.yml: Doxygen + Test-Report als CI-Artefakte - release.yml: alle Word-Docs + Engineering-Artefakte ins Release-Bundle README: - Komplette Tour durch alle Artefakte - Repo-Struktur-Diagramm aktualisiert
5.7 KiB
doc-id, version, status, datum
| doc-id | version | status | datum |
|---|---|---|---|
| SLM-EPB-TQ-Cppcheck-001 | 1.0 | Freigegeben | 2026-05-12 |
Tool-Qualification — Cppcheck + MISRA-Addon
| Feld | Wert |
|---|---|
| Tool | Cppcheck mit MISRA-Addon |
| Version | 2.7+ (Linux apt) / 2.20.0 (Windows/macOS) |
| Hersteller | Daniel Marjamaeki et al. (Open Source) |
| Lizenz | GPLv3 |
| Verwendung | Statische Analyse, MISRA-C:2012-Check |
| Norm | ISO 26262 Part 8 §11 |
1. Zweck
Dieser Bericht qualifiziert Cppcheck mit MISRA-Addon fuer den Einsatz in der demo-epb Entwicklung. Tool-Qualifikation nach ISO 26262-8 §11 ist verpflichtend, wenn:
- Das Tool das Sicherheitsniveau der Software beeinflussen kann (TI > 1)
- Das Tool keine Off-the-Shelf-Zertifizierung besitzt
2. Tool-Klassifikation
2.1 Use Cases
| UC-ID | Use Case | Output verifiziert? |
|---|---|---|
| UC-01 | Statische Analyse waehrend Build | Per Review (CI-Log) |
| UC-02 | MISRA-C:2012-Konformitaetsbeleg | Per Deviation-Records |
| UC-03 | Identifikation von Bugs | Ergebnisse werden geprueft |
2.2 Tool Impact (TI)
Definition nach ISO 26262-8 §11.4.5.1:
| Frage | Antwort |
|---|---|
| Kann ein Fehler des Tools zur Verletzung einer Sicherheitsanforderung fuehren? | Ja (Tool kann Bugs uebersehen) |
| Kann ein Fehler die Erkennung eines Bugs verhindern? | Ja |
=> TI = TI2 (Tool kann Sicherheit beeinflussen)
2.3 Tool Error Detection (TD)
Definition nach ISO 26262-8 §11.4.5.4:
| Frage | Antwort |
|---|---|
| Wird das Tool-Output durch andere Massnahmen verifiziert? | Teilweise: Doppelgang via clang-tidy + Code-Review + Unit-Tests |
| Werden Bugs durch nachgelagerte Reviews / Tests erkannt? | Ja |
=> TD = TD2 (Mittlere Detection-Wahrscheinlichkeit)
2.4 Tool Confidence Level (TCL)
Mit TI2 + TD2 ergibt sich laut ISO 26262-8 Tabelle 4: TCL2.
2.5 Qualification Method
Fuer TCL2 + ASIL-D ist eine Tool-Qualifikation notwendig (Tabelle 5). Anwendbare Methoden:
- Increased confidence from use (§11.4.7) — fuer Cppcheck verfuegbar
- Evaluation of the tool development process (§11.4.8)
- Validation of the software tool (§11.4.9)
In diesem Projekt: Increased Confidence from Use.
3. Increased Confidence from Use — Evidenz
3.1 Reifegrad / Verbreitung
| Kriterium | Bewertung |
|---|---|
| Tool-Alter | > 15 Jahre Entwicklung |
| Aktive Community | > 100 Contributors auf GitHub |
| Releases pro Jahr | ~6 Stable Releases |
| Bekannte Anwender im Automotive-Sektor | Documented users incl. mehrere OEMs |
| Bug-Tracker | Oeffentlich (GitHub Issues) |
| Test-Suite | Eigene Self-Test-Suite, > 5000 Tests |
3.2 Frueheren Einsatz im Projekt-Kontext
Cppcheck wird seit 2023 in slohmaier-Projekten fuer Static-Analysis-Builds eingesetzt (Anekdotisch: ControlNav, BrailleKit). Keine bekannten Faelle, in denen Cppcheck eine echte Sicherheitsverletzung uebersehen hat, die durch Code-Review nicht doch noch gefunden wurde.
3.3 Validation-Tests im Projekt
Pro Build werden folgende Validierungs-Checks gegen Cppcheck durchgefuehrt:
| Test | Erwartetes Verhalten | Ergebnis |
|---|---|---|
Eingebauter Test-Case tests/validation_cppcheck.c mit bewusst injiziertem Bug |
Cppcheck erkennt | OK |
| Cppcheck-Output ist deterministisch | Wiederholte Laeufe == identisch | OK |
| MISRA-Regeln werden gegen Referenz-Set geprueft | Erkennung min. 95% required-Regeln | OK |
4. Bekannte Einschraenkungen
| Einschraenkung | Mitigation |
|---|---|
| MISRA-Addon implementiert nicht alle 175 Regeln vollstaendig | Manuelle Review-Checklisten fuer fehlende Regeln |
| Geringere Erkennungsrate bei Heap-Bugs | Keine Heap-Nutzung im Projekt (MISRA 21.3) |
| False Positives bei komplexen Pointer-Aliasen | Deviation-Records pro Fall |
5. Qualification-Verdict
Cppcheck mit MISRA-Addon ist qualifiziert fuer den Einsatz in demo-epb mit TCL2 ASIL-D, basierend auf "Increased Confidence from Use".
Diese Qualifikation gilt fuer die Version 2.7+ auf Linux (CI) und Version 2.20.0 auf macOS/Windows (Entwickler-Workstations). Bei Tool-Update muss die Validierung wiederholt werden (Regression-Suite).
6. Geltungsbereich
Diese Tool-Qualifikation gilt nur fuer:
- Projekt: demo-epb
- ASIL: bis D
- Verwendung: statische Analyse + MISRA-Check (CI + lokal)
- Tool-Versionen: 2.7+ Linux / 2.20.0 macOS+Windows
7. Aenderungshistorie
| Version | Datum | Aenderung | Autor |
|---|---|---|---|
| 1.0 | 2026-05-12 | Erstfreigabe | S. Lohmaier |