Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Cacho, N., et al.: Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming. In: Proceedings of AOSD 2006, Bonn, Germany (2006)
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)
Codenie, W., et al.: From Custom Applications to Domain-Specific Frameworks. Communications of the ACM 40(10) (October 1997)
Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Fayad, M., Schmidt, D., Johnson, R.: Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley & Sons, Chichester (1999)
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. PhD Thesis, Computer Science Department, PUC-Rio (April 2004)
Griswold, W., et al.: Modular Software Design with Crosscutting Interfaces. IEEE Software, Special Issue on Aspect-Oriented Programming (January 2006)
Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Proceedings of OOPSLA 2002, pp. 161–173 (2002)
Kiczales, G., et al.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)
Kiczales, G., et al.: Getting Started with AspectJ. Comm. ACM 44, 59–65 (2001)
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)
Kulesza, U., et al.: Implementing Framework Crosscutting Extensions with XPIs and AspectJ., Technical Report, PUC-Rio, Brazil (April 2006)
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)
Kulesza, U., Garcia, A., Lucena, C.: Composing Object-Oriented Frameworks with Aspect-Oriented Programming. Technical Report, PUC-Rio, Brazil (April 2006)
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)
Mattson, M., Bosch, J., Fayad, M.: Framework Integration: Problems, Causes, Solutions. Communications of the ACM 42(10), 80–87 (1999)
Mattsson, M., Bosch, J.: Framework Composition: Problems, Causes, and Solutions. In: [7], pp. 467–487 (1999)
Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Program-ming and Aspects. In: Proceedings of FSE 2004, pp. 127–136 (2004)
Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: Proc. of AOSD 2003, Boston, Massachusetts, USA, March 17-21, 2003, pp. 90–99 (2003)
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)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM 11(2), 215–255 (2002)
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)
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)
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
Kulesza, U., Alves, V., Garcia, A., de Lucena, C.J.P., Borba, P. (2006). Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming. In: Morisio, M. (eds) Reuse of Off-the-Shelf Components. ICSR 2006. Lecture Notes in Computer Science, vol 4039. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11763864_17
Download citation
DOI: https://doi.org/10.1007/11763864_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34606-7
Online ISBN: 978-3-540-34607-4
eBook Packages: Computer ScienceComputer Science (R0)