From 6e458ae76f021f1a51e3a0a5ef457bceffea9790 Mon Sep 17 00:00:00 2001 From: Stefan Lohmaier Date: Mon, 11 May 2026 13:40:51 -0700 Subject: [PATCH] Initial commit: slohmaier Dev Process v1.0 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 --- .gitignore | 20 + LICENSE | 21 + README.md | 209 +++++++ dev-process-schaubild.html | 211 +++++++ gitea-aspice-setup.md | 242 ++++++++ tools/build_word_template.py | 583 ++++++++++++++++++ tools/generate_word_vorlagen.sh | 52 ++ toolstack/toolstack.md | 222 +++++++ .../MISRA-Deviation-Permit-vorlage.docx | Bin 0 -> 26845 bytes .../MISRA-Deviation-Record-vorlage.docx | Bin 0 -> 26568 bytes vorlagen-word/Non-Conformity-vorlage.docx | Bin 0 -> 26668 bytes vorlagen-word/PID-vorlage.docx | Bin 0 -> 27282 bytes vorlagen-word/PM-Plan-vorlage.docx | Bin 0 -> 27468 bytes vorlagen-word/QA-Plan-vorlage.docx | Bin 0 -> 27948 bytes vorlagen-word/Review-Protokoll-vorlage.docx | Bin 0 -> 26824 bytes vorlagen-word/SWE-Plan-vorlage.docx | Bin 0 -> 28506 bytes vorlagen-word/Test-Plan-vorlage.docx | Bin 0 -> 28008 bytes vorlagen-word/angebot-vorlage.docx | Bin 0 -> 26267 bytes vorlagen-word/slohmaier-doc-template.docx | Bin 0 -> 41538 bytes vorlagen/MISRA-Deviation-Permit-vorlage.md | 76 +++ vorlagen/MISRA-Deviation-Record-vorlage.md | 70 +++ vorlagen/Non-Conformity-vorlage.md | 79 +++ vorlagen/PID-vorlage.md | 92 +++ vorlagen/PM-Plan-vorlage.md | 85 +++ vorlagen/QA-Plan-vorlage.md | 106 ++++ vorlagen/Review-Protokoll-vorlage.md | 74 +++ vorlagen/SA-vorlage.md | 104 ++++ vorlagen/SWA-vorlage.md | 148 +++++ vorlagen/SWE-Plan-vorlage.md | 132 ++++ vorlagen/Test-Plan-vorlage.md | 121 ++++ vorlagen/Traceability-Matrix-vorlage.md | 67 ++ vorlagen/angebot-beispiel.html | 144 +++++ vorlagen/angebot-vorlage.md | 76 +++ 33 files changed, 2934 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 dev-process-schaubild.html create mode 100644 gitea-aspice-setup.md create mode 100644 tools/build_word_template.py create mode 100755 tools/generate_word_vorlagen.sh create mode 100644 toolstack/toolstack.md create mode 100644 vorlagen-word/MISRA-Deviation-Permit-vorlage.docx create mode 100644 vorlagen-word/MISRA-Deviation-Record-vorlage.docx create mode 100644 vorlagen-word/Non-Conformity-vorlage.docx create mode 100644 vorlagen-word/PID-vorlage.docx create mode 100644 vorlagen-word/PM-Plan-vorlage.docx create mode 100644 vorlagen-word/QA-Plan-vorlage.docx create mode 100644 vorlagen-word/Review-Protokoll-vorlage.docx create mode 100644 vorlagen-word/SWE-Plan-vorlage.docx create mode 100644 vorlagen-word/Test-Plan-vorlage.docx create mode 100644 vorlagen-word/angebot-vorlage.docx create mode 100644 vorlagen-word/slohmaier-doc-template.docx create mode 100644 vorlagen/MISRA-Deviation-Permit-vorlage.md create mode 100644 vorlagen/MISRA-Deviation-Record-vorlage.md create mode 100644 vorlagen/Non-Conformity-vorlage.md create mode 100644 vorlagen/PID-vorlage.md create mode 100644 vorlagen/PM-Plan-vorlage.md create mode 100644 vorlagen/QA-Plan-vorlage.md create mode 100644 vorlagen/Review-Protokoll-vorlage.md create mode 100644 vorlagen/SA-vorlage.md create mode 100644 vorlagen/SWA-vorlage.md create mode 100644 vorlagen/SWE-Plan-vorlage.md create mode 100644 vorlagen/Test-Plan-vorlage.md create mode 100644 vorlagen/Traceability-Matrix-vorlage.md create mode 100644 vorlagen/angebot-beispiel.html create mode 100644 vorlagen/angebot-vorlage.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6b79b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# macOS +.DS_Store + +# Editor +.vscode/ +.idea/ +*.swp +*~ + +# Python +__pycache__/ +*.pyc +.venv/ +venv/ + +# Pandoc temp +*.tmp.docx + +# Generated PDFs (kann lokal gebaut werden) +*.pdf diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4686cfe --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Stefan Lohmaier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..51108c2 --- /dev/null +++ b/README.md @@ -0,0 +1,209 @@ +# slohmaier Dev Process + +Ein praxisnaher Entwicklungsprozess angelehnt an ASPICE 4.0 / ISO 26262, umgesetzt mit Gitea, Doorstop, MS Word und VS Code. Ausgelegt für Freelance-Projekte und kleine Teams. + +**Demo-Projekt:** [slohmaier/demo-epb](https://gitea.slohmaier.com/slohmaier/demo-epb) — Elektrische Parkbremse, wendet diesen Prozess vollständig an. + +## Grundprinzip + +Alles lebt in einem **Monorepo**. Anforderungen, Dokumente, Code und Tests sind zusammen in einem Git-Repository. Alle Änderungen gehen über Pull Requests mit Approval — das ist der formale Review-Nachweis. + +## Format-Strategie: Hybrid + +Die zwei Welten — ISO-9001-Audit und tägliches Engineering — haben unterschiedliche Anforderungen. Wir trennen sauber: + +| Artefakt | Format | Begründung | +|----------|--------|------------| +| PID, PM-Plan, QA-Plan, SWE-Plan, Test-Plan | **Word** (signiert) | Formell freigegeben, an Kunden geliefert | +| Reviews, Non-Conformities, Audit-Protokolle | **Word** | Audit-Artefakte | +| MISRA Permits / Records | **Word** | Audit-Artefakte | +| Angebote, Verträge | **Word** | klar | +| Requirements (SYS, SWE) | **Markdown** (Doorstop) | Diff, Traceability, lebt täglich | +| Architektur (SA, SWA, SWD) | **Markdown** (Doorstop) | Mapping per `links:` | +| Code, Tests, CI | Code | klar | +| Liefer-PDFs an Kunden | **PDF via pandoc** aus MD | formelle Übergabe der Engineering-Artefakte | + +**Markdown-Vorlagen sind Source of Truth**, Word wird daraus per pandoc gebaut (`tools/generate_word_vorlagen.sh`). + +## Monorepo-Struktur + +``` +projekt-name/ + reqs/ + sys/ SYS-001.md, SYS-002.md + swe/ SWE-001.md, SWE-002.md + arch/ + sys/ SA-001.md, SA-002.md (ASPICE SYS.3) + swe/ SWA-001.md, SWA-002.md (ASPICE SWE.2) + swd/ SWD-001.md (ASPICE SWE.3, ab ASIL-C) + docs/ + PID.md + PM-Plan.md + QA-Plan.md + SWE-Plan.md + Test-Plan.md + reviews/ + non-conformities/ + traceability/ (generiert von Doorstop) + src/ + tests/ + unit/ + integration/ + results/ + misra/ + permits/ + records/ + reports/ + .gitea/ + workflows/validate.yml + .doorstop.yml +``` + +## Anforderungen mit Doorstop (Markdown-Modus) + +Requirements sind `.md`-Dateien mit YAML-Frontmatter. PlantUML-Diagramme direkt einbettbar. + +```markdown +--- +active: true +level: 1.0 +links: + - SYS-001: abc123 +--- + +# SWE-001: CAN Bus Initialisierung + +Der CAN-Treiber muss den Bus mit konfigurierbarer Baudrate initialisieren. + +```plantuml +@startuml +ECU -> CANDriver: init(baudrate) +CANDriver -> Hardware: configure(baudrate) +Hardware --> CANDriver: ok +@enduml +``` +``` + +Gitea rendert das direkt. VS Code mit PlantUML-Extension zeigt die Preview beim Editieren. + +Doorstop prüft: +- Alle Links valide +- Alle Requirements haben Tests +- Keine Lücken in der Traceability + +## Architektur-Design (ASPICE SYS.3 / SWE.2) + +Architektur-Elemente liegen in `arch/` und sind ebenfalls Doorstop-Dokumente. Gleiche Mechanik wie Anforderungen: Markdown + YAML-Frontmatter + eingebettetes PlantUML. + +- `arch/sys/SA-XXX.md` — System-Architektur, Mapping auf SYS-Anforderungen +- `arch/swe/SWA-XXX.md` — Software-Architektur, Mapping auf SWE-Anforderungen +- `arch/swd/SWD-XXX.md` — Software Detailed Design (nur ab ASIL-C) + +**Mapping** geschieht über `links:` im Frontmatter: + +```markdown +--- +active: true +level: 1.0 +links: + - SWE-001: abc123 + - SWE-014: def456 +--- + +# SWA-003: CAN Driver Component +``` + +`doorstop check` verifiziert in beide Richtungen: +- Jede SWE-Anforderung wird von mindestens einem SWA-Element abgedeckt +- Jedes SWA-Element verweist auf mindestens eine SWE-Anforderung +- `doorstop publish all docs/traceability/` erzeugt die Traceability-Matrix + +**Code → Architektur** per Header-Kommentar im Modul: + +```c +/** + * @file can_driver.c + * @arch SWA-003 + * @reqs SWE-001, SWE-014 + */ +``` + +Vorlagen: `vorlagen/SA-vorlage.md`, `vorlagen/SWA-vorlage.md`. + +## Reviews + +Jede Änderung — an Code, Requirements, Dokumenten oder Plänen — geht über einen Pull Request. + +| Was | Approver | +|-----|----------| +| Requirement neu/ändern | mind. 1 Reviewer | +| Architektur-Element (SA/SWA/SWD) | mind. 2 Technical Reviewer | +| Dokument (Plan, Protokoll) | mind. 1 Reviewer | +| Code-Änderung | mind. 1 Reviewer | +| MISRA Permit | Technical Lead | + +Merge = formale Freigabe. Git-History ist der Audit-Trail. + +## Traceability + +Vier Ebenen werden verknüpft: + +1. **Doorstop-Links** in `.md`-Dateien: `links: [SYS-001: abc123]` +2. **Architektur-Mapping** (Arch-Element → Anforderung) ebenfalls per Doorstop +3. **Commit-Messages**: `feat(SWE-001): implement CAN init` oder `feat(SWA-003): ...` +4. **Issue-Referenzen** in PRs: `Refs #42` + +Chain: `SYS-XXX → SA-XXX → SWE-XXX → SWA-XXX → Code → Test` + +Doorstop erzeugt automatisch einen Traceability-Report: +```bash +doorstop publish all docs/traceability/ +``` + +## CI-Pipeline + +Läuft bei jedem Push und PR automatisch: + +1. `doorstop check` — Requirements-Links valide +2. `cppcheck --addon=misra` — MISRA-Compliance +3. `make test` — Unit Tests +4. `make coverage` — Coverage-Report +5. `doorstop publish` — Traceability-Report aktualisieren + +## Dateien in diesem Repo + +| Pfad | Inhalt | +|------|--------| +| `toolstack/toolstack.md` | Vollständiger Tool-Stack | +| `gitea-aspice-setup.md` | Gitea einrichten für ASPICE | +| `dev-process-schaubild.html` | V-Modell Infografik | +| `vorlagen/` | Markdown-Vorlagen (Source of Truth) | +| `vorlagen-word/` | Generierte Word-Vorlagen + Master-Template `slohmaier-doc-template.docx` | +| `tools/build_word_template.py` | Erzeugt das neutrale Master-Word-Template mit Formatvorlagen, Deckblatt, Document Control | +| `tools/generate_word_vorlagen.sh` | Erzeugt aus den `.md`-Vorlagen die `.docx`-Versionen via pandoc | + +## Word-Vorlagen neu generieren + +```bash +# Master-Template + alle abgeleiteten Word-Vorlagen neu bauen +python3 tools/build_word_template.py +bash tools/generate_word_vorlagen.sh +``` + +Das Master-Template enthält ISO-9001-konform: +- Deckblatt mit Projekt, Dokument-ID, Version, Klassifikation +- Document Control (Freigaben, Änderungshistorie, Verteiler) +- Auto-Verzeichnisse (Inhalt, Abbildungen, Tabellen) +- Formatvorlagen für H1–H4, Body, Code, Note, Warning, Requirement +- Header/Footer mit Projekt, Dokument-ID, Klassifikation, Seitennummer + +## Einsatz in eigenen Projekten + +Drei Wege, diesen Prozess zu nutzen: + +1. **Git-Submodule** in dein Projekt: + ```bash + git submodule add https://gitea.slohmaier.com/slohmaier/dev-process .dev-process + ``` +2. **Vorlagen kopieren** und im Projekt einchecken (statischer Snapshot). +3. **Fork / Clone** und als Basis für eigene Anpassungen verwenden. diff --git a/dev-process-schaubild.html b/dev-process-schaubild.html new file mode 100644 index 0000000..e42a348 --- /dev/null +++ b/dev-process-schaubild.html @@ -0,0 +1,211 @@ + + + + + +slohmaier Dev Process – V-Model (ASPICE 4.0 / ISO 26262) + + + + + + + + + + + + + + + + + + + + + + Software Development Process + ASPICE 4.0 / ISO 26262 — V-Model with GitLab Toolchain + + + + + SUP.1 — Quality Assurance + + + SUP.8 — Configuration Management (Git / GitLab) + + + SUP.9 — Problem Resolution (GitLab Issues) + + + SUP.10 — Change Request Management (GitLab Merge Requests) + + + + + + + + + + SPECIFICATION + VERIFICATION + + + + + + SYS.2 + System Requirements + + + + + + + SWE.1 + Software Requirements + + + + + + + SWE.6 + Qualification Test + + + + + + + SWE.2 + Software Architecture + + + + + + + SWE.5 + Integration Test + + + + + + + SWE.3 + Detail Design + + + + + + + SWE.4 + Unit Verification + + + + + + SWE.3 + Implementation + + + + + + + + + + + + + + + + + + + Traceability + + + + + Traceability + + + + + + + TOOLCHAIN + + + + + GitLab + Source · Wiki · Reviews · CI/CD + + + + Cppcheck + MISRA Compliance + + + + gcov / lcov + MCDC-Star Coverage + + + + CppUTest + Google Test + + + + ScanCode + FOSSology + + + + pandoc + Document Export + + + + slohmaier.com + ASPICE 4.0 / ISO 26262 compliant process overview + + + + diff --git a/gitea-aspice-setup.md b/gitea-aspice-setup.md new file mode 100644 index 0000000..d759910 --- /dev/null +++ b/gitea-aspice-setup.md @@ -0,0 +1,242 @@ +# Gitea für ASPICE 4.0 einrichten + +Konkrete Anleitung für den slohmaier Dev Process auf Basis von Gitea, Doorstop und Gitea Actions. + +## Gitea installieren + +### Docker (empfohlen) + +```yaml +# docker-compose.yml +version: "3" +services: + gitea: + image: gitea/gitea:latest + ports: + - "3000:3000" + - "222:22" + volumes: + - ./data:/data + environment: + - USER_UID=1000 + - USER_GID=1000 +``` + +```bash +docker compose up -d +``` + +### PlantUML-Rendering aktivieren + +In `data/gitea/conf/app.ini`: + +```ini +[markup.plantuml] +ENABLED = true +NEED_POSTPROCESS= true +FILE_EXTENSIONS = .puml +RENDER_COMMAND = plantuml -tsvg -pipe +IS_INPUT_FILE = false +``` + +Oder über den öffentlichen Renderer (kein lokales PlantUML nötig): + +```ini +[server] +OFFLINE_MODE = false + +[markup.plantuml] +ENABLED = true +NEED_POSTPROCESS = true +RENDER_COMMAND = curl -s https://www.plantuml.com/plantuml/svg/~h +``` + +## Organisations- und Repo-Struktur + +``` +Organisation: slohmaier (eigene Projekte) +Organisation: kunde-projektname (Kundenprojekte) + Repo: projektname (Monorepo: reqs + docs + src + tests) +``` + +Ein Repo pro Projekt. Kein Aufteilen in viele Repos. + +## Label-Schema + +Alle Labels in der Organisation anlegen, dann in jedem Repo verfügbar. + +| Label | Farbe | Verwendung | +|-------|-------|------------| +| `type:requirement` | blau | Anforderungs-Issue | +| `type:architecture` | dunkelblau | Architektur-Entscheidung | +| `type:implementation` | grün | Implementierungsaufgabe | +| `type:test` | hellgrün | Testfall | +| `type:document` | grau | Dokument-Änderung | +| `aspice:NC` | rot | Non-Conformity | +| `aspice:change-request` | orange | Change Request | +| `aspice:finding` | gelb | QA-Finding | +| `status:review-required` | lila | Wartet auf Review | +| `status:approved` | grün | Freigegeben | +| `severity:critical` | dunkelrot | Kritisch | +| `severity:major` | orange | Schwerwiegend | +| `severity:minor` | gelb | Geringfügig | + +## Branch-Schutz + +Für `main`: +- Kein direktes Pushen +- Mind. 1 Approval erforderlich +- CI muss grün sein + +Einstellbar unter: Repo → Settings → Branches → Branch Protection + +## Branching-Strategie + +``` +main protected, stabil, nur via PR +develop Integrationsbranch +feature/SWE-001-can-init Feature mit Req-Referenz +docs/qa-plan-v1 Dokument-Änderung +fix/NC-003-misra-violation Bugfix mit NC-Referenz +release/v1.0 Release-Branch +``` + +## PR/Review-Workflow + +### Neue Anforderung anlegen +``` +1. Branch: reqs/SWE-001-can-init +2. Datei anlegen: reqs/swe/SWE-001.md +3. PR erstellen mit Titel: "[REQ] SWE-001: CAN Bus Initialisierung" +4. Reviewer zuweisen +5. Nach Approval → Merge +``` + +### Dokument ändern +``` +1. Branch: docs/qa-plan-update +2. Änderung in docs/QA-Plan.md +3. PR mit Beschreibung der Änderung +4. Reviewer zuweisen → Approval → Merge +``` + +### Code-Änderung +``` +1. Branch: feature/SWE-001-can-init +2. Commit-Message: "feat(SWE-001): implement CAN bus init at configurable baudrate" +3. PR: "Refs #" +4. CI muss grün sein +5. Reviewer → Approval → Merge +``` + +## Commit-Message-Konvention + +``` +feat(SWE-001): implement CAN bus initialization +fix(NC-003): resolve MISRA Rule 14.4 violation +docs(QA-Plan): add review schedule for SWE phase +test(SWE-001): add unit test for CAN init error handling +``` + +Format: `(): ` + +## Gitea Actions — Basis-Pipeline + +```yaml +# .gitea/workflows/validate.yml +name: Validate +on: [push, pull_request] + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install tools + run: | + pip install doorstop + apt-get install -y cppcheck + + - name: Doorstop check + run: doorstop check + + - name: MISRA check + run: | + cppcheck --addon=misra --error-exitcode=1 \ + --suppress=misra-c2012-15.5 \ + src/ + + - name: Unit tests + run: make test + + - name: Coverage + run: make coverage + + - name: Publish traceability + run: | + doorstop publish all docs/traceability/ + git config user.email "ci@slohmaier.com" + git config user.name "CI" + git add docs/traceability/ + git diff --cached --quiet || git commit -m "ci: update traceability report" + git push +``` + +## Doorstop konfigurieren + +`.doorstop.yml` im Repo-Root: + +```yaml +settings: + digits: 3 + prefix: REQ +``` + +`.doorstop` in jedem Requirements-Unterordner: + +```yaml +# reqs/sys/.doorstop +settings: + digits: 3 + prefix: SYS + parent: null +``` + +```yaml +# reqs/swe/.doorstop +settings: + digits: 3 + prefix: SWE + parent: SYS +``` + +```yaml +# tests/unit/.doorstop +settings: + digits: 3 + prefix: TST + parent: SWE +``` + +## VS Code Extensions für diesen Stack + +| Extension | ID | Zweck | +|-----------|-----|-------| +| PlantUML | jnbt.plantuml | Diagramm-Preview in Markdown | +| Markdown All in One | yzhang.markdown-all-in-one | Markdown-Bearbeitung | +| YAML | redhat.vscode-yaml | YAML-Frontmatter in .md | +| GitLens | eamodio.gitlens | Git-History und Blame | +| Continue | Continue.continue | KI-Assistent lokal via Ollama | + +## Traceability-Übersicht + +``` +SYS-001 (System-Anforderung) + └── SWE-001 (Software-Anforderung) [links: SYS-001] + └── TST-001 (Testfall) [links: SWE-001] + └── Commit abc1234 [feat(SWE-001): ...] + └── PR #12 [Refs #5 (Issue: SWE-001)] +``` + +Doorstop prüft die komplette Kette automatisch bei jedem CI-Lauf. diff --git a/tools/build_word_template.py b/tools/build_word_template.py new file mode 100644 index 0000000..726c620 --- /dev/null +++ b/tools/build_word_template.py @@ -0,0 +1,583 @@ +#!/usr/bin/env python3 +""" +Build the neutral slohmaier Word document template. + +Output: vorlagen-word/slohmaier-doc-template.docx + +The template is ISO 9001 / ASPICE-friendly: +- Cover page with project, doc-ID, version, classification +- Document Control (Approvals, Revision History, Distribution) +- Inhaltsverzeichnis / Abbildungsverzeichnis / Tabellenverzeichnis (auto-fields) +- Custom styles: Heading 1-4, Body, Caption, Code, Note, Warning, Requirement +- Header/Footer with project + doc-ID + classification + page + +Run: python3 tools/build_word_template.py +""" +from __future__ import annotations + +import sys +from pathlib import Path + +from docx import Document +from docx.enum.style import WD_STYLE_TYPE +from docx.enum.table import WD_ALIGN_VERTICAL, WD_TABLE_ALIGNMENT +from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_BREAK +from docx.oxml import OxmlElement +from docx.oxml.ns import qn +from docx.shared import Cm, Pt, RGBColor + + +# --------------------------------------------------------------------------- +# OXML helpers +# --------------------------------------------------------------------------- + +def _qn_set(elem, attr, value): + elem.set(qn(attr), value) + + +def add_field(paragraph, instr_text, default_text=""): + """Insert a Word field (e.g. TOC, PAGE) into a paragraph.""" + run = paragraph.add_run() + r_elem = run._r + + fld_begin = OxmlElement("w:fldChar") + _qn_set(fld_begin, "w:fldCharType", "begin") + r_elem.append(fld_begin) + + instr = OxmlElement("w:instrText") + _qn_set(instr, "xml:space", "preserve") + instr.text = instr_text + r_elem.append(instr) + + fld_sep = OxmlElement("w:fldChar") + _qn_set(fld_sep, "w:fldCharType", "separate") + r_elem.append(fld_sep) + + default_t = OxmlElement("w:t") + default_t.text = default_text + r_elem.append(default_t) + + fld_end = OxmlElement("w:fldChar") + _qn_set(fld_end, "w:fldCharType", "end") + r_elem.append(fld_end) + + +def set_cell_shading(cell, fill_hex): + tc_pr = cell._tc.get_or_add_tcPr() + shd = OxmlElement("w:shd") + _qn_set(shd, "w:val", "clear") + _qn_set(shd, "w:color", "auto") + _qn_set(shd, "w:fill", fill_hex) + tc_pr.append(shd) + + +def set_cell_borders(cell, color="808080", size=4): + tc_pr = cell._tc.get_or_add_tcPr() + tc_borders = OxmlElement("w:tcBorders") + for edge in ("top", "left", "bottom", "right"): + b = OxmlElement(f"w:{edge}") + _qn_set(b, "w:val", "single") + _qn_set(b, "w:sz", str(size)) + _qn_set(b, "w:space", "0") + _qn_set(b, "w:color", color) + tc_borders.append(b) + tc_pr.append(tc_borders) + + +def set_paragraph_border(paragraph, color="808080", size=12, side="left"): + p_pr = paragraph._p.get_or_add_pPr() + p_bdr = OxmlElement("w:pBdr") + b = OxmlElement(f"w:{side}") + _qn_set(b, "w:val", "single") + _qn_set(b, "w:sz", str(size)) + _qn_set(b, "w:space", "8") + _qn_set(b, "w:color", color) + p_bdr.append(b) + p_pr.append(p_bdr) + + +def set_paragraph_shading(paragraph, fill_hex): + p_pr = paragraph._p.get_or_add_pPr() + shd = OxmlElement("w:shd") + _qn_set(shd, "w:val", "clear") + _qn_set(shd, "w:color", "auto") + _qn_set(shd, "w:fill", fill_hex) + p_pr.append(shd) + + +# --------------------------------------------------------------------------- +# Styles +# --------------------------------------------------------------------------- + +NEUTRAL_GREY = "595959" +SOFT_GREY = "808080" +LIGHT_GREY = "F2F2F2" +ACCENT_DARK = "1F3864" +NOTE_BG = "E7F0FA" +NOTE_BORDER = "2E74B5" +WARN_BG = "FFF4E5" +WARN_BORDER = "C55A11" +REQ_BG = "EAEAEA" +REQ_BORDER = "404040" + + +def configure_styles(doc): + styles = doc.styles + + # --- Normal / Body Text --- + normal = styles["Normal"] + normal.font.name = "Calibri" + normal.font.size = Pt(11) + normal.font.color.rgb = RGBColor(0x20, 0x20, 0x20) + normal.paragraph_format.space_after = Pt(6) + normal.paragraph_format.line_spacing = 1.15 + + # --- Headings --- + heading_specs = [ + ("Heading 1", 18, True, RGBColor(0x1F, 0x38, 0x64), 18, 6), + ("Heading 2", 14, True, RGBColor(0x1F, 0x38, 0x64), 12, 6), + ("Heading 3", 12, True, RGBColor(0x40, 0x40, 0x40), 8, 4), + ("Heading 4", 11, True, RGBColor(0x40, 0x40, 0x40), 6, 4), + ] + for name, size, bold, color, before, after in heading_specs: + s = styles[name] + s.font.name = "Calibri" + s.font.size = Pt(size) + s.font.bold = bold + s.font.color.rgb = color + s.paragraph_format.space_before = Pt(before) + s.paragraph_format.space_after = Pt(after) + s.paragraph_format.keep_with_next = True + + # --- Title --- + title = styles["Title"] + title.font.name = "Calibri" + title.font.size = Pt(36) + title.font.bold = True + title.font.color.rgb = RGBColor(0x1F, 0x38, 0x64) + + # --- Subtitle --- + subtitle = styles["Subtitle"] + subtitle.font.name = "Calibri" + subtitle.font.size = Pt(16) + subtitle.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + + # --- Caption (figure/table caption) --- + caption = styles["Caption"] + caption.font.name = "Calibri" + caption.font.size = Pt(10) + caption.font.italic = True + caption.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + + # --- Code (custom paragraph style) --- + if "Code" not in [s.name for s in styles]: + code = styles.add_style("Code", WD_STYLE_TYPE.PARAGRAPH) + code.base_style = styles["Normal"] + code.font.name = "Consolas" + code.font.size = Pt(10) + code.paragraph_format.left_indent = Cm(0.5) + code.paragraph_format.space_before = Pt(4) + code.paragraph_format.space_after = Pt(4) + + # --- Note (custom paragraph style) --- + if "Note" not in [s.name for s in styles]: + note = styles.add_style("Note", WD_STYLE_TYPE.PARAGRAPH) + note.base_style = styles["Normal"] + note.font.name = "Calibri" + note.font.size = Pt(10) + note.paragraph_format.left_indent = Cm(0.4) + note.paragraph_format.space_before = Pt(6) + note.paragraph_format.space_after = Pt(6) + + # --- Warning --- + if "Warning" not in [s.name for s in styles]: + warn = styles.add_style("Warning", WD_STYLE_TYPE.PARAGRAPH) + warn.base_style = styles["Normal"] + warn.font.name = "Calibri" + warn.font.size = Pt(10) + warn.font.bold = True + warn.paragraph_format.left_indent = Cm(0.4) + + # --- Requirement Box --- + if "Requirement" not in [s.name for s in styles]: + req = styles.add_style("Requirement", WD_STYLE_TYPE.PARAGRAPH) + req.base_style = styles["Normal"] + req.font.name = "Calibri" + req.font.size = Pt(11) + req.paragraph_format.left_indent = Cm(0.4) + req.paragraph_format.space_before = Pt(6) + req.paragraph_format.space_after = Pt(6) + + +# --------------------------------------------------------------------------- +# Page setup, header/footer +# --------------------------------------------------------------------------- + +def setup_page(doc): + for section in doc.sections: + section.top_margin = Cm(2.5) + section.bottom_margin = Cm(2.5) + section.left_margin = Cm(2.5) + section.right_margin = Cm(2.5) + section.header_distance = Cm(1.25) + section.footer_distance = Cm(1.25) + + +def build_header_footer(doc, doc_id_placeholder="", classification="VERTRAULICH"): + section = doc.sections[0] + section.different_first_page_header_footer = True + + # --- Default header (skipped on cover page) --- + header = section.header + header_para = header.paragraphs[0] + header_para.alignment = WD_ALIGN_PARAGRAPH.LEFT + tabs = header_para.paragraph_format.tab_stops + tabs.add_tab_stop(Cm(8), WD_ALIGN_PARAGRAPH.CENTER) + tabs.add_tab_stop(Cm(16), WD_ALIGN_PARAGRAPH.RIGHT) + r1 = header_para.add_run("") + r1.font.size = Pt(9) + r1.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + header_para.add_run("\t") + r2 = header_para.add_run("") + r2.font.size = Pt(9) + r2.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + r2.bold = True + header_para.add_run("\t") + r3 = header_para.add_run(doc_id_placeholder) + r3.font.size = Pt(9) + r3.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + + # --- Default footer (skipped on cover page) --- + footer = section.footer + footer_para = footer.paragraphs[0] + footer_para.alignment = WD_ALIGN_PARAGRAPH.LEFT + f_tabs = footer_para.paragraph_format.tab_stops + f_tabs.add_tab_stop(Cm(8), WD_ALIGN_PARAGRAPH.CENTER) + f_tabs.add_tab_stop(Cm(16), WD_ALIGN_PARAGRAPH.RIGHT) + fr1 = footer_para.add_run("© slohmaier.com") + fr1.font.size = Pt(9) + fr1.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + footer_para.add_run("\t") + fr2 = footer_para.add_run(classification) + fr2.font.size = Pt(9) + fr2.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + fr2.bold = True + footer_para.add_run("\t") + fr3 = footer_para.add_run("Seite ") + fr3.font.size = Pt(9) + fr3.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + add_field(footer_para, "PAGE", "1") + fr4 = footer_para.add_run(" / ") + fr4.font.size = Pt(9) + fr4.font.color.rgb = RGBColor(0x59, 0x59, 0x59) + add_field(footer_para, "NUMPAGES", "1") + + # --- First-page header/footer (cover): empty --- + fp_header = section.first_page_header + fp_header.paragraphs[0].text = "" + fp_footer = section.first_page_footer + fp_footer.paragraphs[0].text = "" + + +# --------------------------------------------------------------------------- +# Content +# --------------------------------------------------------------------------- + +def add_cover_page(doc): + # Top logo placeholder + p = doc.add_paragraph() + p.alignment = WD_ALIGN_PARAGRAPH.RIGHT + r = p.add_run("[LOGO]") + r.font.size = Pt(10) + r.font.color.rgb = RGBColor(0x80, 0x80, 0x80) + + # Vertical space + for _ in range(8): + doc.add_paragraph() + + # Classification banner + cls_p = doc.add_paragraph() + cls_p.alignment = WD_ALIGN_PARAGRAPH.CENTER + cls_r = cls_p.add_run("VERTRAULICH") + cls_r.font.size = Pt(11) + cls_r.font.bold = True + cls_r.font.color.rgb = RGBColor(0xC5, 0x5A, 0x11) + + # Title + title_p = doc.add_paragraph(style="Title") + title_p.alignment = WD_ALIGN_PARAGRAPH.CENTER + title_p.add_run("") + + # Subtitle + sub_p = doc.add_paragraph(style="Subtitle") + sub_p.alignment = WD_ALIGN_PARAGRAPH.CENTER + sub_p.add_run("") + + for _ in range(4): + doc.add_paragraph() + + # Metadata block + meta_tbl = doc.add_table(rows=6, cols=2) + meta_tbl.alignment = WD_TABLE_ALIGNMENT.CENTER + meta_tbl.autofit = False + meta_tbl.columns[0].width = Cm(4.5) + meta_tbl.columns[1].width = Cm(8.5) + meta_data = [ + ("Projekt", ""), + ("Dokument-ID", ""), + ("Version", "1.0"), + ("Datum", "YYYY-MM-DD"), + ("Status", "Entwurf"), + ("Klassifikation", "Vertraulich"), + ] + for i, (k, v) in enumerate(meta_data): + c1 = meta_tbl.cell(i, 0) + c1.width = Cm(4.5) + c1.text = "" + c1_p = c1.paragraphs[0] + c1_r = c1_p.add_run(k) + c1_r.bold = True + c1_r.font.size = Pt(11) + set_cell_shading(c1, LIGHT_GREY) + set_cell_borders(c1, SOFT_GREY) + + c2 = meta_tbl.cell(i, 1) + c2.width = Cm(8.5) + c2.text = "" + c2_p = c2.paragraphs[0] + c2_r = c2_p.add_run(v) + c2_r.font.size = Pt(11) + set_cell_borders(c2, SOFT_GREY) + + # Page break + doc.add_page_break() + + +def add_document_control(doc): + doc.add_heading("Dokumentenlenkung", level=1) + doc.add_paragraph( + "Diese Seite dokumentiert die formale Lenkung dieses Dokuments gemaess " + "ISO 9001. Aenderungen werden nur ueber den Freigabeprozess wirksam." + ) + + doc.add_heading("Freigaben", level=2) + appr_tbl = doc.add_table(rows=4, cols=4) + appr_tbl.style = "Light Grid Accent 1" + hdr = appr_tbl.rows[0].cells + for i, h in enumerate(["Rolle", "Name", "Unterschrift / Datum", "Bemerkung"]): + hdr[i].text = "" + r = hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(hdr[i], LIGHT_GREY) + roles = ["Erstellt von", "Geprueft von", "Freigegeben von"] + for i, role in enumerate(roles, start=1): + appr_tbl.rows[i].cells[0].text = role + for j in (1, 2, 3): + appr_tbl.rows[i].cells[j].text = "" + + doc.add_heading("Aenderungshistorie", level=2) + rev_tbl = doc.add_table(rows=3, cols=4) + rev_tbl.style = "Light Grid Accent 1" + rev_hdr = rev_tbl.rows[0].cells + for i, h in enumerate(["Version", "Datum", "Aenderung", "Autor"]): + rev_hdr[i].text = "" + r = rev_hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(rev_hdr[i], LIGHT_GREY) + rev_data = [ + ("0.1", "YYYY-MM-DD", "Initialer Entwurf", ""), + ("1.0", "YYYY-MM-DD", "Erstfreigabe", ""), + ] + for i, row in enumerate(rev_data, start=1): + for j, v in enumerate(row): + rev_tbl.rows[i].cells[j].text = v + + doc.add_heading("Verteilerkreis", level=2) + dist_tbl = doc.add_table(rows=3, cols=3) + dist_tbl.style = "Light Grid Accent 1" + dist_hdr = dist_tbl.rows[0].cells + for i, h in enumerate(["Empfaenger", "Rolle", "Organisation"]): + dist_hdr[i].text = "" + r = dist_hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(dist_hdr[i], LIGHT_GREY) + for i in range(1, 3): + for j in range(3): + dist_tbl.rows[i].cells[j].text = "" + + doc.add_page_break() + + +def add_toc_pages(doc): + doc.add_heading("Inhaltsverzeichnis", level=1) + p = doc.add_paragraph() + add_field( + p, + 'TOC \\o "1-3" \\h \\z \\u', + "Inhaltsverzeichnis aktualisieren: F9 (rechte Maustaste auf TOC > Felder aktualisieren)", + ) + doc.add_page_break() + + doc.add_heading("Abbildungsverzeichnis", level=1) + p = doc.add_paragraph() + add_field( + p, + 'TOC \\h \\z \\c "Abbildung"', + "Abbildungsverzeichnis aktualisieren: F9", + ) + doc.add_page_break() + + doc.add_heading("Tabellenverzeichnis", level=1) + p = doc.add_paragraph() + add_field( + p, + 'TOC \\h \\z \\c "Tabelle"', + "Tabellenverzeichnis aktualisieren: F9", + ) + doc.add_page_break() + + +def add_abbreviations(doc): + doc.add_heading("Abkuerzungsverzeichnis", level=1) + tbl = doc.add_table(rows=4, cols=2) + tbl.style = "Light Grid Accent 1" + hdr = tbl.rows[0].cells + for i, h in enumerate(["Abkuerzung", "Bedeutung"]): + hdr[i].text = "" + r = hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(hdr[i], LIGHT_GREY) + examples = [ + ("ASIL", "Automotive Safety Integrity Level"), + ("ECU", "Electronic Control Unit"), + ("MISRA", "Motor Industry Software Reliability Association"), + ] + for i, (k, v) in enumerate(examples, start=1): + tbl.rows[i].cells[0].text = k + tbl.rows[i].cells[1].text = v + doc.add_page_break() + + +def add_main_content(doc): + # Section 1 + doc.add_heading("1. Einleitung", level=1) + doc.add_heading("1.1 Zweck", level=2) + doc.add_paragraph( + "" + ) + doc.add_heading("1.2 Geltungsbereich", level=2) + doc.add_paragraph("") + doc.add_heading("1.3 Definitionen", level=2) + doc.add_paragraph( + "" + ) + doc.add_heading("1.4 Referenzen", level=2) + ref_tbl = doc.add_table(rows=3, cols=3) + ref_tbl.style = "Light Grid Accent 1" + ref_hdr = ref_tbl.rows[0].cells + for i, h in enumerate(["ID", "Titel", "Version / Ort"]): + ref_hdr[i].text = "" + r = ref_hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(ref_hdr[i], LIGHT_GREY) + for i in range(1, 3): + for j in range(3): + ref_tbl.rows[i].cells[j].text = "" + + # Section 2 + doc.add_heading("2. Hauptinhalt", level=1) + doc.add_paragraph( + "" + ) + + # Demonstrate styles + doc.add_heading("2.1 Beispiel: Formatvorlagen", level=2) + doc.add_paragraph( + "Body-Text in der Vorlage. Schriftart Calibri 11 mit 1,15-fachem Zeilenabstand." + ) + + code_p = doc.add_paragraph(style="Code") + code_p.add_run( + "// Beispiel-Code im Code-Stil (Consolas 10)\n" + "Status epb_apply(uint8_t force_percent);" + ) + set_paragraph_shading(code_p, LIGHT_GREY) + + note_p = doc.add_paragraph(style="Note") + note_p.add_run("HINWEIS: ").bold = True + note_p.add_run("Hinweis-Stil fuer ergaenzende Informationen.") + set_paragraph_border(note_p, NOTE_BORDER, size=18, side="left") + set_paragraph_shading(note_p, NOTE_BG) + + warn_p = doc.add_paragraph(style="Warning") + warn_p.add_run("ACHTUNG: ").bold = True + warn_p.add_run("Warn-Stil fuer sicherheitsrelevante Hinweise.") + set_paragraph_border(warn_p, WARN_BORDER, size=18, side="left") + set_paragraph_shading(warn_p, WARN_BG) + + req_p = doc.add_paragraph(style="Requirement") + req_p.add_run("REQ-001: ").bold = True + req_p.add_run( + "Requirement-Stil fuer in-line Anforderungen " + "(meist in Markdown via Doorstop, in Word fuer formelle Berichte)." + ) + set_paragraph_border(req_p, REQ_BORDER, size=18, side="left") + set_paragraph_shading(req_p, REQ_BG) + + doc.add_heading("2.2 Beispiel-Tabelle", level=2) + tbl = doc.add_table(rows=4, cols=3) + tbl.style = "Light Grid Accent 1" + hdr = tbl.rows[0].cells + for i, h in enumerate(["ID", "Beschreibung", "ASIL"]): + hdr[i].text = "" + r = hdr[i].paragraphs[0].add_run(h) + r.bold = True + set_cell_shading(hdr[i], LIGHT_GREY) + rows = [ + ("F-01", "Apply bei Fahrer-Anforderung", "D"), + ("F-05", "Release bei Fahrer-Anforderung", "B"), + ("F-10", "HMI: LED-Steuerung", "QM"), + ] + for i, row in enumerate(rows, start=1): + for j, v in enumerate(row): + tbl.rows[i].cells[j].text = v + + # Caption demo + cap_p = doc.add_paragraph(style="Caption") + cap_p.add_run("Tabelle 1: Beispiel-Anforderungen mit ASIL-Klassifikation") + + # Section 3 — Anhang + doc.add_heading("3. Anhang", level=1) + doc.add_paragraph( + "" + ) + + +# --------------------------------------------------------------------------- +# Main +# --------------------------------------------------------------------------- + +def build_template(out_path: Path): + doc = Document() + setup_page(doc) + configure_styles(doc) + build_header_footer(doc) + + add_cover_page(doc) + add_document_control(doc) + add_toc_pages(doc) + add_abbreviations(doc) + add_main_content(doc) + + out_path.parent.mkdir(parents=True, exist_ok=True) + doc.save(out_path) + print(f"Wrote: {out_path}") + + +if __name__ == "__main__": + out = Path(sys.argv[1] if len(sys.argv) > 1 else + Path(__file__).resolve().parent.parent / "vorlagen-word" / "slohmaier-doc-template.docx") + build_template(out) diff --git a/tools/generate_word_vorlagen.sh b/tools/generate_word_vorlagen.sh new file mode 100755 index 0000000..c59511a --- /dev/null +++ b/tools/generate_word_vorlagen.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# Convert the formal-document Markdown vorlagen to Word .docx +# using slohmaier-doc-template.docx as style reference. +# +# Word ist Industriestandard fuer formelle Freigabe / ISO-9001-Audits. +# Markdown bleibt die Source of Truth, Word wird daraus generiert. +# +# Diese Vorlagen werden zu Word konvertiert: +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +SRC="$REPO_ROOT/vorlagen" +DST="$REPO_ROOT/vorlagen-word" +TEMPLATE="$DST/slohmaier-doc-template.docx" + +if [[ ! -f "$TEMPLATE" ]]; then + echo "Building base Word template first..." + python3 "$REPO_ROOT/tools/build_word_template.py" +fi + +# Formelle Dokumente (zu Word): +FORMAL_DOCS=( + PID-vorlage + PM-Plan-vorlage + QA-Plan-vorlage + SWE-Plan-vorlage + Test-Plan-vorlage + Review-Protokoll-vorlage + Non-Conformity-vorlage + MISRA-Deviation-Permit-vorlage + MISRA-Deviation-Record-vorlage + angebot-vorlage +) + +mkdir -p "$DST" + +for doc in "${FORMAL_DOCS[@]}"; do + if [[ -f "$SRC/$doc.md" ]]; then + echo "Converting: $doc.md -> $doc.docx" + pandoc "$SRC/$doc.md" \ + --reference-doc="$TEMPLATE" \ + --toc \ + --toc-depth=3 \ + -o "$DST/$doc.docx" + else + echo "WARN: $SRC/$doc.md not found, skipping" + fi +done + +echo "" +echo "Done. Word-Vorlagen unter: $DST/" +ls -la "$DST/" diff --git a/toolstack/toolstack.md b/toolstack/toolstack.md new file mode 100644 index 0000000..8d15a1a --- /dev/null +++ b/toolstack/toolstack.md @@ -0,0 +1,222 @@ +# 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) +- `tea` CLI 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:** + +```markdown +--- +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:** + +```bash +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 Element +- `SWA-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. + +```bash +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: +1. Doorstop-Konsistenz pruefen +2. MISRA-Check +3. Unit Tests +4. Coverage +5. 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 + +```bash +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 | diff --git a/vorlagen-word/MISRA-Deviation-Permit-vorlage.docx b/vorlagen-word/MISRA-Deviation-Permit-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..f6612ff892972aa82cf44b20f408b093cb855658 GIT binary patch literal 26845 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 A@c;k- literal 0 HcmV?d00001 diff --git a/vorlagen-word/MISRA-Deviation-Record-vorlage.docx b/vorlagen-word/MISRA-Deviation-Record-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..38198bfd2123dac261f1e01907b0d46603c89fc0 GIT binary patch literal 26568 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 literal 0 HcmV?d00001 diff --git a/vorlagen-word/PID-vorlage.docx b/vorlagen-word/PID-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..c4126d4285884d399532a300b5428198779b9e68 GIT binary patch literal 27282 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 UaH#Xs3IZUY!M-f3`Op9U2i$trmjD0& literal 0 HcmV?d00001 diff --git a/vorlagen-word/QA-Plan-vorlage.docx b/vorlagen-word/QA-Plan-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..1326ccd0f3f30b450490e45496c6e737c52463bc GIT binary patch literal 27948 zcmagEV|bYN+qODRI=0jS)Acsa~MiklD! zljBrNsCM6;iQ$bI9IugC>9sp!3~?Qdvq|dwlk*3CdxWh?;`5R~SnFblc_)#>vLIL! z2(eHAJdLX2ohb6=OR=3|*C=UNMra#}Cpg`gG_VSw7p*PSoJje4b7Mb!)S* z@_6KM9s>mM+{QC_o`y9upM?JFm_JGpT4+G>IXp(2q;(%XYUf!)30*vj*UmR7va<5Z zG16CT5Q9t3@CYKZ9dbd#jN(Jw@S~mB24RXIeBV?Lv4v>=pl|Jb0*%!{NaUeie52_0RapURo$tAQG1`Z)n<9<3IC~>uy5W)~e;Uo)!dD93Y1mM|!Ni_UOqKV0 zZtJbcD%QNKdLy=Wks_6cRqmI&*6jMzH;FT1cdaJ4_8|UqaQ}LhR)Vs7y92T{9OCgag7!EbE6xi zF#WVuY1U(_yVPJ(Nud|eA*yXU)@_56#G*Sh zuILt_HV^5zrm*D!1tub-H=5M(GaagPy6`54b0yC8(rF+8zfI9&G_#46fbz5ER9V>MoazA0eD6BEDHXR!8y7 zNE?f@u3#U%B0J@UXNEMf4f?Dlie2emHCkPH0zG@EZQQMSz52Vj**VgBn-|g z`ot+T`ZobAF&{JhG^I}F>5B@;i;GYGY*`8tW44zy24!}AB@~iJV5ui3b@@hPH#IjD z3OBf~?G?bbA$y4go4yjk9;@~qE9f`oqP*IPa+Iw3Rr)fZ$Y@Fu$^uS)1UjO6fUdtUi3-@{Q^ zs?oIQnx=RL9$1N`Ai&ibAsmcO&wF}*@VzNSh%haXu#fRFQe7Flqip+)v_Vbt_IVe( ziz$)TZRW|YMIP4r^NkqOeRn3?Qit4xHuEXwD8`2ui3?Hifz17}9yTy;%6v0ciI7aa zUggrUM)#y-{rYW`=Z!O1u8hG__fn$U%;5cfNl`snnQUBAfj}CqNCc2Vsbk;RZJ3Uv zPP>{9CE#>|m%yX%ugV0e`K=Y@K?+r5ZR={OOMBR)!QB}qoj z2+|bdu(US%djA|sjnVIOdg~MMV^e>_NNSEzV?+ZK@$slM5_D8c1lejue>cI?!ez#X z6SQV}LBQ0LEd(MWFda;dK3HTCoTlH%g<7F5;UM-twUfAg11m@#(!D(!W-lK;o7$%r z)z~i`r)Nr*yAZkqef4-FFhAQGq{l>_P|}YAlXw=6ARD8&8o1x4Lwk_(PO_-NYw}Px z-IN3QgnOk{M3C#<=KNi@){;k1gYY3VeNAe220*O$UYO?*3;=dDbvastqOrn2HfNSG z6Aq+yB;qtg&(cQ5$xT-ApZfhm5I_LjD}t9hg{dlYBPk3m$DgmoHp-P!27SciCU3~c zvv3u#NOTI6=mMqE&Qt>gTWYy_t0!aUux%3^lnMbjG5<|+xL~Rm6v$kw{zlOy5-Hoy zu6HD|=YgDNFd^?|McB?{irD`G=lniHQaFFx=+Bfwd7JNVWa(xh?G?O-_%nNzkeAw2Sg>Gl3D~31|SH`xxGrrn#JI1<3yxEB&1f=HhriO zR`PTmK*|iTrz-~ykhQph`APm04o#HoJqg_ZWhJY#3ULwhTbh7XdZH^t`LHrwQLNz9 zs9K-JVMUM@04Qp*uU&rv4Q>B+r1E!S^*x%YtG>NXX$)S+jO_u?S$5%MIY$FSVq=Gl zkBo$bvpRe%tEp`F(!trq`Mss}c=ku4My;2x?XXK`Bb86%)c|JI?W}DxxJP*|`gjN` zm8X}7RTMU?s394Ol1v%aPZ`D^QR*UsHBdkZ;82tB4AD+nH~2IaOroHO@N$3D6SJ;^ zrh(lQmJJ!U!iwm@NOPe?h?9J9HM7LMvf{MstZB&Oh9cjBt@+pSkhQfH=B-w!je_fb=Heq(aVfD%(;3R-Nz8HPa}((N(lBbTvpYi~BNZZ3CuFV$ zhf4X@I_1h`SWj;Tou0a>=McU#DyXT9l)!w$FC%J&c2kZ!r+EV#TbA%vN!i?`4Tdev zvW>cnL|m&hlR{&W0R0GLIgL~?yQN~kJ?ycp@u;$_VY{u7n63nj*YIjwxiOr+v_|&r zP$YYIYt~!EKJorkiM5^U{*miE`{nWROm3h4a?WGe%`d}2yVIqSmc2I{+JDw7A(pve zAk)-G{rnH1U-t^yTVFbPTm9nkChTJGQI!PDj{v3~MDY}1!$JD`!N!^QdK?;=zC!mp znL6`5mNI~nHI{wxZ!C;@eff4f!DJm&=?}A=4-~&571-Q)ig2b*V`=doWQpXsJuyX0 z;gXD7#j0_lKQ!lFae4q~@7*W@;k#okhKAzxs{W;GtW6~zDxLKn)4qelRU?j=%zew`Lv;?cH)>djU8T2QIo;-heK^ zxZlf@#iFJj*rR0?=sg$?2xSlTbu3wF=z-M)=FBSbP`u_I=eSD)S4wN`DH}Ulm-){u z7ZNd~49zo~`El2)Fa-0l2-f5hlT4=Bs=CVy8SBn_v{klE%W`F-w#)0Q_nI|&q4^P8 zNDk_F1$cVjVk_yW7WTya%d)POd_#bG3dw%&yJYThe5TAiPo<@`wnvn+ZEMpwSYO^q7ZMSs^98;}Lv> zCC>g(Wu#S8KwHXeHvfATka+?(?1hHO*iv5JM_4Cb{PIxzGObG_^p^7az6n5kai^BA zNGdrT;9@t;ZB;F#Upb##wUt5obT8^KBXg#_QgTOa>aR@+=OVBwX^E`7zojKs8GOm) zqzyMK7dln_9dEn6i){NCAHueh16~T-Ib%gOCqTc*fEMu%G!gp6Cz;f|h&69xF*7H_ z4Kaw4oxP63aO zGK@L62=!!x9QaYB|A34@7l3R^hnM3qI4RqqouiwQ+FsZ*&P?VoS`5jUJx`%%RQcPi z!nNPH<91okBhuq1O%%5R+>0{Jo~HZnEoKSDC6cRTa7Za0O2r>8o2?T=;)x((E zO2P>S{Vd`9!h2m8qO@wwb@&=wNWxTF9eWY9#_Z-$GTw?~a9p9T-Nl;ZM~@gv{6`5x zjqM^omQ@q0Y!mez$ax;P)9256{(NdS);Iv8OBzb7gVshI*${axyrR&yK&dd`v+c?_ z|G`+#@*lpyoL}!i4Lno5<+NV}CfS}DffnG9Zfa^~K%Cp0Lg%Ci^~OskQGL9gMF_Q7 z*6~(3i~w!-c=h!4uaZqHfBr!!^?v3>?$~@6wb4uC4&?|xQG6CBK717dO*sM;#S*ds zZZje7TeyxoEpIRrTXyLMbumu;DOOgEnm!8o2?qjHD zCYP(qIX21-lGg-e<~#V1JZ01J@R3+^4?HG)Q*wYK$|*gI=U?5bvddG3M;92sziJcl zLoeiW9OZmpNPad7QU{DXgBooE*};R~TwijL2+8c5Kss7>y(8qW+=|lBy_U~68)-Ww zRjr>OPeN`+wKLt1T2+@GzC z@*0EUy_TJ0J^?7*sC<^5ck7@3M++M!qA@}Lbu7^b0R)8eKP}t8`q=+$-2UllyB0TP z1L-lquT%-UQbA6#Osv?3j9MZPBWL%B?5o*$yY=|u+Qh838WPz zL@+U@R+R8iZ>YgBhZle=+d!tfLah7>b;L4OZUW~XGZ+@wiZ`Hg;f6GRBKe&{sj$Y# zFrCDp3|e9&DWoI~auS_yzv-U?d)>tX8}AB4ka6e)B^62^@(T$+uKUgYk9uh0YY9M6 zZ|DY|#z>z~=_J$tph~E?K4 zOOLe7zI_}sbT!eBJ>&8~fPNtdZ6Fkz#q!Z zeLZmhJJTk%woW#-PR5RZd*pvoEfXaG4?+klQY+Z*8bKGu&_7`VuXhIor$PW9EN{U5 zi$?pS^YNq8=hlYz4>PL0T^0=nnr@CnK;W=9mzJLP0rurWXg-573o(*2qGzqD@O?bf zF@S2EpmvV&o_C2gQSykcUz4SmV@@cBN)uk;YqLnzWQwl)|c;s%_8M@$UfUU4?ShYscN5eyro zQsS7xX`p2G73}1th3Lwelff(imELK_ts+=4#&fH z!{L!ul2$Hcl-(E(hfX=W#q{QTZ`}M&08~i^9Rx!zGwBLivHIXrMN|H*-Dnx)m zlVz;sXnnW)zNnitM6VQ;$E+Ssx)|%lEZB2~o+O)=HPW%C=Getv)TGx>_CgeqDQUIv zzlI=!$wd`%3XD@4DW*PGNdpr*h8G9wgwYf7QDe`ExfuknZ%l`JXaq;$509|_2)(@} z^i?P^FoqPgou!gf))X*7szs(-rV@7kAPUp1xNhJ!a9_kuT6e>QOEf%%8KMZclevcV z#R+F_2n5fWIm8uCGR4l=cHq2L<^cl%N}GIe50-(hQx93Vgq$kg;j+A zp2wav2aLb}`&QubM7qUd={~$+T6gx%CZF%Rs5@trx;r%GXd_XVdejqB|GZQ~Q7gYq zDR&z=T-e@Vf~FXEBP#ZMogGEv%o3%`lmXThdgBxg_ogxe5ly+X2AZq-sZF1OoJoD5 z633w)QpoLvOZkL>#P&jcYk!~ncZgTUKv1~A!=;5r{IP_^)7jteqiPx@26e5oe3+o= zq{MJiXYrT77m}BrHLtYG`NVAX`=W)nasz0-GLih5{ROCOu)MC?*NP=UA22N=VHbVUt`uQKoZAg9t{*AsqLM5R}hc{_o{lpDaqAys=G3yxC;Ei zMRA+#!avi^INfCjsinQCZTE4WS#~MH-`Ll^#%86h>|@>A9H3YIT|l$GFi-8YXh!9% zf?|n7;3p~qDvD(`&1wV>_@D-POtXQmK>dW_}Q9WF2-@y?iY?}%QgrH{LgJshpfdA z(6{*#91U;S#wQ1vop(KLflK2Gn};*9;WUO@Ci0#@iH)EfWs_qpmIS4 zz#~VH>V5h1?b@aFHP-jnncT44<9xT=#pT=X#a$<#&$H9#^k!E#?ZxL|_vh)FYwBq( zUSD_t+PYvY@8mmdtRPY#^j*0sI4hd&T(*KU_%AG^wbFClYM{XwKmUSo&4} z^Wogd$A>T1)4_%vj>XLS9Lr-(7awSMn3JEIiC;i$>{IL8+;$%oh$~Ml2?~}ycV~h9JyvxjZuhM%0 zc{g!5`_+I;O6 z)>^nDC8tjKte*y3=cRy7Cm|yacfW7hZvB<%AgR%uVgw*f#L2Q%vjF*Agi34xm# z!pVyU=f{@vXRRq+*WSlA*;R%8s7-s*t$*rf-2IH0{7mNfR7HE!Rlo5zZi)V=afNVH zSsu82J?%Y=l2H1%LZ1eA?Y5a-`*C>wdaBKSs)AKxxpO-_-y~yN`X~F{izhcmmwg`t zq6O#i{N34eMc0k=y7Kc85pDf_x6{|g%6o`!_s!$?#oO}y_6pzT`^BgIzRlL*{Q4m_ z$TkaIOBw#7u1>9Mu5Kaw>hE8ZwI`W=_>ZZUj;Gcg(?;T%n}ohMxsUj^;Vu^$_qLe@ zj8P_-Dw>%2NNRWnWF&su&}Ypcf1Ji$!pJs>vGH@qm5W$%4}lMt*&y1Do$yv_ZGyMsr0CufQ=7?xPOHxMm+Gl;+-Y zfchTQiIeaobY=VD`;dz9=CJyd(4U{>*T1Ja`stHZ)0wxpg%HYzQ~Pnfv)P1XdV?_1 z2Rou~)>|GYl(3aGLMUP9uop){FV!FgoJPkH1U;3BlK@684==&bLQz(4cp*jxwc!0D5ipg{ix`;XPe`TN*c_#g)e z2D|($0Sqk)Q$z@qF-#KRUYe4Wt9HaG13oPCLLGfQg|D^>;(7h3* z=kKg9?f)`86$-bOJZ^0^X+d#WcS{zW&#j?FhTFzIWq$7DzVF6(nnQFC>|ts~?med6 zAK%^AOe#7gZkjH=miB+3&~7|8&i(0hLB0Et*>U;q#G^Zz@Vr*>8fqKtEv4TvtJ2wF z7OT*j!{a`1HIJWjn;Bl?`wJ3zbKY2VJGEcu&mdP*0$1V25Kr5?{V%XUx?h%z*Q^h7 zcRR0U9Ze-Iq}x>;O%$4&0sh@QXSq|e2hC=;8W)M;A9S#=5}Q#HPuRNUR;J_Ue33sB zRdp(AW-va|MYL*?rjWz#V{2D)QGKzC+6l)*4XkH97$T69hpOin<+&FeJ zzO7DulBL^hXNmo_c%+{3$cX;StEk3AN>i|Oz<2m>9k5b3Hz>&)WE;;<=8GoO*X+qRt9$-`#L)%Z8 zKhd~8(reMUI+bTbHL~_#&}>YDpH_51<+dm3k#Qv{CA{;pd}HT(I#-jS{vmL9-Hd+k zV|q8#isGkp%LViz*GE;g&A&$f)G{V{Q1;&K;LL7S@St_qrXkZh7+Vs(pusGoLGa zaK~wePSmk%K))cQ@Xm-|x}b9pE-(~7l;ihShvN@Yz7S)NhoH4+D?GLa|Md~PH0()$ z1F;6q$w2i1w+#!VOXYLVpRuLM>KcD|#?lvW{FH7DQ{LoEFn2GD-d&|{dbt{~6Qu`K z&j2B_c8=(lw3=)xhp`?&4Au?Ta>8(1O3zdiPMRYvz=7_!ANaOs(xdsFm8~OIx{6K2 zj;xZ2>&}rUz_I*I@CwUE+#S;m-Mf&(baLlzxm4&4ZTtAD|C%HD^G$3IceBB@suvFX z)9%UKv*Z0v$MLe)w+)$2j{JDRpIxzt2Q4U*&8%+L)_yCi7?IVM{`lALO1E78CgT~M zDJ;D-mNAPB((*joj*HBd18jYIcV+b&e!MbdUQ?7O-tS&?K;i2$a^X5QiD~%72^6Zs4rg%IS@hro(tCQvqnJX}KpLAL(cs^8S;X0aJpgKojb3LfduG&~fiz>;O&g#GeL zafy5&-M3<&AbN!LB>#GLI)9rh;eK8+41XDIY0t)MzY+NzQ~sN#YGrw&U4#c=?YTv+ zImJVp`$TCw68>GfLx(b-d^k4&7+#Lp-<)={^kHDWL5cW@i2N_-qkhs(y zEcr51+R~+Q>`+5M>>Umq^*sq>kdwiLNdhJ1G6U+Eb5c(7up!VKE=OSV0|q}2s)^Q8 zc=O^N)e(1#`h&CQ8!~PtnypXkWcy0Q-9w|zla};08wV_Z4UBaEL&|p-RDPh?tI@O_ z=^~I6#QAcVl0@(*_$B<%z-exbi-fg~Wl>4az|Xh14Na45`V&2T?3UM8Od_Lb3`OQX zUVuUL9izbr7K1;_jpN-#vO3}Dc}1BanF#Kg(1A<$8=)bMwc~M}*+5DG(gWdlOW~I| z{pArHHR8;zwbxxpB`Rh`iHG0|Wx?Q!!8=G4L@B&vZ!pr$BU4z03P_kDQiO5dEXDgf z#ypHgP>?O3)r%?erMnePHzxn0;%NR^{R9;#>~7PR4EWhp!R!Iuk#&absi+dogQ0?L zwEiqLnHCxc&zaGdw56)@j->$-C${y%jW@x)JNu1IKam>{;%5?*4$2|RHllhm1^JtR z17U$X@Vq3$so3WmFmTmVnd)-ndB=#1Apf3s%wxxxk^B_K= zm^9A}6Y?kU!hpG%s~B5CHS)@`~DTxjViYtnMH*t`^Nl zQOgBP^pR5#h6?3t+Zonox2rP{jrlwn*e>mZ^(!TgI+;_wR-E|BGWrkbtk_PymNVdK z0_cGZW(b+D8MGaHO=rjx4dcCPDqY#m<>_o|Wmsh2_E$+;n#r|;i~&p$w7{&^CgCJY z>(Vq*wBaoDlyxm8xJF&jr8xJ!yt>n+Z)6P_&e7M|S%!&UXW5;U55iAI&-!b`@7j(r@5X1cg?R?t@1qocok`kiNbkAsid&Tmc$7`RGQ4S+iZd>G`lt_2 z>89^W?vLf3vBzkgboy5pI>{-CLGQ?HeRSWSiKpM|p$onZzY7$U8VylFkAv`B_ZdF- z2?$W0`V|21oM>K z!WeeqUZ&knyZIAgCs&f;2CQrINeH=BXeF=!ceS{Ptff(6jdtoz3I3GOVm+b%n;>-C z!7bDr9avXa4`}Si?;fC}pC7$`vVI8GQGRmJB)cBKDWfK{+zFIEoHjk=N-~{(KU5X` zL9Y}dsE#0>Ca`+gT2e#W6wt3|mrw7lMv+2fSbHGn=|Fz{`hwD}^9QCde-8xC2Et#( z0M5k{A9B$)6%}SQ*`ALF!c`5Si;Up2E`=K)HQ$;Dt%0J(jKDp zeQs-4-R>+oe1Qq+`wJ015*;PjB9?8MMvn45KXJEZ=%87i&6>xz!};Ow@LoXO0N%+!y}AbxFjUroAfYP8!gG-CN$cL!0xFY ztN9JQN<(DSh3H`7>~I}XPhiyksD$WHl8qI_y^81ug;|O|=p_Y2SP0C;N`NkCQstf` zHbMj*D;gf>FO>w;Le((0tXt)Q_C@NYeL1DH+!P`|fL>~FEMnb9o2+C5=){--!fl9x4M+wR@ zFSWtFQTtyM;+;p#dTiiEg5xm9W%>1pa1$6YPIy0XXOXngu;3!H;40 z&xw#ITi0fYfzgs*3cv<5s~|IGDy#~Ejj?r;L{_%I+|wJ!Ze2k#Ixes8m-#t->)qC$ z-kiSOFi|M1jU8H!__dGIv!y;j(kiL%te>cCA2gjGSU%Y^8=x3}aQlFAshIl;EsOff zdJF;Q$Wwthh-!^?ZoB>iOv(-$DQ7ChVi?;&3%5_-_lMNdl%V?;ODx$Euh^{H0DA22 zRk;N>N9Yb@fb!cCiwl#y4!D)|0Y)FMMazC$en2g*F$`kmJTR-K1b83o8`L^|3FvV0 zJI0t^Z3);b?zxP4+{SpSfkEB-Ob_yu5FTb4(Sj+-35x_JJ@TsrY5_1QW*uwjZd%M? zyZKsjBL+Yct045K7f#uwD+OBEiDz94fh2iE?SL;=5{2@XZwx?`at&_PoFExw{e;x6 zFHIUlt;?9yD=S6%z_OZ&OxCsRJ`6B;&G$FehIKd6qf*F?FIy%l?h!vDPY#1fGU{3N ziaF&d5u#()cmwzYh&;mZ{>U3ITc%42FV9cj^DBl&9TM&nm<;v z`~_T7ntAG9gp7$0Gf|2x0w058OofCH0`h-TmWvZsKJXv}Dkq0~GtvVn;3Zb5m5}t0 z|1C#_1V=II*Yu1t?1*NwJnrwe5@pZfk{CIVCU#iVE?~D`Y48* z@k>BdO&+?%SaKx(Jon-qrt_-cr$XWpMzASsIBk+9EjT?s@TgV{=X;)hjcu8(T|3NM z8QRUXb=@3n`Ifz&1yI9LMxMXtV7fp_5Z4azdsI7$LpadcxGNlEr#JYG?IoI(h` z1Wt2LG~y2htNbXK+}ir`kHdK}pen^K&sn)SlgcJcc1~sN?1i7=+aQo&nZkUeP$>^G zV3y8FoI&cr!cCf_;mdk0?fd>m#|b>z?Ea7$l9rolhVaEE{I+D`}qlc^Pvgv(e3&ZHzWRjYm!Q%R)?J(ruN;{0 z@1AYE@X}*%$Q{RwcrEZ@%VBQKxwGPiyo6&Ya7b^}Jt7w~$oY&IL`UcB^BM*KQ;^A| zWnOw^G#sc0#1hDi_|<6$F-pe6l#14w~$!;V3u^VUS8$mK%qcR~4s_mUX6Rq-34&;&UX#J(~@B*=132 z$!$XioLyh%^b!*I}Lg*@IDHY-738PhEqMmOBtx0C6Yxee%qZ6!O9Id;oqm`VAX#C)B( zHTf!XSExsG)`sAaBK==V&4Ag^MkwFYT@eq`fl8kz++$(UHaz@yM7`@=1!g_^zS3^n z@(;;I9*{ntHj8o2JqTf32a;NGo%qfe5|zati1Xcu%yX(mwYw#?4Ui1TYHggNFp(%O zfH*M9s&>|`(z-vj+JrD;#K9te%_Q{|E-Lu^BDO_!;`+lf`o;(bMRg9&Q7CAXXJrJ? zifYc*J#zZ)auD- znDp-4;1kPz0iM#(epq``{qxj#^ct1>`u!Z7De}8w3_*K~rkc%3!IuOMs~uM5U2tabpSA(C#A8Op zz?38Zno3Ruake{&y5+8_jqQrBSy9RZ(Z~^ zS;3k*x!I>BiZdc6|F~lo{dM;bnhEx;meK(Aw>O&l|Kd(~Wbn5okT05%Y08Tnm~s$A zU%EjTIU-Vg1IFZCp zne(0HGutEQ3syA;smq|G%#TDbkI*XTxX9!%;0G*ZuKa|66+3+>@RBfDnt|v?L31Y| z_`vRp+)oxA6cUb{YsiW`&H%BOgSf)lxJ4cr@;qfk7=xn<=W|%7PC>|F?E1U8$hfL1JgSIqy&?Yrc+}-F)3~w~ z>Q@4gYtvY;Q0%H%3_)5^wJq(ao>5z}PXU@sPGMv2~I zaqF|wSF$XE!h?(7zvO$!n=JeW=>Z^kv0}d=&Lp0ct9Iy0R4lh;#GNcEb@^sJPFE$f z^?L@x*i3O5y1>+veEk=|I0-Z;__Kwu?qTG+AY~zinD{)uf@ay{t3~nj&nKY1~?AwqP9eXUvNuD}kjbf~Eq7F?XQy6Kp6FJ5C6JqacvN zGKZx&`XvO4ayAv{S8(MpY5#TS#LDgqI0_@zI5dUYsU|9Lu()@n0!T!0i(0k2TKOOf zBvmr%*Y;u|@@xB|<)xI81(O#?bF9!_BmfFC(}#%#3e$c$0|ef2OOQ9>`DayAjxv%{ z0&n?8UfkD;$lt3WQVc~QTu~N`C?#zS7fd6t&w|ph2UwOL zNxq}do~r`}-+Qo%1_obuHS-HtcSn>*NgB3fDpevjdU!X!izd+ZEzd(V4|6Lq;KO2w*4EY)FPzZ|O*^s~@y}L`9ixJ#n ziQF~1{Dh5-QGNlI3?(C26C$Qhz?Sb&`Z-0uu(w**y%s?5(wWB0pz{{c?LEvIy_9j2 zynU=(W?*xlABy#9J>03SE>Gi6dGp0bKbOOj2=FuEtByYSSlEY9(TFWT0uv_H=YIb_ z7YLdUPq}33PvRB)z7OJi*N^oiqYw#auIeE$h$B995Y~z#9@3=_|9GT!NQFXfU>s!q z@Q#i6`VmiLA&5k4%b@LeDQ8O*E?=!8i3!}KS)&cMVAZ6C^iLmzkU>`=FOo;ycjOi# zro$7KghWZKDB5-ApQP~S6w$<0NaL#*%Uq%AU6jK**DDshDUgqq6TZK&$zkTbrK%y8b)sT}gURUsG zEBtLCk-P9s*q(y6CxJT(Tl{uaHjC%gWioe#s(D2Y_gpVz@NRhFS0r}_SZzxkp_>uq z>2bfZ!{9xI?>DVlwaZL7j7Vf0h)GmIKusEyP#_C7Z6A>Gjf)QWd2oD!Y}{5iW&F-{ zH6yz;d9iz7RL2VO+v>bZo`Vn-6SlQo93cEA)8Wivkf~hQEukaKqhJ znO|t!VkL;xtVTl!pNo>jX2cB-4m7K9i$v0*-9Rl`q;m^4X%fZCPpb6MSp97#5i+ zQfoW)ejreAyX<5N2a<_r0rVRN~@_Yqq zOG2e)SI3W5^$A^X%@`iyw-bwj0(LDJ+RzZbF*C0jZ%Lm!`YWT!YGW@&!a8zeOX&}x zNZ^pcbvJSWzX-bCVh8@%sE&k?KqH5madxw91u9rD5%T`{Xwa0OqL-ioIUS50fJgzd z__p!r$chdj?FNw$!o|_wBaNPh7AD+KGA-fd)l8J$Hb@?60q%ay(T{Msd+wZ;8FiES z(qseq(rIi1ZvO85y@zm%>`&rICiF8De(6Fnlzdz&LEHrNu3>FLIM4;ez>T4tCJ4sE zqKmi&ozFt)DZ{V@&GSl{u8MDnTz3rMjv(y^h{i9RrfBh}PQ2fDoOmaQ3Lnu*@@@)Up?!?Z-C6TX{{f`T-L zeQ}N_;6$d6Ec@c`B66z$S=J z(nOMQv6WrJu1%1PHSik4R%PX^*UecRP3Sl%WejlBL~wq^!m&nD%rA2^hP41qWs3a# z67iK#Vh9tYjxi#S7)ynXBoqN+6QrhSkTj9Kw7ah7x#khC(Ga~cP)z8*g8bA6;*F91 zU08MDufo#&Ev%)hhOJ6caW%=3zxu%T>unEMn|@SnQh*6M{jvP=}B( zht~adu!+1Rh*OWwWFf|@C4)8?LASWsYO`(HqCkh9iYIm3oq*z-p64MUQEEG#EkA{z z+d}_aYXk&A_E6Cd7#3@%!z4n%Is4Xu!NnF;f z)CvF|`=;BfD)`j5th-=4A7;B>)~LS!W+5}3H8o;uM5{O<#=eP^mFvFb@XLS=w(r>n zLi*7K6FBQqqP#!kRxx=D^bk9Cy{yOGpO_7CDi&g@g|;-(4sZL7f4h?*o%W2wTbv;4 z((?T6t7Th03laE2`#k?cN9=dYL+Sk6PNzcAeap-6{S+n(z05oMUo5n_{>>uQ(UP|u z6B+8zGvKzy+?H(b57sO_)L{qaKk2mlC!JGL$`-U)v7-0mVheWk5t%by4zJoCzLqq( zJ*ztPUP!-4ph|5~yHr9}sHH+j_+XSuVjtkd zae}CHjB&mhpH;XGog9T;6^_nhEASZ)zg>zsqm(KLRxN#7|N+}u1$wup|Fky9B1w@dw(%8Gy` z*96QT8b(fV%d6?QXTy`oL`8=uj~WW}swifN zriDdBQoBbiakDZ6f%5da^Yo? zvP`;|#3mxDI()=veIt#rPTzh(8yzJp(HKV0IqWjYBE@2aim^UqpM~ma+J>S1?P6Z7 zCw<6U_=KJKar=PRX+f@E3gx%%9x4Kj4&(2WTEM!)BM_2K({b6qnR{BhrBpMBO@d&ORB zyO3bDd|3A;=AKvA3(Vuaeg?UuU)X?OWlT$xE$u1Ge9=0SMXjC2>?xs4WH@ zx2R9&+HyUXO0?)$vOKIRK}pw0;Cb&@zsTI$kH5k$L8UT8fJgMEU^r^8HeU!bTge_- zMMX_`mTh<~vqQ0L5TlKEEHFb{qJ*@-m1z8GFj2J@t^6n&#g6_}0ReFV+s>7Z!q^SQ z@UvG170b>kHi?$qdsYM5yD1V9C577WJhHyUZYDHaC%zv2=$SPNF}+_87mkq^*!Jw< z4+E!hv!ysZ&D@rvW5>*`sN+N|WZ(kJ))G*4>q6!{(y)NqW^PEVJmZ)2seH-Ut4sT1 zd!7BPtgY)Tt&RNkRAvzpl?XA>pJFG?7q`-xTaDe8b@B1C6D-h;-BuQB=eF?43#ID~ zC3dUcRA8k~#`C<7j*XcN4Yy;N27*Sb%5+t%V9P-I>8&rHM_e1m>7TXrItyrGS9Qj( zOmS$w_R1%7uwSwB7MV|KziD}(_%KCmJN@26Q(lOFO_+>a6nfUI{2Kln1Dr?KQO)#u=D9f~Fb4omMUUINM}V~k8-jYNWmIuWSQ6iBm#xF)d` zxQaKGX{k!#sk0h+&x;STlM!ha!09_=p;9cW?*KjF0NSKtF{z+9XfimFsHV8?OK2rw ze=LzG<9iXLai_VljP`m~GB_XMcD_Qivf}VK6WBPBphc^KKtNZTGY%oIkxv*PnE~`` z^uZ94P>i^4NSvsju;)i8;Akk5#|%aCpi)k%%bu<+`>kQ)nJ>Fpewt<2J5;6~s*M&w*NeSTqa&;9n z6=V{XQl)bfKwLN5&dxjE@5s)mLgR7yb=H*gIa|tTDx`%<&?>lOmzJ@{{MAKTEuSpw zJby8)mgPVgKo{u08EW>uAq)-JV^LYzl-N=Gcq(eN1lvCn`H)1A-T`QZkj9-EWcD>x zkilLIp__~};_i{zaN&SQuH&5ayxzl|IfQO8SYc5#?)en0n4LU&Td4&&C$O6AmJ09v zEJJ0qKduks7t0Px3?m}0asdyVPB7hsd^@gXVx8V3-LKHQ+}3Iud6c8Mm+S1vVHltKKC!LVkRIY`wrK_XiCPiM zM%W>U(+6pZY>+DsW-Ak!BL31dUL1&Jf2bUoUM6mP!3R^e1{map_z(?f*ZP=tXhEV0 zUbV1y3KM)OXx|W{w4iI>iP1l6p@fWP@^*i-+$eI4q|K6^<-Bq`tL4b=XlYR)m>xO!kQpPf+-N}Y0-xjIn^Ia1pOaA2d$fu1?s_l9%7HHTy``Wi<}v8} zYS`=UK}HBLE`TQp$c1?cyL46gYoBR-z#Vv<(>RO=siXvokY0`zz~xi2d5O{F{_XJE zSTiJ|6RL&X$I-`*5BJ=-r2};DQIML!yR;Go2+X+1>aU?jM{gGmt{pSyxulAbZm^+t1K^frj`-T!0BT|Z zx%v}x9yrt;>p>4WkCxP1*VFSuFx!miIpGtBzdGT^--+dxEN7_$;iF)4r*lE!~TL0Id z+h_p2W=WIk^La6zFIsW2b~uM`ok(h@Pj^i+KEk&?KRVg<3}{{@wz_B3*QmamcV+&H z;q%cz`O|cyo%e2qC-pU2t>p}Eu5ZZTD?a{jS0>MXA_%s%=Zy8@Ch9*+zr?|S9^Gf? zE!cueH`qA1|2W~p>y%A(Quf$zhj54Mw&_Me9(eW=O7X0LqqrY%Bdsy88To+QS8?cD z##Yele=e2Yg`|lUkYxC&THuss>IHe16jJoHKrC+t!FDyG`w}O%D~UHJ=;QUe5A_CL z%IDWpr~58EImc_lJD0vZu+%pMaF#nv6*7Aw*miupzlIc|7&4l9QXAqxn|;2;)@!b?g~HAe z_|&VV0;Hb0yghd@p%41}koic-e5VLH*F5W0{j$>H`qRl5(bchmrr1sU^p<~2CXtxJ zQ~ESqi^!MtPKpU?gqw*8qmJnpzE+TIE|)BejJ* z7aU*c=h1XKTJAT4Et(I&CHF$zR9_!c(TWL8L=MA$&mxHf4CXgTDV8&&&DDR~I+;4! z|LW@WyJR(cvMZ{G6z%z%CgO_fG=GwK#+AwyViPK9Kf6eOJRaut>HL(|ULNHZ1?zbL z*XHR@cvB8tlkhKCclxhr!7n|=R&|{3@5?&+Zr$XDNCPk9E0&J6i!_i~o>Nk0b_MSc zJqNp1NkS8yCp)l`xd%;X?TmC$cVz643iC2yKc8b>xE@=0k+J^}9Ne2n+JHsI`#o)U zrwfh|zsZEW8oT_tB?8`^*6z#F@H#?DmH?R%=9DiDjv5QsMal0B*t8{i+O-{>EJET` zo%46!(%3N@bUd6|>gZzrt1z}GVOXJu z8BIKZ@=U;)xB;3@9w+yckVrm4?^s<)+3XFO59#6R=4*SIqN4>b-($knT79PLR$2c} zc=OR~NC=6{=3w)`~Cb6^{Ir5^Im|DyyH{ju=jir|vcz�vbE+LT0Gr)<460vi%({IYW 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 literal 0 HcmV?d00001 diff --git a/vorlagen-word/SWE-Plan-vorlage.docx b/vorlagen-word/SWE-Plan-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..ca5351c5b2435362636f53d664ecfc3ae3f6c975 GIT binary patch literal 28506 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�(YP?PURDy}=<0L&M-&r{y(!%+_U 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 JZ~5!L{{ny__`v`G literal 0 HcmV?d00001 diff --git a/vorlagen-word/Test-Plan-vorlage.docx b/vorlagen-word/Test-Plan-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..492308189d6eff1887f8c8d5e4f9c87d4290bcc7 GIT binary patch literal 28008 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 Y|G72{IMn%R1pyGyU|&|=^5=j51KHBTZ~y=R literal 0 HcmV?d00001 diff --git a/vorlagen-word/angebot-vorlage.docx b/vorlagen-word/angebot-vorlage.docx new file mode 100644 index 0000000000000000000000000000000000000000..523d0d5417c524063f762a9d6deb661884f32413 GIT binary patch literal 26267 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 G`1U_W+wVdE literal 0 HcmV?d00001 diff --git a/vorlagen/MISRA-Deviation-Permit-vorlage.md b/vorlagen/MISRA-Deviation-Permit-vorlage.md new file mode 100644 index 0000000..235f36a --- /dev/null +++ b/vorlagen/MISRA-Deviation-Permit-vorlage.md @@ -0,0 +1,76 @@ +# MISRA Deviation Permit + +| Feld | Wert | +|-----------------|-------------------------------| +| Permit-ID | PER-[XXX] | +| Datum | [YYYY-MM-DD] | +| Erstellt von | [Name] | + +--- + +## 1. Regelbereich + +| Feld | Wert | +|-------------------|----------------------------------------------------| +| Regel-Nummer | [z.B. Rule 11.3] | +| Kategorie | [Required / Advisory] | +| Regeltext | [Exakter Text der MISRA-Regel] | +| Standard | [MISRA C:2012 / MISRA C:2023] | + +## 2. Scope + +Dieses Permit gilt fuer: + +| Aspekt | Geltungsbereich | +|-------------------|----------------------------------------------------| +| Code-Bereich | [z.B. src/hal/*.c — alle Hardware-Abstraction-Layer Dateien] | +| Modul / Komponente| [z.B. HAL, CAN-Treiber] | +| Kontext | [z.B. Register-Zugriffe auf Memory-Mapped I/O] | + +**Einschraenkung:** Dieses Permit gilt ausschliesslich fuer den oben definierten Scope. Abweichungen ausserhalb dieses Bereichs erfordern einen eigenen Deviation Record oder ein separates Permit. + +## 3. Begruendung + +[Warum ist die Abweichung von dieser Regel im definierten Kontext vertretbar?] + +Beispiel: "Rule 11.3 verbietet Casts zwischen Pointer-Typen. Im HAL sind Casts von `uint32_t*` auf Register-Structs notwendig, da die Hardware ueber Memory-Mapped I/O angesprochen wird. Die Register-Adressen und Layouts sind durch das Datenblatt definiert und statisch. Eine regelkonforme Alternative existiert nicht." + +**Begruendung:** [Hier ausfuellen] + +## 4. Risikobewertung und Alternativen + +### Risikobewertung + +| Aspekt | Bewertung | +|---------------------------|-----------------------------------------------| +| Sicherheitsrelevanz | [Keine / Gering / Mittel / Hoch] | +| Fehlerpotenzial | [Beschreibung] | +| Absicherung | [z.B. Unit Tests pruefen korrekte Register-Zugriffe, Code Review Pflicht fuer HAL-Code] | +| Restrisiko | [Bewertung] | + +### Geprufte Alternativen + +| Alternative | Bewertung | +|--------------------------|------------------------------------------------| +| [z.B. Generische Zugriffsfunktionen] | [z.B. Nicht praktikabel, da hunderte Register] | +| [z.B. Compiler-Erweiterung] | [z.B. Nicht portabel] | + +## 5. Freigabe + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Freigegeben von | [Name, Rolle] | +| Datum | [YYYY-MM-DD] | +| Nachweis | [GitLab-Issue / Wiki-Verweis / Unterschrift] | + +## 6. Gueltigkeit + +| Feld | Wert | +|-------------------|----------------------------------------------------| +| Gueltig ab | [YYYY-MM-DD] | +| Gueltig bis | [YYYY-MM-DD oder "bis auf Widerruf"] | +| Widerrufsbedingung | [z.B. Bei Aenderung der Zielplattform neu bewerten] | + +--- + +*Dieses Permit wird im GitLab-Wiki unter MISRA-Deviation-Permits abgelegt und aus Deviation Records referenziert.* diff --git a/vorlagen/MISRA-Deviation-Record-vorlage.md b/vorlagen/MISRA-Deviation-Record-vorlage.md new file mode 100644 index 0000000..372a6e5 --- /dev/null +++ b/vorlagen/MISRA-Deviation-Record-vorlage.md @@ -0,0 +1,70 @@ +# MISRA Deviation Record + +| Feld | Wert | +|-----------------|-------------------------------| +| Deviation-ID | DEV-[XXX] | +| Datum | [YYYY-MM-DD] | +| Erstellt von | [Name] | + +--- + +## 1. Regel + +| Feld | Wert | +|-------------------|----------------------------------------------------| +| Regel-Nummer | [z.B. Rule 11.3] | +| Kategorie | [Required / Advisory / Mandatory] | +| Regeltext | [Exakter Text der MISRA-Regel] | +| Standard | [MISRA C:2012 / MISRA C:2023] | + +## 2. Fundstelle + +| Feld | Wert | +|-------------------|----------------------------------------------------| +| Datei | [z.B. src/drivers/watchdog.c] | +| Zeile(n) | [z.B. 142-145] | +| Funktion | [z.B. wdg_set_timeout()] | +| Git-Commit | [Commit-Hash] | +| GitLab-Referenz | [MR-Link oder Issue-Link] | + +## 3. Begruendung + +[Warum ist die Abweichung in diesem konkreten Fall technisch vertretbar?] + +Moegliche Begruendungen: +- Hardware-Zugriff erfordert Typkonvertierung +- Compiler-spezifisches Verhalten ist definiert und getestet +- Alternative Implementierung waere unverhältnismaessig komplex +- Regel ist im Kontext nicht sicherheitsrelevant + +**Konkrete Begruendung:** [Hier ausfuellen] + +## 4. Risikobewertung + +| Aspekt | Bewertung | +|---------------------------|-----------------------------------------------| +| Sicherheitsrelevanz | [Keine / Gering / Mittel / Hoch] | +| Fehlerpotenzial | [Beschreibung moeglicher Fehler] | +| Absicherung | [Welche Tests / Massnahmen sichern den Code ab] | +| Restrisiko | [Bewertung des verbleibenden Risikos] | + +## 5. Verweis auf Deviation Permit + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Permit vorhanden | [Ja / Nein] | +| Permit-ID | [PER-XXX oder "entfaellt"] | + +Falls kein Permit vorhanden: diese Abweichung ist eine Einzelfallgenehmigung. + +## 6. Freigabe + +| Feld | Wert | +|-------------------|----------------------------------------------------| +| Freigegeben von | [Name, Rolle] | +| Datum | [YYYY-MM-DD] | +| Nachweis | [GitLab-MR-Approval / Unterschrift] | + +--- + +*Dieser Record wird im Repository unter `docs/misra/` oder als GitLab Issue gefuehrt.* diff --git a/vorlagen/Non-Conformity-vorlage.md b/vorlagen/Non-Conformity-vorlage.md new file mode 100644 index 0000000..62aa2ae --- /dev/null +++ b/vorlagen/Non-Conformity-vorlage.md @@ -0,0 +1,79 @@ +# Non-Conformity Report + +| Feld | Wert | +|-----------------|-------------------------------| +| NC-ID | NC-[XXX] | +| Datum | [YYYY-MM-DD] | +| Erstellt von | [Name] | +| Status | [Offen / In Bearbeitung / Geschlossen] | + +--- + +## 1. Bezug + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Art | [Prozessabweichung / Produktabweichung] | +| Betroffener Prozess | [z.B. SWE.4 Implementierung, SUP.1 QA] | +| Betroffenes Work Product | [z.B. Modul XY, Anforderung SWR-042, Testplan] | +| GitLab-Referenz | [Issue-Link / MR-Link / Wiki-Seite] | +| Gefunden bei | [Review / Audit / Test / CI-Pipeline] | + +## 2. Beschreibung der Abweichung + +[Was genau weicht ab? Konkret beschreiben. Bezug auf Norm oder Prozessvorgabe angeben.] + +## 3. Schweregrad + +| Schweregrad | Definition | +|-------------|------------------------------------------------------------------| +| [ ] Critical | Sicherheitsrelevant oder vollstaendiges Fehlen eines geforderten Work Products | +| [ ] Major | Signifikante Abweichung, die die Qualitaet oder Konformitaet beeintraechtigt | +| [ ] Minor | Geringfuegige Abweichung, keine direkte Auswirkung auf Sicherheit oder Funktion | + +**Zugewiesener Schweregrad:** [Critical / Major / Minor] + +## 4. Ursachenanalyse + +[Warum ist die Abweichung aufgetreten? Moegliche Kategorien:] +- Prozess nicht bekannt / nicht geschult +- Prozess nicht anwendbar / unrealistisch +- Versehen / menschlicher Fehler +- Tool-Fehler +- Zeitdruck / Ressourcenmangel +- Anforderung unklar + +**Beschreibung:** [Konkrete Ursache] + +## 5. Korrekturmassnahme + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Massnahme | [Was wird getan um die Abweichung zu beheben] | +| Verantwortlich | [Name] | +| Faelligkeit | [YYYY-MM-DD] | + +### Vorbeugende Massnahme (optional) + +[Was wird getan damit diese Art von Abweichung nicht erneut auftritt?] + +## 6. Wirksamkeitspruefung + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Geprueft von | [Name] | +| Pruefungsdatum | [YYYY-MM-DD] | +| Massnahme wirksam | [Ja / Nein] | +| Nachweis | [GitLab-Issue-Link / Commit / Review] | + +## 7. Abschluss + +| Feld | Wert | +|-----------------------|-----------------------------------------------| +| Status | [Geschlossen / Erneut geoeffnet] | +| Geschlossen von | [Name] | +| Datum | [YYYY-MM-DD] | + +--- + +*Dieser Report wird als GitLab Issue (Label: `non-conformity`) gefuehrt.* diff --git a/vorlagen/PID-vorlage.md b/vorlagen/PID-vorlage.md new file mode 100644 index 0000000..bb2a6ce --- /dev/null +++ b/vorlagen/PID-vorlage.md @@ -0,0 +1,92 @@ +# Project Initiation Document (PID) + +| Feld | Wert | +|-----------------|-------------------------------| +| Projektname | [Name] | +| Auftraggeber | [Firma / Ansprechpartner] | +| Auftragnehmer | Stefan Lohmaier | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | + +--- + +## 1. Projektziel + +[Was soll erreicht werden? Ein bis drei Saetze.] + +## 2. Scope + +### In Scope + +- [Lieferumfang Punkt 1] +- [Lieferumfang Punkt 2] + +### Out of Scope + +- [Was explizit nicht enthalten ist] +- [Abgrenzung zu anderen Teilprojekten] + +## 3. Randbedingungen + +| Randbedingung | Beschreibung | +|-------------------------|-------------------------------------------| +| Zielplattform | [z.B. ARM Cortex-R5, Renesas RH850] | +| ASIL | [QM / A / B / C / D] | +| Normen | [ASPICE 4.0, ISO 26262:2018] | +| Programmiersprache | [C / C++ / Rust] | +| Coding Standard | [MISRA C:2012 / MISRA C:2023] | +| Laufzeitumgebung | [Bare-Metal / AUTOSAR Classic / Linux] | +| Kundenvorgaben | [Spezifische Anforderungen des Kunden] | + +## 4. Lieferergebnisse + +| Nr. | Lieferergebnis | Format | Termin | +|-----|-----------------------------------|---------------|-------------| +| 1 | Software Requirements Specification | GitLab Issues | [Datum] | +| 2 | Architektur-Dokumentation | GitLab Wiki | [Datum] | +| 3 | Quellcode | Git Repository| [Datum] | +| 4 | Unit Tests + Coverage Report | CI-Artefakt | [Datum] | +| 5 | MISRA Compliance Report | CI-Artefakt | [Datum] | +| 6 | Testbericht | Markdown/PDF | [Datum] | +| 7 | Release-Paket | Git Tag + Artefakte | [Datum] | + +## 5. Meilensteine + +| Meilenstein | Datum | Kriterium | +|--------------------------|-------------|------------------------------------------| +| Projektstart | [Datum] | PID freigegeben | +| Requirements Complete | [Datum] | Alle Anforderungen reviewed | +| Architecture Complete | [Datum] | Architektur reviewed und freigegeben | +| Code Complete | [Datum] | Implementierung abgeschlossen, Tests gruen | +| Verification Complete | [Datum] | Coverage-Ziele erreicht, MISRA compliant | +| Release | [Datum] | Alle Exit-Kriterien erfuellt | + +## 6. Risiken (initial) + +| ID | Risiko | Wahrscheinlichkeit | Auswirkung | Massnahme | +|------|----------------------------------|---------------------|------------|----------------------------------| +| R-01 | [Risikobeschreibung] | [H/M/L] | [H/M/L] | [Gegenmassnahme] | +| R-02 | [Risikobeschreibung] | [H/M/L] | [H/M/L] | [Gegenmassnahme] | + +## 7. Beteiligte Rollen + +| Rolle | Person / Organisation | Verantwortung | +|--------------------------|------------------------|-----------------------------------| +| Projektleiter | Stefan Lohmaier | Gesamtverantwortung | +| Software-Entwickler | Stefan Lohmaier | Implementierung, Unit Tests | +| QA-Verantwortlicher | [Name / extern] | QA-Aktivitaeten, Audits | +| Safety-Verantwortlicher | [Name / extern] | ISO 26262 Compliance | +| Reviewer | [Name / extern] | Code- und Dokument-Reviews | +| Auftraggeber | [Name] | Anforderungen, Abnahme | + +## 8. Freigabe + +| Rolle | Name | Datum | Unterschrift / GitLab-Verweis | +|----------------------|---------------------|-------------|-------------------------------| +| Auftragnehmer | Stefan Lohmaier | [Datum] | | +| Auftraggeber | [Name] | [Datum] | | + +--- + +*Aenderungen an diesem Dokument werden im GitLab-Wiki versioniert.* diff --git a/vorlagen/PM-Plan-vorlage.md b/vorlagen/PM-Plan-vorlage.md new file mode 100644 index 0000000..801f83f --- /dev/null +++ b/vorlagen/PM-Plan-vorlage.md @@ -0,0 +1,85 @@ +# Projektplan (PM-Plan) + +| Feld | Wert | +|-----------------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| Bezug | PID Version [X.Y] | + +--- + +## 1. Projektphasen und Meilensteine + +| Phase | Start | Ende | Meilenstein | +|------------------------|-------------|-------------|--------------------------------------| +| Anforderungsanalyse | [Datum] | [Datum] | Requirements Complete | +| Architektur | [Datum] | [Datum] | Architecture Complete | +| Implementierung | [Datum] | [Datum] | Code Complete | +| Integration & Test | [Datum] | [Datum] | Integration Complete | +| Verifikation | [Datum] | [Datum] | Verification Complete | +| Release | [Datum] | [Datum] | Release | + +Phasen koennen ueberlappen (iterativ). Meilenstein-Kriterien sind im QA-Plan definiert. + +## 2. Ressourcen und Rollen + +| Rolle | Person | Verfuegbarkeit | Aufgaben | +|--------------------------|---------------------|-------------------|---------------------------------| +| Projektleiter / Entwickler | Stefan Lohmaier | [X Tage/Woche] | Planung, Implementierung, Tests | +| Reviewer | [Name / extern] | [nach Bedarf] | Code- und Dokument-Reviews | +| QA | [Name / extern] | [nach Bedarf] | QA-Audits, Prozessueberwachung | +| Auftraggeber | [Name] | [nach Bedarf] | Anforderungsklaerung, Abnahme | + +## 3. Kommunikationsplan + +| Aktivitaet | Haeufigkeit | Teilnehmer | Medium | +|--------------------------|--------------|---------------------------|---------------------| +| Status-Update | [Woechentlich] | Auftraggeber, PL | E-Mail / Call | +| Technische Abstimmung | [Nach Bedarf] | Entwickler, Auftraggeber | Call / GitLab Issue | +| Meilenstein-Review | [Pro Phase] | Alle Beteiligten | Meeting | +| QA-Report | [Pro Phase] | QA, PL, Auftraggeber | Dokument (Wiki) | + +## 4. Eskalationspfad + +| Stufe | Situation | Eskalation an | Frist | +|-------|----------------------------------------------|----------------------------|-------------| +| 1 | Technische Blockade | Auftraggeber (technisch) | 2 Arbeitstage | +| 2 | Terminverschiebung > 1 Woche | Projektverantwortlicher | 1 Arbeitstag | +| 3 | Scope-Aenderung oder Safety-Concern | Management Auftraggeber | sofort | + +## 5. Aenderungsmanagement + +Aenderungen an Anforderungen, Scope oder Zeitplan werden als Change Request behandelt: + +1. Change Request als GitLab Issue erfassen (Label: `change-request`) +2. Auswirkungsanalyse: betroffene Anforderungen, Code, Tests, Zeitplan +3. Bewertung und Freigabe durch Auftraggeber +4. Bei Freigabe: betroffene Work Products aktualisieren, Traceability nachfuehren +5. Dokumentation der Aenderung im Issue (Begruendung, Auswirkung, Entscheidung) + +Keine Aenderung ohne dokumentierte Freigabe. + +## 6. Risikomanagement + +### Vorgehen + +- Initiale Risiken im PID erfasst +- Risikoliste wird pro Meilenstein-Review aktualisiert +- Neue Risiken werden als GitLab Issues erfasst (Label: `risk`) +- Jedes Risiko hat: Beschreibung, Wahrscheinlichkeit, Auswirkung, Massnahme, Verantwortlicher + +### Risiko-Bewertung + +| Wahrscheinlichkeit / Auswirkung | Niedrig | Mittel | Hoch | +|----------------------------------|---------|---------|---------| +| Hoch | Mittel | Hoch | Kritisch| +| Mittel | Niedrig | Mittel | Hoch | +| Niedrig | Niedrig | Niedrig | Mittel | + +Kritische Risiken werden sofort eskaliert (siehe Eskalationspfad Stufe 3). + +--- + +*Aenderungen an diesem Plan werden im GitLab-Wiki versioniert.* diff --git a/vorlagen/QA-Plan-vorlage.md b/vorlagen/QA-Plan-vorlage.md new file mode 100644 index 0000000..df883e4 --- /dev/null +++ b/vorlagen/QA-Plan-vorlage.md @@ -0,0 +1,106 @@ +# Quality Assurance Plan (QA-Plan) + +| Feld | Wert | +|-----------------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| ASIL | [QM / A / B / C / D] | + +--- + +## 1. QA-Aktivitaeten pro Phase + +| Phase | QA-Aktivitaet | Verantwortlich | +|------------------------|--------------------------------------------------------|----------------| +| Anforderungsanalyse | Review der Anforderungen (Vollstaendigkeit, Konsistenz, Testbarkeit) | QA / Reviewer | +| Architektur | Architektur-Review (Modularitaet, Safety-Konzept) | QA / Reviewer | +| Implementierung | Code-Review (MR-Approval), MISRA-Pruefung (CI) | Reviewer / CI | +| Integration & Test | Test-Review, Coverage-Pruefung, Traceability-Check | QA / CI | +| Verifikation | Gesamtpruefung: alle Kriterien erfuellt? | QA | +| Release | Release-Audit: alle Work Products vollstaendig? | QA | + +## 2. Zu pruefende Work Products + +| Work Product | Review-Art | Pruefkriterien | +|----------------------------------|------------------|---------------------------------------------| +| PID | Peer Review | Vollstaendig, konsistent mit Vertrag | +| PM-Plan | Peer Review | Realistisch, Risiken adressiert | +| Software Requirements | Technical Review | Eindeutig, testbar, ASIL zugeordnet | +| Architektur-Dokumentation | Technical Review | Modular, Schnittstellen definiert, Safety-Konzept | +| Quellcode | Peer Review (MR) | MISRA-konform, getestet, lesbar | +| Unit Tests | Peer Review | Abdeckung, Randfaelle, Traceability | +| Testberichte | Peer Review | Pass/Fail dokumentiert, Coverage erreicht | +| MISRA Compliance Report | Peer Review | Abweichungen dokumentiert und genehmigt | +| Traceability-Matrix | QA-Pruefung | Keine Luecken, bidirektional | + +## 3. Review-Arten + +| Review-Art | Teilnehmer | Formalitaet | Wann | +|---------------------|-------------------------------|-------------|----------------------------------| +| Peer Review | 1 Reviewer | Niedrig | Jeder MR, Dokument-Aenderungen | +| Technical Review | 2+ Reviewer, inkl. Tech Lead | Mittel | Architektur, Safety-Code, Plaene | +| Inspektion | Moderator + 2+ Reviewer | Hoch | Safety-kritische Artefakte (ASIL C/D) | + +Peer Reviews laufen ueber GitLab MR-Approvals. Technical Reviews und Inspektionen werden zusaetzlich mit Review-Protokoll dokumentiert. + +## 4. Entry/Exit-Kriterien + +### Entry-Kriterien (Beginn einer Phase) + +| Phase | Entry-Kriterien | +|----------------------|--------------------------------------------------------| +| Architektur | Requirements reviewed und freigegeben | +| Implementierung | Architektur reviewed und freigegeben | +| Integration & Test | Code-Reviews abgeschlossen, Unit Tests gruen | +| Verifikation | Alle Tests durchgefuehrt, Coverage gemessen | +| Release | Alle Exit-Kriterien der Verifikation erfuellt | + +### Exit-Kriterien (Abschluss einer Phase) + +| Phase | Exit-Kriterien | +|----------------------|--------------------------------------------------------| +| Anforderungen | Alle Requirements reviewed, ASIL zugeordnet, testbar | +| Architektur | Architektur reviewed, Schnittstellen definiert | +| Implementierung | MISRA-konform, Unit Tests gruen, Coverage-Ziel erreicht | +| Integration & Test | Integrationstests gruen, keine offenen Critical Findings | +| Verifikation | Traceability vollstaendig, alle Findings geschlossen oder bewertet | +| Release | Alle Work Products vollstaendig, QA-Freigabe erteilt | + +## 5. Non-Conformity-Prozess + +1. Abweichung wird erkannt (Review, Audit, Test) +2. Non-Conformity Report erstellen (GitLab Issue, Label: `non-conformity`) +3. Schweregrad zuweisen: Critical / Major / Minor +4. Ursachenanalyse durchfuehren +5. Korrekturmassnahme definieren und umsetzen +6. Wirksamkeitspruefung nach Umsetzung +7. Issue schliessen mit Verweis auf Korrekturnachweis + +**Eskalation:** Critical Non-Conformities werden sofort an den Auftraggeber gemeldet. + +## 6. Reporting an Management + +| Report | Haeufigkeit | Inhalt | +|---------------------------|------------------|-------------------------------------------| +| QA-Status-Report | Pro Meilenstein | Offene Findings, NC-Status, Coverage-Stand | +| Meilenstein-Bewertung | Pro Phase-Ende | Entry/Exit-Kriterien geprueft | +| Release-Bewertung | Vor Release | Gesamtbewertung aller QA-Kriterien | + +## 7. QA-Metriken + +| Metrik | Ziel | Messung | +|---------------------------------|-------------------------|----------------------------------| +| Requirement Coverage | 100% | Anforderungen mit verlinktem Test | +| Code Coverage (Statement) | >= [X]% | gcov/lcov in CI | +| Code Coverage (Branch) | >= [X]% | gcov/lcov in CI | +| MC/DC Coverage (falls ASIL C/D) | >= [X]% | MCDC-Star / kommerziell | +| MISRA Violations | 0 (oder alle genehmigt)| Cppcheck MISRA-Addon in CI | +| Offene Findings (Critical) | 0 vor Release | GitLab Issues | +| Offene Non-Conformities | 0 Critical/Major | GitLab Issues | +| Review-Abdeckung | 100% MRs reviewed | GitLab MR-Approvals | + +--- + +*Aenderungen an diesem Plan werden im GitLab-Wiki versioniert.* diff --git a/vorlagen/Review-Protokoll-vorlage.md b/vorlagen/Review-Protokoll-vorlage.md new file mode 100644 index 0000000..dcc7625 --- /dev/null +++ b/vorlagen/Review-Protokoll-vorlage.md @@ -0,0 +1,74 @@ +# Review-Protokoll + +| Feld | Wert | +|-------------------------|-----------------------------------------| +| Datum | [YYYY-MM-DD] | +| Review-Art | [Peer Review / Technical Review / Inspektion] | +| Moderator | [Name] | +| Protokollfuehrer | [Name] | + +--- + +## 1. Teilnehmer + +| Name | Rolle | Anwesend | +|---------------------|--------------------------|----------| +| [Name] | Moderator | Ja / Nein | +| [Name] | Autor | Ja / Nein | +| [Name] | Reviewer | Ja / Nein | +| [Name] | Reviewer | Ja / Nein | + +## 2. Reviewtes Work Product + +| Feld | Wert | +|-------------------|-------------------------------------------| +| Work Product | [z.B. Architektur-Dokumentation, Modul XY, Anforderungen SWR-040 bis SWR-060] | +| Version / Commit | [Version oder Git-Commit-Hash] | +| GitLab-Referenz | [MR-Link / Wiki-Seite / Issue-Nummern] | + +## 3. Review-Vorbereitung + +| Reviewer | Vorbereitungszeit (h) | Vorbereitung abgeschlossen | +|-------------------|-----------------------|----------------------------| +| [Name] | [X] | Ja / Nein | +| [Name] | [X] | Ja / Nein | + +## 4. Findings + +| ID | Beschreibung | Schwere | Verantwortlich | Fälligkeit | Status | +|------|---------------------------------|-------------------|----------------|-------------|-------------| +| F-01 | [Beschreibung des Findings] | Critical / Major / Minor | [Name] | [Datum] | Offen | +| F-02 | [Beschreibung des Findings] | Critical / Major / Minor | [Name] | [Datum] | Offen | +| F-03 | [Beschreibung des Findings] | Critical / Major / Minor | [Name] | [Datum] | Offen | + +### Schweregrade + +- **Critical:** Sicherheitsrelevant oder funktional falsch. Muss vor Freigabe behoben werden. +- **Major:** Signifikanter Fehler oder Luecke. Muss behoben werden, kann aber terminiert werden. +- **Minor:** Verbesserungsvorschlag, Stil, Lesbarkeit. Behebung empfohlen. + +## 5. Entscheidung + +| Entscheidung | +|-----------------------------------------------------------| +| [ ] Freigegeben | +| [ ] Bedingt freigegeben (nach Behebung der Critical/Major Findings) | +| [ ] Nicht freigegeben (erneutes Review erforderlich) | + +**Bedingungen fuer bedingte Freigabe:** +[Falls zutreffend: welche Findings muessen behoben werden, wer prueft die Behebung] + +## 6. Unterschriften / Nachweis + +| Rolle | Name | Datum | Nachweis | +|----------------------|---------------------|-------------|------------------------------| +| Moderator | [Name] | [Datum] | [Unterschrift / GitLab-MR-Approval] | +| Reviewer 1 | [Name] | [Datum] | [Unterschrift / GitLab-MR-Approval] | +| Reviewer 2 | [Name] | [Datum] | [Unterschrift / GitLab-MR-Approval] | +| Autor | [Name] | [Datum] | | + +**GitLab-MR-Link:** [URL zum Merge Request, falls zutreffend] + +--- + +*Dieses Protokoll wird im GitLab-Wiki unter Review-Protokolle/ abgelegt.* diff --git a/vorlagen/SA-vorlage.md b/vorlagen/SA-vorlage.md new file mode 100644 index 0000000..92f30e3 --- /dev/null +++ b/vorlagen/SA-vorlage.md @@ -0,0 +1,104 @@ +--- +active: true +level: 1.0 +links: + - SYS-XXX: [hash] +--- + +# SA-XXX: [Element-Name] + +> **System Architectural Design Element (ASPICE SYS.3).** +> Beschreibt ein Element der System-Architektur und sein Mapping auf System-Anforderungen. + +| Feld | Wert | +|----------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| ASIL | [QM / A / B / C / D] | +| Autor | [Name] | + +--- + +## 1. Verantwortung + +[Was tut dieses Element? Ein bis zwei Saetze. Welcher Zweck im Gesamtsystem.] + +## 2. System-Kontext + +[PlantUML-Diagramm: dieses Element im Verhaeltnis zu Nachbarsystemen / Umgebung.] + +```plantuml +@startuml +!define COMPONENT(x) component "x" as x +COMPONENT([Element]) +[Element] --> [Nachbarsystem A] : Schnittstelle X +[Nachbarsystem B] --> [Element] : Schnittstelle Y +@enduml +``` + +## 3. Allokation + +| Anforderung | Allokation auf | Bemerkung | +|---------------|----------------|---------------------------| +| SYS-XXX | dieses Element | [vollstaendig / teilweise] | +| SYS-YYY | dieses Element | [Begruendung] | + +Allokations-Regel: jede verlinkte System-Anforderung muss eindeutig auf HW, SW oder Mechanik abgebildet werden. + +## 4. Schnittstellen zur Umgebung + +| Schnittstelle | Richtung | Typ | Bemerkung | +|---------------|---------------|----------------------|--------------------------| +| [Name] | in / out / io | [CAN / SPI / GPIO / ...] | [Protokoll-Verweis] | + +## 5. Subkomponenten / Aufteilung + +[Falls dieses System-Element aus mehreren Subkomponenten besteht: kurze Auflistung mit Verweis auf weitere SA- oder SWA-Elemente.] + +| Subkomponente | Realisierung | Verweis | +|---------------|--------------------|-------------------| +| [Name] | [HW / SW / Mechanik] | SWA-XXX / SA-YYY | + +## 6. Dynamisches Verhalten + +[PlantUML-Sequenz oder State-Diagramm fuer kritische Ablaeufe.] + +```plantuml +@startuml +actor Nutzer +Nutzer -> [Element]: Anforderung +[Element] -> [Nachbar]: weiterleiten +[Nachbar] --> [Element]: Antwort +[Element] --> Nutzer: Ergebnis +@enduml +``` + +## 7. Nichtfunktionale Eigenschaften + +| Aspekt | Anforderung / Zielwert | +|---------------------|-----------------------------| +| Worst-Case Timing | [z.B. < 10 ms Reaktionszeit]| +| Speicherbedarf | [z.B. < 64 KB Flash] | +| Stromaufnahme | [z.B. < 200 mA bei 12 V] | +| Umgebungsbedingungen | [Temperatur, EMV] | +| Sicherheitsziel | [Verweis auf SG-XXX, falls vorhanden] | + +## 8. Designentscheidungen + +| Entscheidung | Alternativen | Begruendung | +|--------------|--------------|-------------| +| [Was] | [Was sonst noch erwogen wurde] | [Warum diese Wahl] | + +## 9. Verifikation + +| Anforderung | Verifikations-Methode | Test-ID | +|-------------|------------------------|-------------------| +| SYS-XXX | [Review / Test / Analyse] | TST-SYS-XXX | + +Jede in den `links` referenzierte System-Anforderung muss mindestens eine Verifikations-Methode haben. + +--- + +*Aenderungen an diesem Architektur-Element gehen per PR mit mind. 2 Technical-Review-Approvals (siehe SWE-Plan).* diff --git a/vorlagen/SWA-vorlage.md b/vorlagen/SWA-vorlage.md new file mode 100644 index 0000000..6c03e7d --- /dev/null +++ b/vorlagen/SWA-vorlage.md @@ -0,0 +1,148 @@ +--- +active: true +level: 1.0 +links: + - SWE-XXX: [hash] +--- + +# SWA-XXX: [Komponenten-Name] + +> **Software Architectural Design Element (ASPICE SWE.2).** +> Beschreibt eine Software-Komponente und ihr Mapping auf Software-Anforderungen. + +| Feld | Wert | +|----------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| ASIL | [QM / A / B / C / D] | +| Autor | [Name] | +| Parent | [SA-XXX, falls vorhanden] | + +--- + +## 1. Verantwortung + +[Ein bis zwei Saetze: Was tut diese Komponente? Wo ist die Abgrenzung zu Nachbar-Komponenten?] + +## 2. Statische Sicht + +### 2.1 Komponentendiagramm + +```plantuml +@startuml +package "[Komponenten-Name]" { + [Submodul A] + [Submodul B] +} +[Submodul A] --> [Submodul B] +[Komponenten-Name] ..> [Nachbar-Komponente] : nutzt +@enduml +``` + +### 2.2 Eingebettete / verwendete Komponenten + +| Komponente | Verweis | Verwendung | +|---------------|----------|--------------------------| +| [Name] | SWA-YYY | [wofuer] | + +## 3. Schnittstellen + +### 3.1 Bereitgestellte Schnittstelle (Provided) + +```c +/** + * @brief [Kurzbeschreibung] + * @param [name] [Bedeutung, Wertebereich] + * @return [Status / Wert] + * @pre [Vorbedingung] + * @post [Nachbedingung] + */ +Status component_init(const Config* cfg); +``` + +| Funktion | Zweck | Pre-Condition | Post-Condition | +|------------------|----------------------|-----------------------|------------------------| +| component_init | Initialisierung | cfg != NULL | Komponente betriebsbereit | +| component_send | Daten senden | initialisiert | Daten in TX-Buffer | + +### 3.2 Benoetigte Schnittstelle (Required) + +| Schnittstelle | Bereitgestellt von | Zweck | +|-------------------|--------------------|-----------------------| +| ILogger::log() | LoggerComponent | Diagnose / Tracing | +| IClock::now() | ClockComponent | Zeitstempel | + +## 4. Dynamisches Verhalten + +### 4.1 Sequenzdiagramm (kritischer Ablauf) + +```plantuml +@startuml +participant App +participant "[Komponente]" as C +participant HW +App -> C: init(cfg) +C -> HW: configure +HW --> C: ok +C --> App: STATUS_OK +@enduml +``` + +### 4.2 Zustandsdiagramm (falls zutreffend) + +```plantuml +@startuml +[*] --> Uninitialized +Uninitialized --> Ready : init() +Ready --> Busy : send() +Busy --> Ready : tx_done +Ready --> Error : fault +Error --> Ready : reset() +@enduml +``` + +## 5. Ressourcen-Bedarf + +| Ressource | Worst-Case | Methode der Bestimmung | +|-------------------|--------------|-----------------------------| +| Stack | [z.B. 256 B] | [Messung / statische Analyse] | +| Heap | [z.B. 0 B] | [keine Heap-Nutzung] | +| Flash | [z.B. 4 KB] | [Map-File des Linkers] | +| RAM (statisch) | [z.B. 128 B] | [Map-File des Linkers] | +| CPU-Last | [z.B. < 1 %] | [Messung auf Zielsystem] | +| Worst-Case Timing | [z.B. 200 us / Aufruf init()] | [Messung HiL] | + +## 6. Fehlerverhalten + +| Fehlerfall | Erkennung | Reaktion | +|-----------------------|-------------------|---------------------------| +| Ungueltige Konfig | Parameter-Check | Status STATUS_EINVAL | +| HW-Timeout | Timer | Retry, dann STATUS_TIMEOUT | +| Buffer voll | Check vor Schreiben | STATUS_NOSPACE | + +## 7. Designentscheidungen + +| Entscheidung | Alternative(n) | Begruendung | +|------------------------|------------------|--------------------------| +| [z.B. statische Allokation] | [Heap] | [deterministisch, MISRA] | +| [Lock-Strategie] | [Mutex / lock-free] | [Begruendung] | + +## 8. Mapping auf Anforderungen + +| Anforderung | Wie abgedeckt | Verifikations-Test | +|---------------|----------------------------------------------|----------------------------| +| SWE-XXX | [welcher Teil dieser Komponente erfuellt es] | TST-UNIT-XXX, TST-INT-YYY | +| SWE-YYY | [...] | TST-UNIT-YYY | + +Jede in den `links` referenzierte SWE-Anforderung muss in dieser Tabelle einen Eintrag haben. + +## 9. Detail-Design + +Detail-Design (ASPICE SWE.3) wird ab ASIL-C separat in `arch/swd/SWD-XXX.md` gefuehrt. +Fuer ASIL-A/B und QM ist Code + Header-Kommentare ausreichend. + +--- + +*Aenderungen an diesem Architektur-Element gehen per PR mit mind. 2 Technical-Review-Approvals (siehe SWE-Plan).* diff --git a/vorlagen/SWE-Plan-vorlage.md b/vorlagen/SWE-Plan-vorlage.md new file mode 100644 index 0000000..78c9036 --- /dev/null +++ b/vorlagen/SWE-Plan-vorlage.md @@ -0,0 +1,132 @@ +# Software Development Plan (SWE-Plan) + +| Feld | Wert | +|-----------------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| ASIL | [QM / A / B / C / D] | + +--- + +## 1. Entwicklungsmethode + +[Beschreibung der Vorgehensweise: iterativ, V-Modell-angelehnt, oder hybrid.] + +Grundstruktur folgt dem V-Modell (ISO 26262 Part 6): +- Linke Seite: Anforderungen → Architektur → Detailentwurf → Implementierung +- Rechte Seite: Unit Test → Integrations-Test → System-Test +- Iterationen innerhalb der Phasen moeglich + +Aenderungen werden ueber Change Requests gesteuert (siehe PM-Plan). + +## 2. Programmiersprache und Standards + +| Aspekt | Festlegung | +|---------------------|-----------------------------------------------------| +| Sprache | [C (C99/C11) / C++ (C++14/17) / Rust] | +| Coding Standard | [MISRA C:2012 / MISRA C:2023 / MISRA C++:2023] | +| Projekt-Guidelines | [Verweis auf Coding-Guidelines im Wiki] | +| Namenskonvention | [z.B. snake_case fuer Funktionen, UPPER_CASE fuer Makros] | + +### MISRA-Handhabung + +- Alle Required- und Mandatory-Regeln werden eingehalten +- Advisory-Regeln: Liste der angewendeten Regeln im Wiki dokumentiert +- Abweichungen werden per MISRA Deviation Record dokumentiert +- Projektweite Abweichungen per MISRA Deviation Permit genehmigt +- MISRA-Pruefung laeuft automatisch in der CI-Pipeline + +## 3. Build-Umgebung + +| Komponente | Tool / Version | +|--------------------|-----------------------------------------------------| +| Build-System | [CMake X.Y / SCons X.Y / Make] | +| Compiler | [GCC ARM X.Y / Clang X.Y] | +| Zielplattform | [z.B. ARM Cortex-R5, Cortex-M4] | +| Host-Plattform | [Linux x86_64 / macOS ARM64] | +| CI-Runner | [GitLab Runner, Docker Image: ...] | + +Build-Umgebung ist reproduzierbar: entweder per Docker-Image oder per dokumentierter Toolchain-Installation. + +## 4. Branching-Strategie + +``` +main — Stabiler, freigegebener Stand +develop — Aktueller Entwicklungsstand +feature/SWR-XXX — Feature-Branch pro Anforderung +bugfix/BUG-XXX — Bugfix-Branch +release/vX.Y — Release-Vorbereitung +hotfix/vX.Y.Z — Kritische Fixes nach Release +``` + +- Feature-Branches von `develop` abzweigen +- Merge nach `develop` nur per MR mit Approval +- `main` und `release/*` sind geschuetzt (kein direkter Push) +- Branch-Name enthaelt Issue-Nummer + +Details: siehe `gitlab-aspice-setup.md`. + +## 5. Review-Verpflichtungen + +| Artefakt | Review-Art | Mindest-Approvals | +|-----------------------------|-------------------|--------------------| +| Quellcode (MR) | Peer Review | 1 | +| Safety-relevanter Code | Technical Review | 2 | +| Architektur-Dokument | Technical Review | 2 | +| Anforderungen | Technical Review | 1 | +| Testfaelle | Peer Review | 1 | + +Jeder MR muss vor dem Merge reviewed und approved sein. Self-Merges sind nicht erlaubt (Ausnahme: 1-Person-Projekt mit dokumentiertem Self-Review). + +## 6. Definition of Done + +Ein Feature / eine Anforderung gilt als "Done" wenn: + +- [ ] Code ist implementiert und kompiliert fehlerfrei +- [ ] MISRA-Check in CI ist gruen (keine neuen Violations) +- [ ] Static Analysis (Cppcheck, clang-tidy) hat keine neuen Findings +- [ ] Unit Tests sind geschrieben und gruen +- [ ] Coverage-Ziel ist erreicht (siehe Abschnitt 8) +- [ ] MR ist reviewed und approved +- [ ] Anforderung ist mit Test verlinkt (Traceability) +- [ ] Dokumentation ist aktualisiert (falls betroffen) + +## 7. Integration und Test-Strategie + +| Teststufe | Verantwortlich | Umgebung | Automatisierung | +|---------------------|----------------|----------------|-----------------| +| Unit Test | Entwickler | Host (x86) | CI-Pipeline | +| Integrations-Test | Entwickler | Host / SiL | CI / manuell | +| System-Test | Test / QA | SiL / HiL | teilweise | +| Abnahme-Test | Auftraggeber | HiL / Fahrzeug | manuell | + +- Unit Tests laufen auf Host-Plattform (Cross-Compilation fuer Tests auf x86) +- Integrationstests pruefen Zusammenspiel der Module +- System-Tests pruefen gegen System-Anforderungen +- HiL-Tests werden vom Auftraggeber bereitgestellt oder gemeinsam definiert + +## 8. Coverage-Ziele + +| ASIL | Statement Coverage | Branch Coverage | MC/DC | +|------|--------------------|-----------------|----------| +| QM | >= 80% empfohlen | — | — | +| A | >= 80% | empfohlen | — | +| B | >= 80% | >= 80% | — | +| C | >= 90% | >= 80% | empfohlen| +| D | >= 90% | >= 90% | >= 80% | + +Konkrete Zielwerte fuer dieses Projekt: + +| Metrik | Zielwert | +|---------------------|------------| +| Statement Coverage | >= [X]% | +| Branch Coverage | >= [X]% | +| MC/DC | >= [X]% (falls anwendbar) | + +Coverage wird in der CI gemessen und als Artefakt archiviert. Abweichungen vom Ziel werden begruendet und im QA-Report dokumentiert. + +--- + +*Aenderungen an diesem Plan werden im GitLab-Wiki versioniert.* diff --git a/vorlagen/Test-Plan-vorlage.md b/vorlagen/Test-Plan-vorlage.md new file mode 100644 index 0000000..5f745df --- /dev/null +++ b/vorlagen/Test-Plan-vorlage.md @@ -0,0 +1,121 @@ +# Testplan + +| Feld | Wert | +|-----------------|-------------------------------| +| Projekt | [Projektname] | +| Datum | [YYYY-MM-DD] | +| Version | [1.0] | +| Status | [Entwurf / Freigegeben] | +| ASIL | [QM / A / B / C / D] | +| Bezug | SWE-Plan Version [X.Y] | + +--- + +## 1. Testziele + +- Nachweis, dass die Software die spezifizierten Anforderungen erfuellt +- Nachweis der strukturellen Code-Abdeckung gemaess ASIL-Vorgaben +- Nachweis der Robustheit gegenueber Fehlbedienung und Grenzwerten +- Identifikation von Defekten vor der Integration / Auslieferung + +## 2. Teststrategie + +| Teststufe | Testziel | Methode | Automatisierung | +|---------------------|---------------------------------------------|------------------|-----------------| +| Unit Test | Einzelne Funktionen / Module korrekt | White-Box | CI (automatisch)| +| Integrations-Test | Zusammenspiel der Module | Grey-Box | CI / SiL | +| System-Test | Erfuellung der System-Anforderungen | Black-Box | SiL / HiL | +| Regressionstest | Keine Seiteneffekte durch Aenderungen | Automatisiert | CI | + +### Unit Tests + +- Framework: [CppUTest / Google Test / Unity+CMock] +- Laufen auf Host-Plattform (x86) +- Jede Anforderung hat mindestens einen zugehoerigen Testfall +- Negative Tests und Grenzwerte sind Pflicht + +### Integrationstests + +- Pruefen Schnittstellen zwischen Modulen +- Laufen auf Host oder SiL-Umgebung +- Kommunikationsschnittstellen (CAN, SPI, UART) werden per Mock oder Simulator getestet + +### System-Tests + +- Pruefen gegen System-Anforderungen +- Laufen auf SiL oder HiL +- Testfaelle werden aus System-Requirements abgeleitet + +## 3. Coverage-Ziele + +| Metrik | Zielwert | Messung | +|---------------------|----------------|------------------| +| Statement Coverage | >= [X]% | gcov/lcov | +| Branch Coverage | >= [X]% | gcov/lcov | +| MC/DC | >= [X]% (falls anwendbar) | MCDC-Star / kommerziell | + +Referenz: ISO 26262 Part 6, Table 9. + +| ASIL | Statement | Branch | MC/DC | +|------|-----------|---------|--------------| +| QM | empfohlen | — | — | +| A | Pflicht | empfohlen | — | +| B | Pflicht | Pflicht | — | +| C | Pflicht | Pflicht | empfohlen | +| D | Pflicht | Pflicht | Pflicht | + +## 4. Testumgebung + +| Komponente | Beschreibung | +|---------------------|----------------------------------------------------| +| Host-Plattform | [Linux x86_64 / macOS ARM64] | +| Cross-Compiler | [GCC ARM X.Y] | +| Test-Framework | [CppUTest / Google Test / Unity] | +| SiL-Framework | [Python + pytest, Kommunikation: UART/CAN/TCP] | +| HiL-System | [dSPACE Scalexio / vom Kunden gestellt / entfaellt] | +| CI-Runner | [GitLab Runner, Docker Image: ...] | + +## 5. Testdaten + +- Testdaten werden im Repository unter `tests/data/` versioniert +- Grenzwerte aus Anforderungen ableiten +- Ungueltige Eingaben explizit testen +- Testdaten fuer Regressionen aus Bug-Reports ableiten + +## 6. Pass/Fail-Kriterien + +### Einzelner Testfall + +- **Pass:** Erwartetes Ergebnis stimmt mit tatsaechlichem ueberein +- **Fail:** Abweichung vom erwarteten Ergebnis + +### Teststufe gesamt + +| Kriterium | Bedingung fuer Pass | +|----------------------------------------|----------------------------------------| +| Alle Testfaelle ausgefuehrt | Ja | +| Alle Testfaelle bestanden | Ja (oder Fails bewertet und genehmigt) | +| Coverage-Ziel erreicht | Ja | +| Keine offenen Critical Findings | Ja | +| Traceability vollstaendig | Jede Anforderung hat mindestens einen Test | + +Fehlgeschlagene Tests, die nicht behoben werden, muessen per Non-Conformity oder Change Request dokumentiert und bewertet werden. + +## 7. Traceability + +Jeder Testfall muss auf mindestens eine Anforderung rueckfuehrbar sein. + +``` +Anforderung (GitLab Issue, Label: req::software) + → Testfall (GitLab Issue, Label: test::unit / test::integration / test::system) + → Testergebnis (CI-Artefakt / JUnit-XML) +``` + +Umsetzung: +- Testfall-Issue verlinkt auf Anforderungs-Issue ("relates to" oder "verified by") +- Im Testcode: Kommentar mit Anforderungs-ID (`// Verifies: SWR-042`) +- Traceability-Report wird per Skript aus GitLab API generiert + +--- + +*Aenderungen an diesem Plan werden im GitLab-Wiki versioniert.* diff --git a/vorlagen/Traceability-Matrix-vorlage.md b/vorlagen/Traceability-Matrix-vorlage.md new file mode 100644 index 0000000..be6a99a --- /dev/null +++ b/vorlagen/Traceability-Matrix-vorlage.md @@ -0,0 +1,67 @@ +# Traceability-Matrix + +## Prinzip + +Die Traceability-Matrix stellt die Rueckverfolgbarkeit von der Anforderung bis zum Test sicher: + +``` +System-Anforderung → Software-Anforderung → Architektur-Element → Implementierung (MR/Datei) → Testfall → Testergebnis +``` + +Jede Ebene muss bidirektional verfolgbar sein: +- **Vorwaerts:** Anforderung → wurde sie implementiert und getestet? +- **Rueckwaerts:** Testfall → welche Anforderung verifiziert er? + +## Tabellenstruktur + +| Sys-Req | SW-Req | ASIL | Arch-Element | Implementierung | Testfall | Test-Ergebnis | Status | +|---------|---------|------|--------------|----------------------|----------|---------------|--------------| +| SYR-001 | SWR-010 | B | MOD-Timer | MR !23, timer.c | TC-010 | Pass (v1.2) | Vollstaendig | +| SYR-001 | SWR-011 | B | MOD-Timer | MR !23, timer.c | TC-011 | Pass (v1.2) | Vollstaendig | +| SYR-002 | SWR-020 | A | MOD-CAN | MR !31, can_driver.c | TC-020 | Pass (v1.2) | Vollstaendig | +| SYR-003 | SWR-030 | B | MOD-Watchdog | — | — | — | Offen | +| — | SWR-040 | QM | MOD-Diag | MR !35, diag.c | TC-040 | Fail (v1.1) | Finding offen| + +## Spalten-Erklaerung + +| Spalte | Beschreibung | +|------------------|----------------------------------------------------------------| +| Sys-Req | System-Anforderungs-ID (GitLab Issue mit Label `req::system`) | +| SW-Req | Software-Anforderungs-ID (GitLab Issue mit Label `req::software`) | +| ASIL | Zugewiesener ASIL-Level | +| Arch-Element | Architektur-Modul oder -Komponente | +| Implementierung | Merge Request und/oder Datei | +| Testfall | Testfall-ID (GitLab Issue mit Label `test::*`) | +| Test-Ergebnis | Pass/Fail mit Version/Datum | +| Status | Vollstaendig / Offen / Finding offen | + +## Lueckenanalyse + +Die Matrix macht Luecken sichtbar: + +- **Anforderung ohne Test:** Zeile ohne Testfall-Eintrag → Test fehlt +- **Anforderung ohne Implementierung:** Zeile ohne MR → nicht implementiert +- **Test ohne Anforderung:** Testfall der keiner Anforderung zugeordnet ist → ueberpruefen +- **Fail ohne Finding:** Fehlgeschlagener Test ohne dokumentiertes Finding → nacharbeiten + +## Automatische Generierung aus GitLab + +Diese Matrix kann aus GitLab-Issues automatisch generiert werden: + +1. Python-Skript liest ueber GitLab API alle Issues mit `req::*`-Labels +2. Folgt Issue-Links zu Architektur-Issues, MRs und Test-Issues +3. Liest CI-Pipeline-Ergebnisse (JUnit-XML) fuer Testergebnisse +4. Erzeugt die Matrix als Markdown-Tabelle oder CSV + +**Voraussetzung:** Issues sind korrekt verlinkt und gelabelt (siehe `gitlab-aspice-setup.md`). + +**Ausgabe-Formate:** +- Markdown (fuer Wiki / Dokumentation) +- CSV (fuer Import in Kundensysteme) +- HTML (fuer Reporting) + +Ein Beispiel-Skript liegt unter `tools/traceability-report.py` im Projekt-Repository. + +--- + +*Die aktuelle Traceability-Matrix wird bei jedem Release aktualisiert und im Wiki abgelegt.* diff --git a/vorlagen/angebot-beispiel.html b/vorlagen/angebot-beispiel.html new file mode 100644 index 0000000..653255b --- /dev/null +++ b/vorlagen/angebot-beispiel.html @@ -0,0 +1,144 @@ + + + + + + Angebot: Accessibility Audit – slohmaier Engineering + + + + +

