MDA-Based Reverse Engineering
Liliana Maria Favre · InTech eBooks · 2012
Reverse engineering is hardly associated with modernization of legacy systems that include changes not only in software but in hardware, business processes and organizational strategies and politics.Changes are motivated for multiple reasons, for instance the constantly changing IT technology and the constantly changing business world. www.intechopen.com Reverse Engineering -Recent Advances and Applications 56Large number of software systems have been developed and successfully used.These systems resume today key knowledge acquired over the life of the underlying organization; however, many of them have been written for technology which is expensive to maintain and which may not be aligned with current organizational politics.Over the past two decades, reverse engineering techniques focused mainly on recovering high-level architectures or diagrams from procedural code to face up to problems such as comprehending data structures or databases or the Y2K problem.By the year 2000, many different kinds of slicing techniques were developed and several studies were carried out to compare them.Over time, a growing demand of object-oriented reengineering appeared on the stage.New approaches were developed to identify objects into legacy code (e.g.legacy code in COBOL) and translate this code into an object-oriented language.Object-oriented programs are essentially dynamic and present particular problems linked to polymorphism, late binding, abstract classes and dynamically typed languages.For example, some object-oriented languages introduce concepts such as reflection and the possibility of loading dynamically classes; although these mechanisms are powerful, they affect the effectiveness of reverse engineering techniques.During the time of object-oriented programming, the focus of software analysis moved from static analysis to dynamic analysis, more precisely static analysis was complemented with dynamic analysis (Fanta & Rajlich, 1998) (Systa, 2000).When the Unified Modeling Language (UML) comes into the world, a new problem was how to extract higher-level views of the system expressed by different kind of UML diagrams (UML, 2010a) (UML, 2010b).Relevant work for extracting UML diagrams (e.g.class diagram, state diagram, sequence diagram, object diagram, activity diagram and package diagram) from source code was developed (Tonella & Potrich, 2005). How to referenceIn order to correctly reference this scholarly work, feel free to copy and paste the following: Liliana Favre (2012).MDA-Based Reverse Engineering, Reverse Engineering -Recent Advances and Applications, Dr. A.C. Telea (Ed.