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

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.

[1]  Wim Codenie,et al.  From custom applications to domain-specific frameworks , 1997, CACM.

[2]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[3]  Hans-Arno Jacobsen,et al.  Resolving feature convolution in middleware systems , 2004, OOPSLA.

[4]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[5]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[6]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[7]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[8]  Jan Bosch,et al.  Framework integration problems, causes, solutions , 1999, CACM.

[9]  Reidar Conradi,et al.  A case study on building COTS-based system using aspect-oriented programming , 2005, SAC '05.

[10]  Carlos José Pereira de Lucena,et al.  Taming Heterogeneous Aspects with Crosscutting Interfaces , 2005 .

[11]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[12]  Carlos José Pereira de Lucena,et al.  Implementing Framework Crosscutting Extensions with EJPs and AspectJ , 2006, SBES.

[13]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[14]  Dirk Riehle,et al.  Role model based framework design and integration , 1998, OOPSLA '98.

[15]  Paulo S. C. Alencar,et al.  A Generative Approach for Multi-agent System Development , 2004, SELMAS.

[16]  Jan Bosch,et al.  Framework composition: problems, causes and solutions , 1997, Proceedings of TOOLS USA 97. International Conference on Technology of Object Oriented Systems and Languages.

[17]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .

[18]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[19]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[20]  Yannis Smaragdakis,et al.  Object-oriented frameworks and product lines , 2000, SPLC.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD '06.

[23]  Paulo S. C. Alencar,et al.  Software Engineering for Multi-Agent Systems II , 2004 .

[24]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[25]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[26]  Don Batoryi,et al.  Object-Oriented Frameworks and Product-Lines 1 , 2000 .