Treffer: An interactive and scalable approach to design pattern recovery
Weitere Informationen
Reverse engineering is a process highly influenced by as-sumptions and hypotheses of a reverse engineer, who has to analyse a system manually, because tools are often not applicable to large systems with many different implemen-tation styles. Successful tools have to support an interactive process, where the engineer is able to steer the analysis pro-cess by proving certain assumptions and hypotheses. Conse-quently, the input format of the analysis tool must support a kind of impreciseness to formulate weak presumptions. In this paper we present a reverse engineering process based on fuzzy graph transformation rules. We use graph rewrite rules in addition with fuzzy logic to detect design patterns in Java source code. Impreciseness is expressed by assigning fuzzy values to graph transformation rules and thresholds are used to look up only firmed occurrences of patterns. Un-derlying the transformation rules is an object-oriented graph model providing composition and inheritance, which reduces the complexity of the rules. We propose a reverse enginee-ring process starting with imprecise rules and refining and specifying the rules during the analysis. Preliminary results applying our process are promising, i.e., we present the re-sults of detecting design patterns in Java’s Abstract Window Toolkit (AWT) library. 1.