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 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 OO 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 the 23 Gang-of-Four 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 only 4 aspect-oriented implementations have exhibited significant reuse.
- Alencar, P. et al. A Query-Based Approach for Aspect Measurement and Analysis. TR CS-2004-13, School of Computer Science, Univ. of Waterloo, Canada, Feb 2004.Google Scholar
- AspectJ Team. The AspectJ Guide. http://eclipse.org/aspectj/.Google Scholar
- Chidamber, S. and Kemerer, C. A Metrics Suite for OO Design. IEEE Trans. on Soft. Eng., 20-6, June 1994, 476--493. Google ScholarDigital Library
- Fenton, N. and Pfleeger, S. Software Metrics: A Rigorous Practical Approach. London: PWS, 1997. Google ScholarDigital Library
- Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, 1995. Google ScholarDigital Library
- Garcia, A. From Objects to Agents: An Aspect-Oriented Approach. Doctoral Thesis, PUC-Rio, Rio de Janeiro, Brazil, April 2004.Google Scholar
- Garcia, A. et al. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In Software Engineering for Multi-Agent Systems II, Springer, LNCS 2940, January 2004.Google Scholar
- Garcia, A., Silva, V., Chavez, and C., Lucena, C. Engineering Multi-Agent Systems with Aspects and Patterns. J. of the Brazilian Computer Society, 1, 8 (July 2002), 57--72.Google Scholar
- Hannemann, J., Kiczales, G. Design Pattern Implementation in Java and AspectJ. Proc. OOPSLA'02, Nov 2002, 161--173. Google ScholarDigital Library
- Henderson-Sellers, B. Object-Oriented Metrics: Measures of Complexity. Prentice Hall, 1996. Google ScholarDigital Library
- Java Reference Documentation. http://java.sun.com/reference/docs/index.html.Google Scholar
- Kersten, M. and Murphy, G. Atlas: A Case Study in Building a Web-based Learning Environment Using Aspect-Oriented Programming. Proceedings of OOPSLA '99, November 1999. Google ScholarDigital Library
- Kiczales, G. et al. Aspect-Oriented Programming. Proc. of ECOOP'97, LNCS 1241, Finland, June 1997, 220--242.Google Scholar
- Soares, S. An Aspect-Oriented Implementation Method. Doctoral Thesis, Federal Univ. of Pernambuco, Oct 2004.Google Scholar
- Lopes, C. D: A Language Framework for Distributed Programming. PhD Thesis, Northeastern University, 1997.Google Scholar
- Modularizing Patterns with Aspects: A Quantitative Study. http://www.teccomm.les.inf.pucrio.br/alessandro/GoFpatterns/empiricalresults.htmGoogle Scholar
- Sant'Anna, C. et al. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proc. of Brazilian Symposium on Software Engineering (SBES'03), Manaus, Brazil, Oct 2003, 19--34.Google Scholar
- Sant'Anna, C. et al. Design Patterns as Aspects: A Quantitative Assessment. Proc. of Brazilian Symposium on Software Engineering (SBES'04), Brasília, Brazil, Oct 2004.Google Scholar
- Tarr, P. et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. Proc. ICSE'99, May 1999, 107--119. Google ScholarDigital Library
- Together Technologies. http://www.borland.com/together/.Google Scholar
- Zhao, J. Towards a Metrics Suite for Aspect-Oriented Software. TR SE200213625, Inf. Proc. Society of Japan, 2002.Google Scholar
- Zhao, J. and Xu, B. Measuring Aspect Cohesion. Proc. Conf. on Fundamental Approaches to Software Engineering (FASE'04), LNCS 2984, Barcelona, March 2004, 54--68.Google ScholarCross Ref
- Zuse, H. History of Software Measurement. Available on-line at: irb.cs.tu-berlin.de/~zuse/metrics/History_00.html. Google ScholarDigital Library
Recommendations
Composing design patterns: a scalability study of aspect-oriented programming
AOSD '06: Proceedings of the 5th international conference on Aspect-oriented software developmentPattern composition has been shown as a challenge to applying design patterns in real software systems. One of the main problems is that multiple design patterns in a system are not limited to affect only the application concerns. They also crosscut ...
Blending design patterns with aspects
HighlightsWe investigated the scalability of AOP for composing GoF design patterns.We study the benefits and drawbacks of AOP for composing GoF design patterns.Category of the pattern is a dominant factor impacting the pattern composability.Programming ...
Modularizing design patterns with aspects: a quantitative study
Transactions on Aspect-Oriented Software Development IDesign 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 ...
Comments