Ingegneria del software e Processo Unificato (UP)
Perché il PROCESSO UNIFICATO?
Il processo unificato abbreviato con UP è un processo iterativo molto diffuso, nell’ambito dell’ingegneria del software, per lo sviluppo del software per la costruzione di sistemi orientati agli oggetti.
Il cambiamento è incessante nei progetti software. Infatti, lo sviluppo iterativo è organizzato in una serie di progetti brevi, di lunghezza fissa, chiamate iterazioni; il risultato di ciascun’iterazione è un sistema eseguibile, testato e integrato ma parziale. Ciascuna iterazione comprende la propria mole di attività: di analisi dei requisiti, progettazione, implementazione e test. L’idea principale apprezzata e praticata in UP è lo sviluppo iterativo, evolutivo e adattivo, con timeboxing breve (le iterazioni hanno una lunghezza fissata). L’uso di un processo non adatto può ridurre la qualità o l’utilità del prodotto software che si sta sviluppando, o alzarne i costi.
Vantaggi del PROCESSO UNIFICATO
- Affrontare le problematiche di rischio maggiore e valore elevato nelle iterazioni iniziali
- Impegnare gli utenti continuamente sulla valutazione, il feedback e i requisiti
- Creare un’architettura coesa nelle iterazioni iniziali
- Verificare continuamente la qualità
- Fare della modellazione visuale con il linguaggio UML
- Gestire attentamente i requisiti
- Gestire le richieste di cambiamento e le configurazioni
Fasi del PROCESSO UNIFICATO
Essendo l’UP un processo di sviluppo interattivo e crescente, questo significa che il progetto viene diviso in fasi molto brevi alla fine di ognuna delle quali viene rilasciata una nuova versione migliorata. Per il processo unificato è possibile dunque individuare quattro fasi componenti, e precisamente:
- IDEAZIONE: Visione approssimativa, studio economico, portata, stime approssimative dei costi e dei tempi
- ELABORAZIONE: Visione raffinata, implementazione iterativa del nucleo dell’architettura, risoluzione dei rischi maggiori, identificazione della maggior parte dei requisiti e della portata, stime più realistiche
- COSTRUZIONE: Implementazione iterativa degli elementi rimanenti più facili e a rischio minore e preparazione al rilascio
- TRANSIZIONE: Beta test, rilascio agli utenti