On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study

Although one of the main promises of aspect-oriented (AO) programming techniques is to promote better software changeability than objectoriented (OO) techniques, there is no empirical evidence on their efficacy to prolong design stability in realistic development scenarios. For instance, no investigation has been performed on the effectiveness of AO decompositions to sustain overall system modularity and minimize manifestation of ripple-effects in the presence of heterogeneous changes. This paper reports a quantitative case study that evolves a real-life application to assess various facets of design stability of OO and AO implementations. Our evaluation focused upon a number of system changes that are typically performed during software maintenance tasks. They ranged from successive re-factorings to more broadly-scoped software increments relative to both crosscutting and non-crosscutting concerns. The study included an analysis of the application in terms of modularity, change propagation, concern interaction, identification of ripple-effects and adherence to well-known design principles.

[1]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[2]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[3]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

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

[5]  Kim B. Clark,et al.  Design Rules: The Power of Modularity Volume 1 , 1999 .

[6]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[7]  Eduardo Casais,et al.  Managing class evolution in object-oriented systems , 1995 .

[8]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[9]  Carlos José Pereira de Lucena,et al.  AJATO: an AspectJ Assessment Tool , 2006 .

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

[11]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[12]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[13]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[14]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[15]  Carlos José Pereira de Lucena,et al.  Separation of Concerns in Multi-agent Systems: An Empirical Study , 2003, SELMAS.

[16]  Stephen S. Yau,et al.  Design Stability Measures for Software Maintenance , 1985, IEEE Transactions on Software Engineering.

[17]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[18]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[19]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[20]  Robert P. Colwell Design Fragility , 2004, Computer.

[21]  Václav Rajlich,et al.  Changing the paradigm of software engineering , 2006, CACM.

[22]  Dave Thomas,et al.  ECOOP 2006 - Object-Oriented Programming , 2006 .

[23]  Robert C. Martin,et al.  Iterative and Incremental development , 1999 .

[24]  Sushil Krishna Bajracharya,et al.  An analysis of modularity in aspect oriented design , 2005, AOSD '05.

[25]  Uirá Kulesza,et al.  On the Quantitative Assessment of Modular Multi-Agent System Architectures , 2006 .

[26]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[27]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[28]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD '06.

[29]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[30]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[31]  G GriswoldWilliam,et al.  The structure and value of modularity in software design , 2001 .

[32]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, Anais do XVII Simpósio Brasileiro de Engenharia de Software (SBES 2003).

[33]  Oscar Nierstrasz,et al.  Object-oriented software composition , 1995 .

[34]  Jason Hunter Java servlet programming , 1998, Java series.

[35]  Sérgio Soares,et al.  Distribution and persistence as aspects , 2006, Softw. Pract. Exp..

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

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

[38]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

[39]  Reidar Conradi,et al.  Using Empirical Studies to Assess Software Development Approaches and Measurement Programs , 2003 .