248 research outputs found
Structured Review of the Evidence for Effects of Code Duplication on Software Quality
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)
Structured Review of Code Clone Literature
This report presents the results of a structured review of code clone literature. The aim of the review is to assemble a conceptual model of clone-related concepts which helps us to reason about clones. This conceptual model unifies clone concepts from a wide range of literature, so that findings about clones can be compared with each other
An evaluation of clone detection techniques for identifying crosscutting concerns
Code implementing a crosscutting concern is often spread over many different parts of an application. Identifying such code automatically greatly improves both the maintainability and the evolvability of the application. First of all, it allows a developer to more easily find the places in the code that must be changed when the concern changes, and thus makes such changes less time consuming and less prone to errors. Second, it allows a developer to refactor the code, so that it uses modern and more advanced abstraction mechanisms, thereby restoring its modularity. In this paper, we evaluate the suitability of clone detection as a technique for the identification of crosscutting concerns. To that end, we manually identify four specific concerns in an industrial C application, and analyze to what extent clone detection is capable of finding these concerns. We consider our results as a stepping stone toward an automated 'concern miner' based on clone detection
An overview of Mirjam and WeaveC
In this chapter, we elaborate on the design of an industrial-strength aspectoriented programming language and weaver for large-scale software development. First, we present an analysis on the requirements of a general purpose aspect-oriented language that can handle crosscutting concerns in ASML software. We also outline a strategy on working with aspects in large-scale software development processes. In our design, we both re-use existing aspect-oriented language abstractions and propose new ones to address the issues that we identified in our analysis. The quality of the code ensured by the realized language and weaver has a positive impact both on maintenance effort and lead-time in the first line software development process. As evidence, we present a short evaluation of the language and weaver as applied today in the software development process of ASML
Mining Application-Specific Coding Patterns for Software Maintenance
LATE '08 Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolutio
Experiences In Migrating An Industrial Application To Aspects
Aspect-Oriented Software Development (AOSD) is a paradigm aiming to solve
problems of object-oriented programming (OOP). With normal OOP it’s often
unlikely to accomplish fine system modularity due to crosscutting concerns being
scattered and tangled throughout the system. AOSD resolves this problem by its
capability to crosscut the regular code and as a consequence transfer the crosscutting
concerns to a single model called aspect. This thesis describes an experiment on
industrial application wherein the effectiveness of aspect-oriented techniques is
explained in migration the OOP application into aspects. The experiment goals at
first to identify the crosscutting concerns in source code of the industrial application
and transform these concerns to a functionally equivalent aspect-oriented version. In
addition to presenting experiences gained through the experiment, the thesis aims to
provide practical guidance of aspect solutions in a real application
Mining Coding Patterns to Detect Crosscutting Concerns in Java Programs
Reverse Engineering, 2008. WCRE '08. 15th Working Conference onDate of Conference:15-18 Oct. 2008Conference Location :Antwer
Identifying aspects using fan-in analysis
The issues of code scattering and tangling, thus of achieving a better modularity for a system's concerns, are addressed by the paradigm of aspect orientation. Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This paper describes a technique based on determining methods that are called from many different places (and hence have a high 'fan-in') to identify candidate aspects in a number of open-source Java systems. The most interesting aspects 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 aspects can be recognized using fan-in analysis, and that the technique is suitable for a high degree of automatio
- …