Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un framework (schema generale) di processo, da adattare alle diverse tipologie di progetto. G.Raiss - A.Apolloni - 4 maggio 2001 2 Origini Deriva dall unificazione dei tre più usati processi di analisi, progettazione e produzione del software: Il metodo di Booch Il metodo di Rumbaugh (OMT) Il metodo di di Jacobson (OOSE-Objectory) G.Raiss - A.Apolloni - 4 maggio 2001 3
Caratteristiche... Basato sulle 6 best practices dello sviluppo del software: Sviluppare software in modo iterativo ed incrementale. Gestire i requisiti. Utilizzare architetture basate su componenti. Modellare il software in modo visuale. Verificare la qualità del software. Controllare le modifiche apportate al software. G.Raiss - A.Apolloni - 4 maggio 2001 4 Iterativo ed incrementale... L approccio iterativo offre una serie di soluzioni ai problemi dello sviluppo sw: I problemi sono evidenziati all inizio del ciclo di vita quando è ancora possibile prendere provvedimenti. Viene incoraggiato lo scambio di informazioni con gli utenti permettendo l identificazione dei requisiti reali del sistema. G.Raiss - A.Apolloni - 4 maggio 2001 5...iterativo ed incrementale... Gli sviluppatori sono costretti a concentrarsi sugli aspetti critici del progetto. Il test eseguito continuamente ad ogni iterazione permette una valutazione oggettiva dello stato di avanzamento del progetto. Le incoerenze tra requisiti, progetto ed implementazione vengono identificate molto presto. Il carico del gruppo di lavoro è suddiviso nel tempo in modo più uniforme. G.Raiss - A.Apolloni - 4 maggio 2001 6
...iterativo ed incrementale... Il processo può essere migliorato nel tempo grazie alle competenze acquisite. In ogni iterazione si ripetono, in misura e percentuali diverse, le medesime tipologie di attività (es. analisi dei requisiti, design, implementazione, test). La realizzazione (ed eventualmente il rilascio) dell applicazione avviene in modo progressivo G.Raiss - A.Apolloni - 4 maggio 2001 7 Verificare la qualità La verifica della qualità del sw consente di: Rendere oggettiva l analisi dello stato del progetto. Evidenziare incoerenze tra requisiti, progetto ed implementazione. Concentrarsi sulle aree ad alto rischio. G.Raiss - A.Apolloni - 4 maggio 2001 8 Use case driven... La definizione delle modalità d uso del sistema (casi d uso), guida tutte le attività del processo. I casi d uso costituiscono la base per: la definizione e la negoziazione dei requisiti; la validazione degli stessi da parte del committente; la progettazione dell architettura e dei componenti; la definizione dei test di accettazione; G.Raiss - A.Apolloni - 4 maggio 2001 9
Il processo sequenziale... I tradizionali processi sequenziali sono basati sulle seguenti fasi: Capire completamente il problema che deve essere risolto, i suoi requisiti ed i suoi vincoli. Progettare una soluzione che soddisfi tutti i requisiti ed i vincoli. Implementare la soluzione. Verificare che l implementazione soddisfi i requisiti specificati. Consegnare il prodotto finale. G.Raiss - A.Apolloni - 4 maggio 2001 10...il processo sequenziale... Il processo sequenziale fallisce perchè basato su ipotesi errate: I requisiti non muteranno. I requisiti si possono descrivere con un dettaglio ed una precisione sufficiente. E possibile sviluppare un progetto completo prima di procedere. G.Raiss - A.Apolloni - 4 maggio 2001 11...il processo sequenziale Il processo sequenziale non funziona su progetti con un elevato grado di innovazione, incertezza e rischio. Una soluzione: il processo iterativo! G.Raiss - A.Apolloni - 4 maggio 2001 12
Il modello del RUP... Il RUP è rappresentato utilizzando 4 elementi principali di modellazione: I ruoli, il chi. Le attività, il come. Gli elaborati, il che cosa. I Workflow, il quando. G.Raiss - A.Apolloni - 4 maggio 2001 13...il modello del RUP... Il termine ruolo definisce il comportamento e le responsabilità di un individuo o di un gruppo di individui che lavorano in team. Il comportamento è espresso in termini di attività che la persona con quel ruolo esegue. G.Raiss - A.Apolloni - 4 maggio 2001 14...il modello del RUP Le responsabilità di ogni ruolo sono espresse in termini di elaborati che l individuo con tale ruolo crea, modifica o controlla. Un workflow è una sequenza di attività che produce un risultato con un valore osservabile. G.Raiss - A.Apolloni - 4 maggio 2001 15
Fasi ed iterazioni... Il RUP è composto di fasi ed iterazioni. Una fase è l arco di tempo tra due milestone del processo nel quale sono ben definiti obiettivi da raggiungere e semilavorati da completare e sono prese le decisioni per passare alla fase successiva. G.Raiss - A.Apolloni - 4 maggio 2001 16...fasi ed iterazioni... Ogni fase si compone di un numero di iterazioni. Un iterazione rappresenta un completo ciclo di sviluppo, dalla cattura dei requisiti in analisi all implementazione e test, e porta alla produzione di un oggetto eseguibile. Per ogni iterazione esistono un piano e dei criteri di valutazione. G.Raiss - A.Apolloni - 4 maggio 2001 17...fasi ed iterazioni G.Raiss - A.Apolloni - 4 maggio 2001 18
Le fasi del RUP Inception Elaboration Construction Transition G.Raiss - A.Apolloni - 4 maggio 2001 19 Inception... Verifica la fattibilità tecnica e la giustificazione economica dell intervento. In questa fase vengono definiti: i business case che devono includere i criteri di successo; la gestione dei rischi; la stima delle risorse necessarie; la pianificazione di massima e la schedulazione dei principali milestone. G.Raiss - A.Apolloni - 4 maggio 2001 20...inception In questa fase è comune produrre un prototipo sw con lo scopo di approfondire i concetti. G.Raiss - A.Apolloni - 4 maggio 2001 21
Elaboration... Definisce in dettaglio le caratteristiche funzionali, strutturali e tecniche del sistema. Le decisioni architetturali devono essere prese avendo una conoscenza dell intero sistema e ciò implica la descrizione della maggior parte dei requisiti del sistema stesso. G.Raiss - A.Apolloni - 4 maggio 2001 22...elaboration Per verificare l architettura è necessario implementare un prototipo che dimostri le principali scelte ed implementi use case significativi. G.Raiss - A.Apolloni - 4 maggio 2001 23 Construction Produce in modo incrementale una versione del sistema pronta per i test di accettazione. Ciò implica la descrizione dei requisiti rimanenti e la definizione dei criteri di accettazione e di verifica del sw. G.Raiss - A.Apolloni - 4 maggio 2001 24
Transition Produce una versione del sistema rilasciabile in produzione. Parte con il rilascio di una versione beta sulla quale è necessario effettuare cicli di revisione per correggere bugs, inserire requisiti addizionali (non di rilievo) o completare alcuni requisiti che erano stati posticipati. G.Raiss - A.Apolloni - 4 maggio 2001 25 Le fasi del RUP... Inception ed elaboration rappresentano l attività ingegneristica del ciclo di vita dello sviluppo, mentre construction e transition costituiscono la produzione. G.Raiss - A.Apolloni - 4 maggio 2001 26...le fasi del RUP G.Raiss - A.Apolloni - 4 maggio 2001 27
Output delle fasi... Inception Documenti fattibilità. Elaboration SRS (Specifica dei Requisiti Software). Architettura consolidata e verificata. G.Raiss - A.Apolloni - 4 maggio 2001 28...output delle fasi Construction Versione sistema in pre- produzione (Beta). Transition Versione sistema in produzione. G.Raiss - A.Apolloni - 4 maggio 2001 29 Workflow... Le fasi sono sequenziali, e corrispondono a milestones significativi per Committenti, Utenti, Management. Le tipologie di attività possibili nel processo non sono rigidamente sequenziali, e vengono svolte dal progetto in ogni iterazione. Il numero delle iterazioni dipende dalle scelte del Project Manager e dai rischi del progetto. G.Raiss - A.Apolloni - 4 maggio 2001 30
Attività Business modeling... Analisi e modellazione dei processi utente. Rappresenta un momento di riflessione e conoscenza dei processi e dei loro possibili miglioramenti molti dei quali non legati necessariamente ad automazioni software. G.Raiss - A.Apolloni - 4 maggio 2001 31 Requirements Definizione dei requisiti utente. Questa attività è rivolta alla definizione di cosa il sistema informatico deve fare. Ciò avviene mediante la definizione e modellazione dei requisiti utente, espressi in forma di casi d uso e scenari di funzionamento del caso d uso. G.Raiss - A.Apolloni - 4 maggio 2001 32 Analysis and design Analisi e disegno. Questa attività è rivolta alla definizione di come il sistema informatico deve fare quanto stabilito nei requisiti. Ciò avviene mediante la definizione e la modellazione di dettaglio dei requisiti software e del comportamento statico e dinamico del sistema. G.Raiss - A.Apolloni - 4 maggio 2001 33
Implementation Implementazione della soluzione. Questa attività è rivolta alla realizzazione dei componenti progettati, in accordo con il modello dei componenti definito. E una attività che dipende strettamente dalla progettazione, dove sono fatte le scelte di disegno dei componenti e la generazione dello scheletro. G.Raiss - A.Apolloni - 4 maggio 2001 34...implementation La fase di implementazione, definiti in modo corretto il Modello System Use Case, il prototipo ed il Design Model, non comporta particolari difficoltà, in quanto si basa su precise linee guida per lo sviluppo dei componenti. G.Raiss - A.Apolloni - 4 maggio 2001 35 Test... Le attività relative al Testing sono integrate nel processo di sviluppo completamente guidato dalla definizione dei casi d uso e dei loro scenari. G.Raiss - A.Apolloni - 4 maggio 2001 36
...test E possibile mediante strumenti automatici, stabilire la dipendenza tra casi d uso, scenari e requisiti di test funzionale e non funzionali, importandoli dal modello di analisi e progettazione. G.Raiss - A.Apolloni - 4 maggio 2001 37 Deployment Fase relativa al rilascio del sistema. G.Raiss - A.Apolloni - 4 maggio 2001 38 Configuration & Change Management Un aspetto fondamentale del processo di sviluppo è la gestione della configurazione e dei cambiamenti. A tale riguardo, per ciascuna delle fasi descritte è necessario fare gestire i componenti e le attività dal Configuration Management, integrandolo con i tools utilizzati. G.Raiss - A.Apolloni - 4 maggio 2001 39
Project Management Attività relativa alla gestione del progetto. G.Raiss - A.Apolloni - 4 maggio 2001 40 Environment Attività di messa a punto dell ambiente di supporto al progetto. G.Raiss - A.Apolloni - 4 maggio 2001 41 Modelli Sono i più importanti prodotti del RUP e sono una semplificazione della realtà, creati per comprendere meglio il sistema che si sta informatizzando. Nel RUP sono previsti 9 modelli che nel complesso coprono tutte le decisioni importanti di uno sviluppo sw. G.Raiss - A.Apolloni - 4 maggio 2001 42
modelli Business model rappresenta un astrazione dell organizzazione. Domain model rappresenta il contesto del sistema. Use case model rappresenta il sistema dei requisiti funzionali. G.Raiss - A.Apolloni - 4 maggio 2001 43 modelli Analysis model rappresenta una prima bozza di disegno. Design model Rappresenta il vocabolario del sistema e la sua soluzione. G.Raiss - A.Apolloni - 4 maggio 2001 44 modelli Process model Rappresenta i meccanisimi di concorrenza e sincronizzazione del sistema. Deployment model Rappresenta la topologia hw sul quale il sistema sarà eseguito. G.Raiss - A.Apolloni - 4 maggio 2001 45
modelli Implementation model Rappresenta le parti usate per assemblare e rilasciare il sistema. Test model Rappresenta i passi attraverso i quali il sistema viene validato e verificato. G.Raiss - A.Apolloni - 4 maggio 2001 46 Punti di forza del RUP E un processo ampiamente utilizzato, da anni, in contesti eterogenei: è sperimentato e consolidato. Comprende una massa notevole di linee guida e template. Fornisce indicazioni concrete su come operare in un approccio di progettazione Object Oriented. G.Raiss - A.Apolloni - 4 maggio 2001 47 punti di forza del RUP Definisce in modo approfondito (anche se in termini necessariamente generali): i ruoli coinvolti nel processo di sviluppo. le attività da effettuare. i documenti in input e in output alle diverse attività. G.Raiss - A.Apolloni - 4 maggio 2001 48
Costi Impatto organizzativo Impatto culturale Spese tecnologiche Costi di impianto Costi a regime G.Raiss - A.Apolloni - 4 maggio 2001 49 Impatto organizzativo... Il processo può risultare molto diverso dagli stili di lavoro in essere nell organizzazione che lo adotta. Può portare ad una ridefinizione dei ruoli, rispetto a quelli in essere. G.Raiss - A.Apolloni - 4 maggio 2001 50...impatto organizzativo Può portare ad una ridefinizione delle modalità di comunicazione e di rapporto con Committenti e Utilizzatori. Può portare ad una ridefinizione delle modalità di comunicazione e di rapporto con eventuali Fornitori. G.Raiss - A.Apolloni - 4 maggio 2001 51
Impatto culturale... RUP può comportare, per il personale dell organizzazione: Un cambiamento significativo del modo di lavorare (procedure, responsabilità, tecniche). Una diversa percezione del proprio ruolo in rapporto alla committenza ed agli utilizzatori. G.Raiss - A.Apolloni - 4 maggio 2001 52...impatto culturale Una ridefinizione di alcuni concetti cardine dello sviluppo (analisi, requisiti, test, manutenzione). La necessità di apprendere nuove tecniche (es. approccio Object Oriented alla progettazione dei sistemi, gestione dei requisiti). G.Raiss - A.Apolloni - 4 maggio 2001 53 Costi tecnologici... L utilizzo del nuovo processo può essere agevolato dall acquisizione di strumenti specifici per le attività primarie di sviluppo, tra cui: gestione dei requisiti e delle richieste di cambiamento; analisi e design; generazione di codice; Testing. G.Raiss - A.Apolloni - 4 maggio 2001 54
...costi tecnologici Tali strumenti sono oggi ampiamente disponibili sul mercato. La disponibilità degli strumenti non è comunque un prerequisito indispensabile per l efficacia del processo. G.Raiss - A.Apolloni - 4 maggio 2001 55 Costi d impianto Lavoro necessario per: adattamento del processo; interazione con Funzioni aziendali coinvolte, e con eventuali soggetti esterni (Clienti, Fornitori); divulgazione; supporto ai progetti nella fase iniziale di diffusione. G.Raiss - A.Apolloni - 4 maggio 2001 56 Costi a regime Il processo deve essere gestito in un ottica di continuo miglioramento e adattamento all evolversi delle esigenze aziendali. Va, inoltre, adattato ad ogni specifico progetto, per tenere conto delle specifiche caratteristiche e limitazioni. G.Raiss - A.Apolloni - 4 maggio 2001 57