Sei sulla pagina 1di 3

Applicazioni Web con UML

Recensito da Ferdinando Santacroce il 28-09-2006 ore 19:30

ISBN: 88-7192-190-9
Autori: Jim Conallen
Editore: Pearson Education Italia
Lingua: Italiano
Anno: 2003
Pagine: 490
Allegati: Nessuno

Applicazioni Web con UML copre, a mio avviso, un grossa fetta degli aspetti della progettazione Web, che
difficilmente è possibile trovare altrove in un contesto così ben organizzato.

Il mercato delle applicazioni Web è cresciuto in maniera vertiginosa. Il timido bagliore dei primi siti dinamici
ha lasciato spazio a nuove applicazioni di classe enterprise che fioriscono rigogliose. Questa spinta è frutto
dell’evoluzione degli strumenti di sviluppo di base. Nuovi linguaggi e framework sempre più robusti hanno
finalmente consentito anche ai programmatori del Web l’adozione di paradigmi di programmazione che
erano solo poco tempo esclusivo appannaggio dello sviluppo su desktop, come ad esempio il classico
approccio Object Oriented.

A questo punto viene spontaneo chiedersi come sia possibile avvantaggiarsi anche delle metodologie per la
modellazione del software, che tanto successo hanno riscosso fin dalle loro prime incarnazioni. Questo libro
si prefigge esattamente questo scopo, descrivendo minuziosamente come condurre lo sviluppo di
applicazioni Web secondo i canoni della modellazione UML.

