Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Evolving Code Clones An Approach towards a Fine-Grained Analysis of Code Clone Changes and Change Couplings
Organization Unit
Authors
  • Emanuel Giger
Supervisors
  • Harald Gall
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Date 2006
Abstract Text The term code clone in the field of software engineering refers to the fact that a software system contains duplications in its source code. Such code clones are marked as bad smell. They are assumed to cause problems during the evolution and maintenance of a system, because programmers and developers may need to locate code clones in the entire source code to change them consistently. This problem manifests itself in change coupling groups – group of source code files that are often changed together. It is thus of importance to have a methodology to identify and ”disarm” such critical files specifically. A systematical correlation between code clones and change couplings has been assumed so far. Recent research activities could neither verify this correlation nor totally reject it. In this thesis we use a new approach that combines various technologies to investigate the relation between code clones and change couplings. We applied our approach on two case studies. The evaluation of the results could not establish a systematic correlation or an interaction between code clones and change couplings. Nevertheless the case studies pointed out certain file groups in which code clones indeed caused change couplings. The approach developed in this thesis can be used to investigate a software system, and to identify such critical file groups in a well defined process.
Zusammenfassung Der Begriff Klon bezieht sich im Gebiet der Software Entwicklung auf die Tatsache, dass ein Software System Duplizierungen in seinem Quelltext aufweist. Klone haben den Ruf eines bad smell. Man nimmt daher an, dass sie Probleme waehrend der Evolution und Wartung eines Software Systems bereiten. Dies ruehrt daher, dass Klone oft konsistent an allen Stellen, an welchen sie im gesamten Quelltext auftreten, angepasst werden muessen. Dieses Problem aeussert sich in einer Gruppe von Dateien, die oft zusammen geaendert werden. Umso wichtiger waere eine Methodik, die es erlaubt, kritische Dateien und Klone gezielt zu identifizieren und zu ”entschaerfen”. Es gilt seit laengerem die Vermutung, dass ein Zusammenhang zwischen solchen Quelltext-Klonen und dem Aenderungsverhalten der betroffenen Dateien besteht. Diese Vermutung konnte in frueheren Untersuchungen nicht bestaetigt, jedoch auch nicht gaenzlich verneint werden. In dieser Diplomarbeit wird eine neue Kombination von Techniken verwendet, um die Zusammenhaenge und Wechselwirkungen zwischen Duplizierungen und Aenderungskopplungen zu untersuchen. In unseren Fallstudien konnten wir keinen solchen systematischen Zusammenhang feststellen. Dateien mit einer hoeheren Anzahl von Klonen, werden nicht zwingend oefter miteinander geaendert. Die Untersuchungen haben jedoch gezeigt, dass in gewissen Faellen gemeinsame Aenderungen tatsaechlich auf Klone zurueck zu fuehren sind. Unser Ansatz kann verwendet werden, um diese Faelle gezielt in einem System zu suchen, und im Zuge eines Refactoring zu entfernen.
PDF File Download
Export BibTeX