6.7 KiB
demo-epb — Elektrische Parkbremse
Vollständige Demo des slohmaier Dev Process anhand einer EPB-Steuergerät-Software. Zeigt ASPICE 4.0 / ISO 26262-konforme Entwicklung im Monorepo: Anforderungen, Architektur, Code, Tests, Reviews, MISRA, Safety Case, Manuals — alles auf einen Pull-Request-Klick verifizierbar, alles in einem Release-Bundle.
🌐 Live-Dashboard: https://gitea.slohmaier.com/pages/demo-epb/ Auto-aktualisiert bei jedem Push auf
mainund bei jedem Release-Tag.
Diese Software ist bewusst kein Produktivcode — sie ist die Demonstration des Engineering-Verfahrens. Code-Umfang bewusst klein, Prozess-Tiefe vollständig.
Was die Demo zeigt
| Kategorie | Inhalt |
|---|---|
| Pläne (Word) | 5 (PID, PM-, QA-, SWE-, Test-Plan) |
| Safety-Doku (Word) | 6 (HARA, Safety Case, FMEDA, MISRA-Compliance, Verification-Report, Tool-Qualification) |
| Manuals (Word) | 2 (User-Manual, Service-Manual) |
| Audit-Artefakte (Word) | 3 (Review-Protokoll, Non-Conformity, MISRA-Deviation-Record) |
| System-Anforderungen | 10 in reqs/sys/ (Markdown + Doorstop-Style) |
| Software-Anforderungen | 25 in reqs/swe/ |
| System-Architektur | 5 in arch/sys/ mit PlantUML |
| Software-Architektur | 10 in arch/swe/ mit PlantUML |
| Implementierte C-Komponenten | 4 (Apply Ctrl D, Safety Mgr D, Actuator Drv B, Switch Db QM) |
| Stub-Komponenten | 6 weitere (Header only) |
| Unit-Tests | 41, alle grün |
| CI-Workflows | 2 (validate + release) |
| CI-Artefakte | Coverage HTML, Traceability Matrix, Diagramme SVG, Doxygen, Test-Report, Cppcheck-XML |
| Cross-Platform-Runner | Linux + macOS + Windows |
Quick Start
git clone https://gitea.slohmaier.com/slohmaier/demo-epb.git
cd demo-epb
# Tests
make test # 41 Tests, alle grün
# Mit Coverage (braucht lcov)
make coverage
open build/coverage-html/index.html
# Test-Summary-Report (HTML)
make test-report
open build/test-report.html
# Statische Analyse + MISRA (braucht cppcheck)
make static
make misra
# API-Doku (braucht doxygen)
make docs
open build/api-doc/html/index.html
# Traceability-Matrix (HTML)
python3 tools/traceability.py publish docs/traceability
open docs/traceability/index.html
# PlantUML-Diagramme rendern (SVG)
python3 tools/render_plantuml.py
Geführte Tour (~30 min)
1. Projektplanung (Word)
docs/:
- PID.docx — Was wird gebaut und warum
- SWE-Plan.docx — Sprache, Standards, Branching, Reviews, Coverage-Ziele
- QA-Plan.docx — Qualitätsmaßnahmen, Reviews, NC-Management
- PM-Plan.docx, Test-Plan.docx — Arbeitspakete + Teststrategie
2. Funktionale Sicherheit (Word — docs/safety/)
- HARA.docx — Hazard Analysis & Risk Assessment. Leitet ASIL-D ab.
- Safety-Case.docx — Argumentation in GSN-Style, warum die Sicherheitsziele erfüllt sind
- FMEDA.docx — Pro-Komponente Failure Modes mit Diagnostic Coverage
- Tool-Qualification-Cppcheck.docx — Tool-Qual für Cppcheck (TI2/TD2/TCL2)
- MISRA-Compliance-Statement.docx — formaler Compliance-Nachweis
- Verification-Report.docx — V-Modell rechte Seite zusammenfassend
3. Manuals (Word — docs/manuals/)
- User-Manual.docx — Fahrerhandbuch-Auszug (Apply, Release, Hill-Hold, LED-Codes)
- Service-Manual.docx — Werkstatt-Doku mit UDS-DTCs, Service-Modus, Sensor-Prüfung
4. Sicherheits-Logik (das ASIL-D Stück)
Traceability-Kette:
reqs/sys/SYS-001.md → arch/swe/SWA-002.md → src/apply_controller.c → tests/unit/test_apply_controller.c
5. Anforderungen + Architektur (Doorstop in Markdown)
reqs/sys/+reqs/swe/— Anforderungen mit Mappingarch/sys/+arch/swe/— Architektur mit Mapping perlinks:im Frontmatter- Eingebettete PlantUML-Diagramme rendern direkt in Gitea (UI) und als SVG im Release-Bundle
6. Code mit Mapping-Tags
Jede .c-Datei trägt @arch, @reqs, @asil im Header:
/**
* @file apply_controller.c
* @arch SWA-002
* @reqs SWE-001 SWE-002 SWE-003 SWE-004
*
* ASIL: D.
*/
7. Tests mit Anforderungs-Tags
tests/unit/test_*.c referenziert die Requirements per @reqs. Test-Report (build/test-report.html) macht das Mapping klickbar sichtbar.
8. Audit-Artefakte
docs/reviews/REV-001.docx— Review-Protokoll für die ASIL-D-Komponentedocs/non-conformities/NC-001.docx— NC mit Korrekturmaßnahmemisra/records/MISRA-REC-001.docx— MISRA Advisory-Deviation
9. CI-Pipeline (.gitea/workflows/validate.yml)
Bei jedem Push:
- Cross-Platform Build + Test auf Linux + macOS + Windows
- Static Analysis (Cppcheck)
- MISRA-Check (Cppcheck + MISRA-Addon)
- Coverage (gcov/lcov)
- Traceability-Check (bidirektional)
- PlantUML-Render (alle Diagramme als SVG)
- Doxygen-API-Doc
- Test-Summary-Report
Alles als Gitea-Artefakte abrufbar.
10. Release-Workflow (.gitea/workflows/release.yml)
Auf Tag-Push v*.*.*:
- Vollständigen Build + alle Reports
- Bündelt Source-Archive + Artefakt-Archive (CI-Output + alle Word-Docs)
- Erzeugt Gitea-Release mit Release-Notes
Beispiel: https://gitea.slohmaier.com/slohmaier/demo-epb/releases
Architektur-Überblick
EPB ECU (SA-001)
+----------------------------------+
| Safety Manager (D) | ← arch/swe/SWA-001.md
| Apply Controller (D) | ← arch/swe/SWA-002.md
| Actuator Driver (B) | ← arch/swe/SWA-003.md
| Wheel Speed Plausi (B) [stub] |
| Inclino Filter (B) [stub] |
| Switch Debouncer (QM) | ← arch/swe/SWA-006.md
| Display Manager (QM) [stub] |
| Diag Manager (QM) [stub] |
| Service Mode (QM) [stub] |
| Logger (QM) [stub] |
+----------------------------------+
| |
Aktor L (SA-002) Aktor R (SA-002)
Format-Strategie
| Inhalt | Format | Begründung |
|---|---|---|
| Pläne + Safety + Audit + Manuals | Word (.docx) | Industriestandard für ISO-9001-Freigabe |
| Requirements + Architektur | Markdown (Doorstop-Stil) | Lebendig, diff-bar, Traceability per Skript |
| Code, Tests, CI | C / YAML | klar |
| Release-Bundle | tar.gz mit allem | Eine Datei für den Auditor |
Markdown ist Source of Truth, Word wird per pandoc daraus gebaut.
Referenzen
- slohmaier/dev-process — Methodik-Repo
- ASPICE 4.0
- ISO 26262 (insbesondere Part 2, 3, 5, 6, 8, 10)
- MISRA C:2012
Lizenz
MIT — siehe LICENSE. Tue May 12 02:28:37 PDT 2026