T16

Code Clone Detection in Practice

Florian Deissenboeck, Institut fuer Informatik, Technische  Universitaet Muenchen, Germany
Benjamin Hummel, Institut fuer Informatik, Technische  Universitaet Muenchen, Germany
Elmar Juergens, Institut fuer Informatik, Technische  Universitaet Muenchen, Germany

Tuesday, 4 May 2010 (morning)

Abstract:

Research in software maintenance has shown that many programs contain a significant amount of duplicated (cloned) code. Such cloned code is considered harmful for two reasons: (1) multiple, possibly unnecessary, duplicates of code increase maintenance costs and, (2) inconsistent changes to cloned code can create faults and, hence, lead to incorrect program behavior.

Consequently, the identification of duplicated code, clone detection, has been a very active area of research in recent years. Although this research led to the development of mature clone detection techniques and tools, they are not commonly applied in practice yet. This tutorial transfers the insights that were gained in the clone detection community, and experiences that we collected during several years of applying clone detection in industry, to practitioners who want to apply clone detection in practice.

Attendees will learn what causes cloning, what its consequences are and how tools for the detection of clones work in principle. The core of the tutorial is a hands-on experience session where attendees learn how to apply a clone detection tool to their source code. This includes the tailoring required to avoid false positives as well as an interpretation of the clone detection results. The practical part will be performed using the clone detector built into ConQAT (http://www.conqat.org/), which we successfully applied in diverse industrial settings. Since ConQAT  is licensed as open-source, attendees can directly apply their newly acquired knowledge to their work environment.

Presenters:

Florian Deissenboeck is a research assistant in the Software & Systems Engineering group of Prof. M. Broy at the Technische  Universitaet Muenchen (TUM). He received a PhD for his work on software quality control. His academic interests lie in software maintenance, software product quality and program comprehension. He studied computer science at the TUM and the Asian Institute of Technology, Bangkok.

Benjamin Hummel is a research assistant and PhD student at theSoftware & Systems Engineering group of Prof. M. Broy at the Technische Universititaet Muenchen (TUM).. His research interests are modeling and verification of discrete and hybrid systems, and software quality and maintenance. He received a diploma in computer science from the TUM and is a member of the ACM and the Gesellschaft fuer Informatik (GI).

Elmar Juergens is as a research assistant and PhD student at the Software & Systems Engineering group of Prof. M. Broy at the Technische Universititaet Muenchen (TUM). His academic interests include software maintenance, clone detection and usage analysis. He studied computer science at the TUM and the Universidad Carlos III in Madrid, Spain.

As software quality consultants for the CQSE GmbH, all three presenters have applied continuous quality control to help companies to improve their product quality. In particular, they have employed clone detection during numerous quality assessments of industrial software projects and integrated clone detection into the development processes of several large software-developing companies in different domains.