@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
|
+
* Dutch Templates
|
|
3
|
+
*
|
|
4
|
+
* Contains all arc42 section templates in Dutch.
|
|
5
|
+
* Based on the official arc42 Dutch template from vendor/arc42-template/NL/.
|
|
6
|
+
*
|
|
7
|
+
* @module templates/locales/nl/templates
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Get the Dutch 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. Introductie en Doelen
|
|
31
|
+
|
|
32
|
+
## Probleemstelling
|
|
33
|
+
|
|
34
|
+
**Doel**: Beschrijft de essentiële vereisten en drijvende krachten die moeten worden overwogen bij de implementatie van de softwarearchitectuur en ontwikkeling van het systeem.
|
|
35
|
+
|
|
36
|
+
### Essentiële Vereisten
|
|
37
|
+
|
|
38
|
+
<!-- Lijst de top 3-5 functionele vereisten -->
|
|
39
|
+
|
|
40
|
+
| ID | Vereiste | Prioriteit |
|
|
41
|
+
|----|----------|------------|
|
|
42
|
+
| REQ-1 | [Korte beschrijving] | Hoog |
|
|
43
|
+
| REQ-2 | [Korte beschrijving] | Medium |
|
|
44
|
+
|
|
45
|
+
### Functionaliteiten
|
|
46
|
+
|
|
47
|
+
<!-- Essentiële functionaliteiten van het systeem -->
|
|
48
|
+
|
|
49
|
+
- Functionaliteit 1: [Beschrijving]
|
|
50
|
+
- Functionaliteit 2: [Beschrijving]
|
|
51
|
+
|
|
52
|
+
## Kwaliteitsdoelen
|
|
53
|
+
|
|
54
|
+
**Doel**: De top 3 tot 5 kwaliteitseisen voor de architectuur, waarvan de vervulling bijzonder belangrijk is voor de belangrijkste stakeholders.
|
|
55
|
+
|
|
56
|
+
<!-- Gebaseerd op ISO 25010, prioriteer kwaliteiten zoals: -->
|
|
57
|
+
<!-- Prestaties, Beveiliging, Betrouwbaarheid, Onderhoudbaarheid, Bruikbaarheid, etc. -->
|
|
58
|
+
|
|
59
|
+
| Prioriteit | Kwaliteitsdoel | Motivatie |
|
|
60
|
+
|------------|----------------|-----------|
|
|
61
|
+
| 1 | [bijv. Prestaties] | [Waarom dit kritiek is] |
|
|
62
|
+
| 2 | [bijv. Beveiliging] | [Waarom dit kritiek is] |
|
|
63
|
+
| 3 | [bijv. Onderhoudbaarheid] | [Waarom dit kritiek is] |
|
|
64
|
+
|
|
65
|
+
## Stakeholders
|
|
66
|
+
|
|
67
|
+
**Doel**: Expliciet overzicht van de stakeholders van het systeem.
|
|
68
|
+
|
|
69
|
+
| Rol/Naam | Contact | Verwachtingen |
|
|
70
|
+
|----------|---------|---------------|
|
|
71
|
+
| Product Owner | [Naam/Email] | [Verwachtingen van de architectuur] |
|
|
72
|
+
| Ontwikkelteam | [Teamnaam] | [Wat ze moeten weten] |
|
|
73
|
+
| Operations | [Team/Persoon] | [Deployment- en operationele zorgen] |
|
|
74
|
+
| Eindgebruikers | [Type] | [Verwachtingen gebruikerservaring] |
|
|
75
|
+
|
|
76
|
+
## Succescriteria
|
|
77
|
+
|
|
78
|
+
<!-- Wat definieert succes voor dit systeem? -->
|
|
79
|
+
|
|
80
|
+
- [ ] Criterium 1
|
|
81
|
+
- [ ] Criterium 2
|
|
82
|
+
- [ ] Criterium 3
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
function getArchitectureConstraintsTemplate() {
|
|
86
|
+
return `# 2. Beperkingen
|
|
87
|
+
|
|
88
|
+
## Technische Beperkingen
|
|
89
|
+
|
|
90
|
+
**Hardware-beperkingen**
|
|
91
|
+
|
|
92
|
+
| Beperking | Achtergrond/Motivatie |
|
|
93
|
+
|-----------|----------------------|
|
|
94
|
+
| [bijv. Cloud platform] | [Waarom deze beperking bestaat] |
|
|
95
|
+
|
|
96
|
+
**Software/Technologie-beperkingen**
|
|
97
|
+
|
|
98
|
+
| Beperking | Achtergrond/Motivatie |
|
|
99
|
+
|-----------|----------------------|
|
|
100
|
+
| [bijv. Java 17+ vereist] | [Reden voor beperking] |
|
|
101
|
+
| [bijv. PostgreSQL vereist] | [Waarom dit is gekozen] |
|
|
102
|
+
|
|
103
|
+
**Programmeerrichtlijnen**
|
|
104
|
+
|
|
105
|
+
- Programmeertaal: [Taal]
|
|
106
|
+
- Framework: [Framework en versie]
|
|
107
|
+
- Bibliotheken: [Verplichte of verboden bibliotheken]
|
|
108
|
+
|
|
109
|
+
## Organisatorische Beperkingen
|
|
110
|
+
|
|
111
|
+
**Organisatie en Structuur**
|
|
112
|
+
|
|
113
|
+
| Beperking | Achtergrond/Motivatie |
|
|
114
|
+
|-----------|----------------------|
|
|
115
|
+
| [bijv. Teamstructuur] | [Hoe dit de architectuur beïnvloedt] |
|
|
116
|
+
| [bijv. Agile methodologie] | [Impact op ontwikkelproces] |
|
|
117
|
+
|
|
118
|
+
**Resources**
|
|
119
|
+
|
|
120
|
+
- Budget: [Budgetbeperkingen]
|
|
121
|
+
- Tijd: [Tijdsbeperkingen]
|
|
122
|
+
- Team: [Teamgrootte en vaardigheden]
|
|
123
|
+
|
|
124
|
+
## Conventies
|
|
125
|
+
|
|
126
|
+
**Architectuur- en Ontwerpconventies**
|
|
127
|
+
|
|
128
|
+
- [bijv. Microservices architectuurpatroon]
|
|
129
|
+
- [bijv. RESTful API-ontwerp]
|
|
130
|
+
- [bijv. Domain-Driven Design]
|
|
131
|
+
|
|
132
|
+
**Coderingconventies**
|
|
133
|
+
|
|
134
|
+
- Codestijl: [Link naar stijlgids]
|
|
135
|
+
- Documentatie: [Documentatiestandaarden]
|
|
136
|
+
- Testen: [Testvereisten]
|
|
137
|
+
|
|
138
|
+
**Compliance-vereisten**
|
|
139
|
+
|
|
140
|
+
- [bijv. AVG-compliance]
|
|
141
|
+
- [bijv. Industriespecifieke regelgeving]
|
|
142
|
+
- [bijv. Toegankelijkheidsstandaarden]
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
function getContextAndScopeTemplate() {
|
|
146
|
+
return `# 3. Scope en Context
|
|
147
|
+
|
|
148
|
+
## Zakelijke Context
|
|
149
|
+
|
|
150
|
+
**Doel**: Toont de zakelijke omgeving van het systeem en de belangrijkste externe afhankelijkheden.
|
|
151
|
+
|
|
152
|
+
### Contextdiagram
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
[Maak een diagram dat uw systeem en externe systemen/gebruikers toont]
|
|
156
|
+
U kunt gebruiken:
|
|
157
|
+
- Mermaid-diagrammen
|
|
158
|
+
- PlantUML
|
|
159
|
+
- ASCII-art
|
|
160
|
+
- Of verwijs naar een afbeelding in /images/
|
|
161
|
+
\`\`\`
|
|
162
|
+
|
|
163
|
+
### Externe Interfaces
|
|
164
|
+
|
|
165
|
+
| Extern Systeem | Interface | Doel |
|
|
166
|
+
|----------------|-----------|------|
|
|
167
|
+
| [Extern Systeem 1] | [API/Protocol] | [Welke gegevens/functies worden uitgewisseld] |
|
|
168
|
+
| [Gebruikerstype 1] | [UI/API] | [Hoe gebruikers interacteren] |
|
|
169
|
+
|
|
170
|
+
### Ondersteunde Bedrijfsprocessen
|
|
171
|
+
|
|
172
|
+
<!-- Welke bedrijfsprocessen ondersteunt dit systeem? -->
|
|
173
|
+
|
|
174
|
+
1. **Proces 1**: [Beschrijving]
|
|
175
|
+
- Actoren: [Wie is betrokken]
|
|
176
|
+
- Flow: [High-level flow]
|
|
177
|
+
|
|
178
|
+
2. **Proces 2**: [Beschrijving]
|
|
179
|
+
|
|
180
|
+
## Technische Context
|
|
181
|
+
|
|
182
|
+
**Doel**: Toont technische interfaces en kanalen tussen systeem en omgeving.
|
|
183
|
+
|
|
184
|
+
### Technische Interfaces
|
|
185
|
+
|
|
186
|
+
| Interface | Technologie | Protocol | Formaat |
|
|
187
|
+
|-----------|-------------|----------|---------|
|
|
188
|
+
| [API 1] | [REST API] | [HTTPS] | [JSON] |
|
|
189
|
+
| [Database] | [PostgreSQL] | [TCP/IP] | [SQL] |
|
|
190
|
+
|
|
191
|
+
### Kanalen en Transmissie
|
|
192
|
+
|
|
193
|
+
| Kanaal | Technologie | Beschrijving |
|
|
194
|
+
|--------|-------------|--------------|
|
|
195
|
+
| [Message Queue] | [RabbitMQ] | [Asynchrone communicatie tussen services] |
|
|
196
|
+
|
|
197
|
+
### Mapping: Zakelijk naar Technisch
|
|
198
|
+
|
|
199
|
+
| Zakelijke Context | Technische Realisatie |
|
|
200
|
+
|-------------------|----------------------|
|
|
201
|
+
| [Gebruikersinterface] | [React SPA via HTTPS] |
|
|
202
|
+
| [Extern Systeem A] | [REST API via HTTPS] |
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
function getSolutionStrategyTemplate() {
|
|
206
|
+
return `# 4. Oplossingsstrategie
|
|
207
|
+
|
|
208
|
+
**Doel**: Vat de fundamentele beslissingen en oplossingsstrategieën samen die de systeemarchitectuur vormgeven.
|
|
209
|
+
|
|
210
|
+
## Kernoplossingsbeslissingen
|
|
211
|
+
|
|
212
|
+
### Architectuurpatronen
|
|
213
|
+
|
|
214
|
+
| Patroon | Motivatie | Gevolgen |
|
|
215
|
+
|---------|-----------|----------|
|
|
216
|
+
| [bijv. Microservices] | [Waarom dit patroon is gekozen] | [Voordelen en afwegingen] |
|
|
217
|
+
|
|
218
|
+
### Technologiebeslissingen
|
|
219
|
+
|
|
220
|
+
| Component | Technologie | Reden |
|
|
221
|
+
|-----------|-------------|-------|
|
|
222
|
+
| Backend | [bijv. Node.js] | [Waarom dit is gekozen] |
|
|
223
|
+
| Frontend | [bijv. React] | [Redenen] |
|
|
224
|
+
| Database | [bijv. PostgreSQL] | [Redenen] |
|
|
225
|
+
|
|
226
|
+
### Top-Level Decompositie
|
|
227
|
+
|
|
228
|
+
<!-- Hoe is het systeem op het hoogste niveau gestructureerd? -->
|
|
229
|
+
|
|
230
|
+
\`\`\`
|
|
231
|
+
[High-level componentendiagram]
|
|
232
|
+
\`\`\`
|
|
233
|
+
|
|
234
|
+
Beschrijving:
|
|
235
|
+
- Component 1: [Doel en verantwoordelijkheid]
|
|
236
|
+
- Component 2: [Doel en verantwoordelijkheid]
|
|
237
|
+
|
|
238
|
+
## Realisatie van Kwaliteitsdoelen
|
|
239
|
+
|
|
240
|
+
### Mapping: Kwaliteitsdoelen naar Oplossingsbenaderingen
|
|
241
|
+
|
|
242
|
+
| Kwaliteitsdoel | Oplossingsbenadering |
|
|
243
|
+
|----------------|---------------------|
|
|
244
|
+
| [Prestaties] | [Cachingstrategie, asynchrone verwerking, CDN] |
|
|
245
|
+
| [Beveiliging] | [Authenticatie, autorisatie, encryptie] |
|
|
246
|
+
| [Schaalbaarheid] | [Horizontale schaling, load balancing] |
|
|
247
|
+
|
|
248
|
+
### Kernontwerp beslissingen
|
|
249
|
+
|
|
250
|
+
1. **Beslissing 1**: [bijv. Event-driven architectuur]
|
|
251
|
+
- Reden: [Waarom deze benadering]
|
|
252
|
+
- Impact: [Hoe het helpt kwaliteitsdoelen te bereiken]
|
|
253
|
+
|
|
254
|
+
2. **Beslissing 2**: [Beschrijving]
|
|
255
|
+
- Reden: [Motivatie]
|
|
256
|
+
- Impact: [Impact op kwaliteitsdoelen]
|
|
257
|
+
|
|
258
|
+
## Ontwikkelstrategie
|
|
259
|
+
|
|
260
|
+
- Ontwikkelbenadering: [Agile, Scrum, etc.]
|
|
261
|
+
- Deploymentstrategie: [CI/CD, Blue-Green, etc.]
|
|
262
|
+
- Teststrategie: [Unit, Integratie, E2E]
|
|
263
|
+
`;
|
|
264
|
+
}
|
|
265
|
+
function getBuildingBlockViewTemplate() {
|
|
266
|
+
return `# 5. Bouwstenenweergave
|
|
267
|
+
|
|
268
|
+
**Doel**: Statische decompositie van het systeem in bouwstenen en hun relaties.
|
|
269
|
+
|
|
270
|
+
## Niveau 1: Systeemcontext
|
|
271
|
+
|
|
272
|
+
### Whitebox: Totaalsysteem
|
|
273
|
+
|
|
274
|
+
**Doel**: [Wat het systeem doet]
|
|
275
|
+
|
|
276
|
+
\`\`\`
|
|
277
|
+
[Componentendiagram met de belangrijkste bouwstenen]
|
|
278
|
+
\`\`\`
|
|
279
|
+
|
|
280
|
+
**Bevatte Bouwstenen**:
|
|
281
|
+
|
|
282
|
+
| Component | Verantwoordelijkheid |
|
|
283
|
+
|-----------|---------------------|
|
|
284
|
+
| [Component 1] | [Wat het doet] |
|
|
285
|
+
| [Component 2] | [Wat het doet] |
|
|
286
|
+
|
|
287
|
+
**Belangrijke Interfaces**:
|
|
288
|
+
|
|
289
|
+
| Interface | Beschrijving |
|
|
290
|
+
|-----------|--------------|
|
|
291
|
+
| [API 1] | [Doel en protocol] |
|
|
292
|
+
|
|
293
|
+
## Niveau 2: Componentdetails
|
|
294
|
+
|
|
295
|
+
### Component 1 (Whitebox)
|
|
296
|
+
|
|
297
|
+
**Doel**: [Gedetailleerd doel]
|
|
298
|
+
|
|
299
|
+
**Interfaces**:
|
|
300
|
+
- Invoer: [Wat het ontvangt]
|
|
301
|
+
- Uitvoer: [Wat het produceert]
|
|
302
|
+
|
|
303
|
+
**Interne Structuur**:
|
|
304
|
+
|
|
305
|
+
\`\`\`
|
|
306
|
+
[Diagram van interne modules/klassen]
|
|
307
|
+
\`\`\`
|
|
308
|
+
|
|
309
|
+
**Bevatte Elementen**:
|
|
310
|
+
|
|
311
|
+
| Element | Verantwoordelijkheid |
|
|
312
|
+
|---------|---------------------|
|
|
313
|
+
| [Module A] | [Doel] |
|
|
314
|
+
| [Module B] | [Doel] |
|
|
315
|
+
|
|
316
|
+
### Component 2 (Whitebox)
|
|
317
|
+
|
|
318
|
+
[Vergelijkbare structuur]
|
|
319
|
+
|
|
320
|
+
## Niveau 3: Detailweergaven
|
|
321
|
+
|
|
322
|
+
<!-- Alleen Niveau 3 opnemen voor componenten die aanvullende details nodig hebben -->
|
|
323
|
+
|
|
324
|
+
### Module A Details
|
|
325
|
+
|
|
326
|
+
[Gedetailleerde klassendiagrammen, pakketstructuur, etc.]
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
function getRuntimeViewTemplate() {
|
|
330
|
+
return `# 6. Runtime-weergave
|
|
331
|
+
|
|
332
|
+
**Doel**: Toont het gedrag en de interactie van bouwstenen tijdens runtime.
|
|
333
|
+
|
|
334
|
+
## Belangrijke Scenario's
|
|
335
|
+
|
|
336
|
+
### Scenario 1: [Naam, bijv. "Gebruikerslogin"]
|
|
337
|
+
|
|
338
|
+
**Beschrijving**: [Wat er in dit scenario gebeurt]
|
|
339
|
+
|
|
340
|
+
**Sequentiediagram**:
|
|
341
|
+
|
|
342
|
+
\`\`\`mermaid
|
|
343
|
+
sequenceDiagram
|
|
344
|
+
participant Gebruiker
|
|
345
|
+
participant Frontend
|
|
346
|
+
participant API
|
|
347
|
+
participant Database
|
|
348
|
+
|
|
349
|
+
Gebruiker->>Frontend: Inloggegevens invoeren
|
|
350
|
+
Frontend->>API: POST /login
|
|
351
|
+
API->>Database: Inloggegevens valideren
|
|
352
|
+
Database-->>API: Gebruikersgegevens
|
|
353
|
+
API-->>Frontend: JWT-token
|
|
354
|
+
Frontend-->>Gebruiker: Login succesvol
|
|
355
|
+
\`\`\`
|
|
356
|
+
|
|
357
|
+
**Stappen**:
|
|
358
|
+
|
|
359
|
+
1. Gebruiker voert inloggegevens in
|
|
360
|
+
2. Frontend stuurt loginverzoek
|
|
361
|
+
3. API valideert met database
|
|
362
|
+
4. Token wordt gegenereerd en teruggestuurd
|
|
363
|
+
5. Gebruiker is geauthenticeerd
|
|
364
|
+
|
|
365
|
+
### Scenario 2: [Naam]
|
|
366
|
+
|
|
367
|
+
[Vergelijkbare structuur]
|
|
368
|
+
|
|
369
|
+
## Gegevensstromen
|
|
370
|
+
|
|
371
|
+
### Stroom 1: [Naam]
|
|
372
|
+
|
|
373
|
+
**Doel**: [Welke gegevens waarheen stromen]
|
|
374
|
+
|
|
375
|
+
**Diagram**:
|
|
376
|
+
|
|
377
|
+
\`\`\`
|
|
378
|
+
[Gegevensstroomdiagram]
|
|
379
|
+
\`\`\`
|
|
380
|
+
|
|
381
|
+
**Beschrijving**:
|
|
382
|
+
- Stap 1: [Wat er gebeurt]
|
|
383
|
+
- Stap 2: [Wat er gebeurt]
|
|
384
|
+
|
|
385
|
+
## Toestandsautomaten
|
|
386
|
+
|
|
387
|
+
### Toestandsautomaat voor [Entiteit]
|
|
388
|
+
|
|
389
|
+
**Toestanden**:
|
|
390
|
+
- Toestand 1: [Beschrijving]
|
|
391
|
+
- Toestand 2: [Beschrijving]
|
|
392
|
+
|
|
393
|
+
**Overgangen**:
|
|
394
|
+
|
|
395
|
+
| Van | Gebeurtenis | Naar | Actie |
|
|
396
|
+
|-----|-------------|------|-------|
|
|
397
|
+
| [Toestand 1] | [Gebeurtenis] | [Toestand 2] | [Wat er gebeurt] |
|
|
398
|
+
`;
|
|
399
|
+
}
|
|
400
|
+
function getDeploymentViewTemplate() {
|
|
401
|
+
return `# 7. Deployment-weergave
|
|
402
|
+
|
|
403
|
+
**Doel**: Beschrijft de technische infrastructuur en hoe software wordt gedistribueerd.
|
|
404
|
+
|
|
405
|
+
## Infrastructuuroverzicht
|
|
406
|
+
|
|
407
|
+
### Deploymentdiagram
|
|
408
|
+
|
|
409
|
+
\`\`\`
|
|
410
|
+
[Diagram met servers, containers, netwerken]
|
|
411
|
+
\`\`\`
|
|
412
|
+
|
|
413
|
+
## Omgevingen
|
|
414
|
+
|
|
415
|
+
### Productieomgeving
|
|
416
|
+
|
|
417
|
+
**Infrastructuur**:
|
|
418
|
+
|
|
419
|
+
| Component | Technologie | Configuratie |
|
|
420
|
+
|-----------|-------------|--------------|
|
|
421
|
+
| [Applicatieserver] | [AWS ECS] | [Specificaties] |
|
|
422
|
+
| [Database] | [RDS PostgreSQL] | [Specificaties] |
|
|
423
|
+
| [Cache] | [Redis] | [Specificaties] |
|
|
424
|
+
|
|
425
|
+
**Netwerk**:
|
|
426
|
+
- VPC: [Configuratie]
|
|
427
|
+
- Subnets: [Public/Private setup]
|
|
428
|
+
- Security Groups: [Regels]
|
|
429
|
+
|
|
430
|
+
### Stagingomgeving
|
|
431
|
+
|
|
432
|
+
[Vergelijkbare structuur]
|
|
433
|
+
|
|
434
|
+
### Ontwikkelomgeving
|
|
435
|
+
|
|
436
|
+
[Vergelijkbare structuur]
|
|
437
|
+
|
|
438
|
+
## Deploymentstrategie
|
|
439
|
+
|
|
440
|
+
### CI/CD Pipeline
|
|
441
|
+
|
|
442
|
+
1. **Build**: [Wat er gebeurt]
|
|
443
|
+
2. **Test**: [Geautomatiseerde tests]
|
|
444
|
+
3. **Deploy**: [Deploymentproces]
|
|
445
|
+
|
|
446
|
+
### Rollback-strategie
|
|
447
|
+
|
|
448
|
+
[Hoe deployments worden teruggedraaid]
|
|
449
|
+
|
|
450
|
+
## Schaalstrategie
|
|
451
|
+
|
|
452
|
+
### Horizontaal Schalen
|
|
453
|
+
|
|
454
|
+
| Component | Schalingstrigger | Max. Instanties |
|
|
455
|
+
|-----------|------------------|-----------------|
|
|
456
|
+
| [API-server] | [CPU > 70%] | [10] |
|
|
457
|
+
|
|
458
|
+
### Verticaal Schalen
|
|
459
|
+
|
|
460
|
+
[Wanneer en hoe verticaal te schalen]
|
|
461
|
+
|
|
462
|
+
## Monitoring en Operations
|
|
463
|
+
|
|
464
|
+
### Health Checks
|
|
465
|
+
|
|
466
|
+
| Component | Check | Drempel |
|
|
467
|
+
|-----------|-------|---------|
|
|
468
|
+
| [API] | [/health endpoint] | [Responstijd < 1s] |
|
|
469
|
+
|
|
470
|
+
### Logging
|
|
471
|
+
|
|
472
|
+
- Log-aggregatie: [ELK, CloudWatch, etc.]
|
|
473
|
+
- Log-retentie: [Beleid]
|
|
474
|
+
|
|
475
|
+
### Metrieken
|
|
476
|
+
|
|
477
|
+
- Belangrijke metrieken: [CPU, geheugen, aanvraagsnelheid]
|
|
478
|
+
- Alerting: [Alert-condities]
|
|
479
|
+
`;
|
|
480
|
+
}
|
|
481
|
+
function getConceptsTemplate() {
|
|
482
|
+
return `# 8. Cross-cutting Concepten
|
|
483
|
+
|
|
484
|
+
**Doel**: Overkoepelende regelingen en oplossingsideeën die relevant zijn voor meerdere delen van het systeem.
|
|
485
|
+
|
|
486
|
+
## Domeinmodellen
|
|
487
|
+
|
|
488
|
+
### Kerndomeinconcepten
|
|
489
|
+
|
|
490
|
+
\`\`\`
|
|
491
|
+
[Domeinmodeldiagram of klassendiagram]
|
|
492
|
+
\`\`\`
|
|
493
|
+
|
|
494
|
+
**Belangrijke Entiteiten**:
|
|
495
|
+
|
|
496
|
+
| Entiteit | Verantwoordelijkheid | Relaties |
|
|
497
|
+
|----------|---------------------|----------|
|
|
498
|
+
| [Entiteit 1] | [Doel] | [Gerelateerde entiteiten] |
|
|
499
|
+
|
|
500
|
+
## Beveiliging
|
|
501
|
+
|
|
502
|
+
### Authenticatie
|
|
503
|
+
|
|
504
|
+
- Methode: [JWT, OAuth2, etc.]
|
|
505
|
+
- Implementatie: [Hoe het werkt]
|
|
506
|
+
|
|
507
|
+
### Autorisatie
|
|
508
|
+
|
|
509
|
+
- Model: [RBAC, ABAC, etc.]
|
|
510
|
+
- Rollen: [Lijst van rollen en rechten]
|
|
511
|
+
|
|
512
|
+
### Gegevensbescherming
|
|
513
|
+
|
|
514
|
+
- Encryptie at rest: [Hoe]
|
|
515
|
+
- Encryptie in transit: [TLS-versie]
|
|
516
|
+
- Omgang met gevoelige gegevens: [Benadering]
|
|
517
|
+
|
|
518
|
+
## Foutafhandeling
|
|
519
|
+
|
|
520
|
+
### Foutcategorieën
|
|
521
|
+
|
|
522
|
+
| Categorie | Afhandelingstrategie |
|
|
523
|
+
|-----------|---------------------|
|
|
524
|
+
| [Validatiefouten] | [400 met details retourneren] |
|
|
525
|
+
| [Systeemfouten] | [Loggen en 500 retourneren] |
|
|
526
|
+
|
|
527
|
+
### Foutresponsformaat
|
|
528
|
+
|
|
529
|
+
\`\`\`json
|
|
530
|
+
{
|
|
531
|
+
"error": {
|
|
532
|
+
"code": "ERROR_CODE",
|
|
533
|
+
"message": "Leesbare boodschap",
|
|
534
|
+
"details": {}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
\`\`\`
|
|
538
|
+
|
|
539
|
+
## Logging en Monitoring
|
|
540
|
+
|
|
541
|
+
### Loggingstrategie
|
|
542
|
+
|
|
543
|
+
- Log-levels: [DEBUG, INFO, WARN, ERROR]
|
|
544
|
+
- Gestructureerd loggen: [JSON-formaat]
|
|
545
|
+
- Correlatie-ID's: [Voor request-tracing]
|
|
546
|
+
|
|
547
|
+
### Monitoring
|
|
548
|
+
|
|
549
|
+
- APM: [Application Performance Monitoring tool]
|
|
550
|
+
- Metrieken: [Belangrijke zakelijke en technische metrieken]
|
|
551
|
+
|
|
552
|
+
## Configuratiebeheer
|
|
553
|
+
|
|
554
|
+
### Configuratiebronnen
|
|
555
|
+
|
|
556
|
+
1. Omgevingsvariabelen
|
|
557
|
+
2. Configuratiebestanden
|
|
558
|
+
3. Secret Management: [Vault, AWS Secrets Manager]
|
|
559
|
+
|
|
560
|
+
### Configuratie per Omgeving
|
|
561
|
+
|
|
562
|
+
| Instelling | Dev | Staging | Prod |
|
|
563
|
+
|------------|-----|---------|------|
|
|
564
|
+
| [Log-level] | [DEBUG] | [INFO] | [WARN] |
|
|
565
|
+
|
|
566
|
+
## Teststrategie
|
|
567
|
+
|
|
568
|
+
### Testniveaus
|
|
569
|
+
|
|
570
|
+
| Niveau | Dekking | Tools |
|
|
571
|
+
|--------|---------|-------|
|
|
572
|
+
| Unit Tests | [Doel %] | [Framework] |
|
|
573
|
+
| Integratietests | [Scope] | [Tools] |
|
|
574
|
+
| E2E-tests | [Belangrijke flows] | [Tools] |
|
|
575
|
+
|
|
576
|
+
### Testgegevensbeheer
|
|
577
|
+
|
|
578
|
+
[Hoe testgegevens worden aangemaakt en beheerd]
|
|
579
|
+
|
|
580
|
+
## Ontwikkelconcepten
|
|
581
|
+
|
|
582
|
+
### Code-organisatie
|
|
583
|
+
|
|
584
|
+
- Pakketstructuur: [Benadering]
|
|
585
|
+
- Naamgevingsconventies: [Standaarden]
|
|
586
|
+
|
|
587
|
+
### Build- en Dependency-management
|
|
588
|
+
|
|
589
|
+
- Build-tool: [Maven, Gradle, npm, etc.]
|
|
590
|
+
- Dependency-management: [Strategie]
|
|
591
|
+
|
|
592
|
+
## Operationele Concepten
|
|
593
|
+
|
|
594
|
+
### Backup en Recovery
|
|
595
|
+
|
|
596
|
+
- Backupfrequentie: [Dagelijks, per uur, etc.]
|
|
597
|
+
- Retentie: [Beleid]
|
|
598
|
+
- Recovery-procedure: [Stappen]
|
|
599
|
+
|
|
600
|
+
### Disaster Recovery
|
|
601
|
+
|
|
602
|
+
- RTO: [Recovery Time Objective]
|
|
603
|
+
- RPO: [Recovery Point Objective]
|
|
604
|
+
- DR-strategie: [Benadering]
|
|
605
|
+
`;
|
|
606
|
+
}
|
|
607
|
+
function getArchitectureDecisionsTemplate() {
|
|
608
|
+
return `# 9. Architectuurbeslissingen
|
|
609
|
+
|
|
610
|
+
**Doel**: Documenteert belangrijke, kostbare, kritieke of risicovolle architectuurbeslissingen inclusief motivatie.
|
|
611
|
+
|
|
612
|
+
## ADR-formaat
|
|
613
|
+
|
|
614
|
+
Elke beslissing volgt deze structuur:
|
|
615
|
+
- **Context**: Wat is het probleem dat we aanpakken?
|
|
616
|
+
- **Beslissing**: Wat we hebben besloten te doen
|
|
617
|
+
- **Gevolgen**: Wat hierdoor makkelijker of moeilijker wordt
|
|
618
|
+
|
|
619
|
+
## Beslissingslogboek
|
|
620
|
+
|
|
621
|
+
### ADR-001: [Beslissingsnaam]
|
|
622
|
+
|
|
623
|
+
**Datum**: [JJJJ-MM-DD]
|
|
624
|
+
**Status**: [Voorgesteld | Geaccepteerd | Verouderd | Vervangen]
|
|
625
|
+
**Beslissers**: [Namen]
|
|
626
|
+
|
|
627
|
+
**Context**:
|
|
628
|
+
|
|
629
|
+
[Beschrijf de krachten die spelen, technisch, politiek, sociaal en projectspecifiek. Deze krachten staan waarschijnlijk op gespannen voet met elkaar en moeten als zodanig worden benoemd.]
|
|
630
|
+
|
|
631
|
+
**Beslissing**:
|
|
632
|
+
|
|
633
|
+
[Beschrijf onze reactie op deze krachten. Hier nemen we onze beslissing.]
|
|
634
|
+
|
|
635
|
+
**Gevolgen**:
|
|
636
|
+
|
|
637
|
+
Positief:
|
|
638
|
+
- [Voordeel 1]
|
|
639
|
+
- [Voordeel 2]
|
|
640
|
+
|
|
641
|
+
Negatief:
|
|
642
|
+
- [Afweging 1]
|
|
643
|
+
- [Afweging 2]
|
|
644
|
+
|
|
645
|
+
Risico's:
|
|
646
|
+
- [Risico 1 en mitigatie]
|
|
647
|
+
|
|
648
|
+
### ADR-002: [Volgende beslissing]
|
|
649
|
+
|
|
650
|
+
[Vergelijkbare structuur]
|
|
651
|
+
|
|
652
|
+
## Beslissingscategorieën
|
|
653
|
+
|
|
654
|
+
### Structurele Beslissingen
|
|
655
|
+
|
|
656
|
+
| Beslissing | Motivatie | Datum |
|
|
657
|
+
|------------|-----------|-------|
|
|
658
|
+
| [Microservices vs Monolith] | [Waarom gekozen] | [Datum] |
|
|
659
|
+
|
|
660
|
+
### Technologiebeslissingen
|
|
661
|
+
|
|
662
|
+
| Component | Technologie | Overwogen Alternatief | Waarom Gekozen |
|
|
663
|
+
|-----------|-------------|----------------------|----------------|
|
|
664
|
+
| [Backend] | [Node.js] | [Python, Java] | [Redenen] |
|
|
665
|
+
|
|
666
|
+
### Procesbeslissingen
|
|
667
|
+
|
|
668
|
+
| Beslissing | Impact | Datum |
|
|
669
|
+
|------------|--------|-------|
|
|
670
|
+
| [Agile methodologie] | [Hoe het de architectuur beïnvloedt] | [Datum] |
|
|
671
|
+
|
|
672
|
+
## Verouderde Beslissingen
|
|
673
|
+
|
|
674
|
+
| Beslissing | Datum Verouderd | Reden | Vervangen door |
|
|
675
|
+
|------------|-----------------|-------|----------------|
|
|
676
|
+
| [Oude beslissing] | [Datum] | [Waarom verouderd] | [ADR-XXX] |
|
|
677
|
+
`;
|
|
678
|
+
}
|
|
679
|
+
function getQualityRequirementsTemplate() {
|
|
680
|
+
return `# 10. Kwaliteitseisen
|
|
681
|
+
|
|
682
|
+
**Doel**: Definieert kwaliteitseisen met concrete scenario's.
|
|
683
|
+
|
|
684
|
+
## Kwaliteitsboom
|
|
685
|
+
|
|
686
|
+
### Top-Level Kwaliteitsdoelen
|
|
687
|
+
|
|
688
|
+
\`\`\`
|
|
689
|
+
Kwaliteit
|
|
690
|
+
├── Prestaties
|
|
691
|
+
│ ├── Responstijd
|
|
692
|
+
│ └── Doorvoer
|
|
693
|
+
├── Beveiliging
|
|
694
|
+
│ ├── Authenticatie
|
|
695
|
+
│ └── Gegevensbescherming
|
|
696
|
+
├── Betrouwbaarheid
|
|
697
|
+
│ ├── Beschikbaarheid
|
|
698
|
+
│ └── Fouttolerantie
|
|
699
|
+
└── Onderhoudbaarheid
|
|
700
|
+
├── Testbaarheid
|
|
701
|
+
└── Wijzigbaarheid
|
|
702
|
+
\`\`\`
|
|
703
|
+
|
|
704
|
+
## Kwaliteitsscenario's
|
|
705
|
+
|
|
706
|
+
### Prestatiescenario's
|
|
707
|
+
|
|
708
|
+
**Scenario 1: Normale Belasting Responstijd**
|
|
709
|
+
|
|
710
|
+
| Aspect | Beschrijving |
|
|
711
|
+
|--------|--------------|
|
|
712
|
+
| Scenario | Gebruiker vraagt gegevens op onder normale belasting |
|
|
713
|
+
| Bron | Eindgebruiker |
|
|
714
|
+
| Stimulus | HTTP-verzoek aan API |
|
|
715
|
+
| Omgeving | Normale werking, 100 gelijktijdige gebruikers |
|
|
716
|
+
| Reactie | Systeem retourneert gegevens |
|
|
717
|
+
| Maatstaf | 95e percentiel responstijd < 200ms |
|
|
718
|
+
|
|
719
|
+
**Scenario 2: Piekbelasting Afhandeling**
|
|
720
|
+
|
|
721
|
+
| Aspect | Beschrijving |
|
|
722
|
+
|--------|--------------|
|
|
723
|
+
| Scenario | Systeem onder piekbelasting |
|
|
724
|
+
| Bron | Meerdere gebruikers |
|
|
725
|
+
| Stimulus | 1000 gelijktijdige verzoeken |
|
|
726
|
+
| Omgeving | Piekuren |
|
|
727
|
+
| Reactie | Systeem verwerkt alle verzoeken |
|
|
728
|
+
| Maatstaf | Geen verzoek faalt, responstijd < 1s |
|
|
729
|
+
|
|
730
|
+
### Beveiligingsscenario's
|
|
731
|
+
|
|
732
|
+
**Scenario 3: Ongeautoriseerde Toegangspoging**
|
|
733
|
+
|
|
734
|
+
| Aspect | Beschrijving |
|
|
735
|
+
|--------|--------------|
|
|
736
|
+
| Scenario | Ongeautoriseerde gebruiker probeert toegang tot beschermde resource |
|
|
737
|
+
| Bron | Externe aanvaller |
|
|
738
|
+
| Stimulus | HTTP-verzoek zonder geldig token |
|
|
739
|
+
| Omgeving | Normale werking |
|
|
740
|
+
| Reactie | Systeem weigert toegang |
|
|
741
|
+
| Maatstaf | Retourneert 401, logt poging, geen gegevens blootgesteld |
|
|
742
|
+
|
|
743
|
+
### Betrouwbaarheidsscenario's
|
|
744
|
+
|
|
745
|
+
**Scenario 4: Service-uitval Herstel**
|
|
746
|
+
|
|
747
|
+
| Aspect | Beschrijving |
|
|
748
|
+
|--------|--------------|
|
|
749
|
+
| Scenario | Databaseverbinding faalt |
|
|
750
|
+
| Bron | Infrastructuurstoring |
|
|
751
|
+
| Stimulus | Database wordt onbeschikbaar |
|
|
752
|
+
| Omgeving | Normale werking |
|
|
753
|
+
| Reactie | Systeem blijft werken met gecachte gegevens |
|
|
754
|
+
| Maatstaf | Service-degradatie < 5%, herstel < 30s |
|
|
755
|
+
|
|
756
|
+
### Onderhoudbaarheidsscenario's
|
|
757
|
+
|
|
758
|
+
**Scenario 5: Nieuwe Functionaliteit Toevoegen**
|
|
759
|
+
|
|
760
|
+
| Aspect | Beschrijving |
|
|
761
|
+
|--------|--------------|
|
|
762
|
+
| Scenario | Ontwikkelaar voegt nieuw API-eindpunt toe |
|
|
763
|
+
| Bron | Ontwikkelteam |
|
|
764
|
+
| Stimulus | Nieuwe vereiste |
|
|
765
|
+
| Omgeving | Ontwikkeling |
|
|
766
|
+
| Reactie | Functionaliteit wordt toegevoegd |
|
|
767
|
+
| Maatstaf | < 2 dagen, < 5 bestanden gewijzigd, tests slagen |
|
|
768
|
+
|
|
769
|
+
## Kwaliteitseisen Prioritering
|
|
770
|
+
|
|
771
|
+
| Kwaliteitsattribuut | Prioriteit | Doelmaatstaf |
|
|
772
|
+
|---------------------|------------|--------------|
|
|
773
|
+
| Beschikbaarheid | Hoog | 99,9% uptime |
|
|
774
|
+
| Responstijd | Hoog | < 200ms (p95) |
|
|
775
|
+
| Beveiliging | Kritiek | Nul datalekken |
|
|
776
|
+
| Onderhoudbaarheid | Medium | Testdekking > 80% |
|
|
777
|
+
| Bruikbaarheid | Medium | Gebruikerstaak succes > 95% |
|
|
778
|
+
`;
|
|
779
|
+
}
|
|
780
|
+
function getTechnicalRisksTemplate() {
|
|
781
|
+
return `# 11. Risico's en Technische Schuld
|
|
782
|
+
|
|
783
|
+
**Doel**: Documenteert bekende problemen, risico's en technische schuld.
|
|
784
|
+
|
|
785
|
+
## Risico's
|
|
786
|
+
|
|
787
|
+
### Risicobeoordelingsmatrix
|
|
788
|
+
|
|
789
|
+
| Risico | Waarschijnlijkheid | Impact | Ernst | Status |
|
|
790
|
+
|--------|-------------------|--------|-------|--------|
|
|
791
|
+
| [Risico 1] | [Hoog/Medium/Laag] | [Hoog/Medium/Laag] | [Kritiek/Hoog/Medium/Laag] | [Open/Gemitigeerd] |
|
|
792
|
+
|
|
793
|
+
### Gedetailleerde Risico's
|
|
794
|
+
|
|
795
|
+
**Risico 1: [Risiconaam]**
|
|
796
|
+
|
|
797
|
+
- **Beschrijving**: [Wat is het risico]
|
|
798
|
+
- **Waarschijnlijkheid**: [Hoog/Medium/Laag]
|
|
799
|
+
- **Impact**: [Hoog/Medium/Laag - en wat er gebeurt]
|
|
800
|
+
- **Mitigatie**: [Wat we eraan doen]
|
|
801
|
+
- **Noodplan**: [Plan als het risico zich voordoet]
|
|
802
|
+
- **Eigenaar**: [Wie is verantwoordelijk]
|
|
803
|
+
- **Status**: [Open/Wordt gemitigeerd/Gesloten]
|
|
804
|
+
|
|
805
|
+
**Risico 2: [Titel]**
|
|
806
|
+
|
|
807
|
+
[Vergelijkbare structuur]
|
|
808
|
+
|
|
809
|
+
## Technische Schuld
|
|
810
|
+
|
|
811
|
+
### Schuldregistraties
|
|
812
|
+
|
|
813
|
+
| Item | Type | Impact | Inspanning | Prioriteit |
|
|
814
|
+
|------|------|--------|------------|------------|
|
|
815
|
+
| [Schuld 1] | [Code/Architectuur/Testing] | [Hoog/Medium/Laag] | [Dagen] | [1-5] |
|
|
816
|
+
|
|
817
|
+
### Gedetailleerde Schuldregistraties
|
|
818
|
+
|
|
819
|
+
**Schuld 1: [Titel]**
|
|
820
|
+
|
|
821
|
+
- **Beschrijving**: [Wat moet worden opgelost]
|
|
822
|
+
- **Waarom het bestaat**: [Hoe is dit gebeurd]
|
|
823
|
+
- **Impact**: [Welke problemen het veroorzaakt]
|
|
824
|
+
- **Voorgestelde oplossing**: [Hoe het op te lossen]
|
|
825
|
+
- **Inspanningsschatting**: [Benodigde tijd]
|
|
826
|
+
- **Prioriteit**: [Wanneer moeten we het oplossen]
|
|
827
|
+
|
|
828
|
+
### Schuldafbouwplan
|
|
829
|
+
|
|
830
|
+
| Kwartaal | Te Adresseren Schuld | Verwachte Impact |
|
|
831
|
+
|----------|---------------------|------------------|
|
|
832
|
+
| Q1 2024 | [Items 1, 2] | [Verbetering in X] |
|
|
833
|
+
|
|
834
|
+
## Bekende Problemen
|
|
835
|
+
|
|
836
|
+
### Openstaande Problemen
|
|
837
|
+
|
|
838
|
+
| Probleem | Ernst | Workaround | Doel Oplossingsdatum |
|
|
839
|
+
|----------|-------|------------|---------------------|
|
|
840
|
+
| [Probleem 1] | [Hoog/Medium/Laag] | [Indien beschikbaar] | [Datum] |
|
|
841
|
+
|
|
842
|
+
### Beperkingen
|
|
843
|
+
|
|
844
|
+
| Beperking | Impact | Motivatie | Toekomstplannen |
|
|
845
|
+
|-----------|--------|-----------|-----------------|
|
|
846
|
+
| [Beperking 1] | [Effect] | [Waarom het bestaat] | [Wanneer/of te adresseren] |
|
|
847
|
+
|
|
848
|
+
## Beveiligingskwetsbaarheden
|
|
849
|
+
|
|
850
|
+
### Bekende Kwetsbaarheden
|
|
851
|
+
|
|
852
|
+
| CVE | Component | Ernst | Status | Mitigatie |
|
|
853
|
+
|-----|-----------|-------|--------|-----------|
|
|
854
|
+
| [CVE-ID] | [Bibliotheek] | [Kritiek/Hoog/Medium] | [Open/Opgelost] | [Genomen maatregelen] |
|
|
855
|
+
|
|
856
|
+
## Prestatieproblemen
|
|
857
|
+
|
|
858
|
+
| Probleem | Impact | Workaround | Oplossingsplan |
|
|
859
|
+
|----------|--------|------------|----------------|
|
|
860
|
+
| [Probleem] | [Gebruikersimpact] | [Tijdelijke oplossing] | [Permanente oplossing] |
|
|
861
|
+
`;
|
|
862
|
+
}
|
|
863
|
+
function getGlossaryTemplate() {
|
|
864
|
+
return `# 12. Woordenlijst
|
|
865
|
+
|
|
866
|
+
**Doel**: Definieert belangrijke zakelijke en technische termen om consistente terminologie te waarborgen.
|
|
867
|
+
|
|
868
|
+
## Zakelijke Termen
|
|
869
|
+
|
|
870
|
+
| Term | Definitie |
|
|
871
|
+
|------|-----------|
|
|
872
|
+
| [Zakelijke Term 1] | [Duidelijke, beknopte definitie] |
|
|
873
|
+
| [Zakelijke Term 2] | [Definitie] |
|
|
874
|
+
|
|
875
|
+
## Technische Termen
|
|
876
|
+
|
|
877
|
+
| Term | Definitie | Synoniemen |
|
|
878
|
+
|------|-----------|------------|
|
|
879
|
+
| [Technische Term 1] | [Definitie] | [Alternatieve namen] |
|
|
880
|
+
| [Technische Term 2] | [Definitie] | [Alternatieve namen] |
|
|
881
|
+
|
|
882
|
+
## Afkortingen en Acroniemen
|
|
883
|
+
|
|
884
|
+
| Afkorting | Volledige Naam | Context |
|
|
885
|
+
|-----------|----------------|---------|
|
|
886
|
+
| API | Application Programming Interface | [Wanneer/waar gebruikt] |
|
|
887
|
+
| SLA | Service Level Agreement | [Context] |
|
|
888
|
+
| JWT | JSON Web Token | [Gebruik] |
|
|
889
|
+
|
|
890
|
+
## Bedrijfsconcepten
|
|
891
|
+
|
|
892
|
+
| Concept | Beschrijving | Gerelateerde Termen |
|
|
893
|
+
|---------|--------------|---------------------|
|
|
894
|
+
| [Concept 1] | [Gedetailleerde uitleg] | [Gerelateerde concepten] |
|
|
895
|
+
|
|
896
|
+
## Systeemspecifieke Termen
|
|
897
|
+
|
|
898
|
+
| Term | Definitie | Voorbeeld |
|
|
899
|
+
|------|-----------|-----------|
|
|
900
|
+
| [Systeemterm 1] | [Wat het betekent in dit systeem] | [Gebruiksvoorbeeld] |
|
|
901
|
+
|
|
902
|
+
## Verouderde Termen
|
|
903
|
+
|
|
904
|
+
| Oude Term | Vervangen door | Reden |
|
|
905
|
+
|-----------|----------------|-------|
|
|
906
|
+
| [Oude term] | [Nieuwe term] | [Waarom gewijzigd] |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
**Opmerking**: Houd deze woordenlijst up-to-date wanneer nieuwe termen verschijnen. Link vanuit andere delen van de documentatie naar deze sectie wanneer deze termen worden gebruikt.
|
|
911
|
+
`;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Get the Dutch workflow guide
|
|
915
|
+
*/
|
|
916
|
+
export function getWorkflowGuide() {
|
|
917
|
+
return `# arc42 Architectuur-Documentatie Workflow-gids
|
|
918
|
+
|
|
919
|
+
## Overzicht
|
|
920
|
+
|
|
921
|
+
Deze gids helpt u bij het documenteren van uw softwarearchitectuur met behulp van het arc42-template. Het arc42-template is een praktisch, bewezen template voor het documenteren van software- en systeemarchitecturen.
|
|
922
|
+
|
|
923
|
+
## Beschikbare Talen
|
|
924
|
+
|
|
925
|
+
Deze arc42 MCP Server ondersteunt meerdere talen voor documentatie:
|
|
926
|
+
|
|
927
|
+
| Code | Taal | Moedertaalnaam |
|
|
928
|
+
|------|------|----------------|
|
|
929
|
+
| EN | Engels | English |
|
|
930
|
+
| DE | Duits | Deutsch |
|
|
931
|
+
| CZ | Tsjechisch | Čeština |
|
|
932
|
+
| ES | Spaans | Español |
|
|
933
|
+
| FR | Frans | Français |
|
|
934
|
+
| IT | Italiaans | Italiano |
|
|
935
|
+
| NL | Nederlands | Nederlands |
|
|
936
|
+
| PT | Portugees | Português |
|
|
937
|
+
| RU | Russisch | Русский |
|
|
938
|
+
| UKR | Oekraïens | Українська |
|
|
939
|
+
| ZH | Chinees | 中文 |
|
|
940
|
+
|
|
941
|
+
## Aan de Slag
|
|
942
|
+
|
|
943
|
+
### Stap 1: Workspace Initialiseren
|
|
944
|
+
|
|
945
|
+
Gebruik de \`arc42-init\`-tool om uw documentatie-workspace aan te maken:
|
|
946
|
+
|
|
947
|
+
\`\`\`
|
|
948
|
+
arc42-init(projectName: "Mijn Project", language: "NL")
|
|
949
|
+
\`\`\`
|
|
950
|
+
|
|
951
|
+
U kunt een andere taal specificeren met de ISO-taalcode.
|
|
952
|
+
|
|
953
|
+
### Stap 2: Status Controleren
|
|
954
|
+
|
|
955
|
+
Gebruik \`arc42-status\` om de huidige status van uw documentatie te zien:
|
|
956
|
+
|
|
957
|
+
\`\`\`
|
|
958
|
+
arc42-status()
|
|
959
|
+
\`\`\`
|
|
960
|
+
|
|
961
|
+
### Stap 3: Sectie-templates Genereren
|
|
962
|
+
|
|
963
|
+
Gebruik \`generate-template\` om gedetailleerde templates voor elke sectie te krijgen:
|
|
964
|
+
|
|
965
|
+
\`\`\`
|
|
966
|
+
generate-template(section: "01_introduction_and_goals", language: "NL")
|
|
967
|
+
\`\`\`
|
|
968
|
+
|
|
969
|
+
## De 12 arc42-Secties
|
|
970
|
+
|
|
971
|
+
1. **Introductie en Doelen** - Begin hier! Definieer wat u bouwt en waarom.
|
|
972
|
+
2. **Beperkingen** - Wat mag u NIET doen?
|
|
973
|
+
3. **Scope en Context** - Wat is binnen en wat is buiten scope?
|
|
974
|
+
4. **Oplossingsstrategie** - High-level benadering om het probleem op te lossen.
|
|
975
|
+
5. **Bouwstenenweergave** - Statische structuur van uw systeem.
|
|
976
|
+
6. **Runtime-weergave** - Dynamisch gedrag en scenario's.
|
|
977
|
+
7. **Deployment-weergave** - Hoe wordt het gedeployed en beheerd?
|
|
978
|
+
8. **Cross-cutting Concepten** - Patronen die door het hele systeem worden gebruikt.
|
|
979
|
+
9. **Architectuurbeslissingen** - Belangrijke beslissingen en hun motivatie.
|
|
980
|
+
10. **Kwaliteitseisen** - Concrete kwaliteitsscenario's.
|
|
981
|
+
11. **Risico's en Technische Schuld** - Wat kan er misgaan?
|
|
982
|
+
12. **Woordenlijst** - Definieer uw termen.
|
|
983
|
+
|
|
984
|
+
## Best Practices
|
|
985
|
+
|
|
986
|
+
1. **Begin met Sectie 1** - Begrip van doelen is fundamenteel
|
|
987
|
+
2. **Houd het beknopt** - arc42 is pragmatisch, niet bureaucratisch
|
|
988
|
+
3. **Gebruik diagrammen** - Een plaatje zegt meer dan duizend woorden
|
|
989
|
+
4. **Documenteer beslissingen** - Uw toekomstige zelf zal u dankbaar zijn
|
|
990
|
+
5. **Itereer** - Architectuurdocumentatie is nooit "af"
|
|
991
|
+
|
|
992
|
+
## Beschikbare Tools
|
|
993
|
+
|
|
994
|
+
- \`arc42-init\` - Documentatie-workspace initialiseren
|
|
995
|
+
- \`arc42-status\` - Documentatiestatus controleren
|
|
996
|
+
- \`generate-template\` - Sectie-templates genereren
|
|
997
|
+
- \`update-section\` - Sectie-inhoud bijwerken
|
|
998
|
+
- \`get-section\` - Sectie-inhoud lezen
|
|
999
|
+
- \`arc42-workflow-guide\` - Deze gids weergeven
|
|
1000
|
+
|
|
1001
|
+
## Resources
|
|
1002
|
+
|
|
1003
|
+
- [arc42 Website](https://arc42.org/)
|
|
1004
|
+
- [arc42 Documentatie](https://docs.arc42.org/)
|
|
1005
|
+
- [arc42 Voorbeelden](https://arc42.org/examples)
|
|
1006
|
+
`;
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Get the Dutch README content
|
|
1010
|
+
*/
|
|
1011
|
+
export function getReadmeContent(projectName) {
|
|
1012
|
+
const name = projectName || 'Project';
|
|
1013
|
+
return `# ${name} - Architectuur-Documentatie
|
|
1014
|
+
|
|
1015
|
+
Deze directory bevat de architectuurdocumentatie voor ${name}, gebaseerd op het arc42-template.
|
|
1016
|
+
|
|
1017
|
+
## Structuur
|
|
1018
|
+
|
|
1019
|
+
- \`sections/\` - Individuele sectie-markdown-bestanden (12 secties)
|
|
1020
|
+
- \`images/\` - Diagrammen en afbeeldingen
|
|
1021
|
+
- \`arc42-documentation.md\` - Gecombineerde hoofddocumentatie
|
|
1022
|
+
- \`config.yaml\` - Configuratie
|
|
1023
|
+
|
|
1024
|
+
## De 12 arc42-Secties
|
|
1025
|
+
|
|
1026
|
+
1. **Introductie en Doelen** - Vereisten, kwaliteitsdoelen, stakeholders
|
|
1027
|
+
2. **Beperkingen** - Technische en organisatorische beperkingen
|
|
1028
|
+
3. **Scope en Context** - Zakelijke en technische context
|
|
1029
|
+
4. **Oplossingsstrategie** - Fundamentele beslissingen en strategieën
|
|
1030
|
+
5. **Bouwstenenweergave** - Statische decompositie
|
|
1031
|
+
6. **Runtime-weergave** - Dynamisch gedrag
|
|
1032
|
+
7. **Deployment-weergave** - Infrastructuur en deployment
|
|
1033
|
+
8. **Cross-cutting Concepten** - Overkoepelende regelingen en benaderingen
|
|
1034
|
+
9. **Architectuurbeslissingen** - Belangrijke beslissingen (ADR's)
|
|
1035
|
+
10. **Kwaliteitseisen** - Kwaliteitsboom en scenario's
|
|
1036
|
+
11. **Risico's en Technische Schuld** - Bekende problemen en risico's
|
|
1037
|
+
12. **Woordenlijst** - Belangrijke termen
|
|
1038
|
+
|
|
1039
|
+
## Aan de Slag
|
|
1040
|
+
|
|
1041
|
+
1. Begin met Sectie 1: Introductie en Doelen
|
|
1042
|
+
2. Werk iteratief door de secties
|
|
1043
|
+
3. Gebruik diagrammen om concepten te illustreren
|
|
1044
|
+
4. Focus op beslissingen, niet op implementatiedetails
|
|
1045
|
+
|
|
1046
|
+
## Documentatie Genereren
|
|
1047
|
+
|
|
1048
|
+
Gebruik de MCP-tools voor:
|
|
1049
|
+
- Status controleren: \`arc42-status\`
|
|
1050
|
+
- Templates genereren: \`generate-template\`
|
|
1051
|
+
- Secties bijwerken: \`update-section\`
|
|
1052
|
+
|
|
1053
|
+
## Resources
|
|
1054
|
+
|
|
1055
|
+
- [arc42 Website](https://arc42.org/)
|
|
1056
|
+
- [arc42 Documentatie](https://docs.arc42.org/)
|
|
1057
|
+
- [arc42 Voorbeelden](https://arc42.org/examples)
|
|
1058
|
+
`;
|
|
1059
|
+
}
|
|
1060
|
+
//# sourceMappingURL=templates.js.map
|