+ +
+ +

Angebot: Accessibility Audit

+ +

+ Datum: 03.04.2026    + Version: 1.0
+ Projekt: Accessibility Review – DemoApp v2.3
+ Auftraggeber: Acme GmbH, Berlin +

+ +
+ +

Zusammenfassung

+

Dieses Angebot beschreibt den Umfang und die Konditionen für einen Accessibility Audit der Windows-Desktop-Anwendung DemoApp v2.3, mit Fokus auf NVDA-Screenreader-Kompatibilität.

+ +

Inhalt

+ +

1. Ziel

+

Prüfung der Anwendung auf Bedienbarkeit mit NVDA (Windows) sowie Identifikation und Beschreibung konkreter Accessibility-Mängel mit Handlungsempfehlungen.

+ +

2. Umfang

+
    +
  • Vollständiger Durchgang aller Hauptdialoge und Workflows mit NVDA
  • +
  • Prüfung auf UIA-Baumstruktur und korrekte Rollen/Namen/Beschreibungen
  • +
  • Dokumentation aller Befunde mit Reproduktionsschritten und Schweregrad
  • +
  • Priorisierte Handlungsempfehlungen
  • +
+

Nicht enthalten: Implementierung von Korrekturen, Regressionstesting nach Fixes.

+ +

