Aspect-orientation is a rewarding investment into future code changes - As long as the aspects hardly change

  • Authors:
  • Stefan Hanenberg;Stefan Endrikat

  • Affiliations:
  • Department for Computer Science and Business Information Systems, University of Duisburg-Essen, 45127 Essen, Germany;Department for Computer Science and Business Information Systems, University of Duisburg-Essen, 45127 Essen, Germany

  • Venue:
  • Information and Software Technology
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Context: Aspect-Oriented Programming (AOP) is often described as a technique which improves the resulting software's modularity. However, previous experiments seem to indicate that AOP is a technique which potentially increases the development or maintenance time. A possible reason why previous experiments were not able to show such a benefit is that those experiments did not consider situations where AOP has its strength: situations where aspects change. Objectives: Our objective is to analyze whether initial higher development times caused by aspect-oriented programming can be compensated by frequent changes on the aspect code. Method: This study is an empirical study with 15 subjects based on a within-subject design (repeated measurement) using two randomized groups. The measurement is development time until programming tasks completion. Additionally, an exploratory study is performed which analyzed (a) in separation out- and under-performing subjects with respect to development time, (b) the possible influence of the lines of code, (c) the possible influence of the number of advice and pointcuts, and finally (d) the possible impact of if-statements in the aspect-oriented solutions. Results: The experiment shows that frequent changes in the crosscutting code which do not change the aspect's underlying structure compensate an initial higher development time for those concerns. But it also shows that changes, which do alter the concern's structure again, result in higher development times when using AOP. Furthermore, the paper shows that the results are similar for out- and under-performing subjects in the experiment. Finally it shows that if changes are required in an aspect's structure, subjects tend to perform such structural changes in a non-uniform way. Conclusion: AOP is a potential rewarding investment into future code changes - but it has risks.