Analisi dei requisiti
# Analisi dei requisiti

Nell'ambito dell'ingegneria dei requisiti, l'analisi dei requisiti è un'attività preliminare allo sviluppo (o alla modifica) di un sistema software, il cui scopo è quello di definire le funzionalità che il nuovo prodotto (o il prodotto modificato) deve offrire, ovvero i requisiti che devono essere soddisfatti dal software sviluppato. L'analisi dei requisiti è una fase presente essenzialmente in tutti i modelli di ciclo di vita del software, pur con diverse enfasi e diverse connotazioni.

## Descrizione

Nel tradizionale modello a cascata, l'analisi dei requisiti è la prima fase del processo di sviluppo, e deve concludersi con la stesura di una dettagliata specifica dei requisiti che descrive le funzionalità del nuovo software nella loro interezza; tale specifica guida le fasi successive di sviluppo, che complessivamente sono volte a realizzare quanto previsto da tale specifica.

L'analisi dei requisiti avviene normalmente come negoziazione fra individui legati allo sviluppo (analisti) e i clienti, oppure (nel caso di pacchetti software pensati per la grande distribuzione) fra analisti e responsabili del marketing. Tale dialogo è tutt'altro che semplice: gli analisti possono avere difficoltà a comprendere il linguaggio e il contesto culturale del cliente, e viceversa; inoltre lo stesso cliente potrebbe aver difficoltà a mettere a fuoco i propri reali bisogni e di conseguenza le richieste o le proposte da mettere sul tavolo della discussione.

Proprio a causa di queste difficoltà, i modelli di ciclo di vita del software moderni hanno abbandonato l'assunzione che sia possibile identificare i requisiti di un sistema software a priori, e tendono a privilegiare approcci iterativi in cui i requisiti vengono esplicitati gradualmente, per esempio coinvolgendo l'utente nella prova di prototipi e rilasci parziali del sistema in corso di sviluppo.

Il documento principale prodotto dall'analisi dei requisiti è la specifica dei requisiti; se la metodologia e il modello di ciclo di vita del software utilizzati lo prevedono, essa può addirittura portare già alla stesura del manuale d'uso del prodotto da sviluppare. Una metodologia standard non specifica di un dominio è la definizione dei requisiti Furps. Un linguaggio molto utilizzato per la visualizzazione dei requisiti software è UML (Unified Modeling Language). L'analisi dei requisiti è spesso accompagnata da altre attività di analisi come l'analisi del dominio o l'analisi dei costi e benefici.

