| Open | Published:
Design patterns as aspects: A quantitative assessment
Journal of the Brazilian Computer Societyvolume 10, pages49–63 (2004)
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 decrease 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 object-oriented and aspect-oriented implementations of classical patterns with respect to important software engineering attributes, such as coupling and cohesion. This paper presents a quantitative study that compares aspect-based and OO solutions for a representative set of design patterns. We have used stringent software engineering attributes as the assessment criteria. We have found that most aspect-oriented solutions improve separation of pattern-related concerns, although some aspect-oriented implementations of specific patterns resulted in higher coupling and more lines of code.
P. Alencar et al. A Query-Based Approach for Aspect Measurement and Analysis. TR CS-2004–13, School of Computer Science, University of Waterloo, Canada, February 2004
AspectJ Team. The AspectJ Programming Guide. http://eclipse.org/aspectj/, December 2003.
V. Basili, R. Selby, D. Hutchins. Experimentation in Software Engineering.IEEE Transactions on Software Engineering, SE-12:733–743, 1986.
S. Chidamber, C. Kemerer. A Metrics Suite for Object Oriented Design.IEEE Transactions on Software Engineering, 20(6):476–493, June 1994.
N. Fenton, S. Pfleeger. Software Metrics: A Rigorous Practical Approach. London: PWS, 1997.
E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, 1995.
A. Garcia. From Objects to Agents: An Aspect-Oriented Approach. Doctoral Thesis, PUC-Rio, Computer Science Department, Rio de Janeiro, Brazil, April 2004.
A. Garcia et al. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In C. Lucena et al (eds.)Software Engineering for Multi-Agent Systems II, pages 49–71, Springer, LNCS 2940, January 2004.
A. Garcia, V. Silva, C. Chavez, C. Lucena. Engineering Multi-Agent Systems with Aspects and Patterns.Journal of the Brazilian Computer Society, 1(8):57–72, July 2002.
J. Hannemann, G. Kiczales. Design Pattern Implementation in Java and AspectJ. InProceedings of OOPSLA’02, pages 161–173, November 2002.
B. Henderson-Sellers. Object-Oriented Metrics: Measures of Complexity. Prentice Hall, 1996.
Java Reference Documentation. http://java.sun.com/reference/docs/index.html, February 2004.
A. Kersten, G. Murphy. Atlas: A Case Study in Building a Web-based learning environment using aspect-oriented programming. InProceedings of OOPSLA’99, pages 340–352, November 1999.
G. Kiczales et al. Aspect-Oriented Programming. InProceedings of ECOOP’97, LNCS (1241), Springer-Verlag, Finland, pages 220–242, June 1997.
B. Kitchenham. Evaluating Software Engineering methods and tools, Part 1: The Evaluation Context and Evaluation Methods.ACM SIGSOFT Software Engineering Notes, 21(1):11–15, 1996.
M. Lippert, C. Lopes. A Study on Exception Detection and Handling Using Aspect-Oriented Programming. InProceedings of ICSE’00, pages 418–427, May 2000.
C. Lopes. D: A Language Framework for Distributed Programming. PhD Thesis, Northeastern University, 1997.
C. Sant’Anna. Maintainability and Reusability of Aspect-Oriented Software: An Assessment Framework. Masters Thesis, PUC-Rio, March 2004 (in Portuguese).
C. Sant’Anna et al. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. InProceedings of the 17 o Brazilian Symposium on Software Engineering, pages 19–34, October 2003.
S. Soares, E. Laureano, P. Borba. Implementing Distribution and Persistence Aspects with AspectJ. InProceedings of OOPSLA’02, pages 174–190, 2002.
P. Tarr et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. InProceedings of ICSE’99, pp. 107–119, May 1999.
R. Walker, E. Baniassad, G. Murphy. An Initial Assessment of Aspect-oriented Programming. InProceedings of ICSE’99, pages 120–130, May 1999.