|Koschke, Rainer: Atomic Architectural Component Recovery for Program Understanding and Evolution.
Universität Stuttgart, Fakultät Informatik, Dissertation (2000).
414 Seiten, englisch.
|D.2.11 (Software Engineering Software Architectures)
D.2.13 (Software Engineering Reusable Software)
|Software Reengineering; Reverse Engineering; Architecture Recovery; Re-Modularization; Objectification
The abundance of published methods for component recovery calls for frameworks to unify, classify, and compare them in order to make informed decisions. This thesis introduces a classification of component recovery techniques based on a unification of 23 techniques. Focussing on structural techniques, 16 fully automatic techniques are classified into connection-, metric-, graph-, and concept-based subcategories and the commonalities and variabilities of these techniques are discussed. Beyond the qualitative comparison, 12 structural techniques are evaluated quantitatively (all but concept-based techniques). To that end, an evaluation scheme is introduced that allows to measure recall and precision of component recovery techniques with respect to a set of manually ascertained reference components. Among the evaluated techniques is our new metric-based technique Similarity Clustering. The evaluation scheme based on a set of expected components manually compiled by 5 software engineers for four C systems (altogether 136 KLOC) shows that Similarity Clustering is among the best techniques for all systems, but it also has more false positives than other techniques. The overall result of this comparison is that none of the fully automatic techniques has a sufficient detection quality.
In order to overcome this problem, a semi-automatic method is presented in this thesis in which computer and maintainer collaborate to detect components. The method is supported by a framework that integrates the existing fully automatic techniques. The automatic techniques can be run successively and their results be validated by the user. For this purpose, all the techniques are enhanced to work incrementally. The results of the techniques can be combined by high-level operators modeled on intersection, union, and difference for fuzzy sets. An alternative way of integration is offered by a voting approach that summarizes the individual agreement of automatic techniques.
|PDF (1869774 Bytes)
Opus Uni Stuttgart
|Universität Stuttgart, Institut für Informatik, Programmiersprachen und Übersetzerbau
|24. Juli 2005