Home
NFR-1: Prestazioni
Descrizione
[NFR-1.01] Le prestazioni definiscono la capacità del sistema di rispondere in modo tempestivo e gestire il throughput atteso. I sistemi DEVONO (MUST) soddisfare target definiti di tempo di risposta e throughput sotto il carico atteso.
Guida
Costruire per le prestazioni
[NFR-1.02] I sistemi DEVONO (MUST) essere progettati tenendo conto delle prestazioni fin dall’inizio:
- Design del database: Considerare strategie di indicizzazione, ottimizzazione delle query e connection pooling per supportare i pattern di carico attesi.
- Strategie di caching: Considerare il caching a più livelli (browser, CDN, applicazione, database) per ridurre i tempi di risposta e il carico del server.
- Gestione delle risorse: Progettare per un uso efficiente della memoria, implementare una corretta pulizia delle risorse ed evitare memory leak.
- Elaborazione asincrona: Utilizzare job in background, code di messaggi e architetture event-driven per gestire operazioni time-consuming senza bloccare le interazioni dell’utente.
- Paginazione dei dati: Implementare la paginazione per dataset di grandi dimensioni per mantenere tempi di risposta accettabili.
Validare le prestazioni
Il load e performance testing valuta come il sistema si comporta in varie condizioni di carico, misurando tempi di risposta, throughput e consumo di risorse.
[NFR-1.03] DEVE (MUST) essere testato sotto carico basso/normale e al carico massimo atteso (si raccomanda di testare fino a 1.5x del picco atteso). [NFR-1.04] I profili di carico DEVONO (MUST) simulare scenari sia normali che eccezionali, includendo tipicamente aumento e diminuzione organica/costante durante il giorno e la settimana, oltre a picchi in cui il carico aumenta rapidamente da un livello basso al picco:
- Tempi di risposta e stabilità per percorsi utente o processi critici
- Impatto della latenza di rete sulla reattività
- Prestazioni delle query del database per operazioni chiave
- Tempi di risposta degli endpoint API
- Pattern di degradazione delle prestazioni all’aumentare del carico
- Utilizzo delle risorse (CPU, memoria, disco, rete)
Misurazione
| Stato |
Criteri |
| 🟢 VERDE |
Soddisfa tutti i target di prestazione definiti sotto carico normale e di picco |
| 🟡 AMBRA |
Alcuni target non soddisfatti o test di carico incompleti |
| 🔴 ROSSO |
Nessun target definito o nessun test di prestazioni eseguito |
Riferimenti