Stefan Lohmaier 84fab72f23
Validate / build-test (macos-latest) (push) Failing after 1s
Validate / build-test (windows-latest) (push) Failing after 17s
Validate / build-test (ubuntu-latest) (push) Failing after 15s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 23s
ci: add release.yml — Gitea Release auf Tag-Push v* mit Artefakten
2026-05-12 00:33:33 -07:00

demo-epb — Elektrische Parkbremse

Vollstaendige Demo des slohmaier Dev Process anhand einer EPB-Steuergeraet-Software. Zeigt ASPICE 4.0 / ISO 26262-konforme Entwicklung in einem Monorepo: Anforderungen, Architektur, Code, Tests, Reviews, MISRA — alles auf einen Pull-Request-Klick verifizierbar.

Diese Software ist bewusst kein Produktivcode — sie ist die Demonstration des Engineering-Verfahrens. Code-Umfang absichtlich klein, Prozess-Tiefe vollstaendig.

Was die Demo zeigt

Artefakt-Typ Anzahl Pfad
Plaene (Word) 5 docs/*.docx
Audit-Artefakte (Word) 3 docs/reviews/, docs/non-conformities/, misra/records/
System-Anforderungen 10 reqs/sys/
Software-Anforderungen 25 reqs/swe/
System-Architektur 5 arch/sys/
Software-Architektur 10 arch/swe/
Implementierte Komponenten 3 (1×ASIL-D, 1×ASIL-B, 1×QM) src/
Stub-Komponenten 7 src/stubs/
Unit-Tests 28 tests/unit/
CI-Pipeline 1 .gitea/workflows/

Quick Start

git clone https://gitea.slohmaier.com/slohmaier/demo-epb.git
cd demo-epb

# Build + Tests
make test

# Mit Coverage (benoetigt lcov)
make coverage
open build/coverage-html/index.html

# Statische Analyse + MISRA (benoetigt cppcheck)
make static
make misra

Gefuehrte Tour (~30 min)

1. Projektplanung

Start in docs/:

  • PID.docx — Was wird gebaut und warum
  • SWE-Plan.docx — Wie wird gebaut: Sprache, Standards, Branching, Review-Regeln, Coverage-Ziele pro ASIL
  • QA-Plan.docx — Qualitaetsmassnahmen, Reviews, NC-Management
  • PM-Plan.docx, Test-Plan.docx — Arbeitspakete + Teststrategie

2. Sicherheits-Logik (das ASIL-D Stueck)

reqs/sys/SYS-001.mdarch/swe/SWA-002.mdsrc/apply_controller.ctests/unit/test_apply_controller.c

Das ist die Traceability-Kette: System-Sicherheitsziel → Software-Architektur → Code → Test.

3. Anforderungen + Architektur (Doorstop in Markdown)

  • reqs/sys/ und reqs/swe/ — alle Anforderungen mit Mapping
  • arch/sys/ und arch/swe/ — Architektur mit Mapping per links: im Frontmatter
  • Eingebettete PlantUML-Diagramme rendern direkt in Gitea

4. Code mit Mapping-Tags

Jede .c-Datei traegt @arch, @reqs im Header:

/**
 * @file apply_controller.c
 * @arch SWA-002
 * @reqs SWE-001 SWE-002 SWE-003 SWE-004
 *
 * ASIL: D.
 */

So ist Code -> Architektur -> Anforderung auf einen grep durchsuchbar.

5. Tests mit Anforderungs-Tags

tests/unit/test_apply_controller.c referenziert die Requirements per @reqs. CI mit Coverage-Report belegt, dass jede Anforderung getestet ist.

6. Audit-Artefakte

  • docs/reviews/REV-001.docx — Review-Protokoll fuer die ASIL-D-Komponente
  • docs/non-conformities/NC-001.docx — Beispiel einer Non-Conformity mit Korrekturmassnahme
  • misra/records/MISRA-REC-001.docx — MISRA Deviation Record fuer eine bewusste Advisory-Abweichung

7. CI-Pipeline

.gitea/workflows/validate.yml — bei jedem Push laeuft:

  1. Cppcheck (Static Analysis)
  2. Cppcheck + MISRA-Addon
  3. Build + Unit Tests
  4. Coverage (gcov/lcov)
  5. Doorstop-Traceability-Check

Architektur-Ueberblick

                +----------------------+
                |     EPB ECU (SA-001) |
                |  +-----------------+ |
                |  | Safety Mgr (D)  | |
                |  +-----------------+ |
                |  | Apply Ctrl (D)  | |
                |  +-----------------+ |
                |  | Actuator Drv (B)| |
                |  +-----------------+ |
                |  | Wheel Speed (B) | |
                |  | Inclino (B)     | |
                |  +-----------------+ |
                |  | Switch DB (QM)  | |
                |  | Display (QM)    | |
                |  | Diag (QM)       | |
                |  | Service (QM)    | |
                |  | Logger (QM)     | |
                |  +-----------------+ |
                +----------------------+
                     |        |
              Aktor L         Aktor R
              (SA-002)        (SA-002)

Format-Strategie

Inhalt Format Begruendung
Plaene + Audit-Doku Word (.docx) Industriestandard fuer ISO-9001-Freigabe
Requirements + Arch Markdown (Doorstop) Lebendig, diff-bar, Traceability per Skript
Code, Tests, CI C / YAML klar

Beide Welten gehen ueber tools/-Skripte ineinander ueber: Markdown ist Source of Truth, Word wird per pandoc daraus gebaut.

Generatoren

Skript Zweck
tools/generate_doorstop_items.py Erzeugt alle 50 Requirements + Arch-Elemente aus Strukturdaten

Referenzen

  • slohmaier/dev-process — die Methodik
  • ASPICE 4.0
  • ISO 26262 (insbesondere Part 6 — Software)
  • MISRA C:2012

Lizenz

MIT — siehe LICENSE.

S
Description
Demo: Elektrische Parkbremse (EPB) — wendet den slohmaier Dev Process an. ASIL-D + ASIL-B + QM Anteile, vollständige Traceability.
Readme MIT 1.2 MiB
2026-05-12 10:37:52 +00:00
Languages
Python 56.4%
C 41.4%
Makefile 2.2%