@h2nguyen/arc42-node-mcp-server 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/README.md +222 -11
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +28 -72
- package/dist/server.js.map +1 -1
- package/dist/templates/index.d.ts +46 -1
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +63 -896
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/locales/cz/index.d.ts +9 -0
- package/dist/templates/locales/cz/index.d.ts.map +1 -0
- package/dist/templates/locales/cz/index.js +29 -0
- package/dist/templates/locales/cz/index.js.map +1 -0
- package/dist/templates/locales/cz/sections.d.ts +10 -0
- package/dist/templates/locales/cz/sections.d.ts.map +1 -0
- package/dist/templates/locales/cz/sections.js +39 -0
- package/dist/templates/locales/cz/sections.js.map +1 -0
- package/dist/templates/locales/cz/templates.d.ts +9 -0
- package/dist/templates/locales/cz/templates.d.ts.map +1 -0
- package/dist/templates/locales/cz/templates.js +274 -0
- package/dist/templates/locales/cz/templates.js.map +1 -0
- package/dist/templates/locales/de/index.d.ts +26 -0
- package/dist/templates/locales/de/index.d.ts.map +1 -0
- package/dist/templates/locales/de/index.js +53 -0
- package/dist/templates/locales/de/index.js.map +1 -0
- package/dist/templates/locales/de/sections.d.ts +28 -0
- package/dist/templates/locales/de/sections.d.ts.map +1 -0
- package/dist/templates/locales/de/sections.js +57 -0
- package/dist/templates/locales/de/sections.js.map +1 -0
- package/dist/templates/locales/de/templates.d.ts +22 -0
- package/dist/templates/locales/de/templates.d.ts.map +1 -0
- package/dist/templates/locales/de/templates.js +1060 -0
- package/dist/templates/locales/de/templates.js.map +1 -0
- package/dist/templates/locales/en/index.d.ts +26 -0
- package/dist/templates/locales/en/index.d.ts.map +1 -0
- package/dist/templates/locales/en/index.js +53 -0
- package/dist/templates/locales/en/index.js.map +1 -0
- package/dist/templates/locales/en/sections.d.ts +25 -0
- package/dist/templates/locales/en/sections.d.ts.map +1 -0
- package/dist/templates/locales/en/sections.js +54 -0
- package/dist/templates/locales/en/sections.js.map +1 -0
- package/dist/templates/locales/en/templates.d.ts +22 -0
- package/dist/templates/locales/en/templates.d.ts.map +1 -0
- package/dist/templates/locales/en/templates.js +1060 -0
- package/dist/templates/locales/en/templates.js.map +1 -0
- package/dist/templates/locales/es/index.d.ts +26 -0
- package/dist/templates/locales/es/index.d.ts.map +1 -0
- package/dist/templates/locales/es/index.js +53 -0
- package/dist/templates/locales/es/index.js.map +1 -0
- package/dist/templates/locales/es/sections.d.ts +28 -0
- package/dist/templates/locales/es/sections.d.ts.map +1 -0
- package/dist/templates/locales/es/sections.js +57 -0
- package/dist/templates/locales/es/sections.js.map +1 -0
- package/dist/templates/locales/es/templates.d.ts +22 -0
- package/dist/templates/locales/es/templates.d.ts.map +1 -0
- package/dist/templates/locales/es/templates.js +1060 -0
- package/dist/templates/locales/es/templates.js.map +1 -0
- package/dist/templates/locales/fr/index.d.ts +26 -0
- package/dist/templates/locales/fr/index.d.ts.map +1 -0
- package/dist/templates/locales/fr/index.js +53 -0
- package/dist/templates/locales/fr/index.js.map +1 -0
- package/dist/templates/locales/fr/sections.d.ts +28 -0
- package/dist/templates/locales/fr/sections.d.ts.map +1 -0
- package/dist/templates/locales/fr/sections.js +57 -0
- package/dist/templates/locales/fr/sections.js.map +1 -0
- package/dist/templates/locales/fr/templates.d.ts +22 -0
- package/dist/templates/locales/fr/templates.d.ts.map +1 -0
- package/dist/templates/locales/fr/templates.js +1060 -0
- package/dist/templates/locales/fr/templates.js.map +1 -0
- package/dist/templates/locales/index.d.ts +67 -0
- package/dist/templates/locales/index.d.ts.map +1 -0
- package/dist/templates/locales/index.js +100 -0
- package/dist/templates/locales/index.js.map +1 -0
- package/dist/templates/locales/it/index.d.ts +26 -0
- package/dist/templates/locales/it/index.d.ts.map +1 -0
- package/dist/templates/locales/it/index.js +53 -0
- package/dist/templates/locales/it/index.js.map +1 -0
- package/dist/templates/locales/it/sections.d.ts +28 -0
- package/dist/templates/locales/it/sections.d.ts.map +1 -0
- package/dist/templates/locales/it/sections.js +57 -0
- package/dist/templates/locales/it/sections.js.map +1 -0
- package/dist/templates/locales/it/templates.d.ts +22 -0
- package/dist/templates/locales/it/templates.d.ts.map +1 -0
- package/dist/templates/locales/it/templates.js +1060 -0
- package/dist/templates/locales/it/templates.js.map +1 -0
- package/dist/templates/locales/language-factory.d.ts +97 -0
- package/dist/templates/locales/language-factory.d.ts.map +1 -0
- package/dist/templates/locales/language-factory.js +126 -0
- package/dist/templates/locales/language-factory.js.map +1 -0
- package/dist/templates/locales/language-registry.d.ts +114 -0
- package/dist/templates/locales/language-registry.d.ts.map +1 -0
- package/dist/templates/locales/language-registry.js +146 -0
- package/dist/templates/locales/language-registry.js.map +1 -0
- package/dist/templates/locales/language-strategy.d.ts +126 -0
- package/dist/templates/locales/language-strategy.d.ts.map +1 -0
- package/dist/templates/locales/language-strategy.js +46 -0
- package/dist/templates/locales/language-strategy.js.map +1 -0
- package/dist/templates/locales/nl/index.d.ts +26 -0
- package/dist/templates/locales/nl/index.d.ts.map +1 -0
- package/dist/templates/locales/nl/index.js +53 -0
- package/dist/templates/locales/nl/index.js.map +1 -0
- package/dist/templates/locales/nl/sections.d.ts +28 -0
- package/dist/templates/locales/nl/sections.d.ts.map +1 -0
- package/dist/templates/locales/nl/sections.js +57 -0
- package/dist/templates/locales/nl/sections.js.map +1 -0
- package/dist/templates/locales/nl/templates.d.ts +22 -0
- package/dist/templates/locales/nl/templates.d.ts.map +1 -0
- package/dist/templates/locales/nl/templates.js +1060 -0
- package/dist/templates/locales/nl/templates.js.map +1 -0
- package/dist/templates/locales/pt/index.d.ts +26 -0
- package/dist/templates/locales/pt/index.d.ts.map +1 -0
- package/dist/templates/locales/pt/index.js +53 -0
- package/dist/templates/locales/pt/index.js.map +1 -0
- package/dist/templates/locales/pt/sections.d.ts +28 -0
- package/dist/templates/locales/pt/sections.d.ts.map +1 -0
- package/dist/templates/locales/pt/sections.js +57 -0
- package/dist/templates/locales/pt/sections.js.map +1 -0
- package/dist/templates/locales/pt/templates.d.ts +22 -0
- package/dist/templates/locales/pt/templates.d.ts.map +1 -0
- package/dist/templates/locales/pt/templates.js +1060 -0
- package/dist/templates/locales/pt/templates.js.map +1 -0
- package/dist/templates/locales/ru/index.d.ts +15 -0
- package/dist/templates/locales/ru/index.d.ts.map +1 -0
- package/dist/templates/locales/ru/index.js +41 -0
- package/dist/templates/locales/ru/index.js.map +1 -0
- package/dist/templates/locales/ru/sections.d.ts +28 -0
- package/dist/templates/locales/ru/sections.d.ts.map +1 -0
- package/dist/templates/locales/ru/sections.js +57 -0
- package/dist/templates/locales/ru/sections.js.map +1 -0
- package/dist/templates/locales/ru/templates.d.ts +22 -0
- package/dist/templates/locales/ru/templates.d.ts.map +1 -0
- package/dist/templates/locales/ru/templates.js +664 -0
- package/dist/templates/locales/ru/templates.js.map +1 -0
- package/dist/templates/locales/template-provider.d.ts +122 -0
- package/dist/templates/locales/template-provider.d.ts.map +1 -0
- package/dist/templates/locales/template-provider.js +173 -0
- package/dist/templates/locales/template-provider.js.map +1 -0
- package/dist/templates/locales/ukr/index.d.ts +9 -0
- package/dist/templates/locales/ukr/index.d.ts.map +1 -0
- package/dist/templates/locales/ukr/index.js +29 -0
- package/dist/templates/locales/ukr/index.js.map +1 -0
- package/dist/templates/locales/ukr/sections.d.ts +10 -0
- package/dist/templates/locales/ukr/sections.d.ts.map +1 -0
- package/dist/templates/locales/ukr/sections.js +39 -0
- package/dist/templates/locales/ukr/sections.js.map +1 -0
- package/dist/templates/locales/ukr/templates.d.ts +9 -0
- package/dist/templates/locales/ukr/templates.d.ts.map +1 -0
- package/dist/templates/locales/ukr/templates.js +242 -0
- package/dist/templates/locales/ukr/templates.js.map +1 -0
- package/dist/templates/locales/zh/index.d.ts +9 -0
- package/dist/templates/locales/zh/index.d.ts.map +1 -0
- package/dist/templates/locales/zh/index.js +29 -0
- package/dist/templates/locales/zh/index.js.map +1 -0
- package/dist/templates/locales/zh/sections.d.ts +10 -0
- package/dist/templates/locales/zh/sections.d.ts.map +1 -0
- package/dist/templates/locales/zh/sections.js +39 -0
- package/dist/templates/locales/zh/sections.js.map +1 -0
- package/dist/templates/locales/zh/templates.d.ts +9 -0
- package/dist/templates/locales/zh/templates.d.ts.map +1 -0
- package/dist/templates/locales/zh/templates.js +260 -0
- package/dist/templates/locales/zh/templates.js.map +1 -0
- package/dist/tools/arc42-init.d.ts +8 -2
- package/dist/tools/arc42-init.d.ts.map +1 -1
- package/dist/tools/arc42-init.js +67 -97
- package/dist/tools/arc42-init.js.map +1 -1
- package/dist/tools/arc42-status.d.ts +5 -2
- package/dist/tools/arc42-status.d.ts.map +1 -1
- package/dist/tools/arc42-status.js +47 -18
- package/dist/tools/arc42-status.js.map +1 -1
- package/dist/tools/arc42-workflow-guide.d.ts +6 -3
- package/dist/tools/arc42-workflow-guide.d.ts.map +1 -1
- package/dist/tools/arc42-workflow-guide.js +42 -276
- package/dist/tools/arc42-workflow-guide.js.map +1 -1
- package/dist/tools/generate-template.d.ts +7 -3
- package/dist/tools/generate-template.d.ts.map +1 -1
- package/dist/tools/generate-template.js +44 -35
- package/dist/tools/generate-template.js.map +1 -1
- package/dist/tools/get-section.d.ts +7 -3
- package/dist/tools/get-section.d.ts.map +1 -1
- package/dist/tools/get-section.js +38 -38
- package/dist/tools/get-section.js.map +1 -1
- package/dist/tools/index.d.ts +6 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/update-section.d.ts +9 -3
- package/dist/tools/update-section.d.ts.map +1 -1
- package/dist/tools/update-section.js +12 -44
- package/dist/tools/update-section.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,1060 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* German Templates
|
|
3
|
+
*
|
|
4
|
+
* Contains all arc42 section templates in German.
|
|
5
|
+
* Based on the official arc42 German template from vendor/arc42-template/DE/.
|
|
6
|
+
*
|
|
7
|
+
* @module templates/locales/de/templates
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Get the German template for a specific section
|
|
11
|
+
*/
|
|
12
|
+
export function getTemplate(section) {
|
|
13
|
+
const templates = {
|
|
14
|
+
'01_introduction_and_goals': getIntroductionAndGoalsTemplate,
|
|
15
|
+
'02_architecture_constraints': getArchitectureConstraintsTemplate,
|
|
16
|
+
'03_context_and_scope': getContextAndScopeTemplate,
|
|
17
|
+
'04_solution_strategy': getSolutionStrategyTemplate,
|
|
18
|
+
'05_building_block_view': getBuildingBlockViewTemplate,
|
|
19
|
+
'06_runtime_view': getRuntimeViewTemplate,
|
|
20
|
+
'07_deployment_view': getDeploymentViewTemplate,
|
|
21
|
+
'08_concepts': getConceptsTemplate,
|
|
22
|
+
'09_architecture_decisions': getArchitectureDecisionsTemplate,
|
|
23
|
+
'10_quality_requirements': getQualityRequirementsTemplate,
|
|
24
|
+
'11_technical_risks': getTechnicalRisksTemplate,
|
|
25
|
+
'12_glossary': getGlossaryTemplate
|
|
26
|
+
};
|
|
27
|
+
return templates[section]();
|
|
28
|
+
}
|
|
29
|
+
function getIntroductionAndGoalsTemplate() {
|
|
30
|
+
return `# 1. Einführung und Ziele
|
|
31
|
+
|
|
32
|
+
## Aufgabenstellung
|
|
33
|
+
|
|
34
|
+
**Zweck**: Beschreibt die wesentlichen Anforderungen und treibenden Kräfte, die bei der Umsetzung der Softwarearchitektur und Entwicklung des Systems berücksichtigt werden müssen.
|
|
35
|
+
|
|
36
|
+
### Wesentliche Anforderungen
|
|
37
|
+
|
|
38
|
+
<!-- Listen Sie die Top 3-5 funktionalen Anforderungen auf -->
|
|
39
|
+
|
|
40
|
+
| ID | Anforderung | Priorität |
|
|
41
|
+
|----|-------------|-----------|
|
|
42
|
+
| ANF-1 | [Kurzbeschreibung] | Hoch |
|
|
43
|
+
| ANF-2 | [Kurzbeschreibung] | Mittel |
|
|
44
|
+
|
|
45
|
+
### Features
|
|
46
|
+
|
|
47
|
+
<!-- Wesentliche Features des Systems -->
|
|
48
|
+
|
|
49
|
+
- Feature 1: [Beschreibung]
|
|
50
|
+
- Feature 2: [Beschreibung]
|
|
51
|
+
|
|
52
|
+
## Qualitätsziele
|
|
53
|
+
|
|
54
|
+
**Zweck**: Die Top-3 bis Top-5 der Qualitätsanforderungen für die Architektur, deren Erfüllung den maßgeblichen Stakeholdern besonders wichtig sind.
|
|
55
|
+
|
|
56
|
+
<!-- Basierend auf ISO 25010, priorisieren Sie Qualitäten wie: -->
|
|
57
|
+
<!-- Performanz, Sicherheit, Zuverlässigkeit, Wartbarkeit, Benutzbarkeit, etc. -->
|
|
58
|
+
|
|
59
|
+
| Priorität | Qualitätsziel | Motivation |
|
|
60
|
+
|-----------|---------------|------------|
|
|
61
|
+
| 1 | [z.B. Performanz] | [Warum dies kritisch ist] |
|
|
62
|
+
| 2 | [z.B. Sicherheit] | [Warum dies kritisch ist] |
|
|
63
|
+
| 3 | [z.B. Wartbarkeit] | [Warum dies kritisch ist] |
|
|
64
|
+
|
|
65
|
+
## Stakeholder
|
|
66
|
+
|
|
67
|
+
**Zweck**: Expliziter Überblick über die Stakeholder des Systems.
|
|
68
|
+
|
|
69
|
+
| Rolle/Name | Kontakt | Erwartungshaltung |
|
|
70
|
+
|------------|---------|-------------------|
|
|
71
|
+
| Product Owner | [Name/Email] | [Erwartungen an die Architektur] |
|
|
72
|
+
| Entwicklungsteam | [Teamname] | [Was sie wissen müssen] |
|
|
73
|
+
| Betrieb | [Team/Person] | [Deployment- und Betriebsbelange] |
|
|
74
|
+
| Endbenutzer | [Typ] | [Erwartungen an die Benutzererfahrung] |
|
|
75
|
+
|
|
76
|
+
## Erfolgskriterien
|
|
77
|
+
|
|
78
|
+
<!-- Was definiert den Erfolg dieses Systems? -->
|
|
79
|
+
|
|
80
|
+
- [ ] Kriterium 1
|
|
81
|
+
- [ ] Kriterium 2
|
|
82
|
+
- [ ] Kriterium 3
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
function getArchitectureConstraintsTemplate() {
|
|
86
|
+
return `# 2. Randbedingungen
|
|
87
|
+
|
|
88
|
+
## Technische Randbedingungen
|
|
89
|
+
|
|
90
|
+
**Hardware-Randbedingungen**
|
|
91
|
+
|
|
92
|
+
| Randbedingung | Hintergrund/Motivation |
|
|
93
|
+
|---------------|------------------------|
|
|
94
|
+
| [z.B. Cloud-Plattform] | [Warum diese Randbedingung existiert] |
|
|
95
|
+
|
|
96
|
+
**Software/Technologie-Randbedingungen**
|
|
97
|
+
|
|
98
|
+
| Randbedingung | Hintergrund/Motivation |
|
|
99
|
+
|---------------|------------------------|
|
|
100
|
+
| [z.B. Java 17+ erforderlich] | [Grund für die Randbedingung] |
|
|
101
|
+
| [z.B. PostgreSQL erforderlich] | [Warum dies gewählt wurde] |
|
|
102
|
+
|
|
103
|
+
**Programmierrichtlinien**
|
|
104
|
+
|
|
105
|
+
- Programmiersprache: [Sprache]
|
|
106
|
+
- Framework: [Framework und Version]
|
|
107
|
+
- Bibliotheken: [Pflicht- oder verbotene Bibliotheken]
|
|
108
|
+
|
|
109
|
+
## Organisatorische Randbedingungen
|
|
110
|
+
|
|
111
|
+
**Organisation und Struktur**
|
|
112
|
+
|
|
113
|
+
| Randbedingung | Hintergrund/Motivation |
|
|
114
|
+
|---------------|------------------------|
|
|
115
|
+
| [z.B. Teamstruktur] | [Wie dies die Architektur beeinflusst] |
|
|
116
|
+
| [z.B. Agile Methodik] | [Auswirkungen auf den Entwicklungsprozess] |
|
|
117
|
+
|
|
118
|
+
**Ressourcen**
|
|
119
|
+
|
|
120
|
+
- Budget: [Budgetbeschränkungen]
|
|
121
|
+
- Zeit: [Zeitliche Randbedingungen]
|
|
122
|
+
- Team: [Teamgröße und -fähigkeiten]
|
|
123
|
+
|
|
124
|
+
## Konventionen
|
|
125
|
+
|
|
126
|
+
**Architektur- und Design-Konventionen**
|
|
127
|
+
|
|
128
|
+
- [z.B. Microservices-Architekturmuster]
|
|
129
|
+
- [z.B. RESTful API-Design]
|
|
130
|
+
- [z.B. Domain-Driven Design]
|
|
131
|
+
|
|
132
|
+
**Coding-Konventionen**
|
|
133
|
+
|
|
134
|
+
- Code-Stil: [Link zum Styleguide]
|
|
135
|
+
- Dokumentation: [Dokumentationsstandards]
|
|
136
|
+
- Tests: [Testanforderungen]
|
|
137
|
+
|
|
138
|
+
**Compliance-Anforderungen**
|
|
139
|
+
|
|
140
|
+
- [z.B. DSGVO-Konformität]
|
|
141
|
+
- [z.B. Branchenspezifische Vorschriften]
|
|
142
|
+
- [z.B. Barrierefreiheitsstandards]
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
function getContextAndScopeTemplate() {
|
|
146
|
+
return `# 3. Kontextabgrenzung
|
|
147
|
+
|
|
148
|
+
## Fachlicher Kontext
|
|
149
|
+
|
|
150
|
+
**Zweck**: Zeigt die fachliche Umgebung des Systems und die wichtigsten externen Abhängigkeiten.
|
|
151
|
+
|
|
152
|
+
### Kontextdiagramm
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
[Erstellen Sie ein Diagramm, das Ihr System und externe Systeme/Benutzer zeigt]
|
|
156
|
+
Sie können verwenden:
|
|
157
|
+
- Mermaid-Diagramme
|
|
158
|
+
- PlantUML
|
|
159
|
+
- ASCII-Art
|
|
160
|
+
- Oder referenzieren Sie ein Bild in /images/
|
|
161
|
+
\`\`\`
|
|
162
|
+
|
|
163
|
+
### Externe Schnittstellen
|
|
164
|
+
|
|
165
|
+
| Externes System | Schnittstelle | Zweck |
|
|
166
|
+
|-----------------|---------------|-------|
|
|
167
|
+
| [Externes System 1] | [API/Protokoll] | [Welche Daten/Funktionen ausgetauscht werden] |
|
|
168
|
+
| [Benutzertyp 1] | [UI/API] | [Wie Benutzer interagieren] |
|
|
169
|
+
|
|
170
|
+
### Unterstützte Geschäftsprozesse
|
|
171
|
+
|
|
172
|
+
<!-- Welche Geschäftsprozesse unterstützt dieses System? -->
|
|
173
|
+
|
|
174
|
+
1. **Prozess 1**: [Beschreibung]
|
|
175
|
+
- Akteure: [Wer ist beteiligt]
|
|
176
|
+
- Ablauf: [High-Level Ablauf]
|
|
177
|
+
|
|
178
|
+
2. **Prozess 2**: [Beschreibung]
|
|
179
|
+
|
|
180
|
+
## Technischer Kontext
|
|
181
|
+
|
|
182
|
+
**Zweck**: Zeigt technische Schnittstellen und Kanäle zwischen System und Umgebung.
|
|
183
|
+
|
|
184
|
+
### Technische Schnittstellen
|
|
185
|
+
|
|
186
|
+
| Schnittstelle | Technologie | Protokoll | Format |
|
|
187
|
+
|---------------|-------------|-----------|--------|
|
|
188
|
+
| [API 1] | [REST API] | [HTTPS] | [JSON] |
|
|
189
|
+
| [Datenbank] | [PostgreSQL] | [TCP/IP] | [SQL] |
|
|
190
|
+
|
|
191
|
+
### Kanäle und Übertragung
|
|
192
|
+
|
|
193
|
+
| Kanal | Technologie | Beschreibung |
|
|
194
|
+
|-------|-------------|--------------|
|
|
195
|
+
| [Message Queue] | [RabbitMQ] | [Asynchrone Kommunikation zwischen Services] |
|
|
196
|
+
|
|
197
|
+
### Mapping: Fachlich auf Technisch
|
|
198
|
+
|
|
199
|
+
| Fachlicher Kontext | Technische Realisierung |
|
|
200
|
+
|--------------------|------------------------|
|
|
201
|
+
| [Benutzeroberfläche] | [React SPA über HTTPS] |
|
|
202
|
+
| [Externes System A] | [REST API über HTTPS] |
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
function getSolutionStrategyTemplate() {
|
|
206
|
+
return `# 4. Lösungsstrategie
|
|
207
|
+
|
|
208
|
+
**Zweck**: Fasst die grundlegenden Entscheidungen und Lösungsstrategien zusammen, die die Systemarchitektur prägen.
|
|
209
|
+
|
|
210
|
+
## Zentrale Lösungsentscheidungen
|
|
211
|
+
|
|
212
|
+
### Architekturmuster
|
|
213
|
+
|
|
214
|
+
| Muster | Motivation | Konsequenzen |
|
|
215
|
+
|--------|------------|--------------|
|
|
216
|
+
| [z.B. Microservices] | [Warum dieses Muster gewählt wurde] | [Vorteile und Kompromisse] |
|
|
217
|
+
|
|
218
|
+
### Technologieentscheidungen
|
|
219
|
+
|
|
220
|
+
| Komponente | Technologie | Grund |
|
|
221
|
+
|------------|-------------|-------|
|
|
222
|
+
| Backend | [z.B. Node.js] | [Warum dies gewählt wurde] |
|
|
223
|
+
| Frontend | [z.B. React] | [Gründe] |
|
|
224
|
+
| Datenbank | [z.B. PostgreSQL] | [Gründe] |
|
|
225
|
+
|
|
226
|
+
### Top-Level Zerlegung
|
|
227
|
+
|
|
228
|
+
<!-- Wie ist das System auf höchster Ebene strukturiert? -->
|
|
229
|
+
|
|
230
|
+
\`\`\`
|
|
231
|
+
[High-Level Komponentendiagramm]
|
|
232
|
+
\`\`\`
|
|
233
|
+
|
|
234
|
+
Beschreibung:
|
|
235
|
+
- Komponente 1: [Zweck und Verantwortlichkeit]
|
|
236
|
+
- Komponente 2: [Zweck und Verantwortlichkeit]
|
|
237
|
+
|
|
238
|
+
## Erreichen der Qualitätsziele
|
|
239
|
+
|
|
240
|
+
### Mapping: Qualitätsziele auf Lösungsansätze
|
|
241
|
+
|
|
242
|
+
| Qualitätsziel | Lösungsansatz |
|
|
243
|
+
|---------------|---------------|
|
|
244
|
+
| [Performanz] | [Caching-Strategie, asynchrone Verarbeitung, CDN] |
|
|
245
|
+
| [Sicherheit] | [Authentifizierung, Autorisierung, Verschlüsselung] |
|
|
246
|
+
| [Skalierbarkeit] | [Horizontale Skalierung, Load Balancing] |
|
|
247
|
+
|
|
248
|
+
### Zentrale Designentscheidungen
|
|
249
|
+
|
|
250
|
+
1. **Entscheidung 1**: [z.B. Event-driven Architektur]
|
|
251
|
+
- Grund: [Warum dieser Ansatz]
|
|
252
|
+
- Auswirkung: [Wie es hilft, Qualitätsziele zu erreichen]
|
|
253
|
+
|
|
254
|
+
2. **Entscheidung 2**: [Beschreibung]
|
|
255
|
+
- Grund: [Begründung]
|
|
256
|
+
- Auswirkung: [Auswirkungen auf Qualitätsziele]
|
|
257
|
+
|
|
258
|
+
## Entwicklungsstrategie
|
|
259
|
+
|
|
260
|
+
- Entwicklungsansatz: [Agil, Scrum, etc.]
|
|
261
|
+
- Deployment-Strategie: [CI/CD, Blue-Green, etc.]
|
|
262
|
+
- Teststrategie: [Unit, Integration, E2E]
|
|
263
|
+
`;
|
|
264
|
+
}
|
|
265
|
+
function getBuildingBlockViewTemplate() {
|
|
266
|
+
return `# 5. Bausteinsicht
|
|
267
|
+
|
|
268
|
+
**Zweck**: Statische Zerlegung des Systems in Bausteine und deren Beziehungen.
|
|
269
|
+
|
|
270
|
+
## Ebene 1: Systemkontext
|
|
271
|
+
|
|
272
|
+
### Whitebox: Gesamtsystem
|
|
273
|
+
|
|
274
|
+
**Zweck**: [Was macht das System]
|
|
275
|
+
|
|
276
|
+
\`\`\`
|
|
277
|
+
[Komponentendiagramm mit den wichtigsten Bausteinen]
|
|
278
|
+
\`\`\`
|
|
279
|
+
|
|
280
|
+
**Enthaltene Bausteine**:
|
|
281
|
+
|
|
282
|
+
| Komponente | Verantwortlichkeit |
|
|
283
|
+
|------------|-------------------|
|
|
284
|
+
| [Komponente 1] | [Was sie tut] |
|
|
285
|
+
| [Komponente 2] | [Was sie tut] |
|
|
286
|
+
|
|
287
|
+
**Wichtige Schnittstellen**:
|
|
288
|
+
|
|
289
|
+
| Schnittstelle | Beschreibung |
|
|
290
|
+
|---------------|--------------|
|
|
291
|
+
| [API 1] | [Zweck und Protokoll] |
|
|
292
|
+
|
|
293
|
+
## Ebene 2: Komponentendetails
|
|
294
|
+
|
|
295
|
+
### Komponente 1 (Whitebox)
|
|
296
|
+
|
|
297
|
+
**Zweck**: [Detaillierter Zweck]
|
|
298
|
+
|
|
299
|
+
**Schnittstellen**:
|
|
300
|
+
- Eingabe: [Was sie empfängt]
|
|
301
|
+
- Ausgabe: [Was sie produziert]
|
|
302
|
+
|
|
303
|
+
**Interne Struktur**:
|
|
304
|
+
|
|
305
|
+
\`\`\`
|
|
306
|
+
[Diagramm der internen Module/Klassen]
|
|
307
|
+
\`\`\`
|
|
308
|
+
|
|
309
|
+
**Enthaltene Elemente**:
|
|
310
|
+
|
|
311
|
+
| Element | Verantwortlichkeit |
|
|
312
|
+
|---------|-------------------|
|
|
313
|
+
| [Modul A] | [Zweck] |
|
|
314
|
+
| [Modul B] | [Zweck] |
|
|
315
|
+
|
|
316
|
+
### Komponente 2 (Whitebox)
|
|
317
|
+
|
|
318
|
+
[Ähnliche Struktur]
|
|
319
|
+
|
|
320
|
+
## Ebene 3: Detailansichten
|
|
321
|
+
|
|
322
|
+
<!-- Nur Ebene 3 für Komponenten einbeziehen, die zusätzliche Details benötigen -->
|
|
323
|
+
|
|
324
|
+
### Modul A Details
|
|
325
|
+
|
|
326
|
+
[Detaillierte Klassendiagramme, Paketstruktur, etc.]
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
function getRuntimeViewTemplate() {
|
|
330
|
+
return `# 6. Laufzeitsicht
|
|
331
|
+
|
|
332
|
+
**Zweck**: Zeigt das Verhalten und die Interaktion der Bausteine zur Laufzeit.
|
|
333
|
+
|
|
334
|
+
## Wichtige Szenarien
|
|
335
|
+
|
|
336
|
+
### Szenario 1: [Name, z.B. "Benutzer-Login"]
|
|
337
|
+
|
|
338
|
+
**Beschreibung**: [Was in diesem Szenario passiert]
|
|
339
|
+
|
|
340
|
+
**Sequenzdiagramm**:
|
|
341
|
+
|
|
342
|
+
\`\`\`mermaid
|
|
343
|
+
sequenceDiagram
|
|
344
|
+
participant Benutzer
|
|
345
|
+
participant Frontend
|
|
346
|
+
participant API
|
|
347
|
+
participant Datenbank
|
|
348
|
+
|
|
349
|
+
Benutzer->>Frontend: Anmeldedaten eingeben
|
|
350
|
+
Frontend->>API: POST /login
|
|
351
|
+
API->>Datenbank: Anmeldedaten validieren
|
|
352
|
+
Datenbank-->>API: Benutzerdaten
|
|
353
|
+
API-->>Frontend: JWT-Token
|
|
354
|
+
Frontend-->>Benutzer: Anmeldung erfolgreich
|
|
355
|
+
\`\`\`
|
|
356
|
+
|
|
357
|
+
**Schritte**:
|
|
358
|
+
|
|
359
|
+
1. Benutzer gibt Anmeldedaten ein
|
|
360
|
+
2. Frontend sendet Login-Anfrage
|
|
361
|
+
3. API validiert mit Datenbank
|
|
362
|
+
4. Token wird generiert und zurückgegeben
|
|
363
|
+
5. Benutzer ist authentifiziert
|
|
364
|
+
|
|
365
|
+
### Szenario 2: [Name]
|
|
366
|
+
|
|
367
|
+
[Ähnliche Struktur]
|
|
368
|
+
|
|
369
|
+
## Datenfluss
|
|
370
|
+
|
|
371
|
+
### Fluss 1: [Name]
|
|
372
|
+
|
|
373
|
+
**Zweck**: [Welche Daten wohin fließen]
|
|
374
|
+
|
|
375
|
+
**Diagramm**:
|
|
376
|
+
|
|
377
|
+
\`\`\`
|
|
378
|
+
[Datenflussdiagramm]
|
|
379
|
+
\`\`\`
|
|
380
|
+
|
|
381
|
+
**Beschreibung**:
|
|
382
|
+
- Schritt 1: [Was passiert]
|
|
383
|
+
- Schritt 2: [Was passiert]
|
|
384
|
+
|
|
385
|
+
## Zustandsautomaten
|
|
386
|
+
|
|
387
|
+
### Zustandsautomat für [Entität]
|
|
388
|
+
|
|
389
|
+
**Zustände**:
|
|
390
|
+
- Zustand 1: [Beschreibung]
|
|
391
|
+
- Zustand 2: [Beschreibung]
|
|
392
|
+
|
|
393
|
+
**Übergänge**:
|
|
394
|
+
|
|
395
|
+
| Von | Ereignis | Nach | Aktion |
|
|
396
|
+
|-----|----------|------|--------|
|
|
397
|
+
| [Zustand 1] | [Ereignis] | [Zustand 2] | [Was passiert] |
|
|
398
|
+
`;
|
|
399
|
+
}
|
|
400
|
+
function getDeploymentViewTemplate() {
|
|
401
|
+
return `# 7. Verteilungssicht
|
|
402
|
+
|
|
403
|
+
**Zweck**: Beschreibt die technische Infrastruktur und wie Software verteilt wird.
|
|
404
|
+
|
|
405
|
+
## Infrastrukturübersicht
|
|
406
|
+
|
|
407
|
+
### Verteilungsdiagramm
|
|
408
|
+
|
|
409
|
+
\`\`\`
|
|
410
|
+
[Diagramm mit Servern, Containern, Netzwerken]
|
|
411
|
+
\`\`\`
|
|
412
|
+
|
|
413
|
+
## Umgebungen
|
|
414
|
+
|
|
415
|
+
### Produktionsumgebung
|
|
416
|
+
|
|
417
|
+
**Infrastruktur**:
|
|
418
|
+
|
|
419
|
+
| Komponente | Technologie | Konfiguration |
|
|
420
|
+
|------------|-------------|---------------|
|
|
421
|
+
| [Anwendungsserver] | [AWS ECS] | [Spezifikationen] |
|
|
422
|
+
| [Datenbank] | [RDS PostgreSQL] | [Spezifikationen] |
|
|
423
|
+
| [Cache] | [Redis] | [Spezifikationen] |
|
|
424
|
+
|
|
425
|
+
**Netzwerk**:
|
|
426
|
+
- VPC: [Konfiguration]
|
|
427
|
+
- Subnetze: [Public/Private Setup]
|
|
428
|
+
- Security Groups: [Regeln]
|
|
429
|
+
|
|
430
|
+
### Staging-Umgebung
|
|
431
|
+
|
|
432
|
+
[Ähnliche Struktur]
|
|
433
|
+
|
|
434
|
+
### Entwicklungsumgebung
|
|
435
|
+
|
|
436
|
+
[Ähnliche Struktur]
|
|
437
|
+
|
|
438
|
+
## Deployment-Strategie
|
|
439
|
+
|
|
440
|
+
### CI/CD Pipeline
|
|
441
|
+
|
|
442
|
+
1. **Build**: [Was passiert]
|
|
443
|
+
2. **Test**: [Automatisierte Tests]
|
|
444
|
+
3. **Deploy**: [Deployment-Prozess]
|
|
445
|
+
|
|
446
|
+
### Rollback-Strategie
|
|
447
|
+
|
|
448
|
+
[Wie Deployments zurückgerollt werden]
|
|
449
|
+
|
|
450
|
+
## Skalierungsstrategie
|
|
451
|
+
|
|
452
|
+
### Horizontale Skalierung
|
|
453
|
+
|
|
454
|
+
| Komponente | Skalierungsauslöser | Max. Instanzen |
|
|
455
|
+
|------------|---------------------|----------------|
|
|
456
|
+
| [API-Server] | [CPU > 70%] | [10] |
|
|
457
|
+
|
|
458
|
+
### Vertikale Skalierung
|
|
459
|
+
|
|
460
|
+
[Wann und wie vertikal skaliert wird]
|
|
461
|
+
|
|
462
|
+
## Monitoring und Betrieb
|
|
463
|
+
|
|
464
|
+
### Health Checks
|
|
465
|
+
|
|
466
|
+
| Komponente | Prüfung | Schwellwert |
|
|
467
|
+
|------------|---------|-------------|
|
|
468
|
+
| [API] | [/health Endpunkt] | [Antwortzeit < 1s] |
|
|
469
|
+
|
|
470
|
+
### Logging
|
|
471
|
+
|
|
472
|
+
- Log-Aggregation: [ELK, CloudWatch, etc.]
|
|
473
|
+
- Log-Aufbewahrung: [Richtlinie]
|
|
474
|
+
|
|
475
|
+
### Metriken
|
|
476
|
+
|
|
477
|
+
- Wichtige Metriken: [CPU, Speicher, Anfragerate]
|
|
478
|
+
- Alerting: [Alert-Bedingungen]
|
|
479
|
+
`;
|
|
480
|
+
}
|
|
481
|
+
function getConceptsTemplate() {
|
|
482
|
+
return `# 8. Querschnittliche Konzepte
|
|
483
|
+
|
|
484
|
+
**Zweck**: Übergreifende Regelungen und Lösungsideen, die in mehreren Teilen des Systems relevant sind.
|
|
485
|
+
|
|
486
|
+
## Domänenmodelle
|
|
487
|
+
|
|
488
|
+
### Zentrale Domänenkonzepte
|
|
489
|
+
|
|
490
|
+
\`\`\`
|
|
491
|
+
[Domänenmodell-Diagramm oder Klassendiagramm]
|
|
492
|
+
\`\`\`
|
|
493
|
+
|
|
494
|
+
**Wichtige Entitäten**:
|
|
495
|
+
|
|
496
|
+
| Entität | Verantwortlichkeit | Beziehungen |
|
|
497
|
+
|---------|-------------------|-------------|
|
|
498
|
+
| [Entität 1] | [Zweck] | [Verwandte Entitäten] |
|
|
499
|
+
|
|
500
|
+
## Sicherheit
|
|
501
|
+
|
|
502
|
+
### Authentifizierung
|
|
503
|
+
|
|
504
|
+
- Methode: [JWT, OAuth2, etc.]
|
|
505
|
+
- Implementierung: [Wie es funktioniert]
|
|
506
|
+
|
|
507
|
+
### Autorisierung
|
|
508
|
+
|
|
509
|
+
- Modell: [RBAC, ABAC, etc.]
|
|
510
|
+
- Rollen: [Liste der Rollen und Berechtigungen]
|
|
511
|
+
|
|
512
|
+
### Datenschutz
|
|
513
|
+
|
|
514
|
+
- Verschlüsselung at rest: [Wie]
|
|
515
|
+
- Verschlüsselung in transit: [TLS-Version]
|
|
516
|
+
- Umgang mit sensiblen Daten: [Ansatz]
|
|
517
|
+
|
|
518
|
+
## Fehlerbehandlung
|
|
519
|
+
|
|
520
|
+
### Fehlerkategorien
|
|
521
|
+
|
|
522
|
+
| Kategorie | Behandlungsstrategie |
|
|
523
|
+
|-----------|---------------------|
|
|
524
|
+
| [Validierungsfehler] | [400 mit Details zurückgeben] |
|
|
525
|
+
| [Systemfehler] | [Loggen und 500 zurückgeben] |
|
|
526
|
+
|
|
527
|
+
### Fehlerantwort-Format
|
|
528
|
+
|
|
529
|
+
\`\`\`json
|
|
530
|
+
{
|
|
531
|
+
"error": {
|
|
532
|
+
"code": "ERROR_CODE",
|
|
533
|
+
"message": "Lesbare Nachricht",
|
|
534
|
+
"details": {}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
\`\`\`
|
|
538
|
+
|
|
539
|
+
## Logging und Monitoring
|
|
540
|
+
|
|
541
|
+
### Logging-Strategie
|
|
542
|
+
|
|
543
|
+
- Log-Level: [DEBUG, INFO, WARN, ERROR]
|
|
544
|
+
- Strukturiertes Logging: [JSON-Format]
|
|
545
|
+
- Korrelations-IDs: [Für Request-Tracing]
|
|
546
|
+
|
|
547
|
+
### Monitoring
|
|
548
|
+
|
|
549
|
+
- APM: [Application Performance Monitoring Tool]
|
|
550
|
+
- Metriken: [Wichtige Geschäfts- und technische Metriken]
|
|
551
|
+
|
|
552
|
+
## Konfigurationsmanagement
|
|
553
|
+
|
|
554
|
+
### Konfigurationsquellen
|
|
555
|
+
|
|
556
|
+
1. Umgebungsvariablen
|
|
557
|
+
2. Konfigurationsdateien
|
|
558
|
+
3. Secret Management: [Vault, AWS Secrets Manager]
|
|
559
|
+
|
|
560
|
+
### Konfiguration nach Umgebung
|
|
561
|
+
|
|
562
|
+
| Einstellung | Dev | Staging | Prod |
|
|
563
|
+
|-------------|-----|---------|------|
|
|
564
|
+
| [Log-Level] | [DEBUG] | [INFO] | [WARN] |
|
|
565
|
+
|
|
566
|
+
## Teststrategie
|
|
567
|
+
|
|
568
|
+
### Testebenen
|
|
569
|
+
|
|
570
|
+
| Ebene | Abdeckung | Tools |
|
|
571
|
+
|-------|-----------|-------|
|
|
572
|
+
| Unit Tests | [Ziel %] | [Framework] |
|
|
573
|
+
| Integrationstests | [Umfang] | [Tools] |
|
|
574
|
+
| E2E-Tests | [Wichtige Flows] | [Tools] |
|
|
575
|
+
|
|
576
|
+
### Testdaten-Management
|
|
577
|
+
|
|
578
|
+
[Wie Testdaten erstellt und verwaltet werden]
|
|
579
|
+
|
|
580
|
+
## Entwicklungskonzepte
|
|
581
|
+
|
|
582
|
+
### Code-Organisation
|
|
583
|
+
|
|
584
|
+
- Paketstruktur: [Ansatz]
|
|
585
|
+
- Namenskonventionen: [Standards]
|
|
586
|
+
|
|
587
|
+
### Build- und Dependency-Management
|
|
588
|
+
|
|
589
|
+
- Build-Tool: [Maven, Gradle, npm, etc.]
|
|
590
|
+
- Dependency-Management: [Strategie]
|
|
591
|
+
|
|
592
|
+
## Betriebskonzepte
|
|
593
|
+
|
|
594
|
+
### Backup und Recovery
|
|
595
|
+
|
|
596
|
+
- Backup-Frequenz: [Täglich, stündlich, etc.]
|
|
597
|
+
- Aufbewahrung: [Richtlinie]
|
|
598
|
+
- Recovery-Prozedur: [Schritte]
|
|
599
|
+
|
|
600
|
+
### Disaster Recovery
|
|
601
|
+
|
|
602
|
+
- RTO: [Recovery Time Objective]
|
|
603
|
+
- RPO: [Recovery Point Objective]
|
|
604
|
+
- DR-Strategie: [Ansatz]
|
|
605
|
+
`;
|
|
606
|
+
}
|
|
607
|
+
function getArchitectureDecisionsTemplate() {
|
|
608
|
+
return `# 9. Architekturentscheidungen
|
|
609
|
+
|
|
610
|
+
**Zweck**: Dokumentiert wichtige, teure, kritische oder riskante Architekturentscheidungen einschließlich Begründung.
|
|
611
|
+
|
|
612
|
+
## ADR-Format
|
|
613
|
+
|
|
614
|
+
Jede Entscheidung folgt dieser Struktur:
|
|
615
|
+
- **Kontext**: Was ist das Problem, das wir angehen?
|
|
616
|
+
- **Entscheidung**: Was wir beschlossen haben zu tun
|
|
617
|
+
- **Konsequenzen**: Was dadurch einfacher oder schwieriger wird
|
|
618
|
+
|
|
619
|
+
## Entscheidungsprotokoll
|
|
620
|
+
|
|
621
|
+
### ADR-001: [Entscheidungstitel]
|
|
622
|
+
|
|
623
|
+
**Datum**: [JJJJ-MM-TT]
|
|
624
|
+
**Status**: [Vorgeschlagen | Akzeptiert | Veraltet | Abgelöst]
|
|
625
|
+
**Entscheider**: [Namen]
|
|
626
|
+
|
|
627
|
+
**Kontext**:
|
|
628
|
+
|
|
629
|
+
[Beschreiben Sie die wirkenden Kräfte, technisch, politisch, sozial und projektspezifisch. Diese Kräfte stehen wahrscheinlich in Spannung zueinander und sollten als solche benannt werden.]
|
|
630
|
+
|
|
631
|
+
**Entscheidung**:
|
|
632
|
+
|
|
633
|
+
[Beschreiben Sie unsere Reaktion auf diese Kräfte. Hier treffen wir unsere Entscheidung.]
|
|
634
|
+
|
|
635
|
+
**Konsequenzen**:
|
|
636
|
+
|
|
637
|
+
Positiv:
|
|
638
|
+
- [Vorteil 1]
|
|
639
|
+
- [Vorteil 2]
|
|
640
|
+
|
|
641
|
+
Negativ:
|
|
642
|
+
- [Kompromiss 1]
|
|
643
|
+
- [Kompromiss 2]
|
|
644
|
+
|
|
645
|
+
Risiken:
|
|
646
|
+
- [Risiko 1 und Mitigation]
|
|
647
|
+
|
|
648
|
+
### ADR-002: [Weitere Entscheidung]
|
|
649
|
+
|
|
650
|
+
[Ähnliche Struktur]
|
|
651
|
+
|
|
652
|
+
## Entscheidungskategorien
|
|
653
|
+
|
|
654
|
+
### Strukturelle Entscheidungen
|
|
655
|
+
|
|
656
|
+
| Entscheidung | Begründung | Datum |
|
|
657
|
+
|--------------|------------|-------|
|
|
658
|
+
| [Microservices vs Monolith] | [Warum gewählt] | [Datum] |
|
|
659
|
+
|
|
660
|
+
### Technologieentscheidungen
|
|
661
|
+
|
|
662
|
+
| Komponente | Technologie | Betrachtete Alternative | Warum gewählt |
|
|
663
|
+
|------------|-------------|------------------------|---------------|
|
|
664
|
+
| [Backend] | [Node.js] | [Python, Java] | [Gründe] |
|
|
665
|
+
|
|
666
|
+
### Prozessentscheidungen
|
|
667
|
+
|
|
668
|
+
| Entscheidung | Auswirkung | Datum |
|
|
669
|
+
|--------------|------------|-------|
|
|
670
|
+
| [Agile Methodik] | [Wie es die Architektur beeinflusst] | [Datum] |
|
|
671
|
+
|
|
672
|
+
## Veraltete Entscheidungen
|
|
673
|
+
|
|
674
|
+
| Entscheidung | Datum veraltet | Grund | Abgelöst durch |
|
|
675
|
+
|--------------|----------------|-------|----------------|
|
|
676
|
+
| [Alte Entscheidung] | [Datum] | [Warum veraltet] | [ADR-XXX] |
|
|
677
|
+
`;
|
|
678
|
+
}
|
|
679
|
+
function getQualityRequirementsTemplate() {
|
|
680
|
+
return `# 10. Qualitätsanforderungen
|
|
681
|
+
|
|
682
|
+
**Zweck**: Definiert Qualitätsanforderungen mit konkreten Szenarien.
|
|
683
|
+
|
|
684
|
+
## Qualitätsbaum
|
|
685
|
+
|
|
686
|
+
### Top-Level Qualitätsziele
|
|
687
|
+
|
|
688
|
+
\`\`\`
|
|
689
|
+
Qualität
|
|
690
|
+
├── Performanz
|
|
691
|
+
│ ├── Antwortzeit
|
|
692
|
+
│ └── Durchsatz
|
|
693
|
+
├── Sicherheit
|
|
694
|
+
│ ├── Authentifizierung
|
|
695
|
+
│ └── Datenschutz
|
|
696
|
+
├── Zuverlässigkeit
|
|
697
|
+
│ ├── Verfügbarkeit
|
|
698
|
+
│ └── Fehlertoleranz
|
|
699
|
+
└── Wartbarkeit
|
|
700
|
+
├── Testbarkeit
|
|
701
|
+
└── Modifizierbarkeit
|
|
702
|
+
\`\`\`
|
|
703
|
+
|
|
704
|
+
## Qualitätsszenarien
|
|
705
|
+
|
|
706
|
+
### Performanz-Szenarien
|
|
707
|
+
|
|
708
|
+
**Szenario 1: Normale Last Antwortzeit**
|
|
709
|
+
|
|
710
|
+
| Aspekt | Beschreibung |
|
|
711
|
+
|--------|--------------|
|
|
712
|
+
| Szenario | Benutzer fragt Daten unter normaler Last ab |
|
|
713
|
+
| Quelle | Endbenutzer |
|
|
714
|
+
| Stimulus | HTTP-Anfrage an API |
|
|
715
|
+
| Umgebung | Normaler Betrieb, 100 gleichzeitige Benutzer |
|
|
716
|
+
| Antwort | System gibt Daten zurück |
|
|
717
|
+
| Maß | 95. Perzentil Antwortzeit < 200ms |
|
|
718
|
+
|
|
719
|
+
**Szenario 2: Spitzenlast-Handling**
|
|
720
|
+
|
|
721
|
+
| Aspekt | Beschreibung |
|
|
722
|
+
|--------|--------------|
|
|
723
|
+
| Szenario | System unter Spitzenlast |
|
|
724
|
+
| Quelle | Mehrere Benutzer |
|
|
725
|
+
| Stimulus | 1000 gleichzeitige Anfragen |
|
|
726
|
+
| Umgebung | Spitzenzeiten |
|
|
727
|
+
| Antwort | System verarbeitet alle Anfragen |
|
|
728
|
+
| Maß | Keine Anfrage schlägt fehl, Antwortzeit < 1s |
|
|
729
|
+
|
|
730
|
+
### Sicherheits-Szenarien
|
|
731
|
+
|
|
732
|
+
**Szenario 3: Unberechtigter Zugriffsversuch**
|
|
733
|
+
|
|
734
|
+
| Aspekt | Beschreibung |
|
|
735
|
+
|--------|--------------|
|
|
736
|
+
| Szenario | Unberechtigter Benutzer versucht auf geschützte Ressource zuzugreifen |
|
|
737
|
+
| Quelle | Externer Angreifer |
|
|
738
|
+
| Stimulus | HTTP-Anfrage ohne gültiges Token |
|
|
739
|
+
| Umgebung | Normaler Betrieb |
|
|
740
|
+
| Antwort | System verweigert Zugriff |
|
|
741
|
+
| Maß | Gibt 401 zurück, protokolliert Versuch, keine Daten exponiert |
|
|
742
|
+
|
|
743
|
+
### Zuverlässigkeits-Szenarien
|
|
744
|
+
|
|
745
|
+
**Szenario 4: Service-Ausfall Recovery**
|
|
746
|
+
|
|
747
|
+
| Aspekt | Beschreibung |
|
|
748
|
+
|--------|--------------|
|
|
749
|
+
| Szenario | Datenbankverbindung schlägt fehl |
|
|
750
|
+
| Quelle | Infrastrukturausfall |
|
|
751
|
+
| Stimulus | Datenbank wird nicht verfügbar |
|
|
752
|
+
| Umgebung | Normaler Betrieb |
|
|
753
|
+
| Antwort | System arbeitet mit gecachten Daten weiter |
|
|
754
|
+
| Maß | Service-Degradation < 5%, Recovery < 30s |
|
|
755
|
+
|
|
756
|
+
### Wartbarkeits-Szenarien
|
|
757
|
+
|
|
758
|
+
**Szenario 5: Neues Feature hinzufügen**
|
|
759
|
+
|
|
760
|
+
| Aspekt | Beschreibung |
|
|
761
|
+
|--------|--------------|
|
|
762
|
+
| Szenario | Entwickler fügt neuen API-Endpunkt hinzu |
|
|
763
|
+
| Quelle | Entwicklungsteam |
|
|
764
|
+
| Stimulus | Neue Anforderung |
|
|
765
|
+
| Umgebung | Entwicklung |
|
|
766
|
+
| Antwort | Feature wird hinzugefügt |
|
|
767
|
+
| Maß | < 2 Tage, < 5 Dateien modifiziert, Tests bestehen |
|
|
768
|
+
|
|
769
|
+
## Qualitätsanforderungen Priorisierung
|
|
770
|
+
|
|
771
|
+
| Qualitätsattribut | Priorität | Zielmaß |
|
|
772
|
+
|-------------------|-----------|---------|
|
|
773
|
+
| Verfügbarkeit | Hoch | 99,9% Uptime |
|
|
774
|
+
| Antwortzeit | Hoch | < 200ms (p95) |
|
|
775
|
+
| Sicherheit | Kritisch | Null Datenverletzungen |
|
|
776
|
+
| Wartbarkeit | Mittel | Testabdeckung > 80% |
|
|
777
|
+
| Benutzbarkeit | Mittel | Benutzeraufgaben-Erfolg > 95% |
|
|
778
|
+
`;
|
|
779
|
+
}
|
|
780
|
+
function getTechnicalRisksTemplate() {
|
|
781
|
+
return `# 11. Risiken und technische Schulden
|
|
782
|
+
|
|
783
|
+
**Zweck**: Dokumentiert bekannte Probleme, Risiken und technische Schulden.
|
|
784
|
+
|
|
785
|
+
## Risiken
|
|
786
|
+
|
|
787
|
+
### Risikobewertungsmatrix
|
|
788
|
+
|
|
789
|
+
| Risiko | Wahrscheinlichkeit | Auswirkung | Schwere | Status |
|
|
790
|
+
|--------|-------------------|------------|---------|--------|
|
|
791
|
+
| [Risiko 1] | [Hoch/Mittel/Niedrig] | [Hoch/Mittel/Niedrig] | [Kritisch/Hoch/Mittel/Niedrig] | [Offen/Gemildert] |
|
|
792
|
+
|
|
793
|
+
### Detaillierte Risiken
|
|
794
|
+
|
|
795
|
+
**Risiko 1: [Risikotitel]**
|
|
796
|
+
|
|
797
|
+
- **Beschreibung**: [Was ist das Risiko]
|
|
798
|
+
- **Wahrscheinlichkeit**: [Hoch/Mittel/Niedrig]
|
|
799
|
+
- **Auswirkung**: [Hoch/Mittel/Niedrig - und was passiert]
|
|
800
|
+
- **Mitigation**: [Was wir dagegen tun]
|
|
801
|
+
- **Notfallplan**: [Plan falls Risiko eintritt]
|
|
802
|
+
- **Verantwortlicher**: [Wer ist verantwortlich]
|
|
803
|
+
- **Status**: [Offen/Wird gemildert/Geschlossen]
|
|
804
|
+
|
|
805
|
+
**Risiko 2: [Titel]**
|
|
806
|
+
|
|
807
|
+
[Ähnliche Struktur]
|
|
808
|
+
|
|
809
|
+
## Technische Schulden
|
|
810
|
+
|
|
811
|
+
### Schulden-Einträge
|
|
812
|
+
|
|
813
|
+
| Eintrag | Typ | Auswirkung | Aufwand | Priorität |
|
|
814
|
+
|---------|-----|------------|---------|-----------|
|
|
815
|
+
| [Schuld 1] | [Code/Architektur/Testing] | [Hoch/Mittel/Niedrig] | [Tage] | [1-5] |
|
|
816
|
+
|
|
817
|
+
### Detaillierte Schulden-Einträge
|
|
818
|
+
|
|
819
|
+
**Schuld 1: [Titel]**
|
|
820
|
+
|
|
821
|
+
- **Beschreibung**: [Was muss behoben werden]
|
|
822
|
+
- **Warum es existiert**: [Wie ist das passiert]
|
|
823
|
+
- **Auswirkung**: [Welche Probleme verursacht es]
|
|
824
|
+
- **Vorgeschlagene Lösung**: [Wie es zu beheben ist]
|
|
825
|
+
- **Aufwandsschätzung**: [Benötigte Zeit]
|
|
826
|
+
- **Priorität**: [Wann sollten wir es beheben]
|
|
827
|
+
|
|
828
|
+
### Schuldenabbauplan
|
|
829
|
+
|
|
830
|
+
| Quartal | Zu adressierende Schulden | Erwartete Auswirkung |
|
|
831
|
+
|---------|---------------------------|---------------------|
|
|
832
|
+
| Q1 2024 | [Einträge 1, 2] | [Verbesserung in X] |
|
|
833
|
+
|
|
834
|
+
## Bekannte Probleme
|
|
835
|
+
|
|
836
|
+
### Offene Probleme
|
|
837
|
+
|
|
838
|
+
| Problem | Schwere | Workaround | Ziel-Behebungsdatum |
|
|
839
|
+
|---------|---------|------------|---------------------|
|
|
840
|
+
| [Problem 1] | [Hoch/Mittel/Niedrig] | [Falls vorhanden] | [Datum] |
|
|
841
|
+
|
|
842
|
+
### Einschränkungen
|
|
843
|
+
|
|
844
|
+
| Einschränkung | Auswirkung | Begründung | Zukunftspläne |
|
|
845
|
+
|---------------|------------|------------|---------------|
|
|
846
|
+
| [Einschränkung 1] | [Effekt] | [Warum sie existiert] | [Wann/ob zu adressieren] |
|
|
847
|
+
|
|
848
|
+
## Sicherheitslücken
|
|
849
|
+
|
|
850
|
+
### Bekannte Schwachstellen
|
|
851
|
+
|
|
852
|
+
| CVE | Komponente | Schwere | Status | Mitigation |
|
|
853
|
+
|-----|------------|---------|--------|------------|
|
|
854
|
+
| [CVE-ID] | [Bibliothek] | [Kritisch/Hoch/Mittel] | [Offen/Behoben] | [Ergriffene Maßnahmen] |
|
|
855
|
+
|
|
856
|
+
## Performanz-Probleme
|
|
857
|
+
|
|
858
|
+
| Problem | Auswirkung | Workaround | Lösungsplan |
|
|
859
|
+
|---------|------------|------------|-------------|
|
|
860
|
+
| [Problem] | [Auswirkung auf Benutzer] | [Temporäre Lösung] | [Permanente Lösung] |
|
|
861
|
+
`;
|
|
862
|
+
}
|
|
863
|
+
function getGlossaryTemplate() {
|
|
864
|
+
return `# 12. Glossar
|
|
865
|
+
|
|
866
|
+
**Zweck**: Definiert wichtige fachliche und technische Begriffe, um einheitliche Terminologie sicherzustellen.
|
|
867
|
+
|
|
868
|
+
## Fachliche Begriffe
|
|
869
|
+
|
|
870
|
+
| Begriff | Definition |
|
|
871
|
+
|---------|------------|
|
|
872
|
+
| [Fachbegriff 1] | [Klare, präzise Definition] |
|
|
873
|
+
| [Fachbegriff 2] | [Definition] |
|
|
874
|
+
|
|
875
|
+
## Technische Begriffe
|
|
876
|
+
|
|
877
|
+
| Begriff | Definition | Synonyme |
|
|
878
|
+
|---------|------------|----------|
|
|
879
|
+
| [Technischer Begriff 1] | [Definition] | [Alternative Namen] |
|
|
880
|
+
| [Technischer Begriff 2] | [Definition] | [Alternative Namen] |
|
|
881
|
+
|
|
882
|
+
## Abkürzungen und Akronyme
|
|
883
|
+
|
|
884
|
+
| Abkürzung | Vollständiger Name | Kontext |
|
|
885
|
+
|-----------|-------------------|---------|
|
|
886
|
+
| API | Application Programming Interface | [Wann/wo verwendet] |
|
|
887
|
+
| SLA | Service Level Agreement | [Kontext] |
|
|
888
|
+
| JWT | JSON Web Token | [Verwendung] |
|
|
889
|
+
|
|
890
|
+
## Geschäftskonzepte
|
|
891
|
+
|
|
892
|
+
| Konzept | Beschreibung | Verwandte Begriffe |
|
|
893
|
+
|---------|--------------|-------------------|
|
|
894
|
+
| [Konzept 1] | [Detaillierte Erklärung] | [Verwandte Konzepte] |
|
|
895
|
+
|
|
896
|
+
## Systemspezifische Begriffe
|
|
897
|
+
|
|
898
|
+
| Begriff | Definition | Beispiel |
|
|
899
|
+
|---------|------------|----------|
|
|
900
|
+
| [Systembegriff 1] | [Was es in diesem System bedeutet] | [Verwendungsbeispiel] |
|
|
901
|
+
|
|
902
|
+
## Veraltete Begriffe
|
|
903
|
+
|
|
904
|
+
| Alter Begriff | Ersetzt durch | Grund |
|
|
905
|
+
|---------------|---------------|-------|
|
|
906
|
+
| [Alter Begriff] | [Neuer Begriff] | [Warum geändert] |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
**Hinweis**: Halten Sie dieses Glossar aktuell, wenn neue Begriffe auftauchen. Verlinken Sie aus anderen Teilen der Dokumentation auf diesen Abschnitt, wenn diese Begriffe verwendet werden.
|
|
911
|
+
`;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Get the German workflow guide
|
|
915
|
+
*/
|
|
916
|
+
export function getWorkflowGuide() {
|
|
917
|
+
return `# arc42 Architektur-Dokumentation Workflow-Leitfaden
|
|
918
|
+
|
|
919
|
+
## Übersicht
|
|
920
|
+
|
|
921
|
+
Dieser Leitfaden hilft Ihnen, Ihre Softwarearchitektur mit dem arc42-Template zu dokumentieren. Das arc42-Template ist ein praktisches, bewährtes Template für die Dokumentation von Software- und Systemarchitekturen.
|
|
922
|
+
|
|
923
|
+
## Verfügbare Sprachen
|
|
924
|
+
|
|
925
|
+
Dieser arc42 MCP Server unterstützt mehrere Sprachen für die Dokumentation:
|
|
926
|
+
|
|
927
|
+
| Code | Sprache | Nativname |
|
|
928
|
+
|------|---------|-----------|
|
|
929
|
+
| EN | Englisch | English |
|
|
930
|
+
| DE | Deutsch | Deutsch |
|
|
931
|
+
| CZ | Tschechisch | Čeština |
|
|
932
|
+
| ES | Spanisch | Español |
|
|
933
|
+
| FR | Französisch | Français |
|
|
934
|
+
| IT | Italienisch | Italiano |
|
|
935
|
+
| NL | Niederländisch | Nederlands |
|
|
936
|
+
| PT | Portugiesisch | Português |
|
|
937
|
+
| RU | Russisch | Русский |
|
|
938
|
+
| UKR | Ukrainisch | Українська |
|
|
939
|
+
| ZH | Chinesisch | 中文 |
|
|
940
|
+
|
|
941
|
+
## Erste Schritte
|
|
942
|
+
|
|
943
|
+
### Schritt 1: Workspace initialisieren
|
|
944
|
+
|
|
945
|
+
Verwenden Sie das \`arc42-init\`-Tool, um Ihren Dokumentations-Workspace zu erstellen:
|
|
946
|
+
|
|
947
|
+
\`\`\`
|
|
948
|
+
arc42-init(projectName: "Mein Projekt", language: "DE")
|
|
949
|
+
\`\`\`
|
|
950
|
+
|
|
951
|
+
Sie können eine andere Sprache mit dem ISO-Sprachcode angeben.
|
|
952
|
+
|
|
953
|
+
### Schritt 2: Status prüfen
|
|
954
|
+
|
|
955
|
+
Verwenden Sie \`arc42-status\`, um den aktuellen Stand Ihrer Dokumentation zu sehen:
|
|
956
|
+
|
|
957
|
+
\`\`\`
|
|
958
|
+
arc42-status()
|
|
959
|
+
\`\`\`
|
|
960
|
+
|
|
961
|
+
### Schritt 3: Abschnitts-Templates generieren
|
|
962
|
+
|
|
963
|
+
Verwenden Sie \`generate-template\`, um detaillierte Templates für jeden Abschnitt zu erhalten:
|
|
964
|
+
|
|
965
|
+
\`\`\`
|
|
966
|
+
generate-template(section: "01_introduction_and_goals", language: "DE")
|
|
967
|
+
\`\`\`
|
|
968
|
+
|
|
969
|
+
## Die 12 arc42-Abschnitte
|
|
970
|
+
|
|
971
|
+
1. **Einführung und Ziele** - Beginnen Sie hier! Definieren Sie, was Sie bauen und warum.
|
|
972
|
+
2. **Randbedingungen** - Was dürfen Sie NICHT tun?
|
|
973
|
+
3. **Kontextabgrenzung** - Was ist drin und was ist draußen?
|
|
974
|
+
4. **Lösungsstrategie** - High-Level Ansatz zur Problemlösung.
|
|
975
|
+
5. **Bausteinsicht** - Statische Struktur Ihres Systems.
|
|
976
|
+
6. **Laufzeitsicht** - Dynamisches Verhalten und Szenarien.
|
|
977
|
+
7. **Verteilungssicht** - Wie wird es deployed und betrieben?
|
|
978
|
+
8. **Querschnittliche Konzepte** - Muster, die im gesamten System verwendet werden.
|
|
979
|
+
9. **Architekturentscheidungen** - Wichtige Entscheidungen und ihre Begründung.
|
|
980
|
+
10. **Qualitätsanforderungen** - Konkrete Qualitätsszenarien.
|
|
981
|
+
11. **Risiken und technische Schulden** - Was könnte schiefgehen?
|
|
982
|
+
12. **Glossar** - Definieren Sie Ihre Begriffe.
|
|
983
|
+
|
|
984
|
+
## Best Practices
|
|
985
|
+
|
|
986
|
+
1. **Beginnen Sie mit Abschnitt 1** - Das Verständnis der Ziele ist fundamental
|
|
987
|
+
2. **Halten Sie es kurz** - arc42 ist pragmatisch, nicht bürokratisch
|
|
988
|
+
3. **Verwenden Sie Diagramme** - Ein Bild sagt mehr als tausend Worte
|
|
989
|
+
4. **Dokumentieren Sie Entscheidungen** - Ihr zukünftiges Ich wird Ihnen danken
|
|
990
|
+
5. **Iterieren Sie** - Architekturdokumentation ist nie "fertig"
|
|
991
|
+
|
|
992
|
+
## Verfügbare Tools
|
|
993
|
+
|
|
994
|
+
- \`arc42-init\` - Dokumentations-Workspace initialisieren
|
|
995
|
+
- \`arc42-status\` - Dokumentationsstatus prüfen
|
|
996
|
+
- \`generate-template\` - Abschnitts-Templates generieren
|
|
997
|
+
- \`update-section\` - Abschnittsinhalte aktualisieren
|
|
998
|
+
- \`get-section\` - Abschnittsinhalte lesen
|
|
999
|
+
- \`arc42-workflow-guide\` - Diesen Leitfaden anzeigen
|
|
1000
|
+
|
|
1001
|
+
## Ressourcen
|
|
1002
|
+
|
|
1003
|
+
- [arc42 Website](https://arc42.org/)
|
|
1004
|
+
- [arc42 Dokumentation](https://docs.arc42.org/)
|
|
1005
|
+
- [arc42 Beispiele](https://arc42.org/examples)
|
|
1006
|
+
`;
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Get the German README content
|
|
1010
|
+
*/
|
|
1011
|
+
export function getReadmeContent(projectName) {
|
|
1012
|
+
const name = projectName || 'Projekt';
|
|
1013
|
+
return `# ${name} - Architektur-Dokumentation
|
|
1014
|
+
|
|
1015
|
+
Dieses Verzeichnis enthält die Architekturdokumentation für ${name}, basierend auf dem arc42-Template.
|
|
1016
|
+
|
|
1017
|
+
## Struktur
|
|
1018
|
+
|
|
1019
|
+
- \`sections/\` - Einzelne Abschnitts-Markdown-Dateien (12 Abschnitte)
|
|
1020
|
+
- \`images/\` - Diagramme und Bilder
|
|
1021
|
+
- \`arc42-documentation.md\` - Kombinierte Hauptdokumentation
|
|
1022
|
+
- \`config.yaml\` - Konfiguration
|
|
1023
|
+
|
|
1024
|
+
## Die 12 arc42-Abschnitte
|
|
1025
|
+
|
|
1026
|
+
1. **Einführung und Ziele** - Anforderungen, Qualitätsziele, Stakeholder
|
|
1027
|
+
2. **Randbedingungen** - Technische und organisatorische Randbedingungen
|
|
1028
|
+
3. **Kontextabgrenzung** - Fachlicher und technischer Kontext
|
|
1029
|
+
4. **Lösungsstrategie** - Grundlegende Entscheidungen und Strategien
|
|
1030
|
+
5. **Bausteinsicht** - Statische Zerlegung
|
|
1031
|
+
6. **Laufzeitsicht** - Dynamisches Verhalten
|
|
1032
|
+
7. **Verteilungssicht** - Infrastruktur und Deployment
|
|
1033
|
+
8. **Querschnittliche Konzepte** - Übergreifende Regelungen und Ansätze
|
|
1034
|
+
9. **Architekturentscheidungen** - Wichtige Entscheidungen (ADRs)
|
|
1035
|
+
10. **Qualitätsanforderungen** - Qualitätsbaum und Szenarien
|
|
1036
|
+
11. **Risiken und technische Schulden** - Bekannte Probleme und Risiken
|
|
1037
|
+
12. **Glossar** - Wichtige Begriffe
|
|
1038
|
+
|
|
1039
|
+
## Erste Schritte
|
|
1040
|
+
|
|
1041
|
+
1. Beginnen Sie mit Abschnitt 1: Einführung und Ziele
|
|
1042
|
+
2. Arbeiten Sie die Abschnitte iterativ durch
|
|
1043
|
+
3. Verwenden Sie Diagramme zur Veranschaulichung von Konzepten
|
|
1044
|
+
4. Konzentrieren Sie sich auf Entscheidungen, nicht auf Implementierungsdetails
|
|
1045
|
+
|
|
1046
|
+
## Dokumentation generieren
|
|
1047
|
+
|
|
1048
|
+
Verwenden Sie die MCP-Tools für:
|
|
1049
|
+
- Status prüfen: \`arc42-status\`
|
|
1050
|
+
- Templates generieren: \`generate-template\`
|
|
1051
|
+
- Abschnitte aktualisieren: \`update-section\`
|
|
1052
|
+
|
|
1053
|
+
## Ressourcen
|
|
1054
|
+
|
|
1055
|
+
- [arc42 Website](https://arc42.org/)
|
|
1056
|
+
- [arc42 Dokumentation](https://docs.arc42.org/)
|
|
1057
|
+
- [arc42 Beispiele](https://arc42.org/examples)
|
|
1058
|
+
`;
|
|
1059
|
+
}
|
|
1060
|
+
//# sourceMappingURL=templates.js.map
|