4.4 Article

Clones: what that smell?

Journal

EMPIRICAL SOFTWARE ENGINEERING
Volume 17, Issue 4-5, Pages 503-530

Publisher

SPRINGER
DOI: 10.1007/s10664-011-9195-3

Keywords

Empirical software engineering; Software maintenance; Software clone; Software quality; Software evolution

Funding

  1. IBM
  2. NSF [SoD-TEAM 0613949]
  3. Division of Computing and Communication Foundations
  4. Direct For Computer & Info Scie & Enginr [0964703] Funding Source: National Science Foundation

Ask authors/readers for more resources

Clones are generally considered bad programming practice in software engineering folklore. They are identified as a (Fowler et al. 1999) and a major contributor to project maintenance difficulties. Clones inherently cause code bloat, thus increasing project size and maintenance costs. In this work, we try to validate the conventional wisdom empirically to see whether cloning makes code more defect prone. This paper analyses the relationship between cloning and defect proneness. For the four medium to large open source projects that we studied, we find that, first, the great majority of bugs are not significantly associated with clones. Second, we find that clones may be defect prone than non-cloned code. Third, we find little evidence that clones with more copies are actually more error prone. Fourth, we find little evidence to support the claim that clone groups that span more than one file or directory are more defect prone than collocated clones. Finally, we find that developers do not need to put a disproportionately higher effort to fix clone dense bugs. Our findings do not support the claim that clones are really a bad smell (Fowler et al. 1999). Perhaps we can clone, breathe easily, at the same time.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.4
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

Article Computer Science, Software Engineering

The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs

Claire Le Goues, Neal Holtschulte, Edward K. Smith, Yuriy Brun, Premkumar Devanbu, Stephanie Forrest, Westley Weimer

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING (2015)

Article Computer Science, Hardware & Architecture

On the Naturalness of Software

Abram Hindle, Earl T. Barr, Mark Gabel, Zhendong Su, Premkumar Devanbu

COMMUNICATIONS OF THE ACM (2016)

Article Computer Science, Software Engineering

To what extent could we detect field defects? An extended empirical study of false negatives in static bug-finding tools

Ferdian Thung, Lucia, David Lo, Lingxiao Jiang, Foyzur Rahman, Premkumar T. Devanbu

AUTOMATED SOFTWARE ENGINEERING (2015)

Article Multidisciplinary Sciences

Converging Work-Talk Patterns in Online Task-Oriented Communities

Qi Xuan, Premkumar Devanbu, Vladimir Filkov

PLOS ONE (2016)

Proceedings Paper Computer Science, Software Engineering

The Sky Is Not the Limit: Multitasking Across GitHub Projects

Bogdan Vasilescu, Kelly Blincoe, Qi Xuan, Casey Casalnuovo, Daniela Damian, Premkumar Devanbu, Vladimir Filkov

2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE) (2016)

Proceedings Paper Computer Science, Software Engineering

Belief & Evidence in Empirical Software Engineering

Prem Devanbu, Thomas Zimmermann, Christian Bird

2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE) (2016)

Proceedings Paper Computer Science, Software Engineering

On the Naturalness of Buggy Code

Baishakhi Ray, Vincent Hellendoorn, Saheel Godhane, Zhaopeng Tu, Alberto Bacchelli, Premkumar Devanbu

2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE) (2016)

Proceedings Paper Computer Science, Software Engineering

Developer Onboarding in GitHub: The Role of Prior Social Links and Language Experience

Casey Casalnuovo, Bogdan Vasilescu, Premkumar Devanbu, Vladimir Filkov

2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS (2015)

Proceedings Paper Computer Science, Software Engineering

Assert Use in GitHub Projects

Casey Casalnuovo, Prem Devanbu, Abilio Oliveira, Vladimir Filkov, Baishakhi Ray

2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 1 (2015)

Proceedings Paper Computer Science, Software Engineering

CACHECA: A Cache Language Model Based Code Suggestion Tool

Christine Franks, Zhaopeng Tu, Premkumar Devanbu, Vincent Hellendoorn

2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 2 (2015)

Proceedings Paper Computer Science, Software Engineering

New Initiative: The Naturalness of Software

Premkumar Devanbu

2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 2 (2015)

Proceedings Paper Computer Science, Artificial Intelligence

Wait For It: Determinants of Pull Request Evaluation Latency on GitHub

Yue Yu, Huaimin Wang, Vladimir Filkov, Premkumar Devanbu, Bogdan Vasilescu

12TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2015) (2015)

Proceedings Paper Computer Science, Artificial Intelligence

Will they like this? Evaluating Code Contributions With Language Models

Vincent J. Hellendoorn, Premkumar T. Devanbu, Alberto Bacchelli

12TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2015) (2015)

Proceedings Paper Computer Science, Software Engineering

What Effect does Distributed Version Control have on OSS Project Organization?

Peter C. Rigby, Earl T. Barr, Christian Bird, Prem Devanbu, Daniel M. German

2013 1ST INTERNATIONAL WORKSHOP ON RELEASE ENGINEERING (RELENG) (2013)

Proceedings Paper Computer Science, Software Engineering

Building Statistical Language Models of Code

Peter Schulam, Roni Rosenfeld, Premkumar Devanbu

2013 1ST INTERNATIONAL WORKSHOP ON DATA ANALYSIS PATTERNS IN SOFTWARE ENGINEERING (DAPSE) (2013)

No Data Available