Static And Dynamic Reverse Engineering Techniques for Java Software Systems
Tarja Systä · Tampere University Institutional Repository (Tampere University) · 2019
The main contributions of this dissertation are as follows: methods for using the dependencies between static and dynamic models for goal driven reverse engineering tasks, including merging dynamic information to a static Rigiview; using static information to guide the generation of dynamici nformation; slicing a Rigi view using SCED scenarios; and raising the level of abstraction of SCED scenarios using a high-level Rigigraph; algorithms for optimizing synthesized state diagrams using UMLnotation; application of the synthesis algorithm presented by Koskimies and Mäkinen [54] to SCED; string matching algorithms for raising the level of abstraction of SCED scenario iagrams; the prototype reverse ngineering environment Shimba, which integrates two existing tools: Rigi for reverse engineering the static structure of Javasoftware; and SCED and its state diagram synthesis facility for reverse engineering the dynamic behavior of Java software; methods and tools for gathering information, including extraction of static information from Java byte code;and extraction of run-time information by running the target system under a customized jdk debugger; a case study to evaluate the facilities of Shimba.