Abstract
Design patterns offer flexible solutions to common problems in software development. Recent studies have shown that several design patterns involve crosscutting concerns. Unfortunately, object-oriented (OO) abstractions are often not able to modularize those crosscutting concerns, which in turn compromise the system reusability and maintainability. Hence, it is important verifying whether aspect-oriented approaches support improved modularization of crosscutting concerns relative to design patterns. Ideally, quantitative studies should be performed to compare OO and aspect-oriented implementations of classical patterns with respect to fundamental software engineering attributes, such as coupling and cohesion. This paper presents a quantitative study that compares Java and AspectJ solutions for the 23 Gang-of-Four patterns. We have used stringent software attributes as the assessment criteria. We have found that most aspect-oriented solutions improve separation of pattern-related concerns, although only four aspect-oriented implementations have exhibited significant reuse. This paper also discusses the scalability of the analyzed solutions with respect to separation of concerns, and the determination of a predictive model for the modularization of design patterns with aspects.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aspect-Oriented Design Pattern Implementations (2005), http://www.cs.ubc.ca/~jan/AODPs/ (Cited May 2005)
AspectJ Team. The AspectJ Guide, http://eclipse.org/aspectj/
Basili, V., Briand, L., Melo, W.: A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering 22(10), 751–761 (1996)
Basili, V., Selby, R., Hutchins, D.: Experimentation in software engineering. IEEE Transactions on Software Engineering SE-12, 733–743 (1986)
Chidamber, S., Kemerer, C.: A metrics suite for OO design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)
Fenton, N., Pfleeger, S.: Software metrics: A rigorous practical approach. PWS, London (1997)
Figueiredo, E., Garcia, A., Sant’Anna, C., Kulesza, U., Lucena, C.: Assessing aspect-oriented artifacts: Towards a tool-supported quantitative method. In: QAOOSE 2005: Proceedings of the 9th ECOOP Workshop on Quantitative Approaches in OO Software Engineering, Glasgow (2005)
Filho, F., Rubira, C., Garcia, A.: A quantitative study on the aspectization of exception handling. In: Proceedings of the ECOOP Workshop on Exception Handling in Object-Oriented Systems (2005)
Gamma, E., et al.: Design patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)
Garcia, A.: From objects to agents: An aspect-oriented approach. Doctoral Thesis, PUC-Rio, Rio de Janeiro, Brazil (2004)
Garcia, A., et al.: Separation of concerns in multi-agent systems: An empirical study. In: Lucena, C., Garcia, A., Romanovsky, A., Castro, J., Alencar, P.S.C. (eds.) SELMAS 2003. LNCS, vol. 2940, pp. 49–72. Springer, Heidelberg (2004)
Garcia, A., Silva, V., Chavez, C., Lucena, C.: Engineering multi-agent systems with aspects and patterns. Journal of the Brazilian Computer Society 8(1), 57–72 (2002)
Hachani, Q., Bardou, D.: On Aspect-oriented technology and object-oriented design patterns. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)
Hachani, Q., Bardou, D.: Using aspect-oriented programming for design patterns implementation. In: OOIS: Workshop on Reuse in Object-Oriented Information Systems Design (2002)
Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectJ. In: OOPSLA 2002: Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 161–173 (2002)
Henderson-Sellers, B.: Object-oriented metrics: Measures of complexity. Prentice Hall, New Jersey (1996)
Hirschfeld, R., et al.: Design patterns and aspects - Modular designs with seamless run-time integration. In: 3rd German GI Workshop on Aspect-Oriented Software Development (2003)
Hyper/J Web page (2001), http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm
Godil, I., Jacobsen, H.: Horizontal decomposition of prevayler. In: Proceedings of CASCON 2005, Richmond Hill, Canada (2005)
Java Reference Documentation, http://java.sun.com/reference/docs/index.html
Kersten, M., Murphy, G.: Atlas: A case study in building a web-based learning environment using aspect-oriented programming. In: OOPSLA 1999: Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications (1999)
Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kitchenham, B.: Evaluating software engineering methods and tools, part 1: The evaluation context and evaluation methods. ACM SIGSOFT Software Engineering Notes 21(1), 11–15 (1996)
Lopes, C.: D: A language framework for distributed programming. PhD Thesis, Northeastern University, Boston, USA (1997)
Malaiya, Y., Denton, J.: Module size distribution and defect density. In: ISSRE 2000: Proceedings of the 11th International Symposium on Software Reliability Engineering (2000)
Mezini, M., Ostermann, K.: Conquering aspects with caesar. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, Boston, USA (2003)
Miles, R.: AspectJ cookbook. O’Reilly, UK (2004)
Modularizing Patterns with Aspects: A Quantitative Study, http://www.teccomm.les.infpuc-rio.br/alessandro/GoFpatterns/empiricalresults.htm
Sant’Anna, C., et al.: On the reuse and maintenance of aspect-oriented software: An assessment framework. In: SBES 2003: Proceedings of the Brazilian Symposium on Software Engineering, Manaus, Brazil, pp. 19–34 (2003)
Sant’Anna, C., et al.: Design patterns as aspects: A quantitative assessment. Journal of the Brazilian Computer Society (SBES 2004; Best Paper Award), 10(2), Porto Alegre, Brazil (2004)
Soares, S.: An aspect-oriented implementation method. Doctoral Thesis, Federal University of Pernambuco, Recife, Brazil (2004)
Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with AspectJ. In: OOPSLA 2002: Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 174–190 (2002)
Tarr, P., et al.: N degrees of separation: Multi-dimensional separation of concerns. In: ICSE 1999: Proceedings of the International Conference on Software Engineering, pp. 107–119 (1999)
Together Technologies, http://www.borland.com/together/
Zhao, J.: Towards a metrics suite for aspect-oriented software. Technical-Report SE-136-25, Information Processing Society of Japan (IPSJ) (2002)
Zhao, J., Xu, B.: Measuring Aspect Cohesion. In: Wermelinger, M., Margaria-Steffen, T. (eds.) FASE 2004. LNCS, vol. 2984, pp. 54–68. Springer, Heidelberg (2004)
Zuse, H.: History of software measurement, http://irb.cs.tu-berlin.de/~zuse/metrics/History_00.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., von Staa, A. (2006). Modularizing Design Patterns with Aspects: A Quantitative Study. In: Rashid, A., Aksit, M. (eds) Transactions on Aspect-Oriented Software Development I. Lecture Notes in Computer Science, vol 3880. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11687061_2
Download citation
DOI: https://doi.org/10.1007/11687061_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-32972-5
Online ISBN: 978-3-540-32974-9
eBook Packages: Computer ScienceComputer Science (R0)