3. Anforderungen

+ + + + + + + + + + + +
Nr.AnforderungPriorität
1Vollständige NVDA-Bedienbarkeit aller WorkflowsMuss
2UIA-konforme Benennung aller SteuerelementeMuss
3Tastaturnavigation ohne MausMuss
4Logische FokusreihenfolgeSoll
5Kontraste mind. WCAG 2.1 AASoll
+ +

4. Vorgehen

+
    +
  1. Einrichtung der Testumgebung (Windows 11, NVDA 2024.4)
  2. +
  3. Manueller Test aller Hauptdialoge und Workflows
  4. +
  5. UIA-Dump-Analyse mit dumpUIA
  6. +
  7. Dokumentation der Befunde
  8. +
  9. Übergabe Auditbericht als PDF
  10. +
+

Geschätzte Dauer: 3 Werktage

+ +

5. Offene Punkte

+
    +
  • Übergabe Testversion der Anwendung
  • +
  • Zugang zu Testdaten für repräsentative Workflows
  • +
+ +

6. Lieferergebnis

+

Auditbericht (PDF) mit:

+
    +
  • Zusammenfassung und Gesamtbewertung
  • +
  • Vollständige Befundliste mit Schweregrad, Screenshot, Reproduktionsschritten
  • +
  • Priorisierte Handlungsempfehlungen
  • +
