Doctoral Thesis DIS-2000-05

BibliographyKoschke, Rainer: Atomic Architectural Component Recovery for Program Understanding and Evolution.
University of Stuttgart, Faculty of Computer Science, Doctoral Thesis (2000).
414 pages, english.
CR-SchemaD.2.11 (Software Engineering Software Architectures)
D.2.13 (Software Engineering Reusable Software)
KeywordsSoftware Reengineering; Reverse Engineering; Architecture Recovery; Re-Modularization; Objectification
Abstract

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.

Full text and
other links
PDF (1869774 Bytes)
Opus Uni Stuttgart
Department(s)University of Stuttgart, Institute of Computer Science, Programming Languages and Compilers
Entry dateJuly 24, 2005
New Report   New Article   New Monograph   Computer Science