An approach to design crosscutting framework families

Crosscutting Frameworks are the most common type of aspect-oriented frameworks. They encapsulate only one crosscutting concern, such as persistence, distribution or synchronization. This kind of framework has been successfully used as infrastructure software providing services to higher level applications. However, as any common framework, when crosscutting frameworks are used for developing an application, usually all of their features and variabilities remain in the final architecture, even if only a subset of them was needed. This leads to a poor design with several pieces of death code, making the maintenance activities difficult. In this paper we present an approach to design a set of modules, called features, creating a family of Crosscutting Frameworks. So, during the developing of an application, just the features needed by the application are used, resulting in a clearer design, propitiating higher levels of maintainability and reusability. The approach is exemplified by means of a Family of Persistence Crosscutting Framework.

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

[2]  Maria Istela Cagnin,et al.  Version control in crosscutting framework-based development , 2008, SAC '08.

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

[4]  Paulo César Masiero,et al.  A pattern to design crosscutting frameworks , 2008, SAC '08.

[5]  Sérgio Soares,et al.  Distribution and persistence as aspects , 2006, Softw. Pract. Exp..

[6]  Bart De Decker,et al.  Building frameworks in aspectJ , 2001 .

[7]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[8]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[9]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[10]  Stefan Hanenberg,et al.  Modularizing Security Related Concerns in Enterprise Applications - A Case Study with J2EE and AspectJ , 2005, NODe/GSEM.

[11]  Michael Mortensen Hewlett-Packard,et al.  Creating Pluggable and Reusable Non-functional Aspects in AspectC + + , 2006 .

[12]  Paulo César Masiero,et al.  A process for framework construction based on a pattern language , 2002, Proceedings 26th Annual International Computer Software and Applications.

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

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

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

[16]  Tzilla Elrad,et al.  Aspect-oriented frameworks (poster session): the design of adaptable operating systems , 2000, OOPSLA '00.

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

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

[19]  Thomas Leich,et al.  Aspectual mixin layers: aspects and features in concert , 2006, ICSE '06.