During maintenance of a software system, not all questions can be answered directly by resorting to otherwise reliable and accurate source code. Reverse engineering aims at extracting abstract, goal-oriented views of the system, able to summarize relevant properties of the program's computations. Reverse Engineering of Object-Oriented Code provides a comprehensive overview of several techniques that have been recently investigated in the field of reverse engineering. The book describes the algorithms involved in recovering UML diagrams from the code and the techniques that can be adopted for their visualization. This is important because the UML has become the standard for representing design diagrams in object-oriented development. A state-of-the-art exposition on how to design object-oriented code and accompanying algorithms that can be reverse engineered for greater flexibility in future code maintenance and alteration. Essential object-oriented concepts and programming methods for software engineers and researchers.
From the reviews of the first edition: "The monograph at hand is a well-written, well-structured guide for reverse engineering of complex object-oriented programs i.e., for extracting original design specifications as far as possible in a form easily understandable by a re-designer team. ... 100 + literature references at the end of the book demonstrate the deep research and strong know-how of the authors and make the book a valuable monographic textbook for reverse engineering courses of object-oriented programs." (Hans-Jürgen Hoffmann, Zentralblatt MATH, Vol. 1070, 2005)