Open Unified Process
# Open Unified Process

Lo Open Unified Process o OpenUP (letteralmente "processo unificato aperto") è un modello di sviluppo del software ispirato al Rational Unified Process (RUP) e rilasciato con licenza open source all'interno dell'Eclipse Process Framework. Descrive best practice di sviluppo del software in accordo con il RUP. Vi sono inclusi lo sviluppo iterativo, l'utilizzo di casi d'uso e scenari come entità guidanti lo sviluppo, l'amministrazione dei rischi e un approccio di sviluppo incentrato sull'architettura. La forma più agile e più leggera di OpenUP, OpenUP/basic, è pensata per piccoli progetti gestiti da piccoli gruppi di lavoro interessati allo sviluppo agile e iterativo (team di 3-6 persone che gestiscono progetti di 3-6 mesi), ossia da team che lavorano nello stesso posto e hanno possibilità di comunicare verbalmente quotidianamente.

## Fasi di OpenUP

OpenUP, così come il RUP, comprende quattro fasi:

* concepimento del progetto
* elaborazione nei dettagli del progetto
* costruzione
* transizione

alla fine di ognuna di queste fasi c'e una milestone in cui si controllano e si misurano i progressi effettuati. Alla fine della fase di concepimento del progetto, si controlla che il progetto sia effettivamente realizzabile; alla fine della fase di elaborazione, si controlla se l'architettura è stata ben definita e i maggiori rischi per il progetto sono stati individuati e neutralizzati; alla fine della fase di costruzione, si verifica se tutte le funzionalità sono state implementate e se si può procedere al beta testing;alla fine della fase di transizione, si controlla se gli obiettivi sono stati raggiunti e se il cliente è soddisfatto.

## Discipline

All'interno di ogni fase si svolgono una serie di lavori (work) che sono raggruppati nelle seguenti discipline:

* Sviluppo dell'architettura del programma
* gestione dei cambiamenti e delle configurazioni del sw
* sviluppo del programma
* gestione del progetto di sviluppo
* identificazione e gestione dei requisiti
* esecuzione dei Test

va sottolineato che nell'OpenUP, così come nel RUP, non è necessario legare una certa disciplina a una specifica iterazione, anche se, ovviamente, alcune discipline sono preponderanti in una fase piuttosto che in un'altra: ad esempio, la modellazione dei requisiti verrà realizzata per lo più durante le fasi di concepimento ed elaborazione del progetto, anche se non è escluso che qualche requisito minore (ad esempio, requisiti non funzionali) siano definiti durante la fase di transizione.

## Ruoli

All'interno del processo di sviluppo ad ogni partecipante viene assegnato un ruolo; i ruoli individuati da OpenUP sono:

* Architetto
* Capo progetto
* Analista
* Tester
* ruolo generico : individua compiti che possono essere svolti da qualunque partecipante al progetto.
* Sviluppatore
* Stakeholder (chiunque abbia interesse alla corretta realizzazione del progetto)

Tali ruoli non vanno pensati come delle mansioni assegnate staticamente, bensì come un semplice aiuto alla corretta organizzazione del lavoro: un membro del team di sviluppo può ricoprire due ruoli contemporaneamente, oppure cambiare ruolo durante la realizzazione del progetto.

