ASPICE 4.0 / ISO 26262 Entwicklungsprozess fuer kleine Teams. Inhalte: - README mit hybrider Format-Strategie (Word + Markdown) - Toolstack (Gitea, Doorstop, Cppcheck, gcov, CppUTest, pandoc) - Markdown-Vorlagen fuer Requirements + Architektur (SA, SWA) - Markdown-Vorlagen fuer formelle Dokumente (PID, PM-Plan, QA-Plan, SWE-Plan, Test-Plan, Reviews, Non-Conformity, MISRA Permits/Records) - Word-Master-Template (slohmaier-doc-template.docx) mit ISO-9001- konformer Document Control, Formatvorlagen, Auto-Verzeichnissen - Build-Scripts (build_word_template.py, generate_word_vorlagen.sh) - gitea-aspice-setup.md, V-Modell-Infografik
6.1 KiB
Toolstack – slohmaier Dev Process
Kompletter Open-Source-Toolstack fuer ASPICE 4.0 und ISO 26262 konforme Embedded-Entwicklung.
Uebersicht
| Kategorie | Tool | Bemerkung |
|---|---|---|
| Source Control | Gitea (self-hosted) | tea CLI fuer Kommandozeile, VS Code Integration |
| Requirements | Doorstop (Markdown-Modus) | Requirements als .md mit PlantUML eingebettet |
| Architektur-Design | Doorstop + PlantUML | SA / SWA / SWD als .md mit Mapping per links: (ASPICE SYS.3 / SWE.2 / SWE.3) |
| Diagramme | PlantUML | Eingebettet in Markdown, gerendert von Gitea und VS Code |
| MISRA | Cppcheck + MISRA-Addon | Kostenlos, Deviation Permits/Records via Doorstop |
| Coverage | gcov/lcov | Bis ASIL-B; MCDC-Star fuer ASIL-C/D |
| Unit Tests | CppUTest oder Google Test | Je nach Projekt |
| Static Analysis | Cppcheck, clang-tidy | Cppcheck auch fuer MISRA |
| Build | SCons, CMake | Je nach Projekt |
| Compiler | GCC ARM | Eigene Qualifizierung; Ferrocene fuer Rust |
| CI | Gitea Actions | Pipeline im Monorepo unter .gitea/workflows/ |
| Open Source Analyse | ScanCode, FOSSology | Lizenz-Compliance |
| KI-Unterstuetzung | Continue.dev + Ollama | VS Code Extension, lokal, kein Cloud-Datenschutzproblem |
| Dokumentenexport | pandoc | Markdown nach PDF |
| Editor | VS Code | Primaerer Editor fuer alles |
Source Control: Gitea
Gitea ist eine self-hosted Git-Plattform. Leichtgewichtig, laeuft auf jeder Hardware.
- Web-UI fuer PRs, Reviews, Issues
- Gitea Actions fuer CI/CD (kompatibel mit GitHub Actions Syntax)
- PlantUML-Rendering in Markdown (per PlantUML-Server)
teaCLI fuer Kommandozeilen-Workflows- Branch Protection und Approval-Workflows
Setup-Anleitung: gitea-aspice-setup.md
Requirements: Doorstop (Markdown-Modus)
Doorstop verwaltet Requirements als .md-Dateien mit YAML-Frontmatter. Kein proprietaeres Format, alles lesbar in jedem Editor.
Vorteile:
- Requirements sind Markdown, versioniert in Git
- PlantUML-Diagramme direkt im Requirement eingebettet
- Traceability-Pruefung per CLI:
doorstop check - Report-Generierung:
doorstop publish all docs/traceability/ - Gitea rendert alles direkt (Markdown + PlantUML)
Requirement-Format:
---
active: true
level: 1.0
links:
- SYS-001: abc123
---
# SWE-001: Titel
Beschreibung mit eingebettetem PlantUML.
Architektur-Design: Doorstop + PlantUML
Architektur-Elemente sind ebenfalls Doorstop-Dokumente, nur mit eigenen Prefixen:
| Prefix | Ebene | ASPICE | Verzeichnis |
|---|---|---|---|
| SA | System Architectural Design | SYS.3 | arch/sys/ |
| SWA | Software Architectural Design | SWE.2 | arch/swe/ |
| SWD | Software Detailed Design | SWE.3 | arch/swd/ |
Mapping auf Anforderungen per links: im YAML-Frontmatter — identisch zur Requirements-Verlinkung. Doorstop verifiziert in beide Richtungen: keine verwaisten Anforderungen, keine verwaisten Architektur-Elemente.
Verifikation in der CI:
doorstop check # bidirektional, schlaegt fehl bei Luecken
doorstop publish all docs/traceability/ # Traceability-Matrix erzeugen
Vorlagen unter dev-process/vorlagen/:
SA-vorlage.md— System Architecture ElementSWA-vorlage.md— Software Architecture Element
SWD wird nur fuer ASIL-C/D zwingend gefuehrt; fuer QM/A/B reichen Code + Header-Kommentare.
Diagramme: PlantUML
PlantUML-Diagramme werden direkt in Markdown eingebettet. Kein separates Tool, kein Export.
Rendering:
- Gitea: Automatisch via PlantUML-Server (Konfiguration in
app.ini) - VS Code: PlantUML-Extension (jebbs.plantuml) fuer Live-Preview
- Export: pandoc mit PlantUML-Filter fuer PDF
MISRA: Cppcheck + MISRA-Addon
Cppcheck mit MISRA-Addon prueft C-Code auf MISRA-Konformitaet. Kostenlos, laeuft in der CI-Pipeline.
cppcheck --addon=misra --error-exitcode=1 src/
Deviation Permits und Records werden als Markdown-Dateien im misra/-Verzeichnis verwaltet. Vorlagen unter dev-process/vorlagen/.
Coverage
| ASIL | Tool | Methode |
|---|---|---|
| A–B | gcov/lcov | Statement + Branch Coverage |
| C–D | MCDC-Star | MC/DC Coverage |
Coverage-Reports werden in der CI generiert und unter tests/results/ abgelegt.
Unit Tests
CppUTest oder Google Test, je nach Projektanforderung.
- Tests unter
tests/unit/ - Ergebnisse unter
tests/results/ - CI fuehrt Tests bei jedem Push aus
Static Analysis
| Tool | Zweck |
|---|---|
| Cppcheck | Allgemeine statische Analyse + MISRA |
| clang-tidy | Modernisierung, Stil, Bugs |
Beide laufen in der CI-Pipeline.
Build: SCons / CMake
Je nach Projekt SCons oder CMake. Cross-Compilation fuer ARM-Targets.
Compiler
| Compiler | Sprache | Qualifizierung |
|---|---|---|
| GCC ARM | C/C++ | Eigene Qualifizierung nach ISO 26262 |
| Ferrocene | Rust | Zertifizierter Rust-Compiler fuer Safety |
CI: Gitea Actions
Pipeline-Datei: .gitea/workflows/validate.yml
Schritte bei jedem Push/PR:
- Doorstop-Konsistenz pruefen
- MISRA-Check
- Unit Tests
- Coverage
- Traceability-Report generieren
Syntax kompatibel mit GitHub Actions.
Open Source Analyse
| Tool | Zweck |
|---|---|
| ScanCode | Lizenz-Erkennung in Quellcode |
| FOSSology | Lizenz-Compliance-Analyse |
Wichtig fuer Automotive: Lizenz-Compliance muss dokumentiert sein.
KI-Unterstuetzung: Continue.dev + Ollama
Continue.dev als VS Code Extension mit Ollama als lokalem Backend.
- Kein Cloud-Service, alle Daten bleiben lokal
- Kein Datenschutzproblem mit Kundendaten
- Unterstuetzung beim Code-Schreiben, Reviews, Dokumentation
Dokumentenexport: pandoc
pandoc dokument.md -o dokument.pdf --pdf-engine=xelatex
Alle Dokumente in Markdown, Export nach PDF fuer Kunden und Audits.
VS Code Extensions
| Extension | Zweck |
|---|---|
| PlantUML (jebbs.plantuml) | PlantUML-Preview |
| Markdown All in One | Markdown-Editing |
| GitLens | Git-History, Blame |
| YAML (redhat.vscode-yaml) | YAML-Validierung |
| Continue.dev | KI mit Ollama |