Final German naming cleanup in dev-process: - vorlagen/ -> templates/ - vorlagen-word/ -> templates-word/ - tools/generate_word_vorlagen.sh -> tools/generate_word_templates.sh - *-vorlage.md / *-vorlage.docx -> *-template.md / *-template.docx - Review-Protokoll-vorlage.* -> Review-Minutes-template.* - angebot-vorlage.* -> quote-template.* - angebot-beispiel.html -> quote-example.html All references in README.md, toolstack/toolstack.md, build_word_template.py, and generate_word_templates.sh updated. The master Word style template (slohmaier-doc-template.docx) was already English-named. The dev-process repo is now fully English in both content and structure.
6.5 KiB
Toolstack – slohmaier Dev Process
Complete open-source toolstack for ASPICE 4.0 and ISO 26262-compliant embedded development.
Overview
| Category | Tool | Notes |
|---|---|---|
| Source Control | Gitea (self-hosted) | tea CLI for command line, VS Code integration |
| Requirements | Doorstop (Markdown mode) | Requirements as .md with embedded PlantUML |
| Architecture design | Doorstop + PlantUML | SA / SWA / SWD as .md with mapping via links: (ASPICE SYS.3 / SWE.2 / SWE.3) |
| Diagrams | PlantUML | Embedded in Markdown, rendered by Gitea and VS Code |
| MISRA | Cppcheck + MISRA addon | Free, deviation permits/records via Doorstop |
| Coverage | gcov/lcov | Up to ASIL-B; MCDC-Star for ASIL-C/D |
| Unit tests | CppUTest or Google Test | Project-dependent |
| Static analysis | Cppcheck, clang-tidy | Cppcheck also for MISRA |
| Build | SCons, CMake | Project-dependent |
| Compiler | GCC ARM | Own qualification; Ferrocene for Rust |
| CI | Gitea Actions | Pipeline in the monorepo under .gitea/workflows/ |
| Open-source analysis | ScanCode, FOSSology | License compliance |
| AI assistance | Continue.dev + Ollama | VS Code extension, local, no cloud privacy issue |
| Document export | pandoc | Markdown to PDF |
| Editor | VS Code | Primary editor for everything |
Source Control: Gitea
Gitea is a self-hosted Git platform. Lightweight, runs on any hardware.
- Web UI for PRs, reviews, issues
- Gitea Actions for CI/CD (compatible with GitHub Actions syntax)
- PlantUML rendering in Markdown (via PlantUML server)
teaCLI for command-line workflows- Branch protection and approval workflows
Setup guide: gitea-aspice-setup.md
Requirements: Doorstop (Markdown mode)
Doorstop manages requirements as .md files with YAML frontmatter. No proprietary format — everything readable in any editor.
Advantages:
- Requirements are Markdown, versioned in Git
- PlantUML diagrams embedded directly in the requirement
- Traceability check via CLI:
doorstop check - Report generation:
doorstop publish all docs/traceability/ - Gitea renders everything natively (Markdown + PlantUML)
Requirement format:
---
active: true
level: 1.0
links:
- SYS-001: abc123
---
# SWE-001: Title
Description with embedded PlantUML.
Architecture design: Doorstop + PlantUML
Architecture elements are also Doorstop documents, only with their own prefixes:
| Prefix | Layer | ASPICE | Directory |
|---|---|---|---|
| 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 to requirements via links: in the YAML frontmatter — identical to requirements linking. Doorstop verifies in both directions: no orphan requirements, no orphan architecture elements.
Verification in CI:
doorstop check # bidirectional, fails on gaps
doorstop publish all docs/traceability/ # generate traceability matrix
Templates under dev-process/templates/:
SA-template.md— System Architecture ElementSWA-template.md— Software Architecture Element
SWD is only mandatory for ASIL-C/D; for QM/A/B, code + header comments are sufficient.
Diagrams: PlantUML
PlantUML diagrams are embedded directly in Markdown. No separate tool, no export.
Rendering:
- Gitea: automatically via the PlantUML server (configuration in
app.ini) - VS Code: PlantUML extension (jebbs.plantuml) for live preview
- Export: pandoc with PlantUML filter for PDF
MISRA: Cppcheck + MISRA addon
Cppcheck with the MISRA addon checks C code for MISRA compliance. Free, runs in the CI pipeline.
cppcheck --addon=misra --error-exitcode=1 src/
Deviation permits and records are kept as Markdown files in the misra/ directory. Templates under dev-process/templates/.
Coverage
| ASIL | Tool | Method |
|---|---|---|
| A–B | gcov/lcov | Statement + branch coverage |
| C–D | MCDC-Star | MC/DC coverage |
Coverage reports are generated in CI and stored under tests/results/.
Unit tests
CppUTest or Google Test, depending on project requirements.
- Tests under
tests/unit/ - Results under
tests/results/ - CI runs tests on every push
Static analysis
| Tool | Purpose |
|---|---|
| Cppcheck | General static analysis + MISRA |
| clang-tidy | Modernisation, style, bugs |
Both run in the CI pipeline.
Build: SCons / CMake
Either SCons or CMake, depending on the project. Cross-compilation for ARM targets.
Compiler
| Compiler | Language | Qualification |
|---|---|---|
| GCC ARM | C/C++ | Own qualification per ISO 26262 |
| Ferrocene | Rust | Certified Rust compiler for safety |
CI: Gitea Actions
Pipeline file: .gitea/workflows/validate.yml
Steps on every push/PR:
- Doorstop consistency check
- MISRA check
- Unit tests
- Coverage
- Traceability report generation
Syntax compatible with GitHub Actions.
Open-source analysis
| Tool | Purpose |
|---|---|
| ScanCode | License detection in source code |
| FOSSology | License compliance analysis |
Important for automotive: license compliance must be documented.
AI assistance: Continue.dev + Ollama
Continue.dev as a VS Code extension with Ollama as a local backend.
- No cloud service, all data stays local
- No privacy issue with customer data
- Assistance with code writing, reviews, documentation
Document export: pandoc
pandoc document.md -o document.pdf --pdf-engine=xelatex
All documents in Markdown, export to PDF for customers and audits.
VS Code extensions
| Extension | Purpose |
|---|---|
| PlantUML (jebbs.plantuml) | PlantUML preview |
| Markdown All in One | Markdown editing |
| GitLens | Git history, blame |
| YAML (redhat.vscode-yaml) | YAML validation |
| Continue.dev | AI with Ollama |