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

A Generic And Extensible Framework For Model Driven Reverse Engineering

Embed Size (px)

Citation preview

Page 1: A Generic And Extensible Framework For Model Driven Reverse Engineering

MODISCO

A Generic And Extensible Framework For Model Driven Reverse Engineering

Page 2: A Generic And Extensible Framework For Model Driven Reverse Engineering

2

1. WHY => REVERSE ENGINEERING?

Manage

Maintain

Replace

data

architecture

functionalities

Up-to-date

Page 3: A Generic And Extensible Framework For Model Driven Reverse Engineering

3

1. WHY => REVERSE ENGINEERING?

1. Out-of-date systems are still running: Complexity and heterogeneous Size Migration cost

2. Quickly reengineering existing system.

discoverundersta

ndmanipula

te

re-impleme

nt

Page 4: A Generic And Extensible Framework For Model Driven Reverse Engineering

4

MODISCO PRINCIPLES AND TECHNIQUES

A tradition of using UML

*.javaStructure diagrams

Behaviordiagrams

?

Page 5: A Generic And Extensible Framework For Model Driven Reverse Engineering

5

MODISCO PRINCIPLES AND TECHNIQUES

Some UML reverse engineering tools

Fujaba

Topcased

*.java *.class

Page 6: A Generic And Extensible Framework For Model Driven Reverse Engineering

6

MODISCO PRINCIPLES AND TECHNIQUES

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

S

M

M’

M’’

Model discover

y

Model understandi

ng

heterogeneous

homogeneous

Model Driven Reverse Engineering(MDRE)

Page 7: A Generic And Extensible Framework For Model Driven Reverse Engineering

7

MODEL DISCOVERY

struts

Hibernate

Spring

database

java

xml

jsp

Model Discovery

Metamodel

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

Page 8: A Generic And Extensible Framework For Model Driven Reverse Engineering

8

MODEL UNDERSTANDING

transforms … transfor

ms

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

Source code

document

Structured data

Page 9: A Generic And Extensible Framework For Model Driven Reverse Engineering

9

MODISCO – THE WHOLE PICTURE

Discovery, query and manipulation

Page 10: A Generic And Extensible Framework For Model Driven Reverse Engineering

10

MODISCO – ARCHITECTURE

Page 11: A Generic And Extensible Framework For Model Driven Reverse Engineering

11

MODISCO – ARCHITECTURE

MoDisco User-Cases

Page 12: A Generic And Extensible Framework For Model Driven Reverse Engineering

12

MODISCO – ARCHITECTURE

MoDisco Technologies

Page 13: A Generic And Extensible Framework For Model Driven Reverse Engineering

13

REVERSE ENGINEERING - CONTROL DEPENDENCE GRAPH

Page 14: A Generic And Extensible Framework For Model Driven Reverse Engineering

14

REVERSE ENGINEERING - CONTROL DEPENDENCE GRAPH

public 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: A Generic And Extensible Framework For Model Driven Reverse Engineering

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