Results 1 - 10
of
35
Comparison and Evaluation of Clone Detection Tools
- IEEE TSE
, 2007
"... Many techniques for detecting duplicated source code (software clones) have been proposed in the past. However, it is not yet clear how these techniques compare in terms of recall and precision as well as space and time requirements. This paper presents an experiment that evaluates six clone detecto ..."
Abstract
-
Cited by 40 (1 self)
- Add to MetaCart
Many techniques for detecting duplicated source code (software clones) have been proposed in the past. However, it is not yet clear how these techniques compare in terms of recall and precision as well as space and time requirements. This paper presents an experiment that evaluates six clone detectors based on eight large C and Java programs (altogether almost 850 KLOC). Their clone candidates were evaluated by one of the authors as an independent third party. The selected techniques cover the whole spectrum of the state-of-the-art in clone detection. The techniques work on text, lexical and syntactic information, software metrics, and program dependency graphs.
On the use of line co-change for identifying crosscutting concern code
- In 22nd IEEE International Conference on Software Maintenance (ICSM 2006
, 2006
"... Crosscutting concerns are software system features whose implementation is spread across many modules as tangled and scattered code. Identifying such code helps developers to change the concern and/or re-factor it to an aspect. This paper evaluates the suitability of line co-change as a technique fo ..."
Abstract
-
Cited by 14 (9 self)
- Add to MetaCart
Crosscutting concerns are software system features whose implementation is spread across many modules as tangled and scattered code. Identifying such code helps developers to change the concern and/or re-factor it to an aspect. This paper evaluates the suitability of line co-change as a technique for the identification of crosscutting concerns. A line co-change aim at identifying source code lines that have been changed together in a commit transaction performed using a versioning system such as CVS. Promising results have been obtained by evaluating the approach to identify four crosscutting concerns present in an opensource system, JHotDraw. The paper also shows that line co-change can be effectively complemented with clone detection to improve the performance achieved by the separate approaches. 1.
Identifying crosscutting concerns using fan-in analysis
- ACM Transactions on Software Engineering and Methodology
, 2007
"... Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This paper proposes an aspect mining approach based on determining methods that are called from many different places, and hence have a high fan-in, which can be seen as a symptom of crossc ..."
Abstract
-
Cited by 14 (4 self)
- Add to MetaCart
Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This paper proposes an aspect mining approach based on determining methods that are called from many different places, and hence have a high fan-in, which can be seen as a symptom of crosscutting functionality. The approach is semi-automatic, and consists of three steps: metric calculation, method filtering, and call site analysis. Carrying out these steps is an interactive process supported by an Eclipse plug-in called FINT. Fan-in analysis has been applied to three open source Java systems, totaling around 200,000 lines of code. The most interesting concerns identified are discussed in detail, which includes several concerns not previously discussed in the aspect-oriented literature. The results show that a significant number of crosscutting concerns can be recognized using fan-in analysis, and each of the three steps can be supported by tools.
A Survey of Automated Code-Level Aspect Mining Techniques
- IN TRANSACTIONS ON ASPECT ORIENTED SOFTWARE DEVELOPMENT
, 2007
"... This paper offers a first, in-breadth survey and comparison of current aspect mining tools and techniques. It focuses mainly on automated techniques that mine a program’s static or dynamic structure for candidate aspects. We present an initial comparative framework for distinguishing aspect mining t ..."
Abstract
-
Cited by 13 (3 self)
- Add to MetaCart
This paper offers a first, in-breadth survey and comparison of current aspect mining tools and techniques. It focuses mainly on automated techniques that mine a program’s static or dynamic structure for candidate aspects. We present an initial comparative framework for distinguishing aspect mining techniques, and assess known techniques against this framework. The results of this assessment may serve as a roadmap to potential users of aspect mining techniques, to help them in selecting an appropriate technique. It also helps aspect mining researchers to identify remaining open research questions, possible avenues for future research, and interesting combinations of existing techniques.
Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach
- SCIENCE OF COMPUTER PROGRAMMING
, 2009
"... Over the last decade many techniques and tools for software clone detection have been proposed. In this paper, we provide a qualitative comparison and evaluation of the current state-of-the-art in clone detection techniques and tools, and organize the large amount of information into a coherent conc ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Over the last decade many techniques and tools for software clone detection have been proposed. In this paper, we provide a qualitative comparison and evaluation of the current state-of-the-art in clone detection techniques and tools, and organize the large amount of information into a coherent conceptual framework. We begin with background concepts, a generic clone detection process and an overall taxonomy of current techniques and tools. We then classify, compare and evaluate the techniques and tools in two different dimensions. First, we classify and compare approaches based on a number of facets, each of which has a set of (possibly overlapping) attributes. Second, we qualitatively evaluate the classified techniques and tools with respect to a taxonomy of editing scenarios designed to model the creation of Type-1, Type-2, Type-3 and Type-4 clones. Finally, we provide examples of how one might use the results of this study to choose the most appropriate clone detection tool or technique in the context of a particular set of goals and constraints. The primary contributions of this paper are: (1) a schema for classifying clone detection techniques and tools and a classification of current clone detectors based on this schema, and (2) a taxonomy of editing scenarios that produce different clone types and a qualitative evaluation of current clone detectors based on this taxonomy.
Simple crosscutting concerns are not so simple – analysing variability in large-scale idioms-based implementations
- In Proceedings of the Sixth International Conference on AspectOriented Software Development (AOSD’07
, 2007
"... This paper describes a method for studying idioms-based implementations of crosscutting concerns, and our experiences with it in the context of a real-world, large-scale embedded software system. In particular, we analyse a seemingly simple concern, tracing, and show that it exhibits significant var ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
This paper describes a method for studying idioms-based implementations of crosscutting concerns, and our experiences with it in the context of a real-world, large-scale embedded software system. In particular, we analyse a seemingly simple concern, tracing, and show that it exhibits significant variability, despite the use of a prescribed idiom. We discuss the consequences of this variability in terms of how aspect-oriented software development techniques could help prevent it, how it paralyses (automated) migration efforts, and which aspect language features are required in order to obtain precise and concise aspects. Additionally, we elaborate on the representativeness of our results and on the usefulness of our
Efficiently Mining Crosscutting Concerns through Random Walks
, 2007
"... Inspired by our past manual aspect mining experiences, this paper describes a random walk model to approximate how crosscutting concerns can be discovered in the absence of domain knowledge of the investigated application. Random walks are performed on the coupling graphs extracted from the program ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
Inspired by our past manual aspect mining experiences, this paper describes a random walk model to approximate how crosscutting concerns can be discovered in the absence of domain knowledge of the investigated application. Random walks are performed on the coupling graphs extracted from the program sources. The ideas underlying the popular page-rank algorithm are adapted and extended to generate ranks reflecting the degrees of “popularity ” and “significance ” for each of the program elements on the coupling graphs. Filtering techniques, exploiting both types of ranks, are applied to produce a final list of candidates representing crosscutting concerns. The resulting aspect mining algorithm is evaluated on numerous Java applications ranging from a small-scale drawing application, to a medium-sized middleware application, and to a largescale enterprise application server. In seconds, the aspect mining algorithm is able to produce results comparable to our prior manual mining efforts. The mining algorithm also proves effective in helping domain experts identify latent crosscutting concerns.
Mining Control Flow Graphs for Crosscutting Concerns
, 2006
"... Aspect mining tries to identify crosscutting concerns in existing systems and thus supports the adaption to an aspect-oriented design. This paper describes an automatic static aspect mining approach, where the control flow graphs of a program are investigated for recurring execution patterns based o ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Aspect mining tries to identify crosscutting concerns in existing systems and thus supports the adaption to an aspect-oriented design. This paper describes an automatic static aspect mining approach, where the control flow graphs of a program are investigated for recurring execution patterns based on different constraints, such as the requirement that the patterns have to exist in different calling contexts. A case study done with the implemented tool shows that most discovered crosscutting candidates are instances of crosscutting delegation and should not be refactored into aspects.
Model-driven software evolution: A research agenda
- IN PROC. INT. WS ON MODEL-DRIVEN SOFTWARE EVOLUTION HELD WITH THE ECSMR’07
, 2007
"... Software systems need to evolve, and systems built using model-driven approaches are no exception. What complicates model-driven engineering is that it requires multiple dimensions of evolution. In regular evolution, the modeling language is used to make the changes. In meta-model evolution, changes ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Software systems need to evolve, and systems built using model-driven approaches are no exception. What complicates model-driven engineering is that it requires multiple dimensions of evolution. In regular evolution, the modeling language is used to make the changes. In meta-model evolution, changes are required to the modeling notation. In platform evolution, the code generators and application framework change to reflect new requirements on the target platform. Finally, in abstraction evolution, new modeling languages are added to the set of (modeling) languages to reflect increased understanding of a technical or business domain. While MDE has been optimized for regular evolution, presently little or no support exists for metamodel, platform and abstraction evolution. In this paper, we analyze the problems raised by the evolution of model-based software systems and identify challenges to be addressed by research in this area.
Visualization of clone detection results
- In Proceedings of the 2006 OOPSLA Workshop on Eclipse Technology eXchange
, 2006
"... The goal of a clone detection tool is to identify sections of code that are duplicated in a program. The result of the detection is presented in some manner for the user to view, which is usually in the form of a list of clones that are grouped together. Previous research has shown how scatter plots ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
The goal of a clone detection tool is to identify sections of code that are duplicated in a program. The result of the detection is presented in some manner for the user to view, which is usually in the form of a list of clones that are grouped together. Previous research has shown how scatter plots can be used to render a graphical representation of the results. This paper describes the integration of a stand-alone clone detection tool into Eclipse and a corresponding alternative visualization of clone detection results. An Eclipse plugin is described that displays the results of a clone detection tool called CloneDR™. The visualization of the results is implemented as an extension to the AspectJ Development Tool (AJDT) Visualiser plugin, which is primarily used to view crosscutting concerns in aspect-oriented programs.

