Documente Academic
Documente Profesional
Documente Cultură
2011
1
Mediul de dezvoltare ECLIPSE pentru modelare aplicatii Java
-Sumar-
I. Modelul Generator
Rolul
Legatura intre modelul ecore si modelul genmodel
Configurare
II. Generare de cod
Descriere
Suprascriere de cod generat
III. Concluzii
2
I Introducere EMF (Eclipse Modeling Framework)
3
Aceasta arhitectura ofera o serie de avantaje :
4
Ce este Eclipse Modeling Framework( EMF) ?
EMF este o componenta, extensie(plug-in), a mediului de dezvoltare Eclipse care suporta anumite
functii legate de portabilitate, interoperabilitate, si reutilizare a modelelor dealungul etapelor de
dezvoltare a unui produs software de la specificare pana la implementarea acestuia.
Scopul principal al EMF este de a oferi un mediu care faciliteaza generarea automata a diferitelor
tipuri de modele UML si in acelasi timp sa ofere suport pentru translatia acestor modele in cod sursa
JAVA.
EMF poate fi privit si ca o extensie pentru modelarea aplicatiilor JAVA care ofera posibilitati de
generare de cod.
Toate aceste modele sunt mapate astfel incat sa se permita translatii imediate intre acestea
Diagrama simlificata a modului de lucru a EMF.
II Modelul ECore
Metalimbaj de modelare
Ce este ecore ?
5
Scopul Ecore este de a permite utilizatorilor sa defineasca modele structurale.
- generare de cod
- import/export de la /catre diferite forme
- are suport IBM
Metamodelul simplificat de mai sus rerezinta setul minim care trebuie inteles pentru a lucra cu
modelul ecore
- EClass
6
-reprezinta un tip
-un tip poate sa defineasca :
o -oricate supertipuri
o -oricate referinte
o -oricate atribute
- EAttribute
-reprezinta un atribut tip
- EReference
-reprezinta un capat de asociere
-optional pointeaza catre celalalt capat al asocierii
-defineste un tip referinta(clase, interfete)
- editor XML
- editor ecore
- unelte UML
- interfete Java –un model ecore poate fi generat din Java
- Emfatic –un limbaj asemanator Java conceput pentru a expune ecore
7
Editorul ecore
Pasul 1.
8
- EMF vine cu un editor ecore
- Editorul ecore a fost construit utilizand EMF
- Poate fi gasit in Example EMF Model Creation Wizards
Pasul 2
Pas 3
9
Se defineste tipul elementului radacina al modelului.Acesta trebuie sa fie intotdeauna EPackage.
Editor ecore
Definirea pachetului
10
Se defineste numele pachetului
- In mod uzual se trece numele proiectului
- Aceste va deveni numele root pentru majoritatea codului generat
Definire atribute
11
Maparea UML la proprietatile ecore pentru atribute
Definire asocieri
12
Modelul ecore suporta urmatoarele categorii de asocieri :
Directionale -unidirectionala
-bidirectionala
Compozitie :
tip Compozitie
tip Asociere
Referinte ecore
- O referinta ecore reprezinta un capat al asocierii –aceasta este putin diferita de MOF (Meta
Object Facility)
13
Definire modele ECORE utilizand unelte UML
14
Dupa ce se salveaza modelul Rational Rose se creeaza un fisier.mdl
Fisiserul.mdl poate fi folosit pentru constructia unui model ecore.
15
Daca se modifica fisierul ecore, diagrama este modificata automat si vice versa.
16
Definire modelul ecore utilizand interfete Java.
Pentru programatori o facilitate deosebit de interesanta este de a utiliza interfete java pentru a
defini modele ecore.
Mecanism :
- extensie la JavaDoc
@model[properties]
Proprietatile sunt extensii ce folosesc perechi nume-valoare
- conventii de notare
String getName() -->name:String
1 package com.idata.music
2
3 / **
4 * @model
5 */
6 interface Artist{...}
17
Definirea unei CLASE
1 package com.inferdata.music;
2
3 /**
4 * @model
5 */
6 interface Artist {...}
- Mecanismul de extensie intre interfete se utilizeaza pentru a defini mostenirea intre EClasses
Definire ATRIBUTE
1 package com.idata.music;
2
3 /**
4 * @model
5 */
6 interface Artist {
7 /**
8 * @model
9 */
10 String getName();
11 }
18
Definire ASOCIERI
1 package com.idata.music;
2 import org.eclipse.emf.common.util.EList;
3 /**
4 * @model
5 */
6 interface Artist {
7 /**
8 * @model
9 */
10 String getName();
11
12 /**
13 * @model type="Work" opposite="artist" containment="true"
14 */
15 EList getWorks();
16 }
1 package com.idata.music;
2 /**
3 * @model
4 */
5 public final class MediaType {
6 /**
7 *@model
8 */
9 public final static int CD=0;
10 /**
11 *@model
12 */
13 public final static int MP3=1;
14 /**
15 *@model
16 */
17 public final static int TAPE=2;
18 }
Enumerarile sunt definite ca si clase final, iar valorile enumerarii sunt final static int
19
Cel mai important beneficiu al EMF –Eclipse Modeling Framework este posibilitatea de a
genera cod in mod automat.Majoritatea datelor necesare generatorului EMF pentru a genera cod sunt
stocate in modelul Ecore, de ex clasele care se genereaza, numele acestora, atributele, referintele.Pe
langa acestea exista nevoie de informatii aditionale care trebuiesc furnizate generatorului, cum ar fi
locul in care urmeaza sa se genereze cod, numele pachetelor claselor, care nu sunt definite in modelul
ecore.
Bibliografie:
20