Sunteți pe pagina 1din 32

Medii de dezvoltare bazate pe

metamodelare
GME - Generic Modeling Environment

Model Driven Engineering - Anca Ionita

Generic Modeling Environment GME


Apache Software Foundation
Vanderbilt University

Iesirea procesului de
metamodelare este o multime
de reguli compilate,
paradigma, care
configureaza GME pentru un
domeniu specific de aplicatii.

Paradigma de modelare
definire metamodele, pornind de la cerinte
specifice domeniilor;
definire de modele, folosind editoare de
modele generate de GME;
interpretare a modelelor, pentru a genera
cod executabil.
Model Driven Engineering - Anca Ionita

Procesul de metamodelare si modelare


specifica domeniilor
modelare

Metamodelare

O noua
paradigma,
specifica
domeniului

utilizare
cu paradigma MetaGME

modelare
Interpretare
modele

Modelare

utilizare
cu noua paradigma

utilizare

Editor

Interpretor

programare

Model Driven Engineering - Anca Ionita

Limbajul de metamodelare GME


Metamodelare

First Class Objects


(FCO)

Atomi
Modele
Conexiuni
Referinte
Multimi

Modelare

pentru fiecare
concept din
lumea reala

Alte concepte

Atribute
Foldere
Aspecte
Restrictii

Model Driven Engineering - Anca Ionita

Interpretare
modele

Limbaj de metamodelare GME concepte


de baza
First Class Objects (FCO)
Core Concepts

Atomi (atoms)

entitati de baza, fara structura


interna (nu pot contine alte
obiecte)
caracterizate prin nume,
atribute, participare in relatii

Modele (models)

Conexiuni (connections)

Referinte (references)

pot contine atomi, alte modele


si alte tipuri de obiecte
au structura interna pot fi
deschise, aratand o diagrama
a structurii lor

reprezinta relatii,
reprezentate prin linii
pot avea propriile atribute;
o entitate ce contine o
asociatie catre un singur
obiect (cu rol de pointer sau
alias)

Multimi (sets)

colectie sau categorie

Model Driven Engineering - Anca Ionita

Aplicatie - Creare proiect metamodelare

Start GME
Selectare "File/New
Project...".
Alegere paradigma:
MetaGME "Create
New..."
denumire proiect:
myFirstGMEProject
myFirstGMEProject.mga

Proiectul este asociat cu paradigma MetaGME, destinata metamodelarii in GME;


aceasta configureaza mediul de lucru ca tool de metamodelare
Model Driven Engineering - Anca Ionita

Aplicatie Crearea unei paradigme (a unui


nou limbaj de modelare)

Right click pe root folder

"Insert New Model"

"ParadigmSheet"

Double click pe noul


obiect creat

Apare o fereastra in zona


utilizatorului, unde se va
edita diagrama de clase
(entitati GME).
Observati sintaxa concreta a limbajului GME !
Model Driven Engineering - Anca Ionita

Alte concepte GME

Attributes (Atribute)

caracterizeaza obiecte FCO


pentru a stoca informatii
despre ele;
pot contine text, numere
reale sau valori booleane

Folders

Vom folosi doar Root


Folder

Aspects

containere pentru diferite


sectiuni ale proiectului,
pentru organizarea
modelului
sunt elemente auxiliare

Este necesar sa definim


cel putin un aspect

diferite puncte de vedere


(views) asupra structurii
unui model;
ne permit sa alegem ceea
ce dorim sa vedem

Constraints (restrictii)

reguli de validitate aplicate


modelului;
exprimate in OCL
verificate on-line, in timp ce
se construieste modelul

Elemente de semantica
Model Driven Engineering - Anca Ionita

Paradigma MetaGME, exemplu


De exersat:
Deschideti proiectul
corespunzator,
pentru a studia
sintaxa abstracta,
dar nu il modificati !

Sintaxa abstracta a limbajului MetaGME


Model Driven Engineering - Anca Ionita

Elemente ale editorului de modele GME


Metamodelare

Modelare

Ferestre
pentru
editarea
modelului

Interpretare
modele

Browser
Modele

Elemente ale
limbajului de
modelare /
metamodelare
Definire
atribute
Observati sintaxa concreta a limbajului specific ales !
Model Driven Engineering - Anca Ionita

din Help GME

Interpretarea modelelor
Metamodelare

Interpretare
modele

Prelucrarea datelor modelului in mod automat:

Modelare

interogari, generarea de liste, scrierea de rapoarte despre continutul


modelului
generarea codului unui program sau a configuratiei unui sistem
construirea automata a modelelor din informatiile furnizate de alte surse de
date (ex: o baza de date)
folosirea modelelor ca un format de interschimbare a datelor, pentru a
integra programe care sunt incompatibile unul cu celalalt

Solutii:

scrierea unui interpretor GME nu este un program independent, ci o


componenta sau un DLL incarcat si executat de GE la cerinta utilizatorului
se poate folosi Builder Object Network (BON) furnizeaza obiecte C++ ce
reprezinta obiectele modelului;
aplicatie independenta ce poate fi executata fara interfata GME
plugin
se foloseste biblioteca MGA

Model Driven Engineering - Anca Ionita

Biblioteca MGA (MgaLib)

folosita pentru a construi retele ierarhice de obiecte


reprezinta conceptele de modelare

Model Driven Engineering - Anca Ionita

Iterpretor in Java
se foloseste gme.jar
package org.isis.gme.bon;
public class ExempluInterpretor implements BONComponent {
public void invokeEx (JBuilder builder, JBuilderObject focus, Collection slected, int param) {
// apel metode interpretor
}
}

inregistrare cu
JavaComponentRegister.exe si
activare din GME
executare
interpretor

Model Driven Engineering - Anca Ionita

Exemplu de paradigma GME

Modele ale utilizatorilor la migrarea


catre sisteme orientate pe servicii

Model Driven Engineering - Anca Ionita

Domeniu: User Modelling


Exemple

Scop
Securitatea accesului
pe baza de roluri
Preferinte utilizatori
Structura
organizationala
Asignarea
responsabilitatilor
pentru activitati

Model Driven Engineering - Anca Ionita

General User
Modelling Ontology
(GUMO)
UserML mark-up
language
INCITS 359-2012
Standard

15

Probleme
Evolutia modelului utilizatorilor
Securitate si confidentialitate
Sisteme distribuite
care implica mai multe
institutii si mai multe
tari

Model Driven Engineering - Anca Ionita

16

The modernization perspective


Migration to Service-Oriented Architecture
Transformation

Legacy Software
Model

Metamodelling

Consolidated
Business Model
Services

Wrapping

Forward engineering

Reverse Engineering

Legacy Business
Model

Components

Legacy Code

Model Driven Engineering - Anca Ionita

17

Metamodel

The Generic Modeling Environment


Institute for Software Integrated Systems
Vanderbilt University

Model Driven Engineering - Anca Ionita

18

Paradigme de modelare dezvoltate cu


GME
Organization Structure concepte
clasice pentru structuri organizationale
SOA Roles roluri pentru sisteme
bazate pe SOA (Service-Oriented
Architecture)
Organization Change modificari
necesare cu privire la utilizatorii
sistemului
Model Driven Engineering - Anca Ionita

19

Organizare metamodel GME

3 folders

Legacy model
SOA Target model
Migration mappings

Reutilizarea modelului sursa


Dezvoltarea modelului tinta

Model Driven Engineering - Anca Ionita

Legacy model scheme organizationale


traditionale

Posturi

Relatii de autoritate

Caracterizate de anumite obiective, sarcini, competente,


responsabilitati

Ierarhice date de pozitia in ierarhie


Functionale date de expertiza (contabila spre exemplu)

Compartimente organizationale

Formate din mai multe persoane reunite sub coordonare


comuna

Model Driven Engineering - Anca Ionita

The legacy model

Concepte ce trebuie definite in sintaxa


abstracta a metamodelului:

Organization
Organizational Unit
External Partner
Project
Employee
Position
Role

Model Driven Engineering - Anca Ionita

O parte din metamodelul pentru structuri


organizationale traditionale

Model Driven Engineering - Anca Ionita

SOA design and quality management roles

After Kajko-Mattsson, M., Lewis, G. A., and Smith, D. B. 2007

Model Driven Engineering - Anca Ionita

Metamodelarea rolurilor SOA

SOA Support

SOA Front-End

SOA Back-End

Support Personnel

Business Process Assistant

Business Process Support


Engineer

Business Process Team

Business Process Manager

M. Kajko-Mattsson, G. Lewis, D. Smith


CMU, Software Engineering Institute

Service Developer

Model Driven Engineering - Anca Ionita

25

Paradigma GME pentru modelul tinta al


migrarii

SOA Design and Quality Management (Model Proxy)


SOA Development and Evolution

Model Driven Engineering - Anca Ionita

Paradigm GME pentru SOA Design si


Quality management

Model Driven Engineering - Anca Ionita

Metamodel al schimbarilor organizationale


Tranzitia de la
sistemul traditional
la cel modernizat
Roluri
Compartimente
organizationale
Views
Transformari
Noi roluri SOA

Model Driven Engineering - Anca Ionita

28

Metamodelare pentru transformarea


rolurilor

GME Roles_Migration paradigm sheet

Proxies
catre alte modele

Model Driven Engineering - Anca Ionita

Examplu de modelare. Sistemul modelat

Wireless
sensor network

REST

Esri Cloud
environment

Model Driven Engineering - Anca Ionita

30

O parte din modelul utilizatorilor pentru


CyberWater
Schimbari in mai multe
institutii
De la masuratori manuale
la achizitie bazata pe
senzori
Roluri SOA

Model Driven Engineering - Anca Ionita

31

Bibliografie

Arpad Bakay, The MGA library, ISIS, Vanderbilt University, September 2000

GME 2000 Users Manual, Vanderbilt University, 2000.,available from


http://www.isis.vanderbilt.edu/publications.asp

A. Ledeczi, J. Davis, S. Neema, B. Eames, G. Nordstrom, V. Prasanna, C.


Raghavendra, A. Bakshi, S. Mohanty, V. Mathur, M. Singh: Overview of the Modelbased Integrated Simulation Framework, Tech. Report, ISIS-01-201, January 30,
2001. available from http://www.isis.vanderbilt.edu/publications.asp

A.D. Ionita, M. Mocanu, A Metamodelling Perspective on the Users of a ServiceOriented Hydrology System, The 2014 International Conference of Parallel and
Distributed Computing, ICPDC 2014, July 2-4, 2014, London, U.K., pp. 530-535

A.D. Ionita, S. Radulescu, Metamodeling for Assigning Specific Roles in the Migration
to Service-Oriented Architecture, IEEE/ EIDWT / MILES-2012 Workshop, September
21, 2012, pag. 293 - 297

Model Driven Engineering - Anca Ionita

S-ar putea să vă placă și