/  9
 
 
Copyright 2003
R. Turco
1
Rational Unified Process
Ing. R. Turco
Introduzione
Il
Rational Unified Process (RUP)
è un
framework di processo per lo sviluppo del software
, cheprovvede a disciplinare:
 
la tipologia di ciclo produttivo;
 
le responsabilità nel
l’ambito dell’organizzazione;
 
le attività necessarie;
 
gli elaborati da ottenere;
 
il workflow;
 
la pianificazione.Il RUP permette, inoltre, di concentrarsi su:
 
rischi;
 
criticità;
 
priorità.In altri termini il Rational Unified Process permette la gestione del processo relativamente allosviluppo del software.Essendo il RUP un framework è, quindi,
adattabile alle esigenze della propria organizzazione ealla cultura esistente in essa
.
RUP: una struttura a due dimensioni
Il RUP è essenzialmente una struttura a due dimensioni (fig. 1).
Figura 1
Le
due dimensioni 
del RUP sono:
 
il tempo (asse orizzontale);
 
le attività (asse verticale).Nel tempo abbiamo
quattro fasi:
 
 
Copyright 2003
R. Turco
2
 
Ideazione
o avvio (
Inception
);
 
Elaborazione (Elaboration)
;
 
Costruzione
o sviluppo (
Construction
);
 
Transizione
o rilascio (
Transition
).
L’asse orizzontale (tempo) dà l’ 
aspetto dinamico del processo
e richiama ad una ovviapianificazione temporale; difatti si parla di
fasi, iterazioni e milestone
.
L’asse verticale
rappresenta i
 principali workflow del processo RUP 
(ne potrebbero esistereanche 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;
 
RilascioI principali
workflow di supporto
sono quelli che non partecipano direttamente alla creazionedel 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 esisteaccordo col cliente, non si rischia di sottostimare i valori in gioco.
Le “Best Practice” del RUP
 
Il RUP considera come buona pratica le seguenti cose:
 
Uno sviluppo iterativo
 
La gestione dei requisiti
 
Un’architettura a componenti
 
 
UML e modellazione
 
Qualità del processo e del prodotto
 
Gestione della configurazione e delle modifiche
 
Uno sviluppo guidato dai casi d’uso
 
 
La configurazione del processo
 
Gli strumenti di supporto
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 riso
rse;
 
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, maanche perché piccole iterazioni portano a sviluppare poche cose e, quindi, adocumentarle;
 
Le iterazioni permettono revisioni di progettazione e di refactoring, individuando patterne parti di codice da migliorare;
 
 
Copyright 2003
R. Turco
3
 
L’architettura ottenibile è più robusta: vengono individuati gli error
i e rimossi nelle variefasi di test, ad ogni iterazione.
 
Le iterazioni consentono agli sviluppatori di apprendere il dominio, le tecnologie, glistrumenti e le metodologie. Piccole iterazioni comportano poche cose da produrre maanche poche cose da apprendere;
 
Ad ogni iterazione può essere migliorato il proprio processo produttivo.
Gestione dei requisiti
La gestione dei requisiti è un processo importante per individuare, organizzare, tracciare,comunicare, classificare (priorità, rischi, criticità) i requisiti del sistema in gioco.I vantaggi principali sono:
 
Informazioni disponibili a tutto il team;
 
Miglior controllo del sistema e del progetto;
 
Migliore qualità del software e soddisfazione del cliente.
Architettura e architettura a componenti
L’Architettura è la parte fondamentale del processo produttivo: un’architettura solida è una
delle premesse di successo!Lo sforzo del RUP è di ottenere subito la giusta architettura e, poi, nelle varie iterazioni lefunzionalità del sistema; in ogni iterazione è da ottenere qualcosa che è funzionalmente utiledal 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 chebada innanzitutto a far sì che l’architettura pensata sia da subito in grado di soddisfare i
requisiti non funzionali ed i vincoli in gioco.Ambire ad avere una architettura a componenti è il massimo a cui tendere.Un componente software è un
elemento non banale
, un package, un sotto-sistema oppureaddirittura un framework da riusare nel proprio dominio del problema.Con le nuove Infrastrutture CORBA, Enterprice JavaBeans oggi è possibile farlo attraverso unamiriade di prodotti commerciali ed open source.
UML e modellazione
Il processo ha bisogno di un linguaggio che serva a comunicare, documentare, rappresentare especificare un business, un sistema, etc.
Il linguaggio è l’UML versione 1
.4/2.0. Dispone di elementi sintattici, semantici e possibilità di
esprimere vincoli attraverso l’OCL.
 
Con l’UML il RUP tende a realizzare modelli del sistema da realizzare.
 
Qualità del processo e del prodotto
Il RUP, ma anche l’ISO 9000, insistono col
NON individuare un ruolo responsabile della qualità:la qualità deve essere responsabilità di tutti coloro che intervengono in un processo allarealizzazione di un prodotto o di un servizio!!

Share & Embed

More from this user

Add a Comment

Characters: ...