analisi-disegno.com

Homepage  | Notiziario | In English


Intervista a Grady Booch (di Adriano Comai)

- l'intervista è stata pubblicata sul numero 207 (aprile 1999) di ZeroUno -

ZeroUno: Nel 1994, quando Lei e Rumbaugh iniziaste il processo di unificazione, il compito sembrava molto difficile. Ora che ce l’avete fatta, quali pensa che siano i fattori che vi hanno aiutato?

Grady Booch: Me ne vengono in mente due. Il primo è che siamo stati supportati e incoraggiati da Rational nel nostro lavoro. Io sono con Rational dalla sua fondazione, e verso la fine degli anni ’80 esistevano circa 50 distinti metodi Object Oriented. Noi di Rational prendemmo la decisione strategica di eliminare la frammentazione del mercato, innanzitutto con l’assunzione di Jim Rumbaugh. Rational diede a me e Jim il mandato e le risorse per lavorare insieme e fornire un buon risultato dal punto di vista tecnico, cosa che ci ha aiutato molto.

Il secondo fattore è stato la presenza dell’Object Management Group, perché ci ha dato un obiettivo preciso, con la richiesta di produrre un solido metodo OO. Ci diedero una pianificazione e uno schema molto chiaro di ciò che volevano. E ciò non soltanto ci portò a mettere insieme le forze, ma ci costrinse a definire in modo formale gli aspetti semantici di UML, aspetto che ritengo molto positivo.

ZeroUno: UML è una creazione collettiva. Lei, Jacobson and Rumbaugh ne siete gli autori principali, ma molti altri hanno contribuito a perfezionarlo. Aziende, ed altri metodologi. E’ stato difficile far cooperare tanti interessi e personalità differenti?

Grady Booch: In effetti, se guardiamo alla lista dei partner UML, ci troviamo aziende come IBM, Oracle e Microsoft. L’aspetto stupefacente era quello di mettere d’accordo queste tre aziende su una qualsiasi cosa, e lì gli ostacoli erano molto superiori a quelli che si possono verificare nella cooperazione tra singoli individui. Ma penso che le ragioni del successo siano legate al fatto che si trattava di una situazione in cui tutti avrebbero avuto dei vantaggi. La presenza di UML serviva a tutti i nostri partner - IBM, Oracle, Microsoft, Texas Instruments, MCI Systemhouse, Hewlett-Packard, una vera e propria lista dei VIP dell’industria del software. UML era la tecnologia giusta nel momento giusto.

Naturalmente abbiamo avuto qualche discussione molto complessa, era coinvolta molta gente, e molto appassionata, ma tutti lavoravamo per un obiettivo comune, e credo che questa focalizzazione sia risultata l’elemento decisivo. Inoltre, ci aspettavamo l’insorgere di alcune aree di conflitto, particolarmente in merito alla notazione grafica. Per evitarle, ci siamo concentrati innanzitutto sul significato delle cose, sugli aspetti semantici, per passare solo successivamente a discutere della notazione. Il che ci ha obbligato a considerare gli aspetti tecnici prima di quelli emotivi, e, una volta risolti i problemi tecnici, per lo più quelli emotivi svanivano.

ZeroUno: In che misura l’esistenza di Internet ha favorito la comunicazione tra i partner di UML? Sarebbe stato diverso dieci anni fa?

Grady Booch: La presenza di Internet ci ha permesso di sviluppare UML nonostante, ora che ci penso, non ci sia mai stato un momento in cui l’intero gruppo di lavoro si sia trovato riunito nello stesso luogo. Comunicavamo per e-mail, raccoglievamo le nostre idee su un sito Web, ho partecipato a conferenze audio e video. Francamente, ho svolto la maggior parte del lavoro nella sicurezza di casa mia, e queste tecnologie dieci anni fa non c’erano proprio. Abbiamo anche sfruttato a fondo i nostri strumenti. Abbiamo usato Rose [lo strumento di visual modeling di Rational] per progettare UML, ogni partecipante al gruppo di lavoro lo utilizzava, e ciò ha permesso di condividere i modelli senza problemi. Sì, è stato un lavoro comune, e la presenza di Internet lo ha favorito in molti modi.

ZeroUno: Che benefici suggerirebbe a un’azienda (o a un settore) IT per convincerla ad utilizzare UML?

