Con ingegneria dei requisiti s'intende la descrizione dei servizi che il sistema dovrà fornire e dei vincoli operativi che dovrà rispettare.
Requisiti Utente:
Espressi utilizzando il linguaggio naturale, spesso affiancati da diagrammi. Comprensibili da tutti gli utenti, anche senza background tecnico.
Spesso letti da coloro non coinvolti direttamente nello sviluppo del sistema
Requisiti di sistema:
Descrizione più dettagliata, il documento dei requisiti è detto specifica funzionale. I lettori sono coloro coinvolti direttamente nello sviluppo del sistema.
Requisiti funzionali:
Descrivono ciò che il sistema dovrebbe fare.
Dipendono dal tipo di software che si sviluppa, dal tipo di utenti.
Devono essere completi e consistenti, non devono presentare ambiguità.
Requisiti non funzionali:
Non riguardano le funzionalità offerte dal sistema.
Definiscono le proprietà offerte dal sistema ( affidabilità, tempi di risposta, memoria ).
Possono essere più critici di quelli funzionali.
Possono essere classificati in:
Requisiti di Prodotto: prestazioni, efficienza, usabilità.
Requisiti Organizzativi: definiscono la standard di processo da utilizzare, linguaggi di programmazione.