Nel contesto dell'ingegneria dei requisiti, il concetto di "requisito di sistema" si riferisce a un livello di decomposizione. In un sistema sufficientemente complesso, è possibile avere un numero qualsiasi di componenti (in cui un componente potrebbe essere un componente hardware o software). Ogni componente avrebbe i propri requisiti, in genere derivati dai requisiti di sistema, che possono essere utilizzati per verificare il comportamento del componente in isolamento prima dell'integrazione e la verifica e la convalida del sistema nel suo complesso durante il processo di integrazione.
Nei commenti, Robert Harvey menziona un altro tipo di" requisiti di sistema ": le caratteristiche richieste del sistema su cui viene distribuito il software. Questi includono spesso l'hardware, il sistema operativo e forse anche le dipendenze del software. Questi sarebbero spesso basati sui requisiti del sistema tecnico che ho citato sopra.
Un requisito funzionale è una definizione di un risultato del sistema. L'insieme di requisiti funzionali su un sistema o componente definisce cosa fa il sistema. L'opposto di un requisito funzionale è un requisito non funzionale, che definisce gli attributi di un sistema, come affidabilità, tolleranza agli errori, documentazione, sicurezza, testabilità, ecc.
I requisiti di sistema possono essere funzionali o non funzionali e definire il comportamento e gli attributi di un insieme di componenti.