+ +
+ +

Konditionen

+

+ Tagessatz: auf Anfrage
+ Zahlungsziel: 14 Tage nach Rechnungsstellung
+ Gültig bis: 17.04.2026 +

+ +
+ +

Stefan Lohmaier
+ slohmaier.com · stefan@slohmaier.de

+ + + diff --git a/vorlagen/angebot-vorlage.md b/vorlagen/angebot-vorlage.md new file mode 100644 index 0000000..8e6ff18 --- /dev/null +++ b/vorlagen/angebot-vorlage.md @@ -0,0 +1,76 @@ + + + + + + + +--- + +# Angebot: {{ Titel }} + +**Datum:** {{ datum }} +**Version:** 1.0 +**Projekt:** {{ projektname }} +**Auftraggeber:** {{ auftraggeber }} + +--- + +## Zusammenfassung + +{{ Kurze Beschreibung was angeboten wird }} + +--- + +## Inhalt + +### 1. Ziel + +{{ Was soll erreicht werden? }} + +### 2. Umfang + +{{ Was ist enthalten? Aufzaehlung der Leistungen }} + +**Nicht enthalten:** {{ Was ist explizit ausgeschlossen? }} + +### 3. Anforderungen + +| Nr. | Anforderung | Prioritaet | +|-----|-------------|------------| +| 1 | ... | Muss | +| 2 | ... | Soll | +| 3 | ... | Kann | + +### 4. Vorgehen + +1. {{ Schritt 1 }} +2. {{ Schritt 2 }} +3. {{ Schritt 3 }} + +Geschaetzte Dauer: **{{ Dauer }}** + +### 5. Offene Punkte + +- [ ] {{ Voraussetzung 1 }} +- [ ] {{ Voraussetzung 2 }} + +### 6. Lieferergebnis + +{{ Was wird am Ende geliefert? Format, Umfang }} + +--- + +**Konditionen** + +Tagessatz: auf Anfrage +Zahlungsziel: 14 Tage nach Rechnungsstellung +Gueltig bis: {{ datum + 14 Tage }} + +--- + +**Stefan Lohmaier** +slohmaier.com · stefan@slohmaier.de

#E;+88=0KR{er-R9Wi3dOPbmijYwHyvCRU|J7wP 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 literal 0 HcmV?d00001 diff --git a/vorlagen-word/slohmaier-doc-template.docx b/vorlagen-word/slohmaier-doc-template.docx new file mode 100644 index 0000000000000000000000000000000000000000..4e737a3033a32820258dde405e2469e4765b63d5 GIT binary patch literal 41538 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