La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Agile Group – DIEE, Università degli studi di Cagliari Eclipse Modeling Framework (EMF) Lavoro di: Antonio Cuccu."— Transcript della presentazione:

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

2 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

3 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

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

5 Agile Group – DIEE, Università degli studi di Cagliari Come installare EMF EMF Download http://www.eclipse.org/emf Aggiungere EMF nella cartella plugins di Eclipse

6 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

7 Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF XML schema <xsd:schema targetNamespace="http:///library.ecore" xmlns=http:///library.ecore xmlns:xsd="http://www.w3.org/2001/XMLSchema">http:///library.ecore

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25 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

26 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

27 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);

28 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());

29 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) { }

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

31 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

32 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

33 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

34 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

35 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


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

Presentazioni simili


Annunci Google