200 likes | 469 Views
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
E N D
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 • Migration cost • 2. Quickly reengineering existing system. 1. WHY => Reverse Engineering?
A tradition of using UML Modisco Principles and Techniques *.java Structure diagrams ? Behavior diagrams
Some UML reverse engineering tools Modisco Principles and Techniques *.class *.java Fujaba Topcased
MoDisco: Models is the first class entities of all processes => reverse engineering Modisco Principles and Techniques homogeneous heterogeneous M Model Driven Reverse Engineering (MDRE) S M’ M’’ Model understanding Model discovery
Model Discovery Model Discovery jsp java struts xml Spring Hibernate database Natural -> Type of system Several models necessary Metamodel
Model Understanding Source code document Structured data Many models transformation -> be used Several intermediate representation -> necessary
Discovery, query and manipulation Modisco – THE Whole Picture
MoDisco User-Cases Modisco – Architecture
MoDisco Technologies Modisco – Architecture
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); } }
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 References