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.