Requisiti funzionali descrivono cosa il sistema deve fare: operazioni aziendali, processi, scenari utente — cioè funzionalità.
Requisiti non funzionali definiscono come il sistema deve funzionare: vincoli, parametri di qualità, prestazioni, sicurezza, usabilità, ecc. Questi requisiti influenzano spesso la scelta delle tecnologie, la scalabilità e la robustezza della soluzione.
Perché è importante distinguere:
Caratteristiche chiave:
L'"usabilità dell'interfaccia" rientra nei requisiti funzionali?
No, è un parametro non funzionale (usability). Un requisito funzionale è la presenza, ad esempio, di un pulsante "Salva", un requisito non funzionale è la velocità di risposta e la facilità d'uso.
Si possono ignorare i requisiti non funzionali se non sono esplicitamente indicati dal cliente?
No. L'analista è tenuto a discutere e formalizzare anche i requisiti non funzionali impliciti, altrimenti aumenta il rischio di ritardi nel lancio, lamentele degli utenti e costi aggiuntivi.
“Il sistema deve essere in grado di elaborare 1000 richieste al minuto”. È un requisito funzionale?
No, è un requisito non funzionale — caratteristica di prestazione.
Casi negativi: Il sistema ha implementato completamente le funzionalità aziendali dichiarate, ma sotto carico elevato iniziava a "bloccarsi", poiché le prestazioni non erano state considerate affatto. Pro:
Casi positivi: L'analista insieme all'architetto e al cliente ha fissato nei requisiti il carico massimo, i criteri di risposta e ha condotto test di carico. Pro: