Aprile 2004
Vol.V, no. 2, Aprile 2004
UML e ingegneria dei modelli
Pubblicato per conto del CEPIS da Novática. Versione italiana a cura di Tecnoteca in collaborazione con l' ALSI, con i dovuti permessi degli editori di Upgrade
Guest Editor: Jesús García-Molina, Ana Moreira, e Gustavo Rossi
Numero completo:[Abstract HTML in Inglese] - [PDF in Inglese: 64 pagine; 2.3 MB]
Singoli articoli
Copertina PDF in Inglese: 1.2 MB di Antonio Crespo Foix, © ATI 2004
È necessario Acrobat Reader per visualizzare i file PDF
Gli articoli interamente tradotti in italiano sono facilmente individuabili grazie alla bandiera
EDITORIAL. From the Editors' Desk. The UPGRADE European Network: N przywitanie / Welcome!
[PDF in inglese: 1 pagina, 236 KB]
Il comitato editoriale di Upgrade
Riassunto italiano: Editoriale. La rete Europea di UPGRADE: N przywitanie / Benvenuti!. I membri del comitato editoriale di Upgrade descrivono gli scopi della rete di riviste delle associazioni membre del CEPIS (UPGRADE european NETwork, UPeNet), i cui contenuti arricchiranno i nostri ed offriranno una visione più ampia dell'ICT ai nostri lettori. La prima rivista ad unirsi a noi in questa avventura è Pro Dialog, coprodotta dalla associazione CEPIS polacca PTI-PIPS (Polskie Towarzystwo Informatyczne – Polish Information Processing Society) e dalla Poznan University of Technology, Institute of Computing Science.
PRESENTATION. UML: The Standard Object Modelling Language.
[ vedi traduzione in italiano in calce] [PDF in inglese: 3 pagine, 162 KB]
Jesús García-Molina, Ana Moreira, and Gustavo Rossi - Guest Editor
Riassunto italiano: Presentazione: UML: Il linguaggio standard per la modellazione di oggetti. I guest editor presentano la monografia che include una serie di articoli che riflettono lo stato dell'arte di UML (Unified Modeling Language). Questi articoli illustrano differenti aspetti di UML, dai casi d'uso alla formalizzazione UML, la meta-modellazione, la definizione di profili, l'ingegneria dei modelli e la MDA (Model Driven Architecture.) Come sempre, una lista di utili referenze completa la monografia.
An Introduction to UML Profiles [PDF in inglese: 8 pagine, 203 KB]
Lidia Fuentes-Fernández e Antonio Vallecillo-Moreno
Riassunto italiano: Un'introduzione ai profili UML. UML (Unified Modeling Language) è diventato uno degli standard più usati per specificare e documentare i sistemi informativi. Tuttavia, il fatto che UML sia una notazione di uso generale potrebbe limitarne l'efficienza per particolari domini, per i quali linguaggi più specializzati potrebbero essere più appropriati. UML fornisce un insieme di meccanismi di estensione per affrontare questo problema, che consentono la personalizzazione della propria sintassi e della semantica al fine di adattarsi a specifici domini applicativi. In questo articolo esaminiamo i meccanismi di estensione che sono utilizzati per definire i profili UML. Discutiamo inoltre l'utilità e la rilevanza dei profili UML nel contesto della Model Driven Architecture (MDA®).
Aspect-Oriented Design with Theme/UML [PDF in inglese: 6 pagine, 195 KB]
Siobhán Clarke
Riassunto italiano: Progetto orientato agli aspetti con Theme/UML Lo sviluppo di software orientato ad aspetti rappresenta un insieme di tecnologíe emergenti che si prefiggono di estendere le capacità di modularizzazione dei paradigmi di sviluppo di software esistenti. Per esempio, quegli aspetti che 'attraversano' un sistema (ovvero, influiscono in molti moduli del sistema) si possono progettare e programmare in modo separato, per ricomporsi poi in un sistema funzionante. Nel paradigma orientato agli oggetti, esistono molti esempi di aspetti trasversali che non si possono modularizzare -- alcuni classici sono la gestione delle transazioni, il supporto alla distribuzione ed i controlli di auditing. Hanno avuto un successo significativo i linguaggi orientati agli aspetti basati su linguaggi di programmazione orientati ad oggetti. Questo articolo descrive un approccio all'estensione di UML (Unified Modeling Language) per supportare la modularizzazione degli aspetti di interesse di un progettista, incluso quelli trasversali.
In Search of a Basic Principle for Model Driven Engineering [PDF in inglese: 4 pagine, 195 KB]
Jean Bézivin
Riassunto italiano: Alla ricerca di un principio di base per l'ingegneria guidata dai modelli Nel Novembre 2000, Il gruppo OMG (Object Management Group) ha reso pubblica l'iniziativa MDA (Model Driven Architecture), una variante dell' ingegneria dei modelli. Le idee di base dell'ingegneria dei modelli sono relazionate con molte altre proposte come la programmazione generativa, i linguaggi per i domini concreti, il calcolo integrato con modelli etc. La MDA può definirsi come la realizzazione dei principi dell'ingegneria dei modelli attraverso standard OMG come MOF (Meta Object Facility), XMI (XML Metadata Interchange), OCL (Object Constraint Language), UML (Unified Modeling Language), CWM (Common Warehouse Metamodel), SPEM (Software Process Engineering Metamodel), etc. In modo simile al famoso principio "tutto è un oggetto" in questo lavoro suggeriamo che nell'ingegneria dei modelli il principio di base "tutto è un modello" può risultare un concetto chiave per caratterizzare questa nuova tendenza.
The Object Constraint Language for UML 2.0 – Overview and Assessment [PDF in inglese: 4 pagine, 179 KB]
Heinrich Hussmann and Steffen Zschaler
Riassunto italiano: Il linguaggio OCL (Object Constraint Language) per UML 2.0: síntesi e valutazione Parallelamente al lancio di UML 2.0 (Unified Modeling Language), è stata pubblicata anche una nuova versione dell'OCL (Object Constraint Language). OCL è un linguaggio per la descrizione testuale precisa di restrizioni che si applicano ai modelli grafici UML. Il nuovo standard OCL 2.0 va molto al di là del precedente, non tanto nelle caratteristiche quanto nel metodo scelto per esporre fondamenti più precisi e formali per il linguaggio. Questo lavoro, scritto da membri del gruppo che ha sviluppato OCL 2.0, offre una sintesi di nuovi aspetti del linguaggio assieme ad una discussione critica di alcuni aspetti dello stesso.
Developing Security-Critical Applications with UMLsec. A Short Walk-Through [PDF in inglese: 7 pagine, 251 KB]
Jan Jürjens
Riassunto italiano: Sviluppare applicazioni critiche sicure con UMLsec. Una breve panoramica Lo sviluppo di sistemi critici in termini di sicurezza è difficile e ci sono numerosi noti esempi di vulnerabilità effettivamente sfruttate nella pratica. Dunque si richiede con urgenza una metodologia di sviluppo sicura ed efficace. Diamo qui una panoramica su un'estensione di UML, chiamata UMLsec, che consente di esprimere informazione relativa alla sicurezza nei diagrammi di specifica di un sistema. Presentiamo uno strumento sviluppato per l'approccio UMLsec. Spieghiamo la metodologia sottostante attraverso un semplice esempio.
On the Nature of Use Case-Actor Relationships [PDF in inglese: 7 pagine, 193 KB]
Gonzalo Génova-Fuster and Juan Llorens-Morillo
Riassunto italiano: Sulla natura delle relazioni Casi d'uso - Attori. I diagrammi di casi d'uso sono uno dei concetti chiave di Unified Modeling Language (UML), ma la loro semantica e notazione ha alcune mancanze che conducono sovente a fraintendimenti fra gli utenti, anche su questioni piuttosto di base. In questo articolo affrontiamo alcune questioni riguardo le relazioni che si possono instaurare fra casi d'uso ed attori, definite al momento in UML come associazioni. La molteplicità di queste associazioni, le ambiguità di un caso d'uso associato a più di un attore e, infine, la natura stessa di queste relazioni, ci conduce a proporre un nuovo approccio, diverso da quello accettato finora.
Metrics for UML Models [PDF in inglese: 6 pagine, 184 KB]
Marcela Genero, Mario Piattini-Velthuis, José-Antonio Cruz-Lemus e Luis Reynoso
Riassunto italiano: Metriche per modelli UML Per l'importante ruolo giocato dai modelli ottenuti nelle prime fasi di sviluppo di sistemi Object-Oriented (OO), negli ultimi anni si è posta particolare attenzione alla qualità di questi modelli. Anche se si ritiene comunemente che UML (Unified Modeling Language) sia un aiuto al miglioramento della qualità del software, dobbiamo avere strumenti di misura obiettivi e quantitativi per dimostrare scientificamente questo miglioramento. L'idea che l'introduzione di metriche per UML possa aiutare i progettisti a fare meglio le loro scelte si sta affermando, portando negli ultimi anni ad una richiesta di questo tipo di metriche. Lo scopo principale di questo articolo è quindi quello di presentare una vasta panoramica delle più rilevanti proposte relative a metriche per modelli UML a livello concettuale, per fare lo stato dell'arte e per evidenziare cosa c'è ancora da fare in questo settore. Questo articolo darà anche sperabilmente ai ricercatori una visione più lungimirante delle direzioni che l'argomento "misura OO" sta prendendo.
Using Refactoring and Unification Rules to Assist Framework Evolution [PDF in inglese: 7 pagine, 215 KB]
Mariela I. Cortés, Marcus Fontoura, e Carlos J.P. de Lucena
Riassunto italiano: Utilizzo di ri-fattorizzazione e regole di unificazione come supporto all'evoluzione di framework. Nonostante lo sviluppo di software orientato agli oggetti abbia sperimentato i benefici dell'utilizzo dei framework, una completa comprensione di come modificarli in modo da soddisfare le necessità sempre in evoluzione, continua ad essere oggetto di ricerca. Conseguentemente, lo sviluppo del framework risulta molto costoso, non solo per la difficoltà intrinseca per catturare la teoria di un dominio, ma anche per la mancanza di metodi e tecnihe appropriate per supportare l'evoluzione e la ri-progettazione dell'architettura del framework stesso. Questo lavoro propone l'utilizzo della ri-fattorizzazione e di regole di unificazione come ausilio per gestire l'evoluzione del framework. L'argomento viene presentato attraverso l'esempio del framework di prova JUnit.
Mosaico - Notizie
In questo numero pubblichiamo notizie su:
ENISA: The European Network and Information Security Agency (Informazione fornita dalla Commissione Europea)
EUCIP (European Certification of Informatics Professional)
Fondazione ECDL (European Computer Driving Licence).
I GUEST EDITOR
Jesús García-Molina ha conseguito il PhD in Scienze dalla Universidad de Murcia, Spagna, nel 1987. E' professore al Dipartimento di Scienze Informatiche della Universidad de Murcia e Decano della Facoltà di Informatica. E' stato un pioniere della tecnologia ad oggetti in Spagna. I suoi attuali interessi di ricerca includono l'analisi ed il progetto orientati agli oggetti, la modellazione di processi, l'ingegneria dei modelli e la specifica di componenti ed architetture. E' editor della sezione tecnica “Tecnologia ad Oggetti” di Novática, assieme a Gustavo Rossi. jmolina AT um DOT es
Ana Moreira ha un PhD in Metodi Formali della University of Stirling, Scotland, UK, 1994. Ha un master della Facoltà di Scienza e Tecnologia della Universidade Nova de Lisboa, Portogallo, 1991. Dal 1995 è Professore Associato di "Metodi avanzati di Ingegneria del software" al Dipartimento di Informatica della stessa Università. E' ricercatrice all'Informatics and Information Technology Centre (CITI). Ha pubblicato numerosi artivoli su ingegneria del software e metodi formali. E' co-editor del numero speciale in uscita del IEEE Software Proceedings su "Early Aspects" ed è membro del comitato editoriale delle riviste Springer-Verlag “Software and Systems Modelling” e “Transactions on Aspect-Oriented Software Development”. E' stata membro del ECOOP e UML Program Committees per diversi anni ed è ora membro del pUML (precise UML) steering committee. E' chairperson alla conferenza UML 2004. amm AT di DOT fct DOT unl DOT pt
Gustavo Rossi ha un dottorato della PUC-Rio, Brasile. E' Professore Ordinario alla Universidad de La Plata, Argentina. Lavora nel campo della programmazione OO fin dai primi anni '90 e ha tenuto molti corsi sull'argomento. I suoi interessi di ricerca sono centrati su applicazioni web adattabili. e sui pattern e framework utlizzati in questo tipo di applicazioni. E' editor della sezione tecnica “Tecnologia ad Oggetti” di Novática, assieme a Jesús García-Molina. gustavo AT sol DOT info DOT unlp DOT edu DOT ar.
(Indirizzi e-mail presentati in modo da evitare lo spam)
IL TEAM EDITORIALE DI UPGRADE
Jesús García-Molina, Ana Moreira, e Gustavo Rossi
Numero completo:[Abstract HTML in Inglese] - [PDF in Inglese: 64 pagine; 2.3 MB]
Singoli articoli
Copertina PDF in Inglese: 1.2 MB di Antonio Crespo Foix, © ATI 2004
È necessario Acrobat Reader per visualizzare i file PDF
Gli articoli interamente tradotti in italiano sono facilmente individuabili grazie alla bandiera
EDITORIAL. From the Editors' Desk. The UPGRADE European Network: N przywitanie / Welcome!
[PDF in inglese: 1 pagina, 236 KB]
Il comitato editoriale di Upgrade
Riassunto italiano: Editoriale. La rete Europea di UPGRADE: N przywitanie / Benvenuti!. I membri del comitato editoriale di Upgrade descrivono gli scopi della rete di riviste delle associazioni membre del CEPIS (UPGRADE european NETwork, UPeNet), i cui contenuti arricchiranno i nostri ed offriranno una visione più ampia dell'ICT ai nostri lettori. La prima rivista ad unirsi a noi in questa avventura è Pro Dialog, coprodotta dalla associazione CEPIS polacca PTI-PIPS (Polskie Towarzystwo Informatyczne – Polish Information Processing Society) e dalla Poznan University of Technology, Institute of Computing Science.
PRESENTATION. UML: The Standard Object Modelling Language.
[ vedi traduzione in italiano in calce] [PDF in inglese: 3 pagine, 162 KB]
Jesús García-Molina, Ana Moreira, and Gustavo Rossi - Guest Editor
Riassunto italiano: Presentazione: UML: Il linguaggio standard per la modellazione di oggetti. I guest editor presentano la monografia che include una serie di articoli che riflettono lo stato dell'arte di UML (Unified Modeling Language). Questi articoli illustrano differenti aspetti di UML, dai casi d'uso alla formalizzazione UML, la meta-modellazione, la definizione di profili, l'ingegneria dei modelli e la MDA (Model Driven Architecture.) Come sempre, una lista di utili referenze completa la monografia.
An Introduction to UML Profiles [PDF in inglese: 8 pagine, 203 KB]
Lidia Fuentes-Fernández e Antonio Vallecillo-Moreno
Riassunto italiano: Un'introduzione ai profili UML. UML (Unified Modeling Language) è diventato uno degli standard più usati per specificare e documentare i sistemi informativi. Tuttavia, il fatto che UML sia una notazione di uso generale potrebbe limitarne l'efficienza per particolari domini, per i quali linguaggi più specializzati potrebbero essere più appropriati. UML fornisce un insieme di meccanismi di estensione per affrontare questo problema, che consentono la personalizzazione della propria sintassi e della semantica al fine di adattarsi a specifici domini applicativi. In questo articolo esaminiamo i meccanismi di estensione che sono utilizzati per definire i profili UML. Discutiamo inoltre l'utilità e la rilevanza dei profili UML nel contesto della Model Driven Architecture (MDA®).
Aspect-Oriented Design with Theme/UML [PDF in inglese: 6 pagine, 195 KB]
Siobhán Clarke
Riassunto italiano: Progetto orientato agli aspetti con Theme/UML Lo sviluppo di software orientato ad aspetti rappresenta un insieme di tecnologíe emergenti che si prefiggono di estendere le capacità di modularizzazione dei paradigmi di sviluppo di software esistenti. Per esempio, quegli aspetti che 'attraversano' un sistema (ovvero, influiscono in molti moduli del sistema) si possono progettare e programmare in modo separato, per ricomporsi poi in un sistema funzionante. Nel paradigma orientato agli oggetti, esistono molti esempi di aspetti trasversali che non si possono modularizzare -- alcuni classici sono la gestione delle transazioni, il supporto alla distribuzione ed i controlli di auditing. Hanno avuto un successo significativo i linguaggi orientati agli aspetti basati su linguaggi di programmazione orientati ad oggetti. Questo articolo descrive un approccio all'estensione di UML (Unified Modeling Language) per supportare la modularizzazione degli aspetti di interesse di un progettista, incluso quelli trasversali.
In Search of a Basic Principle for Model Driven Engineering [PDF in inglese: 4 pagine, 195 KB]
Jean Bézivin
Riassunto italiano: Alla ricerca di un principio di base per l'ingegneria guidata dai modelli Nel Novembre 2000, Il gruppo OMG (Object Management Group) ha reso pubblica l'iniziativa MDA (Model Driven Architecture), una variante dell' ingegneria dei modelli. Le idee di base dell'ingegneria dei modelli sono relazionate con molte altre proposte come la programmazione generativa, i linguaggi per i domini concreti, il calcolo integrato con modelli etc. La MDA può definirsi come la realizzazione dei principi dell'ingegneria dei modelli attraverso standard OMG come MOF (Meta Object Facility), XMI (XML Metadata Interchange), OCL (Object Constraint Language), UML (Unified Modeling Language), CWM (Common Warehouse Metamodel), SPEM (Software Process Engineering Metamodel), etc. In modo simile al famoso principio "tutto è un oggetto" in questo lavoro suggeriamo che nell'ingegneria dei modelli il principio di base "tutto è un modello" può risultare un concetto chiave per caratterizzare questa nuova tendenza.
The Object Constraint Language for UML 2.0 – Overview and Assessment [PDF in inglese: 4 pagine, 179 KB]
Heinrich Hussmann and Steffen Zschaler
Riassunto italiano: Il linguaggio OCL (Object Constraint Language) per UML 2.0: síntesi e valutazione Parallelamente al lancio di UML 2.0 (Unified Modeling Language), è stata pubblicata anche una nuova versione dell'OCL (Object Constraint Language). OCL è un linguaggio per la descrizione testuale precisa di restrizioni che si applicano ai modelli grafici UML. Il nuovo standard OCL 2.0 va molto al di là del precedente, non tanto nelle caratteristiche quanto nel metodo scelto per esporre fondamenti più precisi e formali per il linguaggio. Questo lavoro, scritto da membri del gruppo che ha sviluppato OCL 2.0, offre una sintesi di nuovi aspetti del linguaggio assieme ad una discussione critica di alcuni aspetti dello stesso.
Developing Security-Critical Applications with UMLsec. A Short Walk-Through [PDF in inglese: 7 pagine, 251 KB]
Jan Jürjens
Riassunto italiano: Sviluppare applicazioni critiche sicure con UMLsec. Una breve panoramica Lo sviluppo di sistemi critici in termini di sicurezza è difficile e ci sono numerosi noti esempi di vulnerabilità effettivamente sfruttate nella pratica. Dunque si richiede con urgenza una metodologia di sviluppo sicura ed efficace. Diamo qui una panoramica su un'estensione di UML, chiamata UMLsec, che consente di esprimere informazione relativa alla sicurezza nei diagrammi di specifica di un sistema. Presentiamo uno strumento sviluppato per l'approccio UMLsec. Spieghiamo la metodologia sottostante attraverso un semplice esempio.
On the Nature of Use Case-Actor Relationships [PDF in inglese: 7 pagine, 193 KB]
Gonzalo Génova-Fuster and Juan Llorens-Morillo
Riassunto italiano: Sulla natura delle relazioni Casi d'uso - Attori. I diagrammi di casi d'uso sono uno dei concetti chiave di Unified Modeling Language (UML), ma la loro semantica e notazione ha alcune mancanze che conducono sovente a fraintendimenti fra gli utenti, anche su questioni piuttosto di base. In questo articolo affrontiamo alcune questioni riguardo le relazioni che si possono instaurare fra casi d'uso ed attori, definite al momento in UML come associazioni. La molteplicità di queste associazioni, le ambiguità di un caso d'uso associato a più di un attore e, infine, la natura stessa di queste relazioni, ci conduce a proporre un nuovo approccio, diverso da quello accettato finora.
Metrics for UML Models [PDF in inglese: 6 pagine, 184 KB]
Marcela Genero, Mario Piattini-Velthuis, José-Antonio Cruz-Lemus e Luis Reynoso
Riassunto italiano: Metriche per modelli UML Per l'importante ruolo giocato dai modelli ottenuti nelle prime fasi di sviluppo di sistemi Object-Oriented (OO), negli ultimi anni si è posta particolare attenzione alla qualità di questi modelli. Anche se si ritiene comunemente che UML (Unified Modeling Language) sia un aiuto al miglioramento della qualità del software, dobbiamo avere strumenti di misura obiettivi e quantitativi per dimostrare scientificamente questo miglioramento. L'idea che l'introduzione di metriche per UML possa aiutare i progettisti a fare meglio le loro scelte si sta affermando, portando negli ultimi anni ad una richiesta di questo tipo di metriche. Lo scopo principale di questo articolo è quindi quello di presentare una vasta panoramica delle più rilevanti proposte relative a metriche per modelli UML a livello concettuale, per fare lo stato dell'arte e per evidenziare cosa c'è ancora da fare in questo settore. Questo articolo darà anche sperabilmente ai ricercatori una visione più lungimirante delle direzioni che l'argomento "misura OO" sta prendendo.
Using Refactoring and Unification Rules to Assist Framework Evolution [PDF in inglese: 7 pagine, 215 KB]
Mariela I. Cortés, Marcus Fontoura, e Carlos J.P. de Lucena
Riassunto italiano: Utilizzo di ri-fattorizzazione e regole di unificazione come supporto all'evoluzione di framework. Nonostante lo sviluppo di software orientato agli oggetti abbia sperimentato i benefici dell'utilizzo dei framework, una completa comprensione di come modificarli in modo da soddisfare le necessità sempre in evoluzione, continua ad essere oggetto di ricerca. Conseguentemente, lo sviluppo del framework risulta molto costoso, non solo per la difficoltà intrinseca per catturare la teoria di un dominio, ma anche per la mancanza di metodi e tecnihe appropriate per supportare l'evoluzione e la ri-progettazione dell'architettura del framework stesso. Questo lavoro propone l'utilizzo della ri-fattorizzazione e di regole di unificazione come ausilio per gestire l'evoluzione del framework. L'argomento viene presentato attraverso l'esempio del framework di prova JUnit.
Mosaico - Notizie
In questo numero pubblichiamo notizie su:
ENISA: The European Network and Information Security Agency (Informazione fornita dalla Commissione Europea)
EUCIP (European Certification of Informatics Professional)
Fondazione ECDL (European Computer Driving Licence).
I GUEST EDITOR
Jesús García-Molina ha conseguito il PhD in Scienze dalla Universidad de Murcia, Spagna, nel 1987. E' professore al Dipartimento di Scienze Informatiche della Universidad de Murcia e Decano della Facoltà di Informatica. E' stato un pioniere della tecnologia ad oggetti in Spagna. I suoi attuali interessi di ricerca includono l'analisi ed il progetto orientati agli oggetti, la modellazione di processi, l'ingegneria dei modelli e la specifica di componenti ed architetture. E' editor della sezione tecnica “Tecnologia ad Oggetti” di Novática, assieme a Gustavo Rossi. jmolina AT um DOT es
Ana Moreira ha un PhD in Metodi Formali della University of Stirling, Scotland, UK, 1994. Ha un master della Facoltà di Scienza e Tecnologia della Universidade Nova de Lisboa, Portogallo, 1991. Dal 1995 è Professore Associato di "Metodi avanzati di Ingegneria del software" al Dipartimento di Informatica della stessa Università. E' ricercatrice all'Informatics and Information Technology Centre (CITI). Ha pubblicato numerosi artivoli su ingegneria del software e metodi formali. E' co-editor del numero speciale in uscita del IEEE Software Proceedings su "Early Aspects" ed è membro del comitato editoriale delle riviste Springer-Verlag “Software and Systems Modelling” e “Transactions on Aspect-Oriented Software Development”. E' stata membro del ECOOP e UML Program Committees per diversi anni ed è ora membro del pUML (precise UML) steering committee. E' chairperson alla conferenza UML 2004. amm AT di DOT fct DOT unl DOT pt
Gustavo Rossi ha un dottorato della PUC-Rio, Brasile. E' Professore Ordinario alla Universidad de La Plata, Argentina. Lavora nel campo della programmazione OO fin dai primi anni '90 e ha tenuto molti corsi sull'argomento. I suoi interessi di ricerca sono centrati su applicazioni web adattabili. e sui pattern e framework utlizzati in questo tipo di applicazioni. E' editor della sezione tecnica “Tecnologia ad Oggetti” di Novática, assieme a Jesús García-Molina. gustavo AT sol DOT info DOT unlp DOT edu DOT ar.
(Indirizzi e-mail presentati in modo da evitare lo spam)
IL TEAM EDITORIALE DI UPGRADE
- Chief Editor: Rafael Fernandez Calvo, Madrid (Spagna) <rfcalvo at ati dot es>
- Editor:
a. François Louis Nicolet, Zürich (Svizzera) <nicolet at acm dot org>
b. Roberto Carniel, Udine (Italia) <roberto dot carniel at uniud dot it>
b. Roberto Carniel, Udine (Italia) <roberto dot carniel at uniud dot it>
CURATORE DELL'EDIZIONE ITALIANA
Roberto Carniel. Laureato in Scienze dell'Informazione e Laureato Specialistico in Informatica presso l'Università di Udine, Dottore di Ricerca in Matematica Computazionale e Informatica Matematica presso l'Università di Padova, nonché Ingegnere dell'Informazione presso l'Ordine degli Ingegneri di Udine. È membro fondatore dell'ALSI, l'Associazione nazionale Laureati in Scienze dell'informazione ed Informatica, di cui è il rappresentante nel CEPIS. Collabora con il portale Tecnoteca dalla sua creazione. E' attualmente Ricercatore di Geofisica Applicata presso l'Università degli Studi di Udine e Segretario del Working Group di Sismologia Vulcanica della European Seismological Commission. Nella sua ricerca predilige l'utilizzo di strumenti Free Software.
UML: il linguaggio di modellazione di oggetti standard
Jesús García-Molina, Ana Moreira e Gustavo Rossi - Guest Editor;
Traduzione a cura di Roberto Carniel
1 Introduzione: Cos'è UML?
Durante gli anni '80 il paradigma Object-Oriented (OO) è stato accettato come il metodo migliore per sviluppare software. Per la fine del decennio esistevano un grande numero di metodi e notazioni differenti, che frammentavano la comunità degli utenti e creavano le basi per una ‘guerra dei metodi’ [1]. La successiva convergenza, condotta da tre dei maggiori contendenti, ha portato alla unificazione di molti linguaggi di modellazione con poche differenze nel potere espressivo. Il risultato finale fu Unified Modeling Language (UML), un linguaggio di modellazione ad ampio spettro applicativo ed ampiamente supportato. I metodi dei tre leader – Jim Rumbaugh, Grady Booch e Ivar Jacobson – hanno contribuito fortemente alla formulazione del nuovo linguaggio, aiutati da contributi dei maggiori produttori di software.
Nel 1997 UML diventò un OMG (Object Management Group) standard e da allora il linguaggio standard de facto per visualizzare, specificare e documentare i modelli nello sviluppo software.
UML ha avuto un enorme impatto sulla comunità degli sviluppatori, sia in termini di ricerca che commerciali. Il suo successo è stato impressionante, come testimoniato dalle applicazioni in numerosi campi e di diverse dimensioni. Quasi tutti gli ambienti di sviluppo (ad esempio, Microsoft, IBM, Borland, oltre che quelli non proprietari) ormai includono strumenti di modellazione UML.
UML non ha una semantica formale. I suoi elementi sono stati dapprima definiti in inglese preciso, e poi complementati con metamodelli statici object-oriented e vincoli dichiarativi. Molti ricercatori hanno lavorato su questo tema. Attualmente, dove è richiesta precisione, OCL (Object Constraint Language) è usato assieme a UML per aggiungere "formalità" ai modelli software.
2 Aree di ricerca correlate a UML
Il principale obiettivo nello sviluppo è stato quello di ottenere un linguaggio semplice ma espressivo in grado di usare applicazioni di modellazione in differenti domini. Il linguaggio deve fornire modelli leggibili sia da umani (gli utenti principali) che da calcolatori (per consentire la generazione automatica di codice).
Al fine di combinare semplicità ed applicabilità, UML incorpora un insieme di meccanismi di estensione per definire profili. Un profilo UML può adattarsi ad un particolare dominio (applicazioni web, business modelling, CORBA - Common Object Request Broker Architecture, etc. ). La leggibilità è ottenuta attraverso un insieme di diagrammi visuali per rappresentare i modelli. Infine, la generazione di codice richiede una definizione formale di UML, la cui semantica è fornita da un metamodello espresso in un metalinguaggio detto MOF. La definizione di profili e la formalizzazione di UML sono due aree in cui la ricerca si è sviluppata molto negli ultimi anni.
Unified Process (UP) è un framework sviluppato da Rational per definire processi basati su UML. Negli ultimi anni sono stati definiti molti processi software basati su UP: processi case-driven, incrementali, iterativi e centrati sull'architettura. Uno dei più noti processi è il RUP (Rational Unified Process) definito da Rational, che aveva sviluppato in origine lo stesso UML (prima di essere acquisita da IBM alla fine del 2002.)
Oggi, la definizione di processi basati su UML e tecniche di modellazione come i casi d'uso o la modellazione business stanno ricevendo una notevole attenzione sia dall'industria che dall'accademia. La modellizzazione con casi d'uso è una della più largamente accettate. Tuttavia, come Booch ha messo in evidenza [2], solo una piccola parte della comunità di sviluppatori usa UML, e molti progetti usano il linguaggio per documentare decisioni di progetto più che per ragionare sui sistemi, che consentirebbe di sfruttarlo maggiormente. La crescita di UML è comunque la prova che la modellazione e la progettazione sono stati riconosciuti come fattori chiave nella produzione del software di qualità. Paradossalmente siamo testimoni allo stesso tempo dell'emergere del movimento del Software Agile [3]. Questo movimento – che considera che codice e persone hanno più valore di processi, modelli e documentazione – affonda le sue radici nelle idee dell'eXtreme Programming (XP) [4].
Con l'iniziativa MDA (Model Driven Architecture) promossa dall'OMG, un nuovo paradigma di sviluppo è emerso, modello-centrico anziché codicee-centrico. Ambisce a facilitare il ri-uso attraverso la creazione di uno spettro ordinato di raffinamenti in Platform Independent Models (PIM) e Platform Specific Models (PSM). La consistenza dei passi di raffinamento è garantita da profili UML. L'ingegneria dei modelli è un'area emergente sia nell'accademia che nell'industria; ci sono già molti ambienti di sviluppo che incorporano strumenti di trasformazione di modelli. L'idea alla base è quella di liberare i programmatori dal compito di scrivere qualsiasi codice che può essere generato in automatico.
La crescente importanza dell'ingegneria dei modelli ha spinto la ricerca in aree quali la qualità e la valutazione dei modelli, la definizione di profili, gli approcci formali alle trasformazioni, lo sviluppo di strumenti di trasformazione. UML ha subito una rapida evoluzione dalla sua creazione. Come evidenziato da Booch [2], UML ha migliorato il potere di modellazione e la precisione ma non è cambiato nella sua natura essenziale. Nell'Ottobre 2003, l'OMG ha adottato lo standard UML 2.0, con lo scopo, fra gli altri, di fornire una solida base per MDA attraverso meccanismi semplificati per la creazione di profili. Incorpora inoltre lo sviluppo basato su componenti, con una migliorata modellazione di relazioni e diagrammi a stati definiti in modo più preciso e rigorosi. Diagrammi sequenziali e modelli di comportamento hanno subito anch'essi notevoli miglioramenti.
3 Contenuti della monografia
Questa monografia presenta una serie di articoli che riflettono lo stato dell'arte di UML. Gli articoli ne illustrano differenti aspetti, dai casi d'uso alla formalizzazione UML, la meta-modellizzazione, la definizione di profili, la qualità dei modelli, l'ingegneria dei modelli e la MDA. Come detto in precedenza, i profili costituiscono il meccanismo standard per estendere UML e creare profili personalizzati per un dato dominio.
Lidia Fuentes-Fernández e Antonio Vallecillo-Moreno nel loro lavoro “An Introduction to UML Profiles” descrivono i passi per creare un profilo e sottolineano l'importanza dei profili in MDA. In “Aspect-Oriented Design with Theme/UML”, Siobhán Clarke presenta il suo approccio a temi al progetto orientato all'aspetto.
Nel suo articolo “In Search of a Basic Principle for Model Driven Engineering”, Jean Bézivin, un pioniere della ingegneria dei modelli e del MDA, offre una interessante panoramica sulle caratteristiche essenziali di questo nuovo paradigma di sviluppo software.
Heinrich Hussmann e Steffen Zschaler presentano il nuovo standard OCL nel loro articolo “The Object Constraint Language for UML 2.0 – Overview and Assessment”.
Jan Jürjens, nel suo articolo “Developing Security-Critical Applications with UMLsec. A Short Walk-Through”, analizza i problemi nella creazione di sistemi critici di alta qualità e come la modellazione UML possa aiutarne la soluzione.
I casi d'uso hanno dato luogo a una serie di fraintendimenti per la mancanza di una precisa semantica. L'articolo “On the Nature of Use Case-Actor Relationships”, di Gonzalo Génova-Fuster e Juan Llorens-Morillo, rivela che le relazioni fra attori e casi d'uso sono anch'esse definite in modo ambiguo ed impreciso, e propongono una soluzione al problema.
Marcela Genero, Mario Piattini-Velthuis, José-Antonio Cruz-Lemus e Luis Reynoso, nel loro articolo “Metrics for UML Models”, offrono una visione dello stato dell'arte delle metriche applicate a diagrammi UML (quali i diagrammi di classe, stato e casi d'uso) e ad espressioni OCL.
Mariela I. Cortés, Marcus Fontoura e Carlos J.P. de Lucena, nel loro articolo “Using Refactoring and Unification Rules to Assist Framework Evolution”, usano UML-F, un UML progettato per descrivere framework, per presentare due tecniche nate per facilitare la manutenzione ed evoluzioni dei framework stessi.
Bibliografia
[1] I. Jacobson. “Time for a cease-fire in the methods war”, Journal Object-Oriented Programming, July 1993
[2] G. Booch. “Growing the UML”, Software and System Modelling, 1 (2), pp. 157–160, December, 2002.
[3] The AgileAlliance: http://www.agilealliance.org/home.
[4] “eXtreme Programming”, Upgrade, Vol. III, issue no. 2, http://www.upgrade-cepis.org/issues/2002/2/upgrade-vIII-2.html.
Utili referenze su UML
In aggiunta alle numerose referenze inserite in questa presentazione e negli articoli che compongono la monografia, vogliamo anche richiamare l'attenzione dei lettori sulle seguenti risorse.
Siti web
* 18,193 Links on Objects & Components: .
* IBM, UML Resource Centre: .
* OMG (Object Management Group): .
* TECHLINQ, Links for Developers: .
Libri
* Booch, J. Rumbaugh, I. Jacobson. “The Unified Modeling Language User Guide”, Addison-Wesley, 1998.
* A. Cockburn. “Writing effective uses case”, Addison-Wesley, 2001.
* P. Evitts. “A UML Pattern Language”, Macmillan Technology Series, 2000.
* M. Fowler, K. Scott. “UML Distilled”, 2ª edition, 2000.
* I. Jacobson, G. Booch, J. Rumbaugh. “The Unified Software Development Process”, Addison-Wesley, 1999.
* C. Larman. “Applying UML and Patterns”, Prentice-Hall, 2001.
* R. Pooley, P. Stevens. “Using UML: Software Engineering with Objects and Components”, Addison-Wesley, 2000.
* J. Rumbaugh, I. Jacobson, G. Booch. “The Unified Modeling Language Reference Manual”, Addison-Wesley, 1999.
Conferenze
* UML Conference. Its 7th edition, <> 2004, Lisbona (Portogallo), 11–15 Ottobre 2004: .
Riviste
* Communications of the ACM, :
o Volume 42, Issue 10 (October 1999): UML.
o Volume 45, Issue 11 (November 2002): What UML should be.
* IEEE Software, , September/March 2003: Model-Driven Development.
* Software and System Modelling, :
o October 2003, December 2003 and March 2004: UML 2.0
o July 2003: Model engineering
o December 2002: Special issue on UML Conference
COPYRIGHT
- Copyright © CEPIS 2005. Versione Italiana: © ALSI e Tecnoteca 2005. Tutti i diritti riservati.
- Il riassunto e la citazione degli articoli inclusi in UPGRADE sono permessi con i dovuti crediti alla fonte. Per copie, ristampe, o ripubblicazioni, scrivete aglieditor della rivista o a Tecnoteca per la versione italiana.
- L'utilizzo non autorizzato di pagine, o loro parti, da parte di persone non autorizzate esplicitamente da UPGRADE è espressamente proibito e potrà essere perseguito per legge.
Ritorna all'elenco delle pubblicazioni