Jim Conallen arriva alla prima stesura di questo testo dopo un periodo piuttosto travagliato. Quando iniziò
a porsi il problema, UML era ancora in uno stadio iniziale (ver 0. , e l’OMT (Object Modeling Technique)
di James Rambaugh risultava parimenti inadeguato. Questo lo spinse a lavorare per alcuni mesi alla
creazione di un nuovo sistema descrittivo pensato espressamente per le applicazioni Web. L’elevato
impegno necessario e le tappe evolutive segnate dalla release 0.91 di UML fecero però tornare Conallen sui
suoi passi, che decise di concentrarsi definitivamente su questo linguaggio di modellazione.

Conallen, che attualmente ricopre il ruolo di Software Engineer all’interno dell’IBM Rational's Model Driven
Development Strategy Team, tiene a precisare che il suo lavoro non è basato su una particolare piattaforma
di sviluppo, nonostante gli esempi di codice siano stati descritti tramite Java Server Pages.
Posso tranquillamente confermare che tutte le procedure descritte sono comodamente implementabili in
qualsiasi altro tipo di ambiente, da .NET a LAMP, passando per ColdFusion e Java. L’attenzione dell’autore
rimane infatti costantemente puntata sulla modellazione, mentre gli esempi di codice vengono utilizzati
esclusivamente per fissare le idee e rendere le nozioni un po’ meno astratte.

Il libro è idealmente suddiviso in tre parti, anche se si contano ben 13 capitoli e 5 appendici. Nella prima
parte viene tratteggiata una breve, ma esaustiva, panoramica delle tecnologie e dei concetti rilevanti per le
applicazioni Web.
Questa parte, composta dai capitoli che vanno dal secondo al quinto, illustra a dovere l’architettura client-
server, le tecnologie client side (ActiveX, JavaScript, DOM e Applet) e le nuove frontiere raggiunte dai
sistemi basati su XML e derivati, come ad esempio i Web Services.
Un bel ripasso per chi già vanta un’esperienza consistente alle spalle, ed una discreta infarinatura per chi
invece non si è ancora spinto così lontano.

La seconda parte del libro ci porta dal sesto al tredicesimo capitolo, e rappresenta il vero kernel, pardon, il
nocciolo dell’opera.
In queste duecento e più pagine viene analizzato, con precisione chirurgica, il processo di sviluppo delle
applicazioni Web; l’autore non cerca di forzare troppo la mano per aderire rigorosamente ai dettàmi delle
specifiche UML, ma segue invece una efficace strategia volta a sfruttare sempre al meglio le metodologie
offerte da questo sistema di modellazione.

La modellazione si prefigge lo scopo di semplificare la comprensione e l’espressione di architetture


complesse; la creazione di modelli complessi è una pratica totalmente inutile e l’autore sottolinea più volte
questa tesi, nel caso qualcuno non abbia ancora assimilato questo kōan.

Viene anche fatta leva su altri aspetti peculiari della modellazione, come ad esempio la facilità con la quale
è possibile condurre un team allo sviluppo di un prodotto di successo. La suddivisione dei compiti, una volta
che il modello del software è compiuto, viene largamente agevolata dalla modularità con la quale UML
traccia le fasi di sviluppo: il modello diventa meccanismo di comunicazione per il gruppo dei progettisti.
Molto importante è inoltre la fase di test, che in queste pagine viene affrontata secondo i principi
dell’eXtreme Programming.

Il settimo capitolo descrive i diversi punti di vista architetturali, come ad esempio quello dei requisiti e
quello dei casi d’uso; in sostanza vengono forniti i mezzi per la definizione della migliore strategia di
implementazione, consentendo l’evidenziazione dei vincoli, dei rischi e degli aspetti di massima priorità. Un
posto d’onore è occupato dalla descrizione di alcuni pattern, validi strumenti per trarre vantaggio dal riuso
del codice.

L’ottavo capitolo è interamente dedicato all’analisi dei requisiti e dei casi d’uso. Non è mia intenzione fare
un riassunto di quest’opera, mi limito semplicemente a dire che difficilmente si potranno avere ancora dei
dubbi in merito finita la lettura di questa sezione.

Nel nono capitolo ci si sposta sullo studio dell’interfaccia. Qui viene descritta l’applicazione prendendo in
prestito il concetto di storyboard dal mondo dell’animazione cinematografica. A questo punto ci si
incomincia ad accorgere di quanto sia facile definire mappe e percorsi di navigazione dopo che la
precedente analisi ci ha rivelato i punti salienti della nostra applicazione.
I capitoli 10 e 11 sono dedicati alla progettazione del Java Pet Store, che l'autore ha adottato fin dall’inizio
per l’esemplificazione dei concetti.
Il dodicesimo capitolo copre gli aspetti di progettazione avanzata, mentre nel tredicesimo e ultimo capitolo
si passa all’implementazione dell’applicazione d’esempio.

Giunti a fine libro, ci rimangono ancora un centinaio abbondante di facciate dedicate alle cinque appendici
d'approfondimento e d'integrazione: si va dal WAE (Web Application Extension) ai pattern Controlled
Controllers e Master Template.

Questo volume, giunto alla seconda versione italiana, mi lascia estremamente soddisfatto. Personalmente
sentivo l’esigenza di un testo dedicato alla modellazione per applicazioni Web, in quanto non sempre risulta
facile tramutare in pratica le tecniche apprese dai testi dedicati esclusivamente alla descrizione di queste
metodologie di sviluppo. Inoltre Jim Conallen ha saputo evidenziare con eleganza pregi e difetti della
modellazione, fornendo al lettore le giuste chiavi di lettura per sfruttare con profitto questo
importantissimo strumento.

In quarta di copertina Grady Booch, uno dei padri di UML, dice di aver gradito molto la lettura dell’opera;
per quanto poco possa valere il mio giudizio, non posso che trovarmi pienamente d’accordo.

Giudizio finale

(PRO) L'approccio pratico alla modellazione: UML non come insieme di dogmi da seguire
scrupolosamente, ma come strumento flessibile per la costruzione di applicazioni Web robuste, scalabili e
avanzate.

(CONTRO) Nessuno degno di nota. Una piccola menzione va spesa per la traduzione, che a volte
soccombe alla difficoltà di interpretazione e corretta trasposizione di termini e concetti.