Does aspect-oriented programming increase the development speed for crosscutting code? An empirical study

Aspect-oriented software development is an approach which addresses the construction of software artifacts that traditional software engineering constructs fail to modularize: the so-called crosscutting concerns. However, although aspect-orientation claims to permit a better modularization of crosscutting concerns, it is still not clear whether the development time for such crosscutting concerns is increased or decreased by the application of aspect-oriented techniques. This paper addresses this issue by an experiment which compares the development times of crosscutting concerns using traditional composition techniques and aspect-oriented composition techniques using the object-oriented programming language Java and the aspect-oriented programming language AspectJ. In that way, the experiment reveals opportunities and risks caused by aspect-oriented programming techniques in comparison to object-oriented ones.

[1]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

[2]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[3]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[4]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[5]  Walter F. Tichy,et al.  Should Computer Scientists Experiment More? , 1998, Computer.

[6]  Kris Gybels,et al.  Arranging language features for more robust pattern-based crosscuts , 2003, AOSD '03.

[7]  J. Bortz Statistik: Fur Sozialwissenschaftler , 1993 .

[8]  Lutz Prechelt,et al.  An Empirical Comparison of Seven Programming Languages , 2000, Computer.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  Lodewijk Bergmans,et al.  Composing Aspects at Shared Join Points , 2005, NODe/GSEM.

[11]  Friedrich Steimann The paradoxical success of aspect-oriented programming , 2006, OOPSLA '06.

[12]  Carlos José Pereira de Lucena,et al.  Assessing the Impact of Aspects on Exception Flows: An Exploratory Study , 2008, ECOOP.

[13]  Stefan Hanenberg,et al.  Design dimensions of aspect -oriented systems , 2006 .

[14]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[15]  Lech Madeyski,et al.  Impact of aspect-oriented programming on software development efficiency and design quality: an empirical study , 2007, IET Softw..

[16]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[17]  Rachel Harrison,et al.  An exploratory study of the effect of aspect-oriented programming on maintainability , 2008, Software Quality Journal.

[18]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

[19]  L. Prechelt,et al.  A Controlled Experiment on Inheritance Depth as a Cost Factor for Maintenance , 1999 .

[20]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .