feat(i18n): full English translation of demo-epb
Validate / build-test (macos-latest) (push) Failing after 3s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Successful in 17s
Validate / reports (push) Successful in 50s
Release / release (push) Successful in 50s
Validate / build-test (macos-latest) (push) Failing after 3s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Successful in 17s
Validate / reports (push) Successful in 50s
Release / release (push) Successful in 50s
Phase 2 of the English translation: Word documents (filled, EPB-specific): - 8 plans (PID, PM, QA, SWE, Test, Project Manual, CM, RM) - 6 safety docs (HARA, Safety Case, FMEDA, MISRA Compliance, Verification Report, Tool Qualification Cppcheck) - 2 manuals (User, Service) - 3 audit artefacts (Review minutes, NC-001, MISRA-REC-001) - All regenerated via pandoc from English markdown sources Code, tests, headers: - All file headers, struct comments, function docstrings in English - All test names (TEST_BEGIN strings) translated - Inline comments translated - 46 tests still green after translation CI workflows: - All step names in English - Step descriptions, comments, release notes template in English README.md fully rewritten in English with proper guided tour. Phase 3 (still pending): dev-process repo templates + toolstack/setup docs.
This commit is contained in:
@@ -1,136 +1,127 @@
|
||||
---
|
||||
doc-id: SLM-EPB-TQ-Cppcheck-001
|
||||
version: 1.0
|
||||
status: Freigegeben
|
||||
datum: 2026-05-12
|
||||
status: Released
|
||||
date: 2026-05-12
|
||||
---
|
||||
|
||||
# Tool-Qualification — Cppcheck + MISRA-Addon
|
||||
# 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 |
|
||||
| Field | Value |
|
||||
|---------------|----------------------------------------|
|
||||
| Tool | Cppcheck with MISRA addon |
|
||||
| Version | 2.7+ (Linux apt) / 2.20.0 (Windows/macOS) |
|
||||
| Vendor | Daniel Marjamäki et al. (open source) |
|
||||
| Licence | GPLv3 |
|
||||
| Use | Static analysis, MISRA C:2012 check |
|
||||
| Standard | ISO 26262 Part 8 §11 |
|
||||
|
||||
---
|
||||
|
||||
## 1. Zweck
|
||||
## 1. Purpose
|
||||
|
||||
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:
|
||||
This report qualifies Cppcheck with the MISRA addon for use in demo-epb development. Tool qualification per ISO 26262-8 §11 is mandatory when:
|
||||
|
||||
- Das Tool das Sicherheitsniveau der Software beeinflussen kann (TI > 1)
|
||||
- Das Tool keine Off-the-Shelf-Zertifizierung besitzt
|
||||
- The tool can influence the safety level of the software (TI > 1)
|
||||
- The tool lacks off-the-shelf certification
|
||||
|
||||
## 2. Tool-Klassifikation
|
||||
## 2. Tool classification
|
||||
|
||||
### 2.1 Use Cases
|
||||
### 2.1 Use cases
|
||||
|
||||
| UC-ID | Use Case | Output verifiziert? |
|
||||
| UC-ID | Use case | Output verified? |
|
||||
|-------|-----------------------------------|----------------------------|
|
||||
| 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 |
|
||||
| UC-01 | Static analysis during build | Via review (CI log) |
|
||||
| UC-02 | MISRA C:2012 compliance evidence | Via deviation records |
|
||||
| UC-03 | Bug identification | Findings are reviewed |
|
||||
|
||||
### 2.2 Tool Impact (TI)
|
||||
|
||||
Definition nach ISO 26262-8 §11.4.5.1:
|
||||
Definition per ISO 26262-8 §11.4.5.1:
|
||||
|
||||
| Frage | Antwort |
|
||||
| Question | Answer |
|
||||
|------------------------------------------------------------------------|-----------|
|
||||
| Kann ein Fehler des Tools zur Verletzung einer Sicherheitsanforderung fuehren? | Ja (Tool kann Bugs uebersehen) |
|
||||
| Kann ein Fehler die Erkennung eines Bugs verhindern? | Ja |
|
||||
| Can a tool error lead to a violation of a safety requirement? | Yes (the tool may miss bugs) |
|
||||
| Can a tool error prevent detection of a bug? | Yes |
|
||||
|
||||
=> **TI = TI2** (Tool kann Sicherheit beeinflussen)
|
||||
⇒ **TI = TI2** (the tool can influence safety)
|
||||
|
||||
### 2.3 Tool Error Detection (TD)
|
||||
|
||||
Definition nach ISO 26262-8 §11.4.5.4:
|
||||
Definition per 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 |
|
||||
| Question | Answer |
|
||||
|------------------------------------------------------------------------|--------------|
|
||||
| Is the tool output verified by other measures? | Partially: redundant via clang-tidy + code review + unit tests |
|
||||
| Are bugs detected by downstream reviews / tests? | Yes |
|
||||
|
||||
=> **TD = TD2** (Mittlere Detection-Wahrscheinlichkeit)
|
||||
⇒ **TD = TD2** (medium detection probability)
|
||||
|
||||
### 2.4 Tool Confidence Level (TCL)
|
||||
|
||||
Mit TI2 + TD2 ergibt sich laut ISO 26262-8 Tabelle 4: **TCL2**.
|
||||
With TI2 + TD2 we obtain per ISO 26262-8 Table 4: **TCL2**.
|
||||
|
||||
### 2.5 Qualification Method
|
||||
### 2.5 Qualification method
|
||||
|
||||
Fuer TCL2 + ASIL-D ist eine **Tool-Qualifikation** notwendig (Tabelle 5).
|
||||
Anwendbare Methoden:
|
||||
For TCL2 + ASIL-D, a **tool qualification** is required (Table 5). Applicable methods:
|
||||
|
||||
- Increased confidence from use (§11.4.7) — fuer Cppcheck verfuegbar
|
||||
- Increased confidence from use (§11.4.7) — available for Cppcheck
|
||||
- Evaluation of the tool development process (§11.4.8)
|
||||
- Validation of the software tool (§11.4.9)
|
||||
|
||||
In diesem Projekt: **Increased Confidence from Use**.
|
||||
In this project: **Increased Confidence from Use**.
|
||||
|
||||
## 3. Increased Confidence from Use — Evidenz
|
||||
## 3. Increased Confidence from Use — evidence
|
||||
|
||||
### 3.1 Reifegrad / Verbreitung
|
||||
### 3.1 Maturity / adoption
|
||||
|
||||
| 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 |
|
||||
| Criterion | Assessment |
|
||||
|----------------------------------------|------------------------------------------|
|
||||
| Tool age | > 15 years of development |
|
||||
| Active community | > 100 contributors on GitHub |
|
||||
| Releases per year | ~6 stable releases |
|
||||
| Known automotive users | Documented users including several OEMs |
|
||||
| Bug tracker | Public (GitHub Issues) |
|
||||
| Test suite | Own self-test suite, > 5000 tests |
|
||||
|
||||
### 3.2 Frueheren Einsatz im Projekt-Kontext
|
||||
### 3.2 Prior use in project context
|
||||
|
||||
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.
|
||||
Cppcheck has been used since 2023 in slohmaier projects for static-analysis builds (anecdotally: ControlNav, BrailleKit). No known cases where Cppcheck missed a real safety violation that wasn't subsequently caught by code review.
|
||||
|
||||
### 3.3 Validation-Tests im Projekt
|
||||
### 3.3 Validation tests in project
|
||||
|
||||
Pro Build werden folgende Validierungs-Checks gegen Cppcheck durchgefuehrt:
|
||||
Each build performs the following validation checks against Cppcheck:
|
||||
|
||||
| Test | Erwartetes Verhalten | Ergebnis |
|
||||
| Test | Expected behaviour | Result |
|
||||
|--------------------------------------------|----------------------------------|-----------|
|
||||
| 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 |
|
||||
| Built-in test case `tests/validation_cppcheck.c` with intentionally injected bug | Cppcheck detects it | OK |
|
||||
| Cppcheck output is deterministic | Repeated runs == identical | OK |
|
||||
| MISRA rules checked against reference set | Detection ≥ 95% required rules | OK |
|
||||
|
||||
## 4. Bekannte Einschraenkungen
|
||||
## 4. Known limitations
|
||||
|
||||
| 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 |
|
||||
| Limitation | Mitigation |
|
||||
|------------------------------------------|---------------------------------------------|
|
||||
| MISRA addon does not implement all 175 rules completely | Manual review checklists for missing rules |
|
||||
| Lower detection rate for heap bugs | No heap usage in this project (MISRA 21.3) |
|
||||
| False positives on complex pointer aliasing | Per-instance deviation records |
|
||||
|
||||
## 5. Qualification-Verdict
|
||||
## 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".
|
||||
Cppcheck with the MISRA addon is **qualified** for use in demo-epb at TCL2 ASIL-D, based on "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).
|
||||
This qualification applies to version 2.7+ on Linux (CI) and version 2.20.0 on macOS/Windows (developer workstations). On tool update the validation must be repeated (regression suite).
|
||||
|
||||
## 6. Geltungsbereich
|
||||
## 6. Scope
|
||||
|
||||
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
|
||||
This tool qualification applies **only** to:
|
||||
- Project: demo-epb
|
||||
- ASIL: up to D
|
||||
- Use: static analysis + MISRA check (CI + local)
|
||||
- Tool versions: 2.7+ Linux / 2.20.0 macOS+Windows
|
||||
|
||||
## 7. Aenderungshistorie
|
||||
## 7. Revision history
|
||||
|
||||
| Version | Datum | Aenderung | Autor |
|
||||
|---------|-------------|-------------------------|----------------|
|
||||
| 1.0 | 2026-05-12 | Erstfreigabe | S. Lohmaier |
|
||||
| Version | Date | Change | Author |
|
||||
|---------|-------------|---------------------|------------|
|
||||
| 1.0 | 2026-05-12 | First release | S. Lohmaier|
|
||||
|
||||
Reference in New Issue
Block a user