DEFINIZIONE DELLA TRASFORMAZIONE UML TO LQN IN LINGUAGGIO ATL

Documenti analoghi
1. UML 2 ed il Processo Unificato

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Unified Modeling Language (UML)

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Università degli studi dell Aquila. Sistemi di elaborazione dell informazione

Programmi e Oggetti Software

Programmi e Oggetti Software

UML2. Concetti base. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L31 Università di Camerino

Redazione e Presentazione di Progetti Informatici

Introduzione. A Tecnologie 1

Linguaggi, tecnologie e strumenti a supporto delle trasformazioni tra modelli in ambiente Eclipse

Analisi e differenti approcci alle. trasformazioni di modelli. Elaborato finale in Programmazione I. Anno accademico 2017/2018

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Linguaggi di Modellazione & UML

ARCHITETTURA DI UN DBMS

Modellazione discreta con UML

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

A mia moglie Ilaria ed ai miei familiari

SYLLABUS TRIENNIO. prof. Mauro Malatesta. Approvata dal Dipartimento di il. Approvata dal Consiglio di classe il...

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

INGEGNERIA DEL SOFTWARE

SAPIENZA Università di Roma, Facoltà di Ingegneria (sede di RIETI)

Ingegneria del Software L-A

Presentazione corso. Contenuti e diagramma di Pert. Definizione lista di spedizione. UML

Introduzione al corso

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Sistemi ICT per il Business Networking

Ingegneria del Software

Programmazione Orientata agli Oggetti I

Modelli e strumenti per la generazione automatica di codice

Una metodologia per la specifica di software a componenti

MDD Tools in CSI Piemonte: industrializzazione dello sviluppo e progetto open source

UNIVERSITÀ DEGLI STUDI DI PISA

Fondamenti di Informatica

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.


SOMMARIO CATEGORIE LOGICHE UNIVERSALI

Corso di Ingegneria del Software. Il modello UP

Progettazione parte seconda

UML I diagrammi implementativi

Progetto ARS01_00917 OK-INSAID Operational Knowledge from Insights and An 703,520 PON R&I Capofila. Durata (mesi) 30 Data Inizio 01/07/2018

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 1-4)

Progettazione Object-Oriented

Introduzione D B M G

La progettazione concettuale

Elena Baralis 2007 Politecnico di Torino 1

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Progettazione del Software Anno Accademico 2007/08

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Simulazione Parallela e Distribuita

INFORMATICA NOVITÀ IL LINGUAGGIO JAVA. Massimiliano Bigatti. Guida alla programmazione di base IN ALLEGATO AL VOLUME

Università degli Studi di Enna Kore Facoltà di Ingegneria ed Architettura

Il disegno nel ciclo di vita del prodotto

Analisi e progettazione orientata agli oggetti

UNIVERSITÀ DEGLI STUDI DI MILANO- BICOCCA CORSO EROGATO IN MODALITÀ BLENDED- LEARNING SYLLABUS

L assessment della Supply-Chain Con la metodologia SCOR

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Metodi Avanzati di Programmazione 2012/2013 Informatica (Brindisi) Loglisci Corrado

Introduzione alle basi di dati: Il modello concettuale

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

UML Unified Modeling Language

PROGETTAZIONE DIDATTICA

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

SISTEMI E TECNOLOGIE INFORMATICHE

Fondamenti di Informatica

Corso di Ingegneria del Software. Casi d uso

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Metodi Avanzati di Programmazione Informatica Triennale-Brindisi Corrado Loglisci

Operations Management Team

Operations Management Team

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Elena Baralis 2007 Politecnico di Torino 1

L impatto dei Sistemi Integrati sulla struttura e sull organizzazione aziendale

Algoritmo. Calcolabilità

Sviluppo di Software Sicuro -S 3 Introduzione. Sommario 24/02/2010 SCOPO DEL CORSO

Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI

La programmazione ad oggetti: chiamate di metodi. Overloading. This

Programmazione ad oggetti

Dichiarazione di una classe. Dichiarazione ereditarietà

Sistemi e Architetture per Big Data - A.A. 2017/18 Progetto 2: Analisi del dataset ACM DEBS Grand Challenge 2016 con Storm/Flink

REGIONE BASILICATA PROCEDURA APERTA (AI SENSI DEL D.LGS.163/2006 E S.M.I.)

Analisi dei Requisiti, Progettazione Preliminare ed Esecutiva di Grandi Sistemi Ingegneristici: Casi di Studio

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Logistica Integrata. Università di Roma Tor Vergata, Dipartimento Ingegneria dell Impresa SSD MAT/09 AA 2014/2015

