mediul eclipse modelare aplicatii java

Upload: vasile-fana

Post on 02-Mar-2018

247 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    1/19

    !"#$%& #" #"()*&+,-" ./0123. 4"5+-% 6*#"&,-" ,4&$7,+$$ 8,),

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    2/19

    !"#$%& #" #"()*&+,-" ./0123. 4"5+-% 6*#"&,-" ,4&$7,+$$ 8,),

    -Sumar-

    PARTEA I

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

    I Introducere EMF (Eclipse Modeling Framework) ........................................................................... 3Descriere mediu Eclipse .................................................................................................................. 3

    Arhitectura extensiilor (plug-in Eclipse) ......................................................................................... 3Arhitectura Mediului Eclipse ........................................................................................................... 4

    II Modelul ECore ................................................................................................................................ 5Metalimbaj de modelare .................................................................................................................. 5

    Dezvoltarea bazata pe model cu ajutorul EMF ................................................................................ 7

    Definire modele ECORE utilizand unelte UML ............................................................................ 13Definire modelul ecore utilizand interfete Java. ............................................................................ 16

    PARTEA A II -A

    I. Modelul Generator

    Rolul

    Legatura intre modelul ecore si modelul genmodel

    Configurare

    II. Generare de cod

    Descriere Suprascriere de cod generat

    III. Concluzii

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    3/19

    " "#$%&'()*%* +,- .+)/012* ,&'*/0#3 -%45*6&%78

    9":7-$"-" 6"#$% .7&$4:"

    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.

    ;-

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    4/19

    integrarea si interconectarea diferitelor unelte (tooluri) de la diversi producatori de

    software

    posibilitatea de adaptare la mediul de lucru

    ;-

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    5/19

    Toate aceste modele sunt mapate astfel incat sa se permita translatii imediate intre acesteaDiagrama simlificata a modului de lucru a EMF.

    "" ,&'*/(/ +9&%*

    !"+,&$6B,C #" 6*#"&,-"

    Ce este ecore ?

    Ecore este limbajul EMF pentru definirea de modeleEcore 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

    Scopul Ecore este de a permite utilizatorilor sa defineascamodele 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

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    6/19

    Metamodelul simplificat de mai sus rerezinta setul minim care trebuie inteles pentru a lucra cu

    modelul ecore

    Tipuri de baza in ECore

    - EClass! -reprezinta un tip

    !

    -un tip poate sa defineasca :

    o -oricate supertipuri

    o -oricate referinteo -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)

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    7/19

    9"()*&+,-", B,(,+, 4" 6*#"& 7% ,C%+*-%& .!D

    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/26/2019 Mediul ECLIPSE modelare aplicatii Java

    8/19

    Editorul ecore

    Crearea unui fisier ecore :

    Pasul 1.

    - EMF vine cu un editor ecore- Editorul ecore a fost construit utilizand EMF

    - Poate fi gasit in Example EMF Model Creation Wizards

    Pasul 2

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    9/19

    Se defineste numel si locatia modelului.

    Pas 3

    Selectarea elementului radacina

    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.

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    10/19

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

    Definirea pachetului

    Se defineste numele pachetului

    - In mod uzual se trece numele proiectului- Aceste va deveni numele rootpentru majoritatea codului generat

    Definirea unei clase

    Definire atribute

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    11/19

    Maparea UML la proprietatile ecore pentru atribute

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

    Definire asocieri

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    12/19

    Modelul ecore suporta urmatoarele categorii de asocieri :

    Directionale -unidirectionala

    -bidirectionalaCompozitie :

    tip Compozitietip 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

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    13/19

    9"E$5$-" 6*#"&" ./FG. %+$&$(,5# %5"&+" H!0

    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

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    14/19

    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 EMFDigramele de clasa EMF editeaza direct modelul ecore

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    15/19

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

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    16/19

    9"E$5$-" 6*#"&%& "7*-" %+$&$(,5# $5+"-E"+" 8,),I

    - 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 adefini 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

    23 / **

    4 * @model5 */

    6 interface Artist{...}

    - cand este importat! EPackage::name=music! Clasa artist este pusa in pachetul muzica

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    17/19

    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 EClassin ecore! Atributul EClass::name este mapat catre interface name

    1 /**

    2 * @model3 */

    4 interface SpecialArtist extends Artist {...}

    - Mecanismul de extensieintre interfete se utilizeaza pentru a defini mostenireaintreEClasses

    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

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    18/19

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

    1112 /**

    13 * @model type="Work" opposite="artist" containment="true"14 */

    15 EList getWorks();16 }

    type specifica defineste tipul de element pe care il referim

    oppositedeclara o legatura catre referinta opusa

    containmentspecifica daca asocierea este de tip compozitie

    O asociere biliniara necesita 2 referinte, ambele definite.

    Definirea unei ENUMERARI

    1 package com.idata.music;

    2 /**

    3 * @model4 */5public final class MediaType {

    6 /**7 *@model

    8 */9public final static int CD=0;

    10 /**11 *@model

    12 */13public final static int MP3=1;

    14 /**15 *@model

    16 */17public final static int TAPE=2;

    18 }Enumerarile sunt definite ca si clase final, iar valorile enumerarii sunt final static int

  • 7/26/2019 Mediul ECLIPSE modelare aplicatii Java

    19/19

    Cel mai important beneficiu al EMF Eclipse Modeling Framework este posibilitatea de agenera 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.Pelanga 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 modelulecore.

    Bibliografie:

    I.

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

    II. !"##"$ &$'(( )*'+#"$,-. /01,2+" *34"1,-. 5$'6"73$8

    III.

    Laurie Williams-Getting Started Using Eclipse