Agile Group – DIEE, Università degli studi di Cagliari Eclipse Modeling Framework (EMF) Lavoro di: Antonio Cuccu.

Slides:



Advertisements
Presentazioni simili
Unified Modeling Language
Advertisements

Cagliari 4 Ottobre 2002 Krenesiel ESPERIENZA e LINEE KRENESIEL Workshop NAME Alessandra Spada
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
OO.1 Marco Ronchetti - Java Sql package.
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
La tecnologia CWM Alessandro Lorenzi A.A.2002/2003.
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Metodologie di Programmazione Esercizi sulla semantica di Java.
JUG – Ancona Italy AJAX Giovanni Baleani Developer IBS srl.
Eclipse un editor per Java ma anche di più di questo Angelo Gargantini.
JBoss Seam unifies JavaEE 5. Sommario Tecnology Timeline JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni.
Incontri tematici su GNU/Linux ed il Software Libero - programmazione per la scuola secondaria - ● Introduzione ● Perché la programmazione? ● Strumenti.
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella.
ELEMENTI DI INFORMATICA
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Sviluppo applicativo mobile per lettore barcode datalogic
Università degli Studi di Modena e Reggio Emilia
Java World Introduzione.
Corso di Ingegneria del Web A A
ODMG.
Design patterns in pillole: factory method pattern
STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE
UML Pattern.
Esercizi.
Generazione di codice dinamico per la realizzazione di catene di servizi componibili Matteo Fazi – matr
Dispositivi MIDI in Java
WPC034 - Visual Studio Code: sviluppare su Linux, Mac OS e Windows
STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE
MATRICI (ARRAY) IN MATLAB/OCTAVE
ELEMENTI DI INFORMATICA
Introduzione alle griglie computazionali
ELEMENTI DI INFORMATICA
Integrazione di OpenFOAM su Grid
Corso di Ingegneria del Web A A
JAPS: una soluzione “Agile”
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Asynchronous JavaScript and XML
Università degli Studi di Catania
Tecniche di Problem-Solving
SCHEMA COMPLETO AFFLUSSI-DEFLUSSI
SAS® OnDemand for Academics SAS Studio
Esercizi.
Programmazione ad Oggetti per la Fisica
Java World Cicli e Array.

Mille modi per immettere i periodici elettronici in ACNP
Copia di oggetti il costruttore di copia ha le stesse particolarità della signature di un costruttore ordinario; il primo parametro è una reference ad.
Composizioni di classi
Eccezioni – Precisazioni e approfondimenti
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
OpenLayers Client di mappe “non solo” WMS
Fondamenti di Informatica
Fatturazione Elettronica Integrata
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Paradigma di programmazione event-driven
Java Costruttore di copia e GetStatus.
Ese 2 (del 31 Marzo 2004).
concetti ed applicazioni
Java Introduzione.
Ebsco HLM2ACNP: l’esportazione dei dati “chiavi in mano”
UML Diagramma statico di una classe
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Transcript della presentazione:

Agile Group – DIEE, Università degli studi di Cagliari Eclipse Modeling Framework (EMF) Lavoro di: Antonio Cuccu

Agile Group – DIEE, Università degli studi di Cagliari Sommario Che cosa è EMF Ecore di EMF Come installare EMF Come lavorare con EMF La persistenza degli oggetti con EMF Conclusioni

Agile Group – DIEE, Università degli studi di Cagliari Che cosa è EMF EMF è un plug-in di Eclipse EMF è un progetto open source EMF consente: -La generazione automatica di codice Java a partire da un modello preesistente -La generazione di un XMI Schema a partire dal modello dei dati -La serializzazione delle istanze (oggetti) del modello in XMI -La deserializzazione di un’istanza del modello a partire da un documento XMI

Agile Group – DIEE, Università degli studi di Cagliari Ecore di EMF