Grady Booch: Se consideriamo la natura dello sviluppo software odierno, dal punto di vista di una organizzazione IT media, ci sono alcune sfide che devono essere affrontate. Per iniziare, devono creare applicazioni sempre più grandi, con meno personale, e in tempi stretti. Inoltre, c’ è un sacco di confusione sul versante tecnologico, ad esempio i grandi dibattiti tra C++ e Java, tra NT e Unix, tra DNA di Microsoft e gli Enterprise Java Beans, fino alla nuova tecnologia di Sun, Jini, da utilizzare in dispositivi distribuiti. Per l'organizzazione IT, è un periodo di cambiamenti incredibili, e fare i conti con questi cambiamenti, e con la complessità che ne deriva, è veramente dura.

Se pensiamo all’ingegneria civile, è facile costruire delle cuccie per cani, basta mettersi all’opera e farle. Ma se dovete costruire un grattacielo, ci vuole un sacco di lavoro. Gli ingegneri civili utilizzano dei modelli architetturali per la loro progettazione, e ciò descrive esattamente il significato di UML, che è un linguaggio per costruire i modelli architetturali del software. Quindi il valore per le organizzazioni IT sta nel fatto che UML permette loro di catturare tutte le decisioni importanti inerenti le loro architetture, per proteggerle dagli ostacoli del cambiamento tecnologico, e che permette ai loro gruppi di lavoro di comunicare tra loro, in una misura non praticabile in passato.

Molte organizzazioni IT hanno a che fare con sistemi eterogenei, fatti di parti in Cobol, C++, Java, chissà cos’altro. E quando fate i conti con così tanti linguaggi, anche il semplice controllo di ciò che state progettando diventa molto difficile, ma UML può trattare tutti questi linguaggi, in modo da offrirvi la possibilità di governare la complessità. La ragion d’essere di UML è il governo della complessità. Se a ciò aggiungiamo lo Unified Process, che è l’approccio metodologico di Rational per raggiungere un grado di maturità pari al livello 3 del Software Engineering Institute, il risultato è un enorme beneficio per le organizzazioni IT in termini di fornire ad esse un maggior livello di prevedibilità nel loro modo di produzione.

ZeroUno: Ci sono settori per cui questi aspetti risultano meno importanti?

Grady Booch: Sì, ad esempio l’industria dei videogame, e quella di alcune tipologie di sistemi embedded, dove il peso delle componenti legacy è meno rilevante. Per le organizzazioni IT, le eredità in termini di codice e dati legacy sono invece molto rilevanti, e il loro peso si sente maggiormente.

ZeroUno: Parecchie organizzazioni IT non utilizzano tecnologie OO. È un buon motivo per non utilizzare UML?

Grady Booch: È certamente vero che UML si adatta meglio alle tecnologie a oggetti. Ma anche per le organizzazioni che non vivono in un mondo OO, esistono delle forze che le circondano e le spingono in quella direzione. Se guardiamo alle tendenze nelle tecnologie database, testimoniate dai Data Blades di Informix e da Oracle 8, vediamo che si va verso database ibridi OO-relazionali. Le organizzazioni IT possono restare attaccate alle tecnologie che già conoscono, ma i loro fornitori di database, sui cui prodotti fanno affidamento, si stanno muovendo verso il mondo degli oggetti.

L’altro fenomeno che impatta sulle organizzazioni IT tradizionali è Internet, che sta diventando il veicolo comune per il rilascio delle applicazioni, con il passaggio dai vecchi sistemi client-server a quelli nuovi, in cui il componente client si trova all’interno di un browser Web. Costruire applicazioni Web richiede l’utilizzo di linguaggi OO come Java e C++. Quindi anche le organizzazioni IT che hanno un grosso patrimonio di sistemi non-OO risultano costrette ad inserire degli strati Object Oriented per fare colloquiare quei sistemi con i componenti Web. E proprio per loro UML offre notevoli vantaggi, in quanto permette di costruire un ponte tra i loro mondi OO e quelli non-OO. Tra l’altro, noi di Rational stiamo lavorando con Oracle per definire alcune semplici estensioni a UML, sfruttando i meccanismi di estensibilità previsti dal linguaggio, con lo scopo di favorire l’utilizzo di UML da parte dei Data Base Administrator.

ZeroUno: L’obiettivo di UML è di permettere la modellazione di ogni tipo di sistema, non solo dei sistemi software. È a conoscenza di utilizzi del linguaggio al di fuori del settore software?

Grady Booch: Cadence, una società che produce hardware, ha utilizzato UML per progettare un dispositivo di compressione vocale a livello di porta. Una università ha prodotto un‘interfaccia tra UML e VIACTL, che è un linguaggio per la progettazione di VLSI a livello di chip. La US Navy sta lavorando ad un’arma di nuova generazione, ed uno dei sui fornitori principali ha usato UML come linguaggio per la progettazione del sistema dell’arma, creando un modello che comprende sia gli aspetti hardware che quelli software. Un’azienda sanitaria ha utilizzato UML per creare un modello del trattamento dei pazienti nel loro sistema. Nell’area del business process reengineering so che lo sta utilizzando Oracle, che ha portato in UML l’idea dei diagrammi di attività proprio con l’obiettivo di farne uno strumento per il business modeling. Loro hanno un grosso settore di consulenza, il cui compito primario è di lavorare insieme al cliente per comprenderne e modellarne il business, e UML è molto efficace per questo.

ZeroUno: Ora è la fase della diffusione di UML. Quali sono le forze che stanno contribuendo a diffonderlo?

Grady Booch: Ce ne sono tre. Innanzitutto, ciascuno dei partner UML lo sta supportando in modo attivo. IBM lo sta utilizzando per il suo framework San Francisco. Microsoft distribuisce una versione di Rational Rose chiamata MS Viewer in ogni copia dei suoi prodotti per lo sviluppo, Visual Studio. Unisys usa UML per il suo Repository, MCI per i suoi prodotti. I partner che hanno condiviso UML ora lo stanno promuovendo, con un’efficacia assolutamente straordinaria. Penso che ciò sia perfino meglio che non una promozione attiva di UML. E’ come per i compilatori di linguaggio, si sa che servono, non c’è discussione, è ovvio. Ed è ciò che sta capitando a UML. Le tecnologie migliori, col tempo, diventano trasparenti.

Se guardiamo in particolare a Microsoft, capiscono che per entrare nel mercato enterprise devono fare in modo che i loro clienti riescano a definire architetture valide, ed UML è uno standard che fornisce valore aggiunto ai loro clienti. Se guardate ai loro corsi per gli sviluppatori, stanno utilizzando UML sempre di più. E se visitate il sito Web della loro architettura DNA, utilizzano UML per fornire esempi di DNA.

La seconda cosa che sta aiutando la diffusione di UML è che sono disponibili molti strumenti che lo supportano, oltre al nostro Rose, visto che UML non è un linguaggio proprietario. E francamente la competizione su questo mercato è vantaggiosa per tutti.

Infine, sono disponibili molte risorse per aiutare la gente ad utilizzare UML. Ho contato quasi cento libri su UML, in linguaggi diversi, e molti corsi vengono offerti da Università e aziende private. UML è un linguaggio semplice, ma, come avviene nell’ingegneria civile, il fatto che io sappia come disegnare un modello non significa che io sia in grado di progettare un buon edificio. Quindi c’ è un ruolo importante che deve essere svolto dalle università e dai consulenti, per aiutare la gente ad utilizzare il linguaggio in modo efficace.

ZeroUno: Adesso quali sono i principali ostacoli da affrontare?

Grady Booch: Oggi UML è relativamente stabile, e per fortuna c’� una procedura definita in ambito OMG per gestirne la naturale evoluzione. Inoltre siamo in una corsia preferenziale anche per la standardizzazione ISO, il che è positivo. UML è in buone mani, ed il suo futuro sembra luminoso. Non vedo alcun ostacolo.

ZeroUno: Ora che il più è fatto, lei intende godersi il successo di UML oppure si sta spostando verso altri interessi?

Grady Booch: In questo settore, starsene fermi è mortale, e non c’ è tempo per riposare. Le prossime sfide per me e per la Rational sono di portare UML nelle aree del commercio elettronico e dei sistemi embedded, e di applicarlo per progettare architetture in un modo che ci consenta poi di ottenere l’esecuzione dei modelli.

Io, personalmente, lavoro sempre di più nell’area dei pattern architetturali, sto studiando alcune decine di architetture per documentarle. Ho lavorato con IBM nella progettazione del loro software per le Olimpiadi, perché hanno sviluppato una soluzione molto vantaggiosa e scalabile per i sistemi Web. Inoltre ho lavorato con il Jet Propulsion Laboratory di Pasadena, che sta utilizzando UML per la prossima generazione delle navette di atterraggio per Marte.

ZeroUno: E gli altri partner di UML, Jacobson e Rumbaugh?

Grady Booch: Ci separeremo. Ci siamo messi a lavorare insieme ed abbiamo creato una cosa buona, ma ora UML è completato, e passo meno tempo con Jim e Ivar.

--> vai a pagina principale UML


analisi-disegno.com, servizi e materiali per lo sviluppo dei sistemi software, a cura di Adriano Comai.