Files
dev-process/dev-process-schaubild.html
Stefan Lohmaier 6e458ae76f 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
2026-05-11 13:40:51 -07:00

212 lines
15 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>slohmaier Dev Process V-Model (ASPICE 4.0 / ISO 26262)</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { width: 100%; height: 100%; background: #fff; }
@page { size: A4 landscape; margin: 10mm; }
@media print {
body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
svg { width: 100% !important; height: auto !important; }
}
body {
display: flex; justify-content: center; align-items: flex-start;
padding: 20px; font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
}
svg { max-width: 1200px; width: 100%; height: auto; }
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" width="1200" height="800">
<defs>
<marker id="arr" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
<path d="M0,0 L8,3 L0,6 Z" fill="#5BA5D6"/>
</marker>
<marker id="arr-t" markerWidth="7" markerHeight="5" refX="6" refY="2.5" orient="auto">
<path d="M0,0 L7,2.5 L0,5 Z" fill="#92BDD8"/>
</marker>
<filter id="sh" x="-3%" y="-5%" width="106%" height="115%">
<feDropShadow dx="0" dy="1.5" stdDeviation="2.5" flood-color="#282728" flood-opacity="0.07"/>
</filter>
</defs>
<!-- Background -->
<rect width="1200" height="800" fill="#ffffff"/>
<!-- ======================== HEADER ======================== -->
<image href="https://slohmaier.com/branding/logo-doc-light.svg" x="30" y="16" width="150" height="38" preserveAspectRatio="xMinYMid meet"/>
<text x="600" y="36" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="20" font-weight="700" fill="#282728">Software Development Process</text>
<text x="600" y="56" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11.5" font-weight="400" fill="#888">ASPICE 4.0 / ISO 26262 — V-Model with GitLab Toolchain</text>
<!-- ======================== SUPPORTING PROCESSES ======================== -->
<!-- Horizontal bands spanning the full width -->
<rect x="40" y="72" width="1120" height="26" rx="4" fill="#D4A574" opacity="0.13"/>
<text x="600" y="89" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="600" fill="#D4A574">SUP.1 — Quality Assurance</text>
<rect x="40" y="100" width="1120" height="22" rx="4" fill="#D4A574" opacity="0.09"/>
<text x="600" y="115" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="9" font-weight="500" fill="#C49564">SUP.8 — Configuration Management (Git / GitLab)</text>
<rect x="40" y="124" width="1120" height="22" rx="4" fill="#D4A574" opacity="0.06"/>
<text x="600" y="139" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="9" font-weight="500" fill="#C49564">SUP.9 — Problem Resolution (GitLab Issues)</text>
<rect x="40" y="148" width="1120" height="22" rx="4" fill="#D4A574" opacity="0.04"/>
<text x="600" y="163" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="9" font-weight="500" fill="#C49564">SUP.10 — Change Request Management (GitLab Merge Requests)</text>
<!-- ======================== V-MODEL ======================== -->
<!--
Layout (Y positions):
SYS.2 y=195 (top, left only — no right counterpart shown)
SWE.1 / SWE.6 y=275 (same height pair)
SWE.2 / SWE.5 y=355 (same height pair)
SWE.3 / SWE.4 y=435 (same height pair, SWE.3 bottom-center)
Implementation y=495 (bottom center)
Left boxes: x = 55..305 → 65..315 → 115..365 → center
Right boxes: x = 835..1095 → 785..1045 → 735..995 → center
-->
<!-- V-shape guide lines (subtle background V) -->
<polyline points="190,225 490,525" stroke="#5BA5D6" stroke-opacity="0.12" stroke-width="2.5" fill="none"/>
<polyline points="1010,225 710,525" stroke="#5BA5D6" stroke-opacity="0.12" stroke-width="2.5" fill="none"/>
<!-- Side labels -->
<text x="125" y="188" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6" letter-spacing="1.5">SPECIFICATION</text>
<text x="1080" y="188" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6" letter-spacing="1.5">VERIFICATION</text>
<!-- ===== SYS.2 — System Requirements (top left, no mirror) ===== -->
<g filter="url(#sh)">
<rect x="55" y="198" width="270" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="55" y="198" width="5" height="56" rx="2.5 0 0 2.5" fill="#5BA5D6"/>
<text x="74" y="220" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SYS.2</text>
<text x="74" y="240" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">System Requirements</text>
</g>
<!-- ===== SWE.1 — Software Requirements ===== -->
<g filter="url(#sh)">
<rect x="145" y="278" width="270" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="145" y="278" width="5" height="56" rx="2.5 0 0 2.5" fill="#5BA5D6"/>
<text x="164" y="300" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.1</text>
<text x="164" y="320" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Software Requirements</text>
</g>
<!-- ===== SWE.6 — Qualification Test (mirrors SWE.1) ===== -->
<g filter="url(#sh)">
<rect x="785" y="278" width="270" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="1050" y="278" width="5" height="56" rx="0 2.5 2.5 0" fill="#5BA5D6"/>
<text x="1040" y="300" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.6</text>
<text x="1040" y="320" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Qualification Test</text>
</g>
<!-- ===== SWE.2 — Software Architecture ===== -->
<g filter="url(#sh)">
<rect x="235" y="358" width="270" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="235" y="358" width="5" height="56" rx="2.5 0 0 2.5" fill="#5BA5D6"/>
<text x="254" y="380" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.2</text>
<text x="254" y="400" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Software Architecture</text>
</g>
<!-- ===== SWE.5 — Integration Test (mirrors SWE.2) ===== -->
<g filter="url(#sh)">
<rect x="695" y="358" width="270" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="960" y="358" width="5" height="56" rx="0 2.5 2.5 0" fill="#5BA5D6"/>
<text x="950" y="380" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.5</text>
<text x="950" y="400" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Integration Test</text>
</g>
<!-- ===== SWE.3 — Detail Design (left of bottom) ===== -->
<g filter="url(#sh)">
<rect x="325" y="438" width="230" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="325" y="438" width="5" height="56" rx="2.5 0 0 2.5" fill="#5BA5D6"/>
<text x="344" y="460" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.3</text>
<text x="344" y="480" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Detail Design</text>
</g>
<!-- ===== SWE.4 — Unit Verification (mirrors SWE.3) ===== -->
<g filter="url(#sh)">
<rect x="645" y="438" width="230" height="56" rx="6" fill="#f0f2f4" stroke="#5BA5D6" stroke-width="1.5"/>
<rect x="870" y="438" width="5" height="56" rx="0 2.5 2.5 0" fill="#5BA5D6"/>
<text x="860" y="460" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#5BA5D6">SWE.4</text>
<text x="860" y="480" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="13" font-weight="600" fill="#282728">Unit Verification</text>
</g>
<!-- ===== IMPLEMENTATION (bottom center, accent filled) ===== -->
<g filter="url(#sh)">
<rect x="420" y="518" width="360" height="58" rx="6" fill="#5BA5D6"/>
<text x="600" y="543" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="600" fill="#fff" opacity="0.8">SWE.3</text>
<text x="600" y="562" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="14" font-weight="700" fill="#fff">Implementation</text>
</g>
<!-- ======================== FLOW ARROWS (V path) ======================== -->
<!-- Left side: SYS.2 → SWE.1 → SWE.2 → SWE.3 → Implementation -->
<line x1="210" y1="254" x2="260" y2="276" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="300" y1="334" x2="350" y2="356" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="390" y1="414" x2="420" y2="436" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="480" y1="494" x2="520" y2="516" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<!-- Right side: Implementation → SWE.4 → SWE.5 → SWE.6 -->
<line x1="680" y1="516" x2="720" y2="496" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="790" y1="438" x2="810" y2="416" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="880" y1="358" x2="900" y2="336" stroke="#5BA5D6" stroke-width="2" marker-end="url(#arr)"/>
<!-- ======================== TRACEABILITY ARROWS (horizontal dashed) ======================== -->
<!-- SWE.1 ↔ SWE.6 (y=306, same height) -->
<line x1="415" y1="306" x2="783" y2="306" stroke="#92BDD8" stroke-width="1.2" stroke-dasharray="6,4" marker-end="url(#arr-t)"/>
<rect x="548" y="293" width="102" height="16" rx="3" fill="#fff" fill-opacity="0.85"/>
<text x="600" y="304" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="600" fill="#92BDD8">Traceability</text>
<!-- SWE.2 ↔ SWE.5 (y=386, same height) -->
<line x1="505" y1="386" x2="693" y2="386" stroke="#92BDD8" stroke-width="1.2" stroke-dasharray="6,4" marker-end="url(#arr-t)"/>
<rect x="548" y="373" width="102" height="16" rx="3" fill="#fff" fill-opacity="0.85"/>
<text x="600" y="384" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="600" fill="#92BDD8">Traceability</text>
<!-- SWE.3 ↔ SWE.4 (y=466, same height) -->
<line x1="555" y1="466" x2="643" y2="466" stroke="#92BDD8" stroke-width="1.2" stroke-dasharray="6,4" marker-end="url(#arr-t)"/>
<!-- ======================== TOOLCHAIN BAR ======================== -->
<line x1="50" y1="600" x2="1150" y2="600" stroke="#e0e0e0" stroke-width="1"/>
<text x="600" y="622" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="10" font-weight="700" fill="#282728" letter-spacing="2">TOOLCHAIN</text>
<!-- Tool boxes (6 items, evenly spaced) -->
<!-- GitLab -->
<rect x="52" y="636" width="175" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="139" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">GitLab</text>
<text x="139" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">Source · Wiki · Reviews · CI/CD</text>
<!-- Cppcheck + MISRA -->
<rect x="239" y="636" width="145" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="311" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">Cppcheck</text>
<text x="311" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">MISRA Compliance</text>
<!-- gcov/lcov -->
<rect x="396" y="636" width="155" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="473" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">gcov / lcov</text>
<text x="473" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">MCDC-Star Coverage</text>
<!-- CppUTest / Google Test -->
<rect x="563" y="636" width="155" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="640" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">CppUTest</text>
<text x="640" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">Google Test</text>
<!-- ScanCode / FOSSology -->
<rect x="730" y="636" width="155" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="807" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">ScanCode</text>
<text x="807" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">FOSSology</text>
<!-- pandoc -->
<rect x="897" y="636" width="155" height="48" rx="5" fill="#f0f2f4" stroke="#d0d0d0" stroke-width="1"/>
<text x="974" y="656" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="11" font-weight="600" fill="#282728">pandoc</text>
<text x="974" y="672" text-anchor="middle" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="8.5" font-weight="400" fill="#666">Document Export</text>
<!-- ======================== FOOTER ======================== -->
<line x1="40" y1="710" x2="1160" y2="710" stroke="#eaeaea" stroke-width="0.5"/>
<text x="40" y="728" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="9" font-weight="400" fill="#aaa">slohmaier.com</text>
<text x="1160" y="728" text-anchor="end" font-family="Inter, Helvetica Neue, Arial, sans-serif" font-size="9" font-weight="400" fill="#aaa">ASPICE 4.0 / ISO 26262 compliant process overview</text>
</svg>
</body>
</html>