Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming

  • Uirá Kulesza
  • Vander Alves
  • Alessandro Garcia
  • Carlos J. P. de Lucena
  • Paulo Borba
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4039)


Object-oriented frameworks are nowadays a common and useful technology used in the implementation of software system families. Despite their benefits, over the last years many researchers have described the inadequacy of object-oriented mechanisms to address the modularization and composition of many framework features, thus reducing the extent to which a framework can be extended. The crosscutting nature of many framework features is identified as one of the main causes of these problems. In this paper, we analyze how aspect-oriented programming can help to improve the design, implementation, and extension of object-oriented frameworks. We propose the concept of Extension Join Points (EJPs) as a way of designing and documenting existing crosscutting extension points. EJPs improve framework extensibility, including superior composability of the framework core functionality with other modules or frameworks. Four case studies of frameworks from diverse domains are presented to illustrate our proposal. This paper also discusses lessons learned on the application of our approach to the development and extension of these frameworks.


Software Product Line Integration Aspect Framework Class Game Engine Modularization Problem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alves, V., Matos, P., Cole, L., Borba, P., Ramalho, G.: Extracting and Evolving Mobile Games Product Lines. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 70–81. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Batory, D., Cardone, R., Smaragdakis, Y.: Object-Oriented Frameworks and Product-Lines. In: 1st Software Product-Line Conference (SPLC) Denver, August 1999, pp. 227–248 (1999)Google Scholar
  3. 3.
    Cacho, N., et al.: Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming. In: Proceedings of AOSD 2006, Bonn, Germany (2006)Google Scholar
  4. 4.
    Chavez, C., Garcia, A., Kulesza, U., Sant’Anna, C., Lucena, C.: Taming Heterogeneous Aspects with Crosscutting Interfaces. Journal of the Brazilian Computer Society (to appear, 2006)Google Scholar
  5. 5.
    Codenie, W., et al.: From Custom Applications to Domain-Specific Frameworks. Communications of the ACM 40(10) (October 1997)Google Scholar
  6. 6.
    Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  7. 7.
    Fayad, M., Schmidt, D., Johnson, R.: Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley & Sons, Chichester (1999)Google Scholar
  8. 8.
    Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  9. 9.
    Garcia, A.: From Objects to Agents: An Aspect-Oriented Approach. PhD Thesis, Computer Science Department, PUC-Rio (April 2004)Google Scholar
  10. 10.
    Griswold, W., et al.: Modular Software Design with Crosscutting Interfaces. IEEE Software, Special Issue on Aspect-Oriented Programming (January 2006)Google Scholar
  11. 11.
    Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Proceedings of OOPSLA 2002, pp. 161–173 (2002)Google Scholar
  12. 12.
    Kiczales, G., et al.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)CrossRefGoogle Scholar
  13. 13.
    Kiczales, G., et al.: Getting Started with AspectJ. Comm. ACM 44, 59–65 (2001)CrossRefGoogle Scholar
  14. 14.
    Kulesza, U., et al.: A Generative Approach for Multi-Agent System Development. In: Choren, R., Garcia, A., Lucena, C., Romanovsky, A. (eds.) SELMAS 2004. LNCS, vol. 3390, pp. 52–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Kulesza, U., et al.: Implementing Framework Crosscutting Extensions with XPIs and AspectJ., Technical Report, PUC-Rio, Brazil (April 2006)Google Scholar
  16. 16.
    Kulesza, U., Garcia, A., Bleasby, F., Lucena, C.: Instantiating and Customizing Product Line Architectures using Aspects and Crosscutting Feature Models. In: Proceedings of the Workshop on Early Aspects, OOPSLA 2005, San Diego (2005)Google Scholar
  17. 17.
    Kulesza, U., Garcia, A., Lucena, C.: Composing Object-Oriented Frameworks with Aspect-Oriented Programming. Technical Report, PUC-Rio, Brazil (April 2006)Google Scholar
  18. 18.
    Kvale, A., et al.: A Case Study on Building COTS-Based System using Aspect-Oriented Programming. In: Proceedings of SAC 2005, pp. 1491–1498 (2005)Google Scholar
  19. 19.
    Mattson, M., Bosch, J., Fayad, M.: Framework Integration: Problems, Causes, Solutions. Communications of the ACM 42(10), 80–87 (1999)CrossRefGoogle Scholar
  20. 20.
    Mattsson, M., Bosch, J.: Framework Composition: Problems, Causes, and Solutions. In: [7], pp. 467–487 (1999)Google Scholar
  21. 21.
    Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Program-ming and Aspects. In: Proceedings of FSE 2004, pp. 127–136 (2004)Google Scholar
  22. 22.
    Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: Proc. of AOSD 2003, Boston, Massachusetts, USA, March 17-21, 2003, pp. 90–99 (2003)Google Scholar
  23. 23.
    Riehle, D., Gross, T.: Role Model Based Framework Design and Integration. In: Proceedings of OOPSLA 1998, Vancouver, BC, Canada, October 18-22, 1998, pp. 117–133 (1998)Google Scholar
  24. 24.
    Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM 11(2), 215–255 (2002)CrossRefGoogle Scholar
  25. 25.
    Sullivan, K., et al.: Information Hiding Interfaces for Aspect-Oriented Design. In: Proceedings of ESEC/FSE 2005, Lisbon, Portugal, September 5-9, 2005, pp. 166–175 (2005)Google Scholar
  26. 26.
    Zhang, C., Jacobsen, H.: Resolving Feature Convolution in Middleware Systems. In: Proceedings of OOPSLA 2004, Vancouver, BC, Canada, October 24-28, 2004, pp. 188–205 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Uirá Kulesza
    • 1
  • Vander Alves
    • 2
  • Alessandro Garcia
    • 3
  • Carlos J. P. de Lucena
    • 1
  • Paulo Borba
    • 2
  1. 1.PUC-Rio, Computer Science DepartmentRio de JaneiroBrazil
  2. 2.Informatics CenterFederal University of PernambucoRecifeBrazil
  3. 3.Computing DepartmentLancaster UniversityLancasterUnited Kingdom

Personalised recommendations