Unified Process
Conosciuto nelle sue versioni commerciali anche come:
- USDP Unified Software Development Process
- RUP Rational Unified Process
È un modello di processo definito dagli stessi creatori di UML, é un modello Orientato agli Oggetti (“OO”), quindi ottimo da utilizzare in contemporanea. Esistono anche altri modelli OO come ad esempio “Object Oriented Software Process” (OOSP)
In base al livello di astrazione nel quale ci troviamo è un meta-modello che può essere defininito come:
- Sequenziale: Dato che si compone di 4 nuove fasi che vengono ripetute in sequenza, e vengono chiamate:
- Inception;
- Elaboration;
- Construction;
- Transition.
- Iterativo: Ogni fase è svolta in maniera iterativa. In ogni iterazione si ripetono (in modo più o meno presente) le diverse attività che già conosciamo.
- Incrementale: Alla fine delle 4 fasi si arriva ad una “relase” e successivamente si riprende dalla prima (in modo iterativo, appunto) per proseguire con lo sviluppo.
Fasi
Le diverse righe rappresentano le attività che conosciamo, viste in tutti gli altri modelli, e in questo modello vengono chiamate workflow o activity. Questi workflow non si susseguono come siamo stati abituati a vedere, ma si sovrappongono (over-lapping) all’interno delle diverse fasi. È possibile definire lo scopo di una fase ma non in maniera precisa, ad esempio la fase di construction rappresenta prevalentemente la parte di creazione del codice all’interno del progetto, ma come è possibile notare nel grafico anche tutti gli altri workflows sono presenti anche se in modo meno predominante
Questo schema permette di comprendere la complessità di un processo, ma che riconosce la necessità di un rigore, ovvero dei momenti in cui è necessario concentrarsi in modo maggiore su certe attività, infatti sono presenti delle mile-stone, ovvero un documento che indica la fine di una certa fase (si intende la fine della fase nell’iterazione corrente, infatti tutte le fasi vengono rieseguite ad ogni iterazione).
Le attività sono tutte troppo interesecanti tra loro, per questo motivo è definito come meta-modello, infatti non potrà essere seguito alla lettera ma dovrà essere configurato in base alle esigenze del progetto e del team di sviluppo. Può essere addirittura reso agile con le opportune modifiche.