Abstract
Although one of the main promises of aspect-oriented (AO) programming techniques is to promote better software changeability than object-oriented (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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Larman, C., Basili, V.: Iterative and Incremental Development: A Brief History. IEEE Computer 36(6), 47–56 (2003)
Martin, R.: Engineering Notebook: Stability (1997)
Mohagheghi, P., Conradi, R.: Using Empirical Studies to Assess Software Development Approaches and Measurement Programs. In: Proc. Workshop on Empirical Software Engineering (WSESE’03), Rome (2003)
Yau, S.S., Collofello, J.S.: Design Stability Measures for Software Maintenance. IEEE Transactions on Software Engineering 11(9), 849–856 (1985)
Rajlich, V.: Changing the Paradigm of Software Engineering. Communications of the ACM 49(8), 67–70 (2006)
Casais, E.: Managing Class Evolution in Object-Oriented Systems. In: Nierstrasz, O., Tsichritzis, D. (eds.) Object-Oriented Software Composition, Prentice Hall, Englewood Cliffs (1995)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Longtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Proceedings European Conference on Object-Oriented Programming, Jyväskylä, Finland, Springer, Heidelberg (1997)
Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston, USA (2003)
Kulesza, U., Sant’ Anna, C., Garcia, A., Coelho, R., Staa, A., Lucena, C.: Quantifying the Effects of AOP: A Maitenance Study. In: Proc. of 9th Intl. Conference on Software Maintenance (ICSM’06), Philadelphia, USA (2006)
Rashid, A., Chitchyan, R.: Persistence as an Aspect. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), ACM, Boston, Massachusetts (2003)
Soares, S., Borba, P., Laureano, E.: Distribution and Persistence as Aspects. Software: Practice and Experience (2006)
Filho, F., Cacho, N., Figueiredo, E., Maranhao, R., Garcia, A., Rubira, C.: Exceptions and Aspects: The Devil is in the Details. In: International Conference on Foundations of Software Engineering (2006)
Lippert, M., Lopes, C.: A Study on Exception Detection and Handling Using Aspect-Oriented Programming. In: 22nd International Conference on Software Engineering (1999)
Garcia, A., Sant’Anna, S., Figueiredo, E., Kuleska, U., Lucena, C., Von Staa, A.: Modularizing Design Patterns with Aspects: A Quantative Study. In: 4th International Conference on Aspect-Oriented Software Development (AOSD), Chicago, USA (2005)
Cacho, N., Sant’Anna, C., Figueiredo, E., Garcia, A., Batista, T., Lucena, C.: Composing Design Patterns: A Scalability Study of AOP. In: AOSD, Bonn, Germany (2006)
Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In (OOPSLA). Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, ACM, Seattle, Washington (2002)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting Started with AspectJ. Communications of the ACM 44(10), 59–65 (2001)
Meyer, B.: Object-Oriented Software Construction, 1st edn. Prentice-Hall, Englewood Cliffs (1988)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Pattern, Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, Reading (1995)
Greenwood, P., et al.: Aspect Interaction and Design Stability: An Empirical Study (2007), Available from: http://www.comp.lancs.ac.uk/computing/users/greenwop/ecoop07
Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley and Sons, Chichester (1996)
Hunter, J., Crawford, W.: Java Servlet Programming. O’Reilly and Associates Inc. (1998)
Sant’ Anna, C., Garcia, A., Chavez, C., Lucena, C., von Staa, A.: On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. In: Brazilian Symposium on Software Engineering, Manaus, Brazil (2003)
Garcia, A., et al.: Separation of Concerns in Multi-Agent Systems: An Empirical Study. Software Engineering for Multi-Agent Systems, 2(2940) (2004)
Chidamber, S., Kemerer, C.: A Metrics Suite for Object-Oriented Design. IEE Transactions on Software Engineering 20(6), 476–493 (1994)
Bartolomei, T.T.: MuLaTo (2006), Available from: http://sourceforge.net/projects/mulato
Figueiredo, E., Garcia, A., Luena, C.: AJATO: An AspectJ Assessment Tool. In: European Conference on Object-Oriented Programming (ECOOP Demo), France (2006)
Colwell, B.: Design Fragility. Computer 37(1), 13–16 (2004)
Kellens, A., Mens, K., Brichau, J., Gybels, K.: Managing the Evolution of Aspect-Oriented Software with Model-based Pointcuts. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, Springer, Heidelberg (2006)
Sant’ Anna, C., et al.: On the Quantitative Assessment of Modular Multi-Agent System Architectures. In: NetObjectDays (MASSA) (2006)
Lopes, C., Bajracharya, S.: An Analysis of Modularity in Aspect-Oriented Design. In: Proc. Aspect-Oriented Software Development (AOSD), Chicago, USA (2005)
Baldwin, C., Clark, K.: Design Rules:The Power of Modularity, vol 1. MIT Press, Cambridge (2000)
Sullivan, K., Griswold, W., Cai, Y., Hallen, B.: The Structure and Value of Modularity in Software Design. In: 8th European Software Engineering Conference, ACM Press, New York (2001)
Steimann, F.: The Paradoxical Success of Aspect-Oriented Programming. In: International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Greenwood, P. et al. (2007). On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. In: Ernst, E. (eds) ECOOP 2007 – Object-Oriented Programming. ECOOP 2007. Lecture Notes in Computer Science, vol 4609. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73589-2_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-73589-2_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73588-5
Online ISBN: 978-3-540-73589-2
eBook Packages: Computer ScienceComputer Science (R0)