41 research outputs found

    Context-based detection of clone-related bugs

    Get PDF
    ABSTRACT Studies show that programs contain much similar code, commonlyknown as clones. One of the main reasons for introducing clone

    Structured Review of the Evidence for Effects of Code Duplication on Software Quality

    Get PDF
    This report presents the detailed steps and results of a structured review of code clone literature. The aim of the review is to investigate the evidence for the claim that code duplication has a negative effect on code changeability. This report contains only the details of the review for which there is not enough place to include them in the companion paper published at a conference (Hordijk, Ponisio et al. 2009 - Harmfulness of Code Duplication - A Structured Review of the Evidence)

    Harmfulness of Code Duplication - A Structured Review of the Evidence

    Get PDF
    Duplication of code has long been thought to decrease changeability of systems, but recently doubts have been expressed whether this is true in general. This is a problem for researchers because it makes the value of research aimed against clones uncertain, and for practitioners as they cannot be sure whether their effort in reducing duplication is well-spent. In this paper we try to shed light on this is-sue by collecting empirical evidence in favor and against the nega-tive effects of duplication on changeability. We go beyond the flat yes/no-question of harmfulness and present an explanatory model to show the mechanisms through which duplication is suspected to affect quality. We aggregate the evidence for each of the causal links in the model. This sheds light on the current state of duplication re-search and helps practitioners choose between the available mitiga-tion strategies

    Deckard - a tree-based, scalable, and accurate code clone detection tool (version 1.2.1)

    Get PDF
    Lingxiao, J., Misherghi, G., Zhendong, S., & Glondu, S. (2007). Data from: Deckard - a tree-based, scalable, and accurate code clone detection tool (version 1.2.1). InK Repository at Singapore Management University. http://ink.library.smu.edu.sg/researchdata/1/</p

    Deckard - a tree-based, scalable, and accurate code clone detection tool (version 1.2.3)

    Get PDF
    Lingxiao, J., Misherghi, G., Zhendong, S., & Glondu, S. (2007). Data from: Deckard - a tree-based, scalable, and accurate code clone detection tool (version 1.2.3). InK Repository at Singapore Management University. http://ink.library.smu.edu.sg/researchdata/2/</p

    Behavioral Analysis for Detecting Code Clones

    Get PDF
    The activities of copy and paste fragments of code from a source code into the other source code is often done by software developers because it's easier than generate code manually. This behavior leads to the increase of effort to maintain the code. One of the detection methods of semantic cloning is based on the behavior of the code. The code behavior detected by observing at an input, output and the effects of the method. Methods with the same value of input, output, and effect will indicate that semantically the same. However, the detection method based on the input, output, and effect could not be used in a void method or method without parameters, another side comprehensively detection is required. The challenge is how to detect which variable in a method that acts as input, output, and effect. Detection of the variable input, output, and effects in a void method done using Program Dependence Graph. The use of clone detection methods semantically based on behavior can increase the agreement value

    Understanding widespread changes: A taxonomic study

    Get PDF

    Detecting and Characterizing Semantic Inconsistencies in Ported Code

    Get PDF
    Adding similar features and bug fixes often requires porting program patches from reference implementations and adapting them to target implementations. Porting errors may result from faulty adaptations or inconsistent updates. This paper investigates (1) the types of porting errors found in practice, and (2) how to detect and characterize potential porting errors. Analyzing version histories, we define five categories of porting errors, including incorrect control- and data-flow, code redundancy, inconsistent identifier renamings, etc. Leveraging this categorization, we design a static control- and data-dependence analysis technique, SPA, to detect and characterize porting inconsistencies. Our evaluation on code from four open-source projects shows that SPA can detect porting inconsistencies with 65% to 73% precision and 90% recall, and identify inconsistency types with 58% to 63% precision and 92% to 100% recall. In a comparison with two existing error detection tools, SPA improves precision by 14 to 17 percentage points
    corecore