Font Size: a A A

Analyse des proprietes structurelles et computationnelles des clones logiciels

Posted on:2012-10-11Degree:M.Sc.AType:Thesis
University:Ecole Polytechnique, Montreal (Canada)Candidate:Lavoie, Thierry MFull Text:PDF
GTID:2453390008995919Subject:Engineering
Abstract/Summary:
Clone detection is a widely known research area of software engineering, which goal is to enhance programs understanding and detect potential bugs as well as re-factoring opportunities. The focus of this research area is on finding and analyzing self-similarities in source code. This thesis focuses on structural and computational properties of clones.;Second, an attempt to port some clone-related computation to GPU is presented. To enhance results quality, it is often required to filter clone analysis results with precise but computationally expensive algorithm. The length of the longest common sub-sequence is a good candidate for such a filter and is used by many in the literature. However, its computational cost is prohibitive in many cases. To overcome the cost, a port on GPU of the algorithm specialized for clone detection is proposed. The observed execution times suggest however that little gain is obtained for clone filtering problems. Discussion of this unexpected result is provided along with ideas of other possible GPU applications to clone detections.;Finally, an original algorithm to compute clone oracles is presented. An oracle is a set of clones presumed to be of good quality and used to benchmark clone detection tools results quality. This result is of great importance to the clone community as it provides the first automatically-generated oracle based on an objective algebraic criterion. It also gives insight on computational difficulties of computing good clone results. The key point of the technique is to observe the computational bottleneck of exhaustive search is the space search size and not the distance computation, even for complex distance. Using this knowledge, a metric tree-based algorithm is presented to compute oracles. Details of the computed oracles are presented.;After these topics discussions, the thesis is concluded with future research possibilities.;First, a structural classification scheme of clones is presented. Many studies have researched properties of function clones. These studies did not take in consideration the possible presence of clones in smaller or bigger computational unit. Moreover, they relied on the hypothesis that clone code preserves completely the syntactic structure between fragments. To challenge this hypothesis, classification scheme and algorithm are presented in this work and are applied to clone sets of different systems. Results show that clones can belong to at least three types of structural relationship: method-method, block-block, and method-block. Examples are provided and support the usefulness of such classification. As a result, it mitigates the choice of performing clone analysis only on functions and suggest to focus on other computational units.
Keywords/Search Tags:Clone, Computational
Related items