Reverse Engineering of Object Oriented Code - Tonella, Paolo. (Monographs in Computer Science,, 2005)
In software evolution and maintenance, the ultimate, most reliable description of a system is its source code. Reverse engineering aims at extracting abstract, goal-oriented views from the code, to summarize relevant properties of program computations. Reverse Engineering of Object Oriented Code presents a unifying framework for the analysis of object oriented code. Using Unified Modeling Language (UML) to represent the extracted design diagrams, the book explains how to recover them from object oriented code, thereby enabling developers to better comprehend their product and evaluate the impact of changes to it. Furthermore, it describes the algorithms involved in recovering views and demonstrates some of the techniques that can be employed for their visualization. The presentation is fully self-contained. Topics and Features: *Provides unique, in-depth exposition of the core concepts, principles, and methods behind reverse engineering object oriented code *Explains the techniques and algorithms through numerous examples of object oriented code, the leading programming paradigm *Focuses on fully automated design recovery, and deals with static and dynamic source-code analysis algorithms *Explores code-centered analysis to obtain design diagrams aligned with the implementation *Describes structural and behavioral views to offer a multi-perspective assessment of the system being analyzed *Reports the analysis results in UML, the standard language for representing design diagrams in object oriented program development This new state-of-the-art volume covers core methodologies for reverse engineering object oriented code, allowing for improved control in future code maintenance and modification. It is a significant resource for researchers and software engineers in the areas of reverse engineering, code analysis, object oriented programming, and UML. In addition, it will be invaluable as the reference book for advanced courses in these areas.