Sunteți pe pagina 1din 20

Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei

Mediul de dezvoltare ECLIPSE pentru modelare aplicatii Java

Coordonator ştiinţific Pătru Mircea


Conf. dr. ing. Stefan Stancescu 441A

2011

1
Mediul de dezvoltare ECLIPSE pentru modelare aplicatii Java

-Sumar-

PARTEA I :Patru Mircea

Mediul de dezvoltare ECLIPSE pentru modelare aplicatii Java..............................................................1


I Introducere EMF (Eclipse Modeling Framework)............................................................................2
Descriere mediu Eclipse...................................................................................................................2
Arhitectura extensiilor (plug-in Eclipse)..........................................................................................2
Arhitectura Mediului Eclipse............................................................................................................3
II Modelul ECore.................................................................................................................................4
Metalimbaj de modelare...................................................................................................................4
Dezvoltarea bazata pe model cu ajutorul EMF.................................................................................6
Definire modele ECORE utilizand unelte UML............................................................................13
Definire modelul ecore utilizand interfete Java..............................................................................15

PARTEA A II -A:Luca Diana Sorina :nu am primit tema

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)

Descriere mediu Eclipse

Eclipse este o platforma deschisa, un mediu integrat de dezvoltare(IDE), ce ofera facilitati de


management al spatiului de lucru, creare, lansare, depanare aplicatii.
Fiind o platforma deschisa utilizatorii pot beneficia de o serie de facilitati :acces gratis,
posibilitatea de a lua parte la dezvoltarea acestei sau de adaptare la nevoile personale.
Platforma Eclipse include JDT(Java Development Tools) o extensie care suporta toate versiunile
de JAVA.

Arhitectura extensiilor (plug-in Eclipse)

3
Aceasta arhitectura ofera o serie de avantaje :

 modificarea toolurilor existene


 realizarea de tooluri
 integrarea si interconectarea diferitelor unelte (tooluri) de la diversi producatori de
software
 posibilitatea de adaptare la mediul de lucru

Arhitectura Mediului Eclipse

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.

In EMF, exista 3 tipuri de modele de baza :

1. Modele ECore asemnatoare modelelor UML


2. Modele de cod JAVA sau pentru alte limbaje
3. Modele XML

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 ?

Ecore este limbajul EMF pentru definirea de modele


Ecore este un metalimbaj pentru definirea de modele.
Permite instantierea modelelor obiect orientate.
Standardul de baza inspirat de OMG MOF(Meta Object Facility)

Ecore este utilizat pentru a defini Platforme independente de modele


- baza pentru generare de cod
- standard pentru modelare metadata

5
Scopul Ecore este de a permite utilizatorilor sa defineasca modele structurale.

Aceste modele sunt cunoscute ca si :

- diagrame de clase UML


- Definitii schema XML
- Diagrame Entitate asociere

Ecore se concentreaza doar pe informatii esentiale

-EMF ofera unelte care suporta :

- 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

Tipuri de baza in 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)

Dezvoltarea bazata pe model cu ajutorul EMF

Exista numeroase optiuni pentru a crea un model ecore :

- 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

Exemplificare pe o librarie de muzica

Obs O librarie in care se retin numele artistilor si melodiile /albumele lor.

7
Editorul ecore

Crearea unui fisier 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

Se defineste numel si locatia modelului.

Pas 3

Selectarea elementului radacina

9
Se defineste tipul elementului radacina al modelului.Acesta trebuie sa fie intotdeauna EPackage.

Editor ecore

Eclipse deschide un nou fisier ecore cu un editor ecore.


- -browserul este folosit pentru navigare si crearea unor noi elemente ecore.
- -Editorul de proprietati este folosit pentru a modifica elemente ecore.

Definirea pachetului

10
Se defineste numele pachetului
- In mod uzual se trece numele proiectului
- Aceste va deveni numele root pentru majoritatea codului generat

Definirea unei clase

Definire atribute

11
Maparea UML la proprietatile ecore pentru atribute

OBS UML *, este mapata cu -1(nemarginit)

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)

- O asociere bidirectionala necesita 2 referinte


-una pentru fiecare capat al asocieri
-fiecare defineste capatul opus

Definirea unei ASOCIERI

13
Definire modele ECORE utilizand unelte UML

Utilizare Rational Rose si EclipseUML pentru constructia de modele ecore

Este posibil sa se utilizeze Rational Rose pentru a construi modele ecore


-se creeaza diagrame de clasa in Rational Rose
- importa modelul ecore utilizand fisierul model (.mdl) Rational Rose

14
Dupa ce se salveaza modelul Rational Rose se creeaza un fisier.mdl
Fisiserul.mdl poate fi folosit pentru constructia unui model ecore.

Definire modele ecore utilizand EclipseUML

EclipseUML este o unealta UML care suporta EMF


Digramele de clasa EMF editeaza direct modelul ecore

15
Daca se modifica fisierul ecore, diagrama este modificata automat si vice versa.

16
Definire modelul ecore utilizand interfete Java.

- Adnotarea interfetelor Java


- Construirea de modele ecore din Java

Adnotarea interfetelor 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

Definirea unui PACHET/EPackage

- pachetul folosit este pachetul parinte imediat al interfetei definite, e.g:

1 package com.idata.music
2
3 / **
4 * @model
5 */
6 interface Artist{...}

- cand este importat


 EPackage::name=music
 Clasa artist este pusa in pachetul muzica

17
Definirea unei CLASE

1 package com.inferdata.music;
2
3 /**
4 * @model
5 */
6 interface Artist {...}

- daca JavaDoc contine in interfata, in comentariu, un tag @model


 Interfata este mapata catre un obiect EClass in ecore
 Atributul EClass::name este mapat catre interface name
1 /**
2 * @model
3 */
4 interface SpecialArtist extends 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 }

- Declaratia metodelor get cu atribute definite


1 /**
2 * @model default="My Favourite Band"
3 */
4 String getName();
- Atributele pot avea valori default (prestabilite)
- -Noi instante ale tipului vor fi initializate cu acea valoare
- -Daca este selectata valoarea default, nu mai este nevoie de alocare de spatiu in memorie

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 }

type specifica defineste tipul de element pe care il referim


opposite declara o legatura catre referinta opusa
containment specifica daca asocierea este de tip compozitie

O asociere biliniara necesita 2 referinte, ambele definite.

Definirea unei ENUMERARI

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:

I. Maurice M. Carey -Evolution of Java Programs to a Model-Driven Environment Using EMF


II. Petter Graff -Mastering Eclipse Modeling Framework
III. Laurie Williams-Getting Started Using Eclipse

20