Specifica dei requisiti
# Specifica dei requisiti

Nell'ingegneria del software la Specifica Requisiti Software (abbreviato SRS, dall'inglese Software Requirements Specification) è una descrizione completa del comportamento di un sistema software da sviluppare.

## Caratteristiche

Solitamente un analista funzionale è incaricato dall'azienda sviluppatrice del software di recepire i requisiti, attraverso opportuni incontri con il committente. Dopo aver analizzato tali requisiti è richiesto all'analista funzionale di redigere un documento sul quale sono messe per iscritto tutte le specifiche del software da realizzare.

Oltre ai predetti elementi il documento, contiene anche requisiti non funzionali, e può includere un insieme di casi di utilizzo che descrivono le interazioni che gli utenti hanno con il software.

I requisiti non funzionali impongono vincoli in materia di progettazione o esecuzione (come i requisiti prestazionali, gli standard qualitativi, oppure i vincoli di progettazione e stabilità).

## Contesto di utilizzo

SRS rappresenta un sotto-campo dell'ingegneria del software che si occupa del concepimento, dell'analisi, della specifica, e della validazione dei requisiti per il software. Il documento SRS elenca tutti i requisiti necessari per lo sviluppo del progetto. Per poter ottenere i requisiti di cui abbiamo bisogno, è necessaria una comprensione chiara e completa dei prodotti da sviluppare. Il documento si prepara soltanto dopo comunicazioni dettagliate tra il team di sviluppo e il cliente.

## Struttura di un documento SRS

Di seguito si ha l'esempio dell'organizzazione generale di un documento SRS:

* introduzione
   * scopo
   * definizioni
   * panoramica del sistema
   * riferimenti
* descrizione generale
   * prospettiva del prodotto
   * funzioni del prodotto
   * caratteristiche utente
   * vincoli, ipotesi e dipendenze
* requisiti specifici
   * requisiti dell'interfaccia utente
   * requisiti funzionali
   * requisiti relativi alle prestazioni
   * vincoli di progettazione
   * requisiti logici del database
   * Software System attributes
