Files
demo-epb/README.md
T
Stefan Lohmaier 76c90a1057
Validate / build-test (macos-latest) (push) Failing after 2s
Validate / build-test (windows-latest) (push) Failing after 15s
Validate / build-test (ubuntu-latest) (push) Failing after 15s
Validate / reports (push) Has been skipped
ci: trigger fresh build
2026-05-12 02:28:37 -07:00

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 main und 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 Mapping
  • arch/sys/ + arch/swe/ — Architektur mit Mapping per links: 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-Komponente
  • docs/non-conformities/NC-001.docx — NC mit Korrekturmaßnahme
  • misra/records/MISRA-REC-001.docx — MISRA Advisory-Deviation

9. CI-Pipeline (.gitea/workflows/validate.yml)

Bei jedem Push:

  1. Cross-Platform Build + Test auf Linux + macOS + Windows
  2. Static Analysis (Cppcheck)
  3. MISRA-Check (Cppcheck + MISRA-Addon)
  4. Coverage (gcov/lcov)
  5. Traceability-Check (bidirektional)
  6. PlantUML-Render (alle Diagramme als SVG)
  7. Doxygen-API-Doc
  8. 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