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.
discoverundersta
ndmanipula
te
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
Fujaba
Topcased
*.java *.class
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)
7
MODEL DISCOVERY
struts
Hibernate
Spring
database
java
xml
jsp
Model Discovery
Metamodel
1. 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 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);}}
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