modisco
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 PresentationTRANSCRIPT
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