@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
|
+
* Italian Templates
|
|
3
|
+
*
|
|
4
|
+
* Contains all arc42 section templates in Italian.
|
|
5
|
+
* Based on the official arc42 Italian template from vendor/arc42-template/IT/.
|
|
6
|
+
*
|
|
7
|
+
* @module templates/locales/it/templates
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Get the Italian 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. Introduzione e Obiettivi
|
|
31
|
+
|
|
32
|
+
## Descrizione dei Requisiti
|
|
33
|
+
|
|
34
|
+
**Scopo**: Descrive i requisiti essenziali e le forze trainanti che devono essere considerate nell'implementazione dell'architettura software e nello sviluppo del sistema.
|
|
35
|
+
|
|
36
|
+
### Requisiti Essenziali
|
|
37
|
+
|
|
38
|
+
<!-- Elenca i top 3-5 requisiti funzionali -->
|
|
39
|
+
|
|
40
|
+
| ID | Requisito | Priorita |
|
|
41
|
+
|----|-----------|----------|
|
|
42
|
+
| REQ-1 | [Breve descrizione] | Alta |
|
|
43
|
+
| REQ-2 | [Breve descrizione] | Media |
|
|
44
|
+
|
|
45
|
+
### Funzionalita
|
|
46
|
+
|
|
47
|
+
<!-- Funzionalita essenziali del sistema -->
|
|
48
|
+
|
|
49
|
+
- Funzionalita 1: [Descrizione]
|
|
50
|
+
- Funzionalita 2: [Descrizione]
|
|
51
|
+
|
|
52
|
+
## Obiettivi di Qualita
|
|
53
|
+
|
|
54
|
+
**Scopo**: I top-3 o top-5 obiettivi di qualita per l'architettura, il cui raggiungimento e di massima importanza per i principali stakeholder.
|
|
55
|
+
|
|
56
|
+
<!-- Basandosi su ISO 25010, dare priorita a qualita come: -->
|
|
57
|
+
<!-- Prestazioni, Sicurezza, Affidabilita, Manutenibilita, Usabilita, ecc. -->
|
|
58
|
+
|
|
59
|
+
| Priorita | Obiettivo di Qualita | Motivazione |
|
|
60
|
+
|----------|---------------------|-------------|
|
|
61
|
+
| 1 | [es. Prestazioni] | [Perche e critico] |
|
|
62
|
+
| 2 | [es. Sicurezza] | [Perche e critico] |
|
|
63
|
+
| 3 | [es. Manutenibilita] | [Perche e critico] |
|
|
64
|
+
|
|
65
|
+
## Stakeholder
|
|
66
|
+
|
|
67
|
+
**Scopo**: Panoramica esplicita degli stakeholder del sistema.
|
|
68
|
+
|
|
69
|
+
| Ruolo/Nome | Contatto | Aspettative |
|
|
70
|
+
|------------|----------|-------------|
|
|
71
|
+
| Product Owner | [Nome/Email] | [Aspettative riguardo l'architettura] |
|
|
72
|
+
| Team di Sviluppo | [Nome team] | [Cosa devono sapere] |
|
|
73
|
+
| Operations | [Team/Persona] | [Preoccupazioni di deployment e operations] |
|
|
74
|
+
| Utenti Finali | [Tipo] | [Aspettative sull'esperienza utente] |
|
|
75
|
+
|
|
76
|
+
## Criteri di Successo
|
|
77
|
+
|
|
78
|
+
<!-- Cosa definisce il successo di questo sistema? -->
|
|
79
|
+
|
|
80
|
+
- [ ] Criterio 1
|
|
81
|
+
- [ ] Criterio 2
|
|
82
|
+
- [ ] Criterio 3
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
function getArchitectureConstraintsTemplate() {
|
|
86
|
+
return `# 2. Vincoli dell'Architettura
|
|
87
|
+
|
|
88
|
+
## Vincoli Tecnici
|
|
89
|
+
|
|
90
|
+
**Vincoli Hardware**
|
|
91
|
+
|
|
92
|
+
| Vincolo | Contesto/Motivazione |
|
|
93
|
+
|---------|---------------------|
|
|
94
|
+
| [es. Piattaforma cloud] | [Perche esiste questo vincolo] |
|
|
95
|
+
|
|
96
|
+
**Vincoli Software/Tecnologia**
|
|
97
|
+
|
|
98
|
+
| Vincolo | Contesto/Motivazione |
|
|
99
|
+
|---------|---------------------|
|
|
100
|
+
| [es. Java 17+ richiesto] | [Motivo del vincolo] |
|
|
101
|
+
| [es. PostgreSQL richiesto] | [Perche e stato scelto] |
|
|
102
|
+
|
|
103
|
+
**Linee Guida di Programmazione**
|
|
104
|
+
|
|
105
|
+
- Linguaggio di programmazione: [Linguaggio]
|
|
106
|
+
- Framework: [Framework e versione]
|
|
107
|
+
- Librerie: [Librerie obbligatorie o vietate]
|
|
108
|
+
|
|
109
|
+
## Vincoli Organizzativi
|
|
110
|
+
|
|
111
|
+
**Organizzazione e Struttura**
|
|
112
|
+
|
|
113
|
+
| Vincolo | Contesto/Motivazione |
|
|
114
|
+
|---------|---------------------|
|
|
115
|
+
| [es. Struttura del team] | [Come influenza l'architettura] |
|
|
116
|
+
| [es. Metodologia Agile] | [Impatto sul processo di sviluppo] |
|
|
117
|
+
|
|
118
|
+
**Risorse**
|
|
119
|
+
|
|
120
|
+
- Budget: [Limitazioni di budget]
|
|
121
|
+
- Tempo: [Vincoli temporali]
|
|
122
|
+
- Team: [Dimensione e competenze del team]
|
|
123
|
+
|
|
124
|
+
## Convenzioni
|
|
125
|
+
|
|
126
|
+
**Convenzioni di Architettura e Design**
|
|
127
|
+
|
|
128
|
+
- [es. Pattern architetturale Microservices]
|
|
129
|
+
- [es. Design RESTful API]
|
|
130
|
+
- [es. Domain-Driven Design]
|
|
131
|
+
|
|
132
|
+
**Convenzioni di Codifica**
|
|
133
|
+
|
|
134
|
+
- Stile del codice: [Link alla guida di stile]
|
|
135
|
+
- Documentazione: [Standard di documentazione]
|
|
136
|
+
- Test: [Requisiti di testing]
|
|
137
|
+
|
|
138
|
+
**Requisiti di Conformita**
|
|
139
|
+
|
|
140
|
+
- [es. Conformita GDPR]
|
|
141
|
+
- [es. Regolamenti specifici del settore]
|
|
142
|
+
- [es. Standard di accessibilita]
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
function getContextAndScopeTemplate() {
|
|
146
|
+
return `# 3. Contesto e Ambito
|
|
147
|
+
|
|
148
|
+
## Contesto di Business
|
|
149
|
+
|
|
150
|
+
**Scopo**: Mostra l'ambiente di business del sistema e le principali dipendenze esterne.
|
|
151
|
+
|
|
152
|
+
### Diagramma di Contesto
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
[Crea un diagramma che mostra il tuo sistema e sistemi/utenti esterni]
|
|
156
|
+
Puoi usare:
|
|
157
|
+
- Diagrammi Mermaid
|
|
158
|
+
- PlantUML
|
|
159
|
+
- ASCII art
|
|
160
|
+
- Oppure fai riferimento a un'immagine in /images/
|
|
161
|
+
\`\`\`
|
|
162
|
+
|
|
163
|
+
### Interfacce Esterne
|
|
164
|
+
|
|
165
|
+
| Sistema Esterno | Interfaccia | Scopo |
|
|
166
|
+
|-----------------|-------------|-------|
|
|
167
|
+
| [Sistema Esterno 1] | [API/Protocollo] | [Quali dati/funzioni vengono scambiati] |
|
|
168
|
+
| [Tipo Utente 1] | [UI/API] | [Come interagiscono gli utenti] |
|
|
169
|
+
|
|
170
|
+
### Processi di Business Supportati
|
|
171
|
+
|
|
172
|
+
<!-- Quali processi di business supporta questo sistema? -->
|
|
173
|
+
|
|
174
|
+
1. **Processo 1**: [Descrizione]
|
|
175
|
+
- Attori: [Chi e coinvolto]
|
|
176
|
+
- Flusso: [Flusso di alto livello]
|
|
177
|
+
|
|
178
|
+
2. **Processo 2**: [Descrizione]
|
|
179
|
+
|
|
180
|
+
## Contesto Tecnico
|
|
181
|
+
|
|
182
|
+
**Scopo**: Mostra le interfacce tecniche e i canali tra il sistema e il suo ambiente.
|
|
183
|
+
|
|
184
|
+
### Interfacce Tecniche
|
|
185
|
+
|
|
186
|
+
| Interfaccia | Tecnologia | Protocollo | Formato |
|
|
187
|
+
|-------------|------------|------------|---------|
|
|
188
|
+
| [API 1] | [REST API] | [HTTPS] | [JSON] |
|
|
189
|
+
| [Database] | [PostgreSQL] | [TCP/IP] | [SQL] |
|
|
190
|
+
|
|
191
|
+
### Canali e Trasmissione
|
|
192
|
+
|
|
193
|
+
| Canale | Tecnologia | Descrizione |
|
|
194
|
+
|--------|------------|-------------|
|
|
195
|
+
| [Coda Messaggi] | [RabbitMQ] | [Comunicazione asincrona tra servizi] |
|
|
196
|
+
|
|
197
|
+
### Mappatura: Business a Tecnico
|
|
198
|
+
|
|
199
|
+
| Contesto di Business | Realizzazione Tecnica |
|
|
200
|
+
|---------------------|----------------------|
|
|
201
|
+
| [Interfaccia Utente] | [React SPA via HTTPS] |
|
|
202
|
+
| [Sistema Esterno A] | [REST API via HTTPS] |
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
function getSolutionStrategyTemplate() {
|
|
206
|
+
return `# 4. Strategia di Soluzione
|
|
207
|
+
|
|
208
|
+
**Scopo**: Riassume le decisioni fondamentali e le strategie di soluzione che modellano l'architettura del sistema.
|
|
209
|
+
|
|
210
|
+
## Decisioni Chiave della Soluzione
|
|
211
|
+
|
|
212
|
+
### Pattern Architetturali
|
|
213
|
+
|
|
214
|
+
| Pattern | Motivazione | Conseguenze |
|
|
215
|
+
|---------|-------------|-------------|
|
|
216
|
+
| [es. Microservices] | [Perche e stato scelto questo pattern] | [Benefici e compromessi] |
|
|
217
|
+
|
|
218
|
+
### Decisioni Tecnologiche
|
|
219
|
+
|
|
220
|
+
| Componente | Tecnologia | Motivazione |
|
|
221
|
+
|------------|------------|-------------|
|
|
222
|
+
| Backend | [es. Node.js] | [Perche e stato scelto] |
|
|
223
|
+
| Frontend | [es. React] | [Motivazioni] |
|
|
224
|
+
| Database | [es. PostgreSQL] | [Motivazioni] |
|
|
225
|
+
|
|
226
|
+
### Decomposizione di Alto Livello
|
|
227
|
+
|
|
228
|
+
<!-- Come e strutturato il sistema al livello piu alto? -->
|
|
229
|
+
|
|
230
|
+
\`\`\`
|
|
231
|
+
[Diagramma dei componenti di alto livello]
|
|
232
|
+
\`\`\`
|
|
233
|
+
|
|
234
|
+
Descrizione:
|
|
235
|
+
- Componente 1: [Scopo e responsabilita]
|
|
236
|
+
- Componente 2: [Scopo e responsabilita]
|
|
237
|
+
|
|
238
|
+
## Raggiungimento degli Obiettivi di Qualita
|
|
239
|
+
|
|
240
|
+
### Mappatura: Obiettivi di Qualita agli Approcci
|
|
241
|
+
|
|
242
|
+
| Obiettivo di Qualita | Approccio alla Soluzione |
|
|
243
|
+
|---------------------|-------------------------|
|
|
244
|
+
| [Prestazioni] | [Strategia di caching, elaborazione asincrona, CDN] |
|
|
245
|
+
| [Sicurezza] | [Autenticazione, autorizzazione, crittografia] |
|
|
246
|
+
| [Scalabilita] | [Scaling orizzontale, load balancing] |
|
|
247
|
+
|
|
248
|
+
### Decisioni di Design Chiave
|
|
249
|
+
|
|
250
|
+
1. **Decisione 1**: [es. Architettura event-driven]
|
|
251
|
+
- Motivazione: [Perche questo approccio]
|
|
252
|
+
- Impatto: [Come aiuta a raggiungere gli obiettivi di qualita]
|
|
253
|
+
|
|
254
|
+
2. **Decisione 2**: [Descrizione]
|
|
255
|
+
- Motivazione: [Ragionamento]
|
|
256
|
+
- Impatto: [Impatto sugli obiettivi di qualita]
|
|
257
|
+
|
|
258
|
+
## Strategia di Sviluppo
|
|
259
|
+
|
|
260
|
+
- Approccio di sviluppo: [Agile, Scrum, ecc.]
|
|
261
|
+
- Strategia di deployment: [CI/CD, Blue-Green, ecc.]
|
|
262
|
+
- Strategia di test: [Unit, Integration, E2E]
|
|
263
|
+
`;
|
|
264
|
+
}
|
|
265
|
+
function getBuildingBlockViewTemplate() {
|
|
266
|
+
return `# 5. Vista dei Building Block
|
|
267
|
+
|
|
268
|
+
**Scopo**: Decomposizione statica del sistema in building block e loro relazioni.
|
|
269
|
+
|
|
270
|
+
## Livello 1: Contesto del Sistema
|
|
271
|
+
|
|
272
|
+
### Whitebox: Sistema Complessivo
|
|
273
|
+
|
|
274
|
+
**Scopo**: [Cosa fa il sistema]
|
|
275
|
+
|
|
276
|
+
\`\`\`
|
|
277
|
+
[Diagramma dei componenti con i principali building block]
|
|
278
|
+
\`\`\`
|
|
279
|
+
|
|
280
|
+
**Building Block Contenuti**:
|
|
281
|
+
|
|
282
|
+
| Componente | Responsabilita |
|
|
283
|
+
|------------|----------------|
|
|
284
|
+
| [Componente 1] | [Cosa fa] |
|
|
285
|
+
| [Componente 2] | [Cosa fa] |
|
|
286
|
+
|
|
287
|
+
**Interfacce Importanti**:
|
|
288
|
+
|
|
289
|
+
| Interfaccia | Descrizione |
|
|
290
|
+
|-------------|-------------|
|
|
291
|
+
| [API 1] | [Scopo e protocollo] |
|
|
292
|
+
|
|
293
|
+
## Livello 2: Dettagli dei Componenti
|
|
294
|
+
|
|
295
|
+
### Componente 1 (Whitebox)
|
|
296
|
+
|
|
297
|
+
**Scopo**: [Scopo dettagliato]
|
|
298
|
+
|
|
299
|
+
**Interfacce**:
|
|
300
|
+
- Input: [Cosa riceve]
|
|
301
|
+
- Output: [Cosa produce]
|
|
302
|
+
|
|
303
|
+
**Struttura Interna**:
|
|
304
|
+
|
|
305
|
+
\`\`\`
|
|
306
|
+
[Diagramma dei moduli/classi interni]
|
|
307
|
+
\`\`\`
|
|
308
|
+
|
|
309
|
+
**Elementi Contenuti**:
|
|
310
|
+
|
|
311
|
+
| Elemento | Responsabilita |
|
|
312
|
+
|----------|----------------|
|
|
313
|
+
| [Modulo A] | [Scopo] |
|
|
314
|
+
| [Modulo B] | [Scopo] |
|
|
315
|
+
|
|
316
|
+
### Componente 2 (Whitebox)
|
|
317
|
+
|
|
318
|
+
[Struttura simile]
|
|
319
|
+
|
|
320
|
+
## Livello 3: Viste di Dettaglio
|
|
321
|
+
|
|
322
|
+
<!-- Includi il Livello 3 solo per componenti che necessitano di dettagli aggiuntivi -->
|
|
323
|
+
|
|
324
|
+
### Dettagli Modulo A
|
|
325
|
+
|
|
326
|
+
[Diagrammi di classe dettagliati, struttura dei pacchetti, ecc.]
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
function getRuntimeViewTemplate() {
|
|
330
|
+
return `# 6. Vista Runtime
|
|
331
|
+
|
|
332
|
+
**Scopo**: Mostra il comportamento e l'interazione dei building block durante l'esecuzione.
|
|
333
|
+
|
|
334
|
+
## Scenari Importanti
|
|
335
|
+
|
|
336
|
+
### Scenario 1: [Nome, es. "Login Utente"]
|
|
337
|
+
|
|
338
|
+
**Descrizione**: [Cosa succede in questo scenario]
|
|
339
|
+
|
|
340
|
+
**Diagramma di Sequenza**:
|
|
341
|
+
|
|
342
|
+
\`\`\`mermaid
|
|
343
|
+
sequenceDiagram
|
|
344
|
+
participant Utente
|
|
345
|
+
participant Frontend
|
|
346
|
+
participant API
|
|
347
|
+
participant Database
|
|
348
|
+
|
|
349
|
+
Utente->>Frontend: Inserisce credenziali
|
|
350
|
+
Frontend->>API: POST /login
|
|
351
|
+
API->>Database: Valida credenziali
|
|
352
|
+
Database-->>API: Dati utente
|
|
353
|
+
API-->>Frontend: Token JWT
|
|
354
|
+
Frontend-->>Utente: Login riuscito
|
|
355
|
+
\`\`\`
|
|
356
|
+
|
|
357
|
+
**Passi**:
|
|
358
|
+
|
|
359
|
+
1. L'utente inserisce le credenziali
|
|
360
|
+
2. Il frontend invia la richiesta di login
|
|
361
|
+
3. L'API valida con il database
|
|
362
|
+
4. Il token viene generato e restituito
|
|
363
|
+
5. L'utente e autenticato
|
|
364
|
+
|
|
365
|
+
### Scenario 2: [Nome]
|
|
366
|
+
|
|
367
|
+
[Struttura simile]
|
|
368
|
+
|
|
369
|
+
## Flusso Dati
|
|
370
|
+
|
|
371
|
+
### Flusso 1: [Nome]
|
|
372
|
+
|
|
373
|
+
**Scopo**: [Quali dati fluiscono e dove]
|
|
374
|
+
|
|
375
|
+
**Diagramma**:
|
|
376
|
+
|
|
377
|
+
\`\`\`
|
|
378
|
+
[Diagramma del flusso dati]
|
|
379
|
+
\`\`\`
|
|
380
|
+
|
|
381
|
+
**Descrizione**:
|
|
382
|
+
- Passo 1: [Cosa succede]
|
|
383
|
+
- Passo 2: [Cosa succede]
|
|
384
|
+
|
|
385
|
+
## Macchine a Stati
|
|
386
|
+
|
|
387
|
+
### Macchina a Stati per [Entita]
|
|
388
|
+
|
|
389
|
+
**Stati**:
|
|
390
|
+
- Stato 1: [Descrizione]
|
|
391
|
+
- Stato 2: [Descrizione]
|
|
392
|
+
|
|
393
|
+
**Transizioni**:
|
|
394
|
+
|
|
395
|
+
| Da | Evento | A | Azione |
|
|
396
|
+
|----|--------|---|--------|
|
|
397
|
+
| [Stato 1] | [Evento] | [Stato 2] | [Cosa succede] |
|
|
398
|
+
`;
|
|
399
|
+
}
|
|
400
|
+
function getDeploymentViewTemplate() {
|
|
401
|
+
return `# 7. Vista di Deployment
|
|
402
|
+
|
|
403
|
+
**Scopo**: Descrive l'infrastruttura tecnica e come il software viene distribuito.
|
|
404
|
+
|
|
405
|
+
## Panoramica dell'Infrastruttura
|
|
406
|
+
|
|
407
|
+
### Diagramma di Deployment
|
|
408
|
+
|
|
409
|
+
\`\`\`
|
|
410
|
+
[Diagramma con server, container, reti]
|
|
411
|
+
\`\`\`
|
|
412
|
+
|
|
413
|
+
## Ambienti
|
|
414
|
+
|
|
415
|
+
### Ambiente di Produzione
|
|
416
|
+
|
|
417
|
+
**Infrastruttura**:
|
|
418
|
+
|
|
419
|
+
| Componente | Tecnologia | Configurazione |
|
|
420
|
+
|------------|------------|----------------|
|
|
421
|
+
| [Application Server] | [AWS ECS] | [Specifiche] |
|
|
422
|
+
| [Database] | [RDS PostgreSQL] | [Specifiche] |
|
|
423
|
+
| [Cache] | [Redis] | [Specifiche] |
|
|
424
|
+
|
|
425
|
+
**Rete**:
|
|
426
|
+
- VPC: [Configurazione]
|
|
427
|
+
- Subnet: [Setup pubblico/privato]
|
|
428
|
+
- Security Groups: [Regole]
|
|
429
|
+
|
|
430
|
+
### Ambiente di Staging
|
|
431
|
+
|
|
432
|
+
[Struttura simile]
|
|
433
|
+
|
|
434
|
+
### Ambiente di Sviluppo
|
|
435
|
+
|
|
436
|
+
[Struttura simile]
|
|
437
|
+
|
|
438
|
+
## Strategia di Deployment
|
|
439
|
+
|
|
440
|
+
### Pipeline CI/CD
|
|
441
|
+
|
|
442
|
+
1. **Build**: [Cosa succede]
|
|
443
|
+
2. **Test**: [Test automatizzati]
|
|
444
|
+
3. **Deploy**: [Processo di deployment]
|
|
445
|
+
|
|
446
|
+
### Strategia di Rollback
|
|
447
|
+
|
|
448
|
+
[Come vengono fatti i rollback dei deployment]
|
|
449
|
+
|
|
450
|
+
## Strategia di Scaling
|
|
451
|
+
|
|
452
|
+
### Scaling Orizzontale
|
|
453
|
+
|
|
454
|
+
| Componente | Trigger di Scaling | Max Istanze |
|
|
455
|
+
|------------|-------------------|-------------|
|
|
456
|
+
| [API Server] | [CPU > 70%] | [10] |
|
|
457
|
+
|
|
458
|
+
### Scaling Verticale
|
|
459
|
+
|
|
460
|
+
[Quando e come fare scaling verticale]
|
|
461
|
+
|
|
462
|
+
## Monitoring e Operazioni
|
|
463
|
+
|
|
464
|
+
### Health Check
|
|
465
|
+
|
|
466
|
+
| Componente | Controllo | Soglia |
|
|
467
|
+
|------------|-----------|--------|
|
|
468
|
+
| [API] | [Endpoint /health] | [Tempo di risposta < 1s] |
|
|
469
|
+
|
|
470
|
+
### Logging
|
|
471
|
+
|
|
472
|
+
- Aggregazione log: [ELK, CloudWatch, ecc.]
|
|
473
|
+
- Retention log: [Policy]
|
|
474
|
+
|
|
475
|
+
### Metriche
|
|
476
|
+
|
|
477
|
+
- Metriche chiave: [CPU, memoria, tasso richieste]
|
|
478
|
+
- Alerting: [Condizioni di alert]
|
|
479
|
+
`;
|
|
480
|
+
}
|
|
481
|
+
function getConceptsTemplate() {
|
|
482
|
+
return `# 8. Concetti Trasversali
|
|
483
|
+
|
|
484
|
+
**Scopo**: Regole e idee di soluzione trasversali, rilevanti in piu parti del sistema.
|
|
485
|
+
|
|
486
|
+
## Modelli di Dominio
|
|
487
|
+
|
|
488
|
+
### Concetti Chiave del Dominio
|
|
489
|
+
|
|
490
|
+
\`\`\`
|
|
491
|
+
[Diagramma del modello di dominio o diagramma delle classi]
|
|
492
|
+
\`\`\`
|
|
493
|
+
|
|
494
|
+
**Entita Chiave**:
|
|
495
|
+
|
|
496
|
+
| Entita | Responsabilita | Relazioni |
|
|
497
|
+
|--------|----------------|-----------|
|
|
498
|
+
| [Entita 1] | [Scopo] | [Entita correlate] |
|
|
499
|
+
|
|
500
|
+
## Sicurezza
|
|
501
|
+
|
|
502
|
+
### Autenticazione
|
|
503
|
+
|
|
504
|
+
- Metodo: [JWT, OAuth2, ecc.]
|
|
505
|
+
- Implementazione: [Come funziona]
|
|
506
|
+
|
|
507
|
+
### Autorizzazione
|
|
508
|
+
|
|
509
|
+
- Modello: [RBAC, ABAC, ecc.]
|
|
510
|
+
- Ruoli: [Lista dei ruoli e permessi]
|
|
511
|
+
|
|
512
|
+
### Protezione dei Dati
|
|
513
|
+
|
|
514
|
+
- Crittografia at rest: [Come]
|
|
515
|
+
- Crittografia in transit: [Versione TLS]
|
|
516
|
+
- Gestione dati sensibili: [Approccio]
|
|
517
|
+
|
|
518
|
+
## Gestione degli Errori
|
|
519
|
+
|
|
520
|
+
### Categorie di Errori
|
|
521
|
+
|
|
522
|
+
| Categoria | Strategia di Gestione |
|
|
523
|
+
|-----------|----------------------|
|
|
524
|
+
| [Errori di validazione] | [Restituisci 400 con dettagli] |
|
|
525
|
+
| [Errori di sistema] | [Log e restituisci 500] |
|
|
526
|
+
|
|
527
|
+
### Formato Risposta Errore
|
|
528
|
+
|
|
529
|
+
\`\`\`json
|
|
530
|
+
{
|
|
531
|
+
"error": {
|
|
532
|
+
"code": "ERROR_CODE",
|
|
533
|
+
"message": "Messaggio leggibile",
|
|
534
|
+
"details": {}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
\`\`\`
|
|
538
|
+
|
|
539
|
+
## Logging e Monitoring
|
|
540
|
+
|
|
541
|
+
### Strategia di Logging
|
|
542
|
+
|
|
543
|
+
- Livelli di log: [DEBUG, INFO, WARN, ERROR]
|
|
544
|
+
- Logging strutturato: [Formato JSON]
|
|
545
|
+
- ID di correlazione: [Per il tracing delle richieste]
|
|
546
|
+
|
|
547
|
+
### Monitoring
|
|
548
|
+
|
|
549
|
+
- APM: [Tool di Application Performance Monitoring]
|
|
550
|
+
- Metriche: [Metriche chiave di business e tecniche]
|
|
551
|
+
|
|
552
|
+
## Gestione della Configurazione
|
|
553
|
+
|
|
554
|
+
### Fonti di Configurazione
|
|
555
|
+
|
|
556
|
+
1. Variabili d'ambiente
|
|
557
|
+
2. File di configurazione
|
|
558
|
+
3. Gestione dei segreti: [Vault, AWS Secrets Manager]
|
|
559
|
+
|
|
560
|
+
### Configurazione per Ambiente
|
|
561
|
+
|
|
562
|
+
| Impostazione | Dev | Staging | Prod |
|
|
563
|
+
|--------------|-----|---------|------|
|
|
564
|
+
| [Livello Log] | [DEBUG] | [INFO] | [WARN] |
|
|
565
|
+
|
|
566
|
+
## Strategia di Test
|
|
567
|
+
|
|
568
|
+
### Livelli di Test
|
|
569
|
+
|
|
570
|
+
| Livello | Copertura | Strumenti |
|
|
571
|
+
|---------|-----------|-----------|
|
|
572
|
+
| Unit Test | [Target %] | [Framework] |
|
|
573
|
+
| Test di Integrazione | [Ambito] | [Strumenti] |
|
|
574
|
+
| Test E2E | [Flussi chiave] | [Strumenti] |
|
|
575
|
+
|
|
576
|
+
### Gestione dei Dati di Test
|
|
577
|
+
|
|
578
|
+
[Come vengono creati e gestiti i dati di test]
|
|
579
|
+
|
|
580
|
+
## Concetti di Sviluppo
|
|
581
|
+
|
|
582
|
+
### Organizzazione del Codice
|
|
583
|
+
|
|
584
|
+
- Struttura dei pacchetti: [Approccio]
|
|
585
|
+
- Convenzioni di naming: [Standard]
|
|
586
|
+
|
|
587
|
+
### Build e Gestione Dipendenze
|
|
588
|
+
|
|
589
|
+
- Strumento di build: [Maven, Gradle, npm, ecc.]
|
|
590
|
+
- Gestione dipendenze: [Strategia]
|
|
591
|
+
|
|
592
|
+
## Concetti Operativi
|
|
593
|
+
|
|
594
|
+
### Backup e Recovery
|
|
595
|
+
|
|
596
|
+
- Frequenza backup: [Giornaliero, orario, ecc.]
|
|
597
|
+
- Retention: [Policy]
|
|
598
|
+
- Procedura di recovery: [Passi]
|
|
599
|
+
|
|
600
|
+
### Disaster Recovery
|
|
601
|
+
|
|
602
|
+
- RTO: [Recovery Time Objective]
|
|
603
|
+
- RPO: [Recovery Point Objective]
|
|
604
|
+
- Strategia DR: [Approccio]
|
|
605
|
+
`;
|
|
606
|
+
}
|
|
607
|
+
function getArchitectureDecisionsTemplate() {
|
|
608
|
+
return `# 9. Decisioni Architetturali
|
|
609
|
+
|
|
610
|
+
**Scopo**: Documenta decisioni architetturali importanti, costose, critiche o rischiose con le relative motivazioni.
|
|
611
|
+
|
|
612
|
+
## Formato ADR
|
|
613
|
+
|
|
614
|
+
Ogni decisione segue questa struttura:
|
|
615
|
+
- **Contesto**: Qual e il problema che stiamo affrontando?
|
|
616
|
+
- **Decisione**: Cosa abbiamo deciso di fare
|
|
617
|
+
- **Conseguenze**: Cosa diventa piu facile o piu difficile
|
|
618
|
+
|
|
619
|
+
## Registro delle Decisioni
|
|
620
|
+
|
|
621
|
+
### ADR-001: [Titolo Decisione]
|
|
622
|
+
|
|
623
|
+
**Data**: [AAAA-MM-GG]
|
|
624
|
+
**Stato**: [Proposta | Accettata | Deprecata | Sostituita]
|
|
625
|
+
**Decisori**: [Nomi]
|
|
626
|
+
|
|
627
|
+
**Contesto**:
|
|
628
|
+
|
|
629
|
+
[Descrivi le forze in gioco, tecniche, politiche, sociali e specifiche del progetto. Queste forze sono probabilmente in tensione e dovrebbero essere chiamate come tali.]
|
|
630
|
+
|
|
631
|
+
**Decisione**:
|
|
632
|
+
|
|
633
|
+
[Descrivi la nostra risposta a queste forze. Qui prendiamo la nostra decisione.]
|
|
634
|
+
|
|
635
|
+
**Conseguenze**:
|
|
636
|
+
|
|
637
|
+
Positive:
|
|
638
|
+
- [Beneficio 1]
|
|
639
|
+
- [Beneficio 2]
|
|
640
|
+
|
|
641
|
+
Negative:
|
|
642
|
+
- [Compromesso 1]
|
|
643
|
+
- [Compromesso 2]
|
|
644
|
+
|
|
645
|
+
Rischi:
|
|
646
|
+
- [Rischio 1 e mitigazione]
|
|
647
|
+
|
|
648
|
+
### ADR-002: [Altra Decisione]
|
|
649
|
+
|
|
650
|
+
[Struttura simile]
|
|
651
|
+
|
|
652
|
+
## Categorie di Decisioni
|
|
653
|
+
|
|
654
|
+
### Decisioni Strutturali
|
|
655
|
+
|
|
656
|
+
| Decisione | Motivazione | Data |
|
|
657
|
+
|-----------|-------------|------|
|
|
658
|
+
| [Microservices vs Monolith] | [Perche scelto] | [Data] |
|
|
659
|
+
|
|
660
|
+
### Decisioni Tecnologiche
|
|
661
|
+
|
|
662
|
+
| Componente | Tecnologia | Alternative Considerate | Perche Scelta |
|
|
663
|
+
|------------|------------|------------------------|---------------|
|
|
664
|
+
| [Backend] | [Node.js] | [Python, Java] | [Motivazioni] |
|
|
665
|
+
|
|
666
|
+
### Decisioni di Processo
|
|
667
|
+
|
|
668
|
+
| Decisione | Impatto | Data |
|
|
669
|
+
|-----------|---------|------|
|
|
670
|
+
| [Metodologia Agile] | [Come influenza l'architettura] | [Data] |
|
|
671
|
+
|
|
672
|
+
## Decisioni Deprecate
|
|
673
|
+
|
|
674
|
+
| Decisione | Data Deprecazione | Motivo | Sostituita Da |
|
|
675
|
+
|-----------|-------------------|--------|---------------|
|
|
676
|
+
| [Vecchia decisione] | [Data] | [Perche deprecata] | [ADR-XXX] |
|
|
677
|
+
`;
|
|
678
|
+
}
|
|
679
|
+
function getQualityRequirementsTemplate() {
|
|
680
|
+
return `# 10. Requisiti di Qualita
|
|
681
|
+
|
|
682
|
+
**Scopo**: Definisce i requisiti di qualita con scenari concreti.
|
|
683
|
+
|
|
684
|
+
## Albero della Qualita
|
|
685
|
+
|
|
686
|
+
### Obiettivi di Qualita di Alto Livello
|
|
687
|
+
|
|
688
|
+
\`\`\`
|
|
689
|
+
Qualita
|
|
690
|
+
+-- Prestazioni
|
|
691
|
+
| +-- Tempo di risposta
|
|
692
|
+
| +-- Throughput
|
|
693
|
+
+-- Sicurezza
|
|
694
|
+
| +-- Autenticazione
|
|
695
|
+
| +-- Privacy dei dati
|
|
696
|
+
+-- Affidabilita
|
|
697
|
+
| +-- Disponibilita
|
|
698
|
+
| +-- Tolleranza ai guasti
|
|
699
|
+
+-- Manutenibilita
|
|
700
|
+
+-- Testabilita
|
|
701
|
+
+-- Modificabilita
|
|
702
|
+
\`\`\`
|
|
703
|
+
|
|
704
|
+
## Scenari di Qualita
|
|
705
|
+
|
|
706
|
+
### Scenari di Prestazioni
|
|
707
|
+
|
|
708
|
+
**Scenario 1: Tempo di Risposta a Carico Normale**
|
|
709
|
+
|
|
710
|
+
| Aspetto | Descrizione |
|
|
711
|
+
|---------|-------------|
|
|
712
|
+
| Scenario | L'utente richiede dati sotto carico normale |
|
|
713
|
+
| Sorgente | Utente finale |
|
|
714
|
+
| Stimolo | Richiesta HTTP all'API |
|
|
715
|
+
| Ambiente | Operazioni normali, 100 utenti concorrenti |
|
|
716
|
+
| Risposta | Il sistema restituisce i dati |
|
|
717
|
+
| Misura | 95esimo percentile tempo di risposta < 200ms |
|
|
718
|
+
|
|
719
|
+
**Scenario 2: Gestione del Carico di Picco**
|
|
720
|
+
|
|
721
|
+
| Aspetto | Descrizione |
|
|
722
|
+
|---------|-------------|
|
|
723
|
+
| Scenario | Sistema sotto carico di picco |
|
|
724
|
+
| Sorgente | Utenti multipli |
|
|
725
|
+
| Stimolo | 1000 richieste concorrenti |
|
|
726
|
+
| Ambiente | Ore di picco |
|
|
727
|
+
| Risposta | Il sistema elabora tutte le richieste |
|
|
728
|
+
| Misura | Nessuna richiesta fallisce, tempo di risposta < 1s |
|
|
729
|
+
|
|
730
|
+
### Scenari di Sicurezza
|
|
731
|
+
|
|
732
|
+
**Scenario 3: Tentativo di Accesso Non Autorizzato**
|
|
733
|
+
|
|
734
|
+
| Aspetto | Descrizione |
|
|
735
|
+
|---------|-------------|
|
|
736
|
+
| Scenario | Utente non autorizzato tenta di accedere a risorsa protetta |
|
|
737
|
+
| Sorgente | Attaccante esterno |
|
|
738
|
+
| Stimolo | Richiesta HTTP senza token valido |
|
|
739
|
+
| Ambiente | Operazioni normali |
|
|
740
|
+
| Risposta | Il sistema nega l'accesso |
|
|
741
|
+
| Misura | Restituisce 401, registra il tentativo, nessun dato esposto |
|
|
742
|
+
|
|
743
|
+
### Scenari di Affidabilita
|
|
744
|
+
|
|
745
|
+
**Scenario 4: Recupero da Guasto del Servizio**
|
|
746
|
+
|
|
747
|
+
| Aspetto | Descrizione |
|
|
748
|
+
|---------|-------------|
|
|
749
|
+
| Scenario | La connessione al database fallisce |
|
|
750
|
+
| Sorgente | Guasto dell'infrastruttura |
|
|
751
|
+
| Stimolo | Il database diventa non disponibile |
|
|
752
|
+
| Ambiente | Operazioni normali |
|
|
753
|
+
| Risposta | Il sistema continua a operare con dati in cache |
|
|
754
|
+
| Misura | Degradazione del servizio < 5%, recupero < 30s |
|
|
755
|
+
|
|
756
|
+
### Scenari di Manutenibilita
|
|
757
|
+
|
|
758
|
+
**Scenario 5: Aggiunta di Nuova Funzionalita**
|
|
759
|
+
|
|
760
|
+
| Aspetto | Descrizione |
|
|
761
|
+
|---------|-------------|
|
|
762
|
+
| Scenario | Lo sviluppatore aggiunge un nuovo endpoint API |
|
|
763
|
+
| Sorgente | Team di sviluppo |
|
|
764
|
+
| Stimolo | Nuovo requisito |
|
|
765
|
+
| Ambiente | Sviluppo |
|
|
766
|
+
| Risposta | La funzionalita viene aggiunta |
|
|
767
|
+
| Misura | < 2 giorni, < 5 file modificati, i test passano |
|
|
768
|
+
|
|
769
|
+
## Prioritizzazione dei Requisiti di Qualita
|
|
770
|
+
|
|
771
|
+
| Attributo di Qualita | Priorita | Target |
|
|
772
|
+
|---------------------|----------|--------|
|
|
773
|
+
| Disponibilita | Alta | 99.9% uptime |
|
|
774
|
+
| Tempo di risposta | Alta | < 200ms (p95) |
|
|
775
|
+
| Sicurezza | Critica | Zero violazioni dati |
|
|
776
|
+
| Manutenibilita | Media | Copertura test > 80% |
|
|
777
|
+
| Usabilita | Media | Successo task utente > 95% |
|
|
778
|
+
`;
|
|
779
|
+
}
|
|
780
|
+
function getTechnicalRisksTemplate() {
|
|
781
|
+
return `# 11. Rischi e Debito Tecnico
|
|
782
|
+
|
|
783
|
+
**Scopo**: Documenta problemi noti, rischi e debito tecnico.
|
|
784
|
+
|
|
785
|
+
## Rischi
|
|
786
|
+
|
|
787
|
+
### Matrice di Valutazione dei Rischi
|
|
788
|
+
|
|
789
|
+
| Rischio | Probabilita | Impatto | Severita | Stato |
|
|
790
|
+
|---------|-------------|---------|----------|-------|
|
|
791
|
+
| [Rischio 1] | [Alta/Media/Bassa] | [Alta/Media/Bassa] | [Critica/Alta/Media/Bassa] | [Aperto/Mitigato] |
|
|
792
|
+
|
|
793
|
+
### Rischi Dettagliati
|
|
794
|
+
|
|
795
|
+
**Rischio 1: [Titolo del Rischio]**
|
|
796
|
+
|
|
797
|
+
- **Descrizione**: [Qual e il rischio]
|
|
798
|
+
- **Probabilita**: [Alta/Media/Bassa]
|
|
799
|
+
- **Impatto**: [Alta/Media/Bassa - e cosa succede]
|
|
800
|
+
- **Mitigazione**: [Cosa stiamo facendo al riguardo]
|
|
801
|
+
- **Piano di contingenza**: [Piano se il rischio si materializza]
|
|
802
|
+
- **Responsabile**: [Chi e responsabile]
|
|
803
|
+
- **Stato**: [Aperto/In mitigazione/Chiuso]
|
|
804
|
+
|
|
805
|
+
**Rischio 2: [Titolo]**
|
|
806
|
+
|
|
807
|
+
[Struttura simile]
|
|
808
|
+
|
|
809
|
+
## Debito Tecnico
|
|
810
|
+
|
|
811
|
+
### Registro del Debito
|
|
812
|
+
|
|
813
|
+
| Voce | Tipo | Impatto | Sforzo | Priorita |
|
|
814
|
+
|------|------|---------|--------|----------|
|
|
815
|
+
| [Debito 1] | [Codice/Architettura/Testing] | [Alta/Media/Bassa] | [Giorni] | [1-5] |
|
|
816
|
+
|
|
817
|
+
### Voci di Debito Dettagliate
|
|
818
|
+
|
|
819
|
+
**Debito 1: [Titolo]**
|
|
820
|
+
|
|
821
|
+
- **Descrizione**: [Cosa deve essere sistemato]
|
|
822
|
+
- **Perche esiste**: [Come e successo]
|
|
823
|
+
- **Impatto**: [Quali problemi causa]
|
|
824
|
+
- **Soluzione proposta**: [Come sistemarlo]
|
|
825
|
+
- **Stima dello sforzo**: [Tempo necessario]
|
|
826
|
+
- **Priorita**: [Quando dovremmo sistemarlo]
|
|
827
|
+
|
|
828
|
+
### Piano di Riduzione del Debito
|
|
829
|
+
|
|
830
|
+
| Trimestre | Debito da Affrontare | Impatto Atteso |
|
|
831
|
+
|-----------|---------------------|----------------|
|
|
832
|
+
| Q1 2024 | [Voci 1, 2] | [Miglioramento in X] |
|
|
833
|
+
|
|
834
|
+
## Problemi Noti
|
|
835
|
+
|
|
836
|
+
### Problemi Aperti
|
|
837
|
+
|
|
838
|
+
| Problema | Severita | Workaround | Data Target di Risoluzione |
|
|
839
|
+
|----------|----------|------------|---------------------------|
|
|
840
|
+
| [Problema 1] | [Alta/Media/Bassa] | [Se disponibile] | [Data] |
|
|
841
|
+
|
|
842
|
+
### Limitazioni
|
|
843
|
+
|
|
844
|
+
| Limitazione | Impatto | Motivazione | Piani Futuri |
|
|
845
|
+
|-------------|---------|-------------|--------------|
|
|
846
|
+
| [Limitazione 1] | [Effetto] | [Perche esiste] | [Quando/se affrontarla] |
|
|
847
|
+
|
|
848
|
+
## Vulnerabilita di Sicurezza
|
|
849
|
+
|
|
850
|
+
### Vulnerabilita Note
|
|
851
|
+
|
|
852
|
+
| CVE | Componente | Severita | Stato | Mitigazione |
|
|
853
|
+
|-----|------------|----------|-------|-------------|
|
|
854
|
+
| [CVE-ID] | [Libreria] | [Critica/Alta/Media] | [Aperta/Risolta] | [Azioni intraprese] |
|
|
855
|
+
|
|
856
|
+
## Problemi di Prestazioni
|
|
857
|
+
|
|
858
|
+
| Problema | Impatto | Workaround | Piano di Risoluzione |
|
|
859
|
+
|----------|---------|------------|---------------------|
|
|
860
|
+
| [Problema] | [Impatto sugli utenti] | [Soluzione temporanea] | [Soluzione permanente] |
|
|
861
|
+
`;
|
|
862
|
+
}
|
|
863
|
+
function getGlossaryTemplate() {
|
|
864
|
+
return `# 12. Glossario
|
|
865
|
+
|
|
866
|
+
**Scopo**: Definisce termini importanti di business e tecnici per garantire una terminologia coerente.
|
|
867
|
+
|
|
868
|
+
## Termini di Business
|
|
869
|
+
|
|
870
|
+
| Termine | Definizione |
|
|
871
|
+
|---------|-------------|
|
|
872
|
+
| [Termine Business 1] | [Definizione chiara e concisa] |
|
|
873
|
+
| [Termine Business 2] | [Definizione] |
|
|
874
|
+
|
|
875
|
+
## Termini Tecnici
|
|
876
|
+
|
|
877
|
+
| Termine | Definizione | Sinonimi |
|
|
878
|
+
|---------|-------------|----------|
|
|
879
|
+
| [Termine Tecnico 1] | [Definizione] | [Nomi alternativi] |
|
|
880
|
+
| [Termine Tecnico 2] | [Definizione] | [Nomi alternativi] |
|
|
881
|
+
|
|
882
|
+
## Abbreviazioni e Acronimi
|
|
883
|
+
|
|
884
|
+
| Abbreviazione | Nome Completo | Contesto |
|
|
885
|
+
|---------------|---------------|----------|
|
|
886
|
+
| API | Application Programming Interface | [Quando/dove usato] |
|
|
887
|
+
| SLA | Service Level Agreement | [Contesto] |
|
|
888
|
+
| JWT | JSON Web Token | [Uso] |
|
|
889
|
+
|
|
890
|
+
## Concetti di Business
|
|
891
|
+
|
|
892
|
+
| Concetto | Descrizione | Termini Correlati |
|
|
893
|
+
|----------|-------------|-------------------|
|
|
894
|
+
| [Concetto 1] | [Spiegazione dettagliata] | [Concetti correlati] |
|
|
895
|
+
|
|
896
|
+
## Termini Specifici del Sistema
|
|
897
|
+
|
|
898
|
+
| Termine | Definizione | Esempio |
|
|
899
|
+
|---------|-------------|---------|
|
|
900
|
+
| [Termine Sistema 1] | [Cosa significa in questo sistema] | [Esempio di utilizzo] |
|
|
901
|
+
|
|
902
|
+
## Termini Deprecati
|
|
903
|
+
|
|
904
|
+
| Vecchio Termine | Sostituito Da | Motivo |
|
|
905
|
+
|-----------------|---------------|--------|
|
|
906
|
+
| [Vecchio termine] | [Nuovo termine] | [Perche cambiato] |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
**Nota**: Mantieni questo glossario aggiornato man mano che emergono nuovi termini. Fai riferimento a questa sezione da altre parti della documentazione quando vengono usati questi termini.
|
|
911
|
+
`;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Get the Italian workflow guide
|
|
915
|
+
*/
|
|
916
|
+
export function getWorkflowGuide() {
|
|
917
|
+
return `# Guida al Workflow della Documentazione di Architettura arc42
|
|
918
|
+
|
|
919
|
+
## Panoramica
|
|
920
|
+
|
|
921
|
+
Questa guida ti aiuta a documentare la tua architettura software usando il template arc42. Il template arc42 e un template pratico e collaudato per documentare architetture software e di sistema.
|
|
922
|
+
|
|
923
|
+
## Lingue Disponibili
|
|
924
|
+
|
|
925
|
+
Questo arc42 MCP Server supporta piu lingue per la documentazione:
|
|
926
|
+
|
|
927
|
+
| Codice | Lingua | Nome Nativo |
|
|
928
|
+
|--------|--------|-------------|
|
|
929
|
+
| EN | Inglese | English |
|
|
930
|
+
| DE | Tedesco | Deutsch |
|
|
931
|
+
| CZ | Ceco | Cestina |
|
|
932
|
+
| ES | Spagnolo | Espanol |
|
|
933
|
+
| FR | Francese | Francais |
|
|
934
|
+
| IT | Italiano | Italiano |
|
|
935
|
+
| NL | Olandese | Nederlands |
|
|
936
|
+
| PT | Portoghese | Portugues |
|
|
937
|
+
| RU | Russo | Russkiy |
|
|
938
|
+
| UKR | Ucraino | Ukrayinska |
|
|
939
|
+
| ZH | Cinese | Zhongwen |
|
|
940
|
+
|
|
941
|
+
## Per Iniziare
|
|
942
|
+
|
|
943
|
+
### Passo 1: Inizializza il Workspace
|
|
944
|
+
|
|
945
|
+
Usa lo strumento \`arc42-init\` per creare il tuo workspace di documentazione:
|
|
946
|
+
|
|
947
|
+
\`\`\`
|
|
948
|
+
arc42-init(projectName: "Il Mio Progetto", language: "IT")
|
|
949
|
+
\`\`\`
|
|
950
|
+
|
|
951
|
+
Puoi specificare una lingua diversa usando il codice ISO della lingua.
|
|
952
|
+
|
|
953
|
+
### Passo 2: Controlla lo Stato
|
|
954
|
+
|
|
955
|
+
Usa \`arc42-status\` per vedere lo stato attuale della tua documentazione:
|
|
956
|
+
|
|
957
|
+
\`\`\`
|
|
958
|
+
arc42-status()
|
|
959
|
+
\`\`\`
|
|
960
|
+
|
|
961
|
+
### Passo 3: Genera Template per le Sezioni
|
|
962
|
+
|
|
963
|
+
Usa \`generate-template\` per ottenere template dettagliati per ogni sezione:
|
|
964
|
+
|
|
965
|
+
\`\`\`
|
|
966
|
+
generate-template(section: "01_introduction_and_goals", language: "IT")
|
|
967
|
+
\`\`\`
|
|
968
|
+
|
|
969
|
+
## Le 12 Sezioni arc42
|
|
970
|
+
|
|
971
|
+
1. **Introduzione e Obiettivi** - Inizia da qui! Definisci cosa stai costruendo e perche.
|
|
972
|
+
2. **Vincoli dell'Architettura** - Cosa NON puoi fare?
|
|
973
|
+
3. **Contesto e Ambito** - Cosa e dentro e cosa e fuori?
|
|
974
|
+
4. **Strategia di Soluzione** - Approccio di alto livello per risolvere il problema.
|
|
975
|
+
5. **Vista dei Building Block** - Struttura statica del tuo sistema.
|
|
976
|
+
6. **Vista Runtime** - Comportamento dinamico e scenari.
|
|
977
|
+
7. **Vista di Deployment** - Come viene deployato e operato?
|
|
978
|
+
8. **Concetti Trasversali** - Pattern usati in tutto il sistema.
|
|
979
|
+
9. **Decisioni Architetturali** - Decisioni importanti e le loro motivazioni.
|
|
980
|
+
10. **Requisiti di Qualita** - Scenari di qualita concreti.
|
|
981
|
+
11. **Rischi e Debito Tecnico** - Cosa potrebbe andare storto?
|
|
982
|
+
12. **Glossario** - Definisci i tuoi termini.
|
|
983
|
+
|
|
984
|
+
## Best Practice
|
|
985
|
+
|
|
986
|
+
1. **Inizia dalla Sezione 1** - Comprendere gli obiettivi e fondamentale
|
|
987
|
+
2. **Mantienilo conciso** - arc42 e pragmatico, non burocratico
|
|
988
|
+
3. **Usa diagrammi** - Un'immagine vale piu di mille parole
|
|
989
|
+
4. **Documenta le decisioni** - Il te stesso del futuro ti ringraziera
|
|
990
|
+
5. **Itera** - La documentazione dell'architettura non e mai "finita"
|
|
991
|
+
|
|
992
|
+
## Strumenti Disponibili
|
|
993
|
+
|
|
994
|
+
- \`arc42-init\` - Inizializza il workspace di documentazione
|
|
995
|
+
- \`arc42-status\` - Controlla lo stato della documentazione
|
|
996
|
+
- \`generate-template\` - Genera template per le sezioni
|
|
997
|
+
- \`update-section\` - Aggiorna il contenuto delle sezioni
|
|
998
|
+
- \`get-section\` - Leggi il contenuto delle sezioni
|
|
999
|
+
- \`arc42-workflow-guide\` - Mostra questa guida
|
|
1000
|
+
|
|
1001
|
+
## Risorse
|
|
1002
|
+
|
|
1003
|
+
- [Sito web arc42](https://arc42.org/)
|
|
1004
|
+
- [Documentazione arc42](https://docs.arc42.org/)
|
|
1005
|
+
- [Esempi arc42](https://arc42.org/examples)
|
|
1006
|
+
`;
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Get the Italian README content
|
|
1010
|
+
*/
|
|
1011
|
+
export function getReadmeContent(projectName) {
|
|
1012
|
+
const name = projectName || 'Progetto';
|
|
1013
|
+
return `# ${name} - Documentazione dell'Architettura
|
|
1014
|
+
|
|
1015
|
+
Questa directory contiene la documentazione dell'architettura per ${name}, basata sul template arc42.
|
|
1016
|
+
|
|
1017
|
+
## Struttura
|
|
1018
|
+
|
|
1019
|
+
- \`sections/\` - File markdown delle singole sezioni (12 sezioni)
|
|
1020
|
+
- \`images/\` - Diagrammi e immagini
|
|
1021
|
+
- \`arc42-documentation.md\` - Documentazione principale combinata
|
|
1022
|
+
- \`config.yaml\` - Configurazione
|
|
1023
|
+
|
|
1024
|
+
## Le 12 Sezioni arc42
|
|
1025
|
+
|
|
1026
|
+
1. **Introduzione e Obiettivi** - Requisiti, obiettivi di qualita, stakeholder
|
|
1027
|
+
2. **Vincoli dell'Architettura** - Vincoli tecnici e organizzativi
|
|
1028
|
+
3. **Contesto e Ambito** - Contesto di business e tecnico
|
|
1029
|
+
4. **Strategia di Soluzione** - Decisioni e strategie fondamentali
|
|
1030
|
+
5. **Vista dei Building Block** - Decomposizione statica
|
|
1031
|
+
6. **Vista Runtime** - Comportamento dinamico
|
|
1032
|
+
7. **Vista di Deployment** - Infrastruttura e deployment
|
|
1033
|
+
8. **Concetti Trasversali** - Regole e approcci trasversali
|
|
1034
|
+
9. **Decisioni Architetturali** - Decisioni importanti (ADR)
|
|
1035
|
+
10. **Requisiti di Qualita** - Albero della qualita e scenari
|
|
1036
|
+
11. **Rischi e Debito Tecnico** - Problemi noti e rischi
|
|
1037
|
+
12. **Glossario** - Termini importanti
|
|
1038
|
+
|
|
1039
|
+
## Per Iniziare
|
|
1040
|
+
|
|
1041
|
+
1. Inizia dalla Sezione 1: Introduzione e Obiettivi
|
|
1042
|
+
2. Lavora attraverso le sezioni iterativamente
|
|
1043
|
+
3. Usa diagrammi per illustrare i concetti
|
|
1044
|
+
4. Concentrati sulle decisioni, non sui dettagli implementativi
|
|
1045
|
+
|
|
1046
|
+
## Generare la Documentazione
|
|
1047
|
+
|
|
1048
|
+
Usa gli strumenti MCP per:
|
|
1049
|
+
- Controllare lo stato: \`arc42-status\`
|
|
1050
|
+
- Generare template: \`generate-template\`
|
|
1051
|
+
- Aggiornare sezioni: \`update-section\`
|
|
1052
|
+
|
|
1053
|
+
## Risorse
|
|
1054
|
+
|
|
1055
|
+
- [Sito web arc42](https://arc42.org/)
|
|
1056
|
+
- [Documentazione arc42](https://docs.arc42.org/)
|
|
1057
|
+
- [Esempi arc42](https://arc42.org/examples)
|
|
1058
|
+
`;
|
|
1059
|
+
}
|
|
1060
|
+
//# sourceMappingURL=templates.js.map
|