Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title A Context Aware Algorithm to Extract Structural changes Between Famix Models
Organization Unit
Authors
  • Andres Carlo Petralli
Supervisors
  • Harald Gall
  • Martin Pinzger
  • Michael Würsch
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Date 2008
Abstract Text With the advent of ever evolving software systems, often fueled by crucial new technology developments or changes in policies public and private, reengineering has become an important part of the software engineering process. Old legacy software systems are often too valuable or too interwoven with existing mission critical applications. Replacing them is simply not a viable option. The process of reengineering allows further development of such legacy systems, even if the original developer team is not available anymore. To facilitate the reengineering process, a wealth of tools have emerged to support such endeavors. Source code change detection is an important technique to understand the evolution of a software system. While still many change detection algorithms of common software development tools focus on detecting simple line by line changes in source code files, much research effort was invested into more sophisticated tools to grasp the additional value of syntactical and contextual information. Context information, for instance, is offered by the representation of an inheritance relationship of two classes or the affiliation of an attribute to a data type class. Being able to track changes within the context of source code structures allows to better understand changes of software systems. This thesis describes new techniques of using a FAMIX model extracted from subsequent software system releases in order to visualize changes within a source code's specific scope. We give an introduction into source code differentiation using FAMIX models with an algorithm based on Chawathe's change detection. An evaluation of such source code differentiation with specially designed and real-life source code projects is provided to prove the effectiveness and accuracy of the solution.
Zusammenfassung Mit dem Aufkommen von sich immer weiter entwickelnden Softwaresystemen, oftmals hervorgerufen durch einschneidende technologische Entwicklungen beziehungsweise durch die Aenderung von öffentlichen und privaten Richtlinien, ist Reengineering ein wichtiger Bestandteil der heutigen Software Entwicklung geworden. Alte Softwaresysteme sind oft zu wertvoll oder noch zu stark mit geschäftskritischen Anwendungen verwoben, als dass der Austausch solcher Systeme eine gangbare Strategie wäre. Durch den Reengineering Prozess lassen sie sich weiterentwickeln, selbst wenn das Team, welches ursprünglich die Software entwickelt hat, nicht mehr zur Verfügung steht. Eine Vielzahl von Hilfsanwendungen ist entstanden, um den Reengineering Prozess zu unterstützen. Die Suche nach Veränderungen im Quelltext von Software ist eine wichtige Technik um die Entwicklung eines Softwaresystems zu verstehen. W?§hrend sich immer noch viele Algorithmen zur Suche nach Ver?§nderungen auf das Auffinden von Ver?§nderungen von Quelltextzeilen beschränken, wurde grösserer Forschungsaufwand in raffiniertere Suchsysteme investiert, um den zusätzlichen Nutzen von syntaktischen und kontextuellen Informationen zu erfassen. Kontextinformationen können beispielsweise durch die Darstellung einer Vererbung zwischen zwei Klassen oder die Zugehörigkeit eines Attributs zu einer Datentypenklasse veranschaulicht werden. Die Möglichkeit Veränderungen im Kontext von Quelltextstrukturen zu verfolgen erlaubt es, die allgemeinen Veränderungen im Quelltext besser zu verstehen. Die Arbeit umfasst einen Einblick in die Suche nach Veränderungen in Quelltexten anhand von FAMIX Modellen. Anhand solcher Modelle, extrahiert aus mehreren Quelltextrevisionen, zeigen wir wie mit neuen Techniken Aenderungen in bestimmten Gültigkeitsbereichen eines Quelltexts visualisiert werden können. Dazu verwenden wir den Chawathe Baumvergleichsalgorithmus. Um die Effektivität und Genauigkeit der Suche nach Veränderungen in Quelltexten zu untersuchen, legen wir eine Evaluation vor, die sowohl mit speziell erstellten als auch mit Softwareprojekten aus der Praxis getestet wurde.
Export BibTeX