Please use this identifier to cite or link to this item: http://dx.doi.org/10.18419/opus-2451
Authors: Koschke, Rainer
Title: Atomic architectural component recovery for program understanding and evolution
Other Titles: Wiedergewinnung atomarer Architekturkomponenten für Programmverstehen und -evolution
Issue Date: 2000
metadata.ubs.publikation.typ: Dissertation
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-6693
http://elib.uni-stuttgart.de/handle/11682/2468
http://dx.doi.org/10.18419/opus-2451
Abstract: Die Fülle der publizierten Techniken zur Komponentenerkennung macht eine Klassifikation und Bewertung notwendig, um begründete Entscheidungen bei der Auswahl einer geeigneten Technik zu ermöglichen. In dieser Arbeit wird eine Klassifikation basierend auf einer Vereinheitlichung von 23 Techniken eingeführt. Eine engere Betrachtung von 16 strukturellen Techniken liefert eine Subkategorisierung in verbindungs-, metrik-, graph- und begriffsbasierte Techniken. Über den rein qualitativen Vergleich hinaus werden 12 strukturelle Techniken quantitativ beurteilt (alle bis auf begriffsbasierte Techniken). Zu diesem Zweck wird ein Auswerteschema für Komponentenerkennungstechniken vorgestellt, mit dessen Hilfe die Erkennungsqualität hinsichtlich einer manuell ermittelten Menge von Komponenten genau bestimmt werden kann. Unter den bewerteten Techniken befindet sich unsere neue metrikbasierte Technik Similarity Clustering. Bei der Auswertung anhand der von 5 Software-Ingenieuren erkannten Komponenten für vier C-Systeme mit zusammen 136 KLOC befindet sich Similarity Clustering bezüglich seiner Wiederfindungsrate stets unter den besten Techniken; allerdings ist auch eine höhere Anzahl unzuordenbarer Komponenten als bei anderen Techniken zu verzeichnen. Als Resultat ergibt sich insgesamt, dass keine der automatischen Techniken eine ausreichende Erkennungsqualität aufweisen kann. Um diesen Mangel auszugleichen, wird eine halbautomatische Methode eingeführt, die unterstützt wird durch eine Integration der vollautomatischen Techniken als sukzessiv angewandte Analysen mit anschließender Validierung durch den Benutzer. Hierzu werden die Techniken zu inkrementellen Techniken erweitert. Die Resultate der Techniken können mittels Operatoren kombiniert werden, denen die Mengenoperationen Schnitt, Vereinigung und Differenz zugrunde liegen. Eine alternative Art der Integration ist der sogenannte Abstimmungsansatz, bei dem die individuellen Zustimmungen der Techniken zusammengefasst werden.
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.
Appears in Collections:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Files in This Item:
File Description SizeFormat 
Koschke.Thesis.PDF1,83 MBAdobe PDFView/Open


Items in OPUS are protected by copyright, with all rights reserved, unless otherwise indicated.