Software Clones - Guilty Until Proven Innocent?

Jan Harder

Diese Publikation zitieren

Jan Harder, Software Clones - Guilty Until Proven Innocent? (2017), Logos Verlag, Berlin, ISBN: 9783832592592

2
Accesses

Beschreibung / Abstract

Software systems contain redundant code that originated from the use of copy and paste. While such cloning may be beneficial in the short term as it accelerates development, it is frequently despised as a risk to maintainability and quality in the long term. Code clones are said to cause extra change effort, because changes have to be propagated to all copies. They are also suspected to cause bugs when the copied code fragments are changed inconsistently.

These accusations may be plausible but are not based on empirical facts. Indeed, they are prejudice. In the recent past, science has started the endeavor to find empirical evidence to support the alleged effects of clones.

In this thesis, we analyze the effects of clones from three different perspectives. First, we investigate whether clones do indeed increase the maintenance effort in real and long lived software systems. Second, we analyze potential reasons for the cases where clones do cause bugs. Third, we take a new perspective to the problem by measuring the effects of clones in a controlled experiment. This allows us to gather new insights by observing software developers during their work, whereas previous studies were based on historical data.

With our work we aim to empirically find advice for practitioners how to deal with clones and, if necessary, to provide an empirical basis for tools that help developers to manage clones.

Inhaltsverzeichnis

  • BEGINN
  • 1 Introduction
  • 1.1 Contributions
  • 1.2 Previously Published Content
  • 1.3 Thesis Outline
  • 2 Definition and Terminology
  • 2.1 Definition
  • 2.2 Terminology
  • 3 Detecting Clones
  • 3.1 Detection
  • 3.2 Evolution
  • 3.3 Clone Detection for this Thesis
  • 4 Causes and Effects of Clones
  • 4.1 Causes
  • 4.2 Effects
  • 5 Managing Clones
  • 5.1 Preventive
  • 5.2 Compensative
  • 5.3 Corrective
  • 6 Clone Stability
  • 6.1 Research Questions
  • 6.2 The Original Study Compared to Ours
  • 6.3 Study Setup
  • 6.4 Results
  • 6.5 Threats to Validity
  • 6.6 Discussion
  • 6.7 Further Studies on Clone Stability
  • 6.8 Conclusion
  • 7 Clone Authorship
  • 7.1 Research Questions
  • 7.2 Authorship Detection
  • 7.3 Study Setup
  • 7.4 Results
  • 7.5 Discussion
  • 7.6 Threats to Validity
  • 7.7 Conclusion
  • 8 Clones and Programmer Performance
  • 8.1 Research Questions
  • 8.2 Experimental Design
  • 8.3 Execution
  • 8.4 Analysis
  • 8.5 Interpretation & Discussion
  • 8.6 Threats to Validity
  • 8.7 Conclusion
  • 9 Conclusion
  • Appendices
  • List of Figures
  • List of Tables
  • Bibliography

Ähnliche Titel

    Mehr von diesem Autor