modisco

15
MODISCO A Generic And Extensible Framework For Model Driven Reverse Engineering

Upload: ajay

Post on 23-Feb-2016

59 views

Category:

Documents


0 download

DESCRIPTION

A Generic And Extensible Framework For Model Driven Reverse Engineering. ModiscO. 1. Why => Reverse Engineering?. Up-to-date. data. Manage. functionalities. Maintain. Replace. architecture. 1. Out-of-date systems are still running: Complexity and heterogeneous Size M igration cost - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ModiscO

MODISCO

A Generic And Extensible Framework For Model Driven Reverse Engineering

Page 2: ModiscO

2

1. WHY => REVERSE ENGINEERING?

Manage

Maintain

Replace

data

architecture

functionalities

Up-to-date

Page 3: ModiscO

3

1. WHY => REVERSE ENGINEERING? 1. Out-of-date systems are still running:

Complexity and heterogeneous Size Migration cost

2. Quickly reengineering existing system.

discover understand

manipulate

re-impleme

nt

Page 4: ModiscO

4

MODISCO PRINCIPLES AND TECHNIQUES

A tradition of using UML

*.javaStructure diagrams

Behaviordiagrams

?

Page 5: ModiscO

5

MODISCO PRINCIPLES AND TECHNIQUES

Some UML reverse engineering tools

FujabaTopcased

*.java *.class

Page 6: ModiscO

6

MODISCO PRINCIPLES AND TECHNIQUES

MoDisco: Models is the first class entities of all processes => reverse engineering

SM

M’

M’’Model

discovery

Model understandi

ng

heterogeneous

homogeneous

Model Driven Reverse Engineering(MDRE)

Page 7: ModiscO

7

MODEL DISCOVERY

struts

Hibernate

Spring

database

java

xml

jsp

Model Discovery

Metamodel1. Natural -> Type of system2. Several models necessary

Page 8: ModiscO

8

MODEL UNDERSTANDING

transforms … transfor

ms

1. Many models transformation -> be used2. Several intermediate representation -> necessary

Source code

document

Structured data

Page 9: ModiscO

9

MODISCO – THE WHOLE PICTURE Discovery, query and manipulation

Page 10: ModiscO

10

MODISCO – ARCHITECTURE

Page 11: ModiscO

11

MODISCO – ARCHITECTURE MoDisco User-Cases

Page 12: ModiscO

12

MODISCO – ARCHITECTURE MoDisco Technologies

Page 13: ModiscO

13

REVERSE ENGINEERING - CONTROL DEPENDENCE GRAPH

Page 14: ModiscO

14

REVERSE ENGINEERING - CONTROL DEPENDENCE GRAPHpublic List<PizzaOrder> getDailyReport() throws ServiceException {try { dbDAO.startTransaction(); List<PizzaOrder> orders = getTodaysOrders(); // materialize details during tx for (PizzaOrder o: orders) { o.getPizzaSize().getSizeName(); for (Topping t: o.getToppings()) t.getToppingName(); } dbDAO.commitTransaction(); return orders;} catch (Exception e) {

dbDAO.rollbackAfterException(); throw new ServiceException("Error while getting daily report

", e);}}

Page 15: ModiscO

15

REFERENCES MoDisco: a generic and extensible framework

for model driven reverse engineering http://jordicabot.com/papers/ASETools10.pdf

MoDisco on Eclipse http://www.eclipse.org/MoDisco/

MoDisco technology http://wiki.eclipse.org/MoDisco/Architecture

Control Dependence Graph http://www.grammatech.com/research/papers/

staticAnalysis/imgSlides/sld021.html