Agile Group – DIEE, Università degli studi di Cagliari Come installare EMF EMF Download Aggiungere EMF nella cartella plugins di Eclipse

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF EMF consente la generazione di codice Java a partire da un modello che può essere specificato in diversi modi: 1) XML Schema 2) Annotated Java interfaces 3) Rational Rose

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF XML schema <xsd:schema targetNamespace=" xmlns= xmlns:xsd="

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Annotated Java interfaces */ public interface Book { /** */ String getTitle(); /** */ int getPages(); }

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Rational Rose (UML)

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Un esempio in Rational Rose

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione del codice Java

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione del codice Java

Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF public interface Videocassetta extends EObject { String getTitolo(); void setTitolo(String value); String getCodice(); void setCodice(String value); Videoteca getVideoteca(); void setVideoteca(Videoteca value); } Generazione del codice Java

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF EMF fornisce un insieme di classi che consentono la creazione oggetti persistenti EMF fornisce un insieme di classi che consentono di “manipolare” oggetti persistenti La creazione degli oggetti persistenti avviene attraverso una serializzazione XMI

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //Crea un'istanza della EsempioemfFactory EsempioemfFactory factory = EsempioemfFactory.eINSTANCE; //L'oggetto factory crea un oggetto della classe videoteca Videoteca videoteca=factory.createVideoteca(); videoteca.setIndirizzo("Via Is Maglias 12 Cagliari"); videoteca.setNome("UnicaVideo"); //L'oggetto factory crea un oggetto della classe videocassetta Videocassetta videoOne = factory.createVideocassetta(); videoOne.setCodice("vid12cc"); videoOne.setTitolo("Kill Bill volume primo"); videoOne.setVideoteca(videoteca);

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //L'oggetto factory crea un oggetto della classe videocassetta Videocassetta videoTwo = factory.createVideocassetta(); videoTwo.setCodice("vid13cc"); videoTwo.setTitolo("Kill Bill volume secondo"); videoTwo.setVideoteca(videoteca); //Creazione di un resource set. ResourceSet resourceSet = new ResourceSetImpl(); //Inizializzazione del resource set. resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().p ut(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //Viene creato l'URI per il file. URI fileURI = URI.createFileURI(new File("Videoteca.xmi").getAbsolutePath()); //Creazione di una resource a cui andranno associati gli oggetti da serializzare Resource resource = resourceSet.createResource(fileURI); //Gli oggetti da serializzare vengono associati alla resource resource.getContents().add(videoteca); resource.getContents().add(videoOne); resource.getContents().add(videoTwo); //Il file con gli oggetti serializzati vengono salvati nel workspace del progetto try { resource.save(Collections.EMPTY_MAP); } catch (IOException e) { }

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF //Creazione di un resource set. ResourceSet resourceSet2 = new ResourceSetImpl(); //Inizializzazione del resource set. resourceSet2.getResourceFactoryRegistry().getExtensionToFactoryMap().put( Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); //Si ottiene una URI per il file. URI fileURI = URI.createFileURI(new File("Videoteca.xmi").getAbsolutePath()); // Creazione di una risorsa per il file. Resource resource=resourceSet2.getResource(fileURI,true); Deserializzazione

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF for(int i=0;i<resource.getContents().size();i++) if(resource.getContents().get(i) instanceof Videocassetta) { videocassetteArray[x]=(Videocassetta)resource.getVideoteca.get(i); x=x+1; } else { videotecaArray[y]=(Videoteca)resource.getVideoteca.get(i); y=y+1; } Deserializzazione

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF for(int i=0;i<NumVideocassette;i++) { System.out.println(videocassetteArray[i].getTitolo()); System.out.println("reperibile nella videoteca:“ +videocassetteArray[i].getContiene().getNome()+ videocassetteArray[i].getContiene().getIndirizzo()); } Deserializzazione

Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF “Kill Bill volume primo reperibile nella videoteca:UnicaVideo Via Is Maglias 12 Cagliari” “Kill Bill volume secondo reperibile nella videoteca:UnicaVideo Via Is Maglias 12 Cagliari” Deserializzazione

Agile Group – DIEE, Università degli studi di Cagliari Conclusioni Caratteristiche principali del software EMF: –Generazione automatica di codice Java –Generazione dell’XMI Schema del modello –Serializzazione degli oggetti in XMI –Deserializzazione degli oggetti