3. Ciclo di Vita e Processi di Sviluppo

UNIVERSITÀ DEGLI STUDI GUGLIELMO MARCONI FACOLTÀ DI SCIENZE E TECNOLOGIE APPLICATE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

Basi di Dati Relazionali

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

Transcript:

UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software 2 - Parte 2 DEFINIZIONE DELLA TRASFORMAZIONE UML TO LQN IN LINGUAGGIO ATL Docenti: Prof. ANDREA D AMBROGIO Studente: STEFANO PERNA ANNO ACCADEMICO 2008-2009

Indice Indice iii 1 Introduzione 1 1.1 Obiettivi............................... 3 2 Linguaggi di trasformazioni di modelli 4 2.1 Architettura di QVT........................ 6 2.2 Architettura di ATL........................ 6 2.2.1 Regole di trasformazione.................. 6 2.2.2 Gli Helper.......................... 6 3 Profili di prestazioni 7 3.1 Il profilo SPT............................ 7 3.2 Il profilo MARTE.......................... 7 3.3 Conversione tra i profili....................... 7 4 Il modello LQN 8 4.1 Motivazioni............................. 8 5 Trasformazione Uml to Lqn 9 5.1 Il livello M3............................. 9 5.2 Il livello M2............................. 9 5.3 Il livello M1............................. 9 6 Trasformazione QVT Uml2Lqn 10 7 Trasformazione ATL Uml2Lqn 11 iii

iv INDICE 8 Conclusioni 12 9 Bibliografia 13

Capitolo 1 Introduzione Nel settore dei servizi informatici si continua ad assistere alla crescente produzione di applicazioni software orientate allo sfruttamento delle risorse di Internet, che forniscono agli utenti servizi nuovi e sempre più innovativi. Il fenomeno porta alla nascita di applicazioni Web sempre più complesse e sofisticate, in grado di integrare funzionalità diverse, ed è oggetto di investimenti sempre più ingenti da parte di società ed aziende. In questo contesto, risulta di fondamentale importanza affrontare la progettazione e la costruzione di queste applicazioni avvalendosi dell ausilio di metodologie, modelli e strumenti di sviluppo idonei, capaci di assicurare livelli qualitativi elevati, mantenendo i costi di sviluppo contenuti. L?idea alla base dello sviluppo Model-Driven è consentire un approccio integrato allo sviluppo del software, in cui la realizzazione di modelli possa essere considerata parte del processo di implementazione. I concetti definiti dal Model Driven Engeneering (MDE) rappresentano una generalizzazione del Model Driven Development (MDD) e della Model Driven Architecture (MDA) definita dall?object Management Group (OMG). Quest?ultima, in relazione all evoluzione dei linguaggi di modellazione del software (UML), intende far sì che le applicazioni software vengano generate attraverso un processo di trasformazione di modelli: un approccio aperto e non proprietario alla sfida del cambiamento tecnologico e di business; un?evoluzione del software engineering che fa leva sulla forte e formale separazione tra modelli funzionali (cosa deve fare il sistema) e modelli tecnologici (come usare le tecnologie), costruiti 1

2 Introduzione utilizzando standard non proprietari definiti e mantenuti dall?omg, da cui possono essere generate le applicazioni eseguibili, virtualmente su qualunque piattaforma, aperta o proprietaria, incluso ma non limitato a Web-Services,.NET, CORBA, Enterprise JavaBeans, C, C++ e Java. Usando la metodologia MDA, la funzionalità del sistema può inizialmente essere definita come un Platform-independent model (PIM) attraverso un appropriato Domain Specific Language (DSL) per essere poi trasformata in uno Platform-specific model (PSM). La motivazione dietro MDA è quella di spostare il carico del lavoro dalla codifica alla modellazione trattando i modelli come i principali artefatti di sviluppo. Tra i linguaggi DSL usati per risolvere le trasformazioni tra modelli ci sono QVT (Query/View/Transformation) eatl (ATLAS Transformation Language). Entrambi i linguaggi mostrano un?architettura a livelli in cui sono organizzati i loro componenti. Questi linguaggi ci permettono di trasformare un modello source (conforme a un metamodello source) in un modello target (conforme a un metamodello target). Essendo la trasformazione un modello essa stessa deve essere conforme a sua volta ad un metamodello ATL o QVT. Il livello di metameta-modeling (MMM o M3) costituisce la base su cui costruire l?architettura di metamodeling, il suo scopo è definire il linguaggio con cui andremo a specificare (istanziare) il metamodello (M2). Il metametamodello si trova ai livelli di astrazione più alti rispetto al metamodello ed è tipicamente più compatto rispetto al metamodello che esso descrive. Un MMM può definire più metamodelli e possono esserci più MMM associati a ciascun metamodello. Esempi di meta-metaoggetti contenuti in uno strato di meta-metamodeling sono MetaClass, MetaAttribute e MetaOperation. Il livello di metamodeling (MM o M2) costituisce la base con cui definire lo strato di modeling, definisce il linguaggio che specifica i modelli sottostanti. Un metamodello è una istanza di un MMM ed esempi tipici di metaoggetti in questo livello sono Class, Attribute, Operation, Component. Un modello è una istanza di un metamodello. A questo livello di astrazione (M1) definiamo il linguaggio che descrive il dominio informativo. Esempi di oggetti in questo livello sono StockShare, askprice, selllimitorder, e StockQuoteServer. Per finire, le istanze di un modello sono gli oggetti utente (user data) e rappresentano uno

1.1 Obiettivi 3 specifico dominio applicativo. Il Meta Object Facility (MOF) è il linguaggio per definire metamodelli. In Figura 1 sono mostrati come sono organizzati i modelli OMG, possiamo notare che MOF risiede in cima alla gerarchia. Figura 1.1: Gerarchia dei modelli. 1.1 Obiettivi In questo lavoro proponiamo una implementazione basata su linguaggio ATL della trasformazione di modelli source UML (Unified Modeling Language) annotati con il profilo MARTE (Modeling and Analysis of Real-time and Embedded systems) in modelli target LQN (Layered Queueing Network), partendo dalla stessa trasformazione definita in linguaggio QVT e con modelli source annotati con il profilo SPT (Profile for Schedulability, Performance and Time).

Capitolo 2 Linguaggi di trasformazioni di modelli L obiettivo è quello di trasformare un modello sorgente Ma in un modello target Mb. Una delle tecniche più comunemente usate per effettuare la trasformazione tra modelli è conosciuta come?metamodel Approach? basata sul pattern di Model Transformation mostrato in Figura 2.1. Figura 2.1: Operational contest. 4

5 In questo approccio il primo passo consiste nel definire i metamodelli sorgente e target (rispettivamente MMa e MMb) che forniscono la sintassi astratta per la descrizione dei modelli (rispettivamente Ma e Mb). Ciascun modello è conforme al proprio metamodello. Successivamente viene costruita una mappatura tra i due metamodelli (Tab), che consiste nello stabilire le corrispondenze tra i costrutti di ogni metamodello: è il programma di trasformazione il cui risultato è la creazione di Mb a partire da Ma. Questa mappatura può essere definita semplicemente come una tabella in cui sono mostrate le corrispondenze tra i costrutti di ogni metamodello. In questo caso il linguaggio usato deve essere conforme al suo metamodello MMt (ad es. XSL o ATL). Usando un linguaggio eseguibile è possibile effettuare la trasformazione Tab da qualsiasi modello di input Ma conforme a MMa generando il corrispondente modello Mb conforme a MMb. Nel nostro lavoro MMa è il metamodello UML, MMb il metamodello LQN, Ma il modello UML di input, Mb quello di output conforme a LQN e MMt il metamodello ATL. Nei capitoli successivi proviamo a confrontare i due linguaggi per le trasformazioni ATL e QVT evidenziando differenze e aspetti comuni. Questo ci servirà come base nell?implementazione della trasformazione ATL a partire dalla stessa in linguaggio QVT.

6 Linguaggi di trasformazioni di modelli 2.1 Architettura di QVT 2.2 Architettura di ATL 2.2.1 Regole di trasformazione 2.2.2 Gli Helper

Capitolo 3 Profili di prestazioni 3.1 Il profilo SPT 3.2 Il profilo MARTE 3.3 Conversione tra i profili 7

Capitolo 4 Il modello LQN 4.1 Motivazioni 8

Capitolo 5 Trasformazione Uml to Lqn 5.1 Il livello M3 5.2 Il livello M2 5.3 Il livello M1 9

Capitolo 6 Trasformazione QVT Uml2Lqn 10

Capitolo 7 Trasformazione ATL Uml2Lqn 11

Capitolo 8 Conclusioni 12

Capitolo 9 Bibliografia 13