
Introduzione allo
Unified Modeling Language
di Claudio De Sio Cesari
-Cos' è Uml (What)?
Oggigiorno si sente parlare molto spesso di UML ma solo una piccola percentuale di persone sa di cosa realmente si tratta. Qualcuno pensa che sia un linguaggio di programmazione, e quest' equivoco è dovuto alla parola "language". Qualcun'altro pensa si tratti di una metodologia object oriented, e questo è probabilmente dovuto a cattiva interpretazione di letture non molto approfondite. Infatti si sente spesso parlare di UML congiuntamente a varie metodologie. Per definire quindi correttamente cos' è UML, è preferibile prima definire per grandi linee, cos' è una metodologia.
Una metodologia object oriented, nella sua definizione più generale [1], potrebbe intendersi come una coppia costituita da un processo e da un linguaggio di modellazione.
A sua volta un processo potrebbe essere definito come la serie di indicazioni riguardanti i passi da intraprendere per portare a termine con successo un progetto.
Un linguaggio di modellazione è invece lo strumento che le metodologie utilizzano per descrivere (possibilmente in maniera grafica) tutte le caratteristiche statiche e dinamiche di un progetto.
In realtà UML non è altro che un linguaggio di modellazione. Esso è costituito per linee generali da una serie di diagrammi grafici i cui elementi sono semplici linee, triangoli, rettangoli, omini stilizzati e così via. Questi diagrammi hanno il compito di descrivere in modo chiaro, tutto ciò che durante un progetto potrebbe risultare difficile o troppo lungo con documentazione testuale.
-Quando e dove è nato (When & Where)
A partire dai primi anni ottanta la scena informatica mondiale iniziò ad essere invasa dai linguaggi orientati ad oggetti quali Small Talk e soprattutto C++. Questo perché col crescere della complessità dei software, e la relativa filosofia di progettazione, la programmazione strutturata mostrò i suoi limiti e si rivelò insufficiente per soddisfare le sempre maggiori pretese tecnologiche. Ecco allora l' affermarsi della nuova mentalità ad oggetti e la nascita di nuove teorie, che si ponevano come scopo finale, quello di fornire delle tecniche più o meno innovative per realizzare software, ovviamente, sfruttando i paradigmi degli oggetti. Nacquero una dopo l' altra le metodologie object oriented, in gran quantità e tutte più o meno valide. Inizialmente esse erano strettamente legate ad un ben determinato linguaggio di programmazione, ma la mentalità cambiò abbastanza presto. A partire dal 1988 iniziarono ad essere pubblicati i primi libri sull' analisi e la progettazione orientata agli oggetti. Nel ' 93 si era arrivati ad un punto in cui c' era gran confusione: analisti e progettisti esperti come James Rumbaugh, Jim Odell, Peter Coad, Ivar Jacobson, Grady Booch ed altri, proponevano tutti una propria metodologia ed ognuno di loro aveva una propria schiera di entusiasti seguaci. Quasi tutti gli autori più importanti erano americani ed inizialmente le idee che non provenivano dal nuovo continente, erano accolte con sufficienza, e qualche volta addirittura derise. In particolare Jacobson prima di rivoluzionare il mondo dell' ingegneria del software con il concetto di "Use Case", fu denigrato da qualche autore americano, che definì "infantile" il suo modo di utilizzare omini stilizzati come fondamentali elementi dei suoi diagrammi. Probabilmente fu solo un tentativo di sbarazzarsi di un antagonista scomodo, o semplicemente le critiche provennero da fonti non certo lungimiranti...
Questi episodi danno però l' idea del clima di competizione in quel periodo. Uml ha visto ufficialmente la luce a partire dal 1997... i tempi dovevano ancora maturare...
-Perché è nato UML(Why)
Il problema fondamentale era che diverse metodologie proponevano non solo diversi processi, il che può essere valutato positivamente, ma anche diverse notazioni. Era chiaro allora a tutti che non doveva e poteva esistere uno standard tra le metodologie. Infatti i vari processi esistenti erano proprietari di caratteristiche particolarmente adatte a risolvere alcune particolari problematiche. In pratica, quando si inizia un progetto, è giusto avere la possibilità di scegliere tra diversi stratagemmi risolutivi (processi). Il fatto che ogni processo sia strettamente legato ad un determinato linguaggio di modellazione ovviamente non rappresenta altro che un intralcio per i vari membri di un team di sviluppo. L' esigenza di un linguaggio standard per le metodologie era avvertita da tanti ma nessuno degli autori aveva intenzione di fare il primo passo.
-Chi ha fatto nascere Uml (Who)
Ci pensò allora la Rational Software Corporation (www.rational.com) che annoverava tra i suoi esperti Grady Booch, autore di una metodologia molto famosa all' epoca, nota come "Booch 93". Nel ' 94 infatti James Rumbaugh, creatore della Object Modelling Tecnique (OMT), probabilmente la più utilizzata tra le metodologie orientate agli oggetti, si unisce a Booch alla Rational. Nell' ottobre del ' 95 fu rilasciata la versione 0.8 del cosiddetto "Unified Method". Ecco che allora lo svedese Ivar Jacobson nel giro di pochi giorni si unisce a Booch e Rumbaugh, iniziando una collaborazione che poi è divenuta storica. L' ultimo arrivato portava in eredità oltre che il fondamentale concetto di "Use Case", la famosa metodologia "Object Oriented Software Engineering" (OOSE) conosciuta anche come Objectory, che in realtà era il nome della società di Jacobson, oramai inglobata da Rational. Ecco allora che i "tres amigos" iniziarono a lavorare per realizzare lo "Unified Software Development Process" e soprattutto al progetto UML. L' Object Management Group (OMG, www.omg.org ), un consorzio senza scopi di lucro che si occupa delle standardizzazioni, le manutenzioni e le creazioni di specifiche che possono risultare utili al mondo dell'information technology, nello stesso periodo inoltra a tutti i più importanti autori una "richiesta di proposta" ("Request for proposal", RFP) di un linguaggio di modellazione standard. Ecco che allora Rational assieme ad altri grossi partners quali IBM e Microsoft, propose la versione 1.0 di UML nell' ottobre del 1997. OMG rispose istituendo una "revision task force" (RTF) capitanata attualmente da Cris Kobryn per apportare modifiche migliorative ad UML.
Oggi 1/1/2002, la versione attuale di UML è la 1.4, ma è prevista la versione 2.0 nell'anno 2002. OMG ha come scopo finale quello di far diventare UML uno standard ISO.
Nota [1]: Quella riportata per precisione è la definizione di metodo. Un metodologia è tecnicamente definita come "la scienza che studia i metodi". Spesso però, questi termini sono considerati sinonimi.