modisco

Post on 23-Feb-2016

59 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

MODISCO

A Generic And Extensible Framework For Model Driven Reverse Engineering

2

1. WHY => REVERSE ENGINEERING?

Manage

Maintain

Replace

data

architecture

functionalities

Up-to-date

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

4

MODISCO PRINCIPLES AND TECHNIQUES

A tradition of using UML

*.javaStructure diagrams

Behaviordiagrams

?

5

MODISCO PRINCIPLES AND TECHNIQUES

Some UML reverse engineering tools

FujabaTopcased

*.java *.class

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)

7

MODEL DISCOVERY

struts

Hibernate

Spring

database

java

xml

jsp

Model Discovery

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

8

MODEL UNDERSTANDING

transforms … transfor

ms

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

Source code

document

Structured data

9

MODISCO – THE WHOLE PICTURE Discovery, query and manipulation

10

MODISCO – ARCHITECTURE

11

MODISCO – ARCHITECTURE MoDisco User-Cases

12

MODISCO – ARCHITECTURE MoDisco Technologies

13

REVERSE ENGINEERING - CONTROL DEPENDENCE GRAPH

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

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

top related