Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ing. R. Turco
Introduzione
Il Rational Unified Process (RUP) è un framework di processo per lo sviluppo del software, che
provvede a disciplinare:
la tipologia di ciclo produttivo;
le responsabilità nell’ambito dell’organizzazione;
le attività necessarie;
gli elaborati da ottenere;
il workflow;
la pianificazione.
In altri termini il Rational Unified Process permette la gestione del processo relativamente allo
sviluppo del software.
Essendo il RUP un framework è, quindi, adattabile alle esigenze della propria organizzazione e
alla cultura esistente in essa.
Figura 1
L’asse orizzontale (tempo) dà l’aspetto dinamico del processo e richiama ad una ovvia
pianificazione temporale; difatti si parla di fasi, iterazioni e milestone.
L’asse verticale rappresenta i principali workflow del processo RUP (ne potrebbero esistere
anche altri per esigenze organizzative particolari) ed i workflow di supporto.
I workflow principali sono quelli che permettono la realizzazione diretta del prodotto e sono:
Business Modeling;
Requisiti;
Analisi e progettazione;
Realizzazione e test;
Rilascio
I principali workflow di supporto sono quelli che non partecipano direttamente alla creazione
del prodotto e sono ad esempio:
Gestione della configurazione e modifiche
Gestione del progetto
Infrastruttura organizzativa
L’asse verticale richiama, in pratica, al carico di lavoro di una pianificazione e ad i suoi costi.
Nel workflow di supporto potrebbero essere comprese anche altre voci. Se su questo esiste
accordo col cliente, non si rischia di sottostimare i valori in gioco.
Sviluppo iterativo
Uno sviluppo iterativo ha molti vantaggi:
Reagisce bene alle variazioni dei requisiti;
Segue la filosofia che “una balena va mangiata a piccoli bocconi”;
Le parti sviluppate vengono integrate progressivamente ad ogni iterazione;
I rischi o le criticità vengono al pettine subito: se sono insormontabili il processo ha
“bruciato” poche risorse;
Il management è in grado di prendere decisioni tattiche al momento giusto, nell’ambito
della strategia concordata col cliente;
Facilita il riuso sia perché è più facile individuare parti piccole sviluppate da riusare, ma
anche perché piccole iterazioni portano a sviluppare poche cose e, quindi, a
documentarle;
Le iterazioni permettono revisioni di progettazione e di refactoring, individuando pattern
e parti di codice da migliorare;
2
Copyright 2003 – R. Turco
L’architettura ottenibile è più robusta: vengono individuati gli errori e rimossi nelle varie
fasi di test, ad ogni iterazione.
Le iterazioni consentono agli sviluppatori di apprendere il dominio, le tecnologie, gli
strumenti e le metodologie. Piccole iterazioni comportano poche cose da produrre ma
anche poche cose da apprendere;
Ad ogni iterazione può essere migliorato il proprio processo produttivo.
Lo sforzo del RUP è di ottenere subito la giusta architettura e, poi, nelle varie iterazioni le
funzionalità del sistema; in ogni iterazione è da ottenere qualcosa che è funzionalmente utile
dal punto di vista del cliente.
L’architettura è, comunque, slegata dai requisiti funzionali e legata soprattutto ai requisiti non
funzionali: prestazioni, vincoli, etc.
L’architetto è, difatti, colui che ha la visione d’insieme di quello che vuole il cliente ma che
bada innanzitutto a far sì che l’architettura pensata sia da subito in grado di soddisfare i
requisiti non funzionali ed i vincoli in gioco.
Con le nuove Infrastrutture CORBA, Enterprice JavaBeans oggi è possibile farlo attraverso una
miriade di prodotti commerciali ed open source.
UML e modellazione
Il processo ha bisogno di un linguaggio che serva a comunicare, documentare, rappresentare e
specificare un business, un sistema, etc.
3
Copyright 2003 – R. Turco
La qualità di un prodotto è rappresentata da tutti gli elementi che concorrono alla realizzazione
di un prodotto e al loro corretto utilizzo. La qualità di un prodotto è correlata a vari fattori
come il tempo, gli skill, gli strumenti, le metodologie, le teorie adottate etc.
In qualunque modo si configura il processo, esso mantiene comunque le quattro fasi prima
viste.
Strumenti di supporto
Una volta deciso di usare il RUP, quindi, UML occorre scegliere degli strumenti che aiutano a
lavorare in tale senso.
I ruoli
Un ruolo è il comportamento e la responsabilità di un individuo all’interno di un team. Un ruolo
non significa che l’individuo sia diventato più importante, ma solo che ha la responsabilità di
comportarsi in un modo ben definito dall’organizzazione e di effettuare determinate attività.
4
Copyright 2003 – R. Turco
Il mondo dell’Object Oriented insegna molto. Una persona con un ruolo è come una classe che
ha delle responsabilità (metodi). Ogni metodo fa delle attività e dà dei ritorni (feedback ed
elaborati), di propria iniziativa.
Il ruolo è affidato alla persona che è in grado (competente) di svolgere una determinata
attività nei tempi, nella qualità e nei risultati attesi.
Una stessa persona può rivestire più ruoli, in base alle proprie competenze.
Le attività
Ogni attività prevede due o al più tre step:
studio del compito;
esecuzione;
revisione.
I workflow
Un workflow è una sequenza di attività che produce un risultato di valore osservabile.
Nel seguito esamineremo uno dei workflow più delicati, quello di gestione di un progetto.
Gli elaborati
Gli elaborati (“artifact”) sono gli output di ogni attività che possono essere input per l’attività
successiva e facente capo anche ad un ruolo diverso.
5
Copyright 2003 – R. Turco
Gli output possono essere documenti, modelli, codice, progettazione test, etc.
Il RUP cerca di minimizzare allo stretto necessario i documenti, nel senso che cerca di
mantenere la maggior parte della documentazione all’interno degli strumenti stessi usati per la
produzione. In altri termini il RUP favorisce soprattutto la generazione di documenti grazie agli
strumenti che si utilizzano.
In ogni caso la documentazione è necessaria sia essa cartacea, che nel software per facilitare
la comprensione ed il riuso, etc.
Il RUP non dice di eliminarla, ma cerca di alleggerire tale attività facendola produrre
automaticamente se possibile. In questo modo essa è facilmente allineabile dagli strumenti
stessi ad ogni iterazione per i test, per i modelli, etc. Questo alleggerimento di parte del
processo si riflette su una riduzione dei costi.
Gli elementi che, a seconda dei casi, si possono aggiungere in un processo possono essere:
Linee guida;
Modelli o Template;
Guide all’uso degli strumenti (tool mentor);
Teorie documentate;
Checklist;
Metriche.
L’Architettura
L’Architettura gioca un ruolo centrale nel RUP.
6
Copyright 2003 – R. Turco
Perché l’architettura è importante? Il RUP risponde alla domanda nel seguente modo:
L’architettura rappresenta come il sistema verrà realizzato e fornisce al sistema gli
aspetti qualitativi, la flessibilità ai cambiamenti, il riuso, le sue prestazioni.
Figura 2
Vista logica
La vista logica si occupa dei requisiti funzionali. Qui di un’architettura vengono individuati i
package, i sottosistemi e le classi principali.
Vista d’implementazione
Questa vista per un’architettura descrive l’organizzazione dei moduli software (sorgenti, file
dati, librerie, componenti, alberature, etc), livelli di astrazione, gestione della configurazione.
Questa vista esige la “facilità di sviluppo”, la gestione del software, il riuso, la gestione dei
fornitori, l’utilizzo di componenti di mercato.
Vista di processo
Qui ci si occupa dei requisiti non funzionali: concorrenza, parallelismo, deadlock, thread,
prestazioni, scalabilità, throughput, isolamento dei guasti, “single point of failure”, etc.
Vista di rilascio
Qui vengono affrontate problematiche di rilascio, installazione, gestione.
Inoltre ad ogni vista corrispondono modelli UML diversi, come nella tabella seguente.
Modello Vista
Modello di progettazione Vista logica
Vista di processo
Modello di implementazione Vista di implementazione
Modello di rilascio Vista di rilascio
Modello dei casi d’uso Vista dei casi d’uso
7
Copyright 2003 – R. Turco
Ci si basa sui seguenti step:
Si descrive in documento di Descrizione di Architettura Software o Descrizione Tecnica
di prodotto;
Si fa un primo prototipo o un modello funzionante, badando solo alle parti architetturali.
Il modello può essere sia a soli fini interni o anche fatto vedere al cliente. Il modello,
tramite refactoring, viene raffinato iterativamente e quello validato farà da baseline
giuda per il resto dello sviluppo.
8
Copyright 2003 – R. Turco
INDICE
RATIONAL UNIFIED PROCESS .................................................................................... 1
INTRODUZIONE .......................................................................................................... 1
RUP: UNA STRUTTURA A DUE DIMENSIONI ................................................................ 1
LE “BEST PRACTICE” DEL RUP .................................................................................... 2
SVILUPPO ITERATIVO ........................................................................................................................ 2
GESTIONE DEI REQUISITI ................................................................................................................... 3
ARCHITETTURA A COMPONENTI ........................................................................................................ 3
UML E MODELLAZIONE .................................................................................................................... 3
QUALITÀ DEL PROCESSO E DEL PRODOTTO ........................................................................................ 3
GESTIONE DELLA CONFIGURAZIONE E DELLE MODIFICHE .................................................................. 4
SVILUPPO GUIDATO DAI CASI D’USO .................................................................................................. 4
CONFIGURAZIONE DEL PROCESSO ..................................................................................................... 4
STRUMENTI DI SUPPORTO .................................................................................................................. 4
IL PROCESSO DEL RUP ............................................................................................... 4
I RUOLI .............................................................................................................................................. 4
LE ATTIVITÀ ...................................................................................................................................... 5
I WORKFLOW ..................................................................................................................................... 5
GLI ELABORATI ................................................................................................................................. 5
ELEMENTI ADDIZIONALI DEL PROCESSO ................................................................... 6
WORKFLOW DI GESTIONE DEL PROGETTO ................................................................. 6
9
Copyright 2003 – R. Turco