c54a9c55d2
Validate / build-test (macos-latest) (push) Failing after 4s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Failing after 15s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 50s
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
137 lines
5.7 KiB
Markdown
137 lines
5.7 KiB
Markdown
---
|
|
doc-id: SLM-EPB-TQ-Cppcheck-001
|
|
version: 1.0
|
|
status: Freigegeben
|
|
datum: 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 |
|