Model-based reuse for crosscutting frameworks: assessing reuse and maintenance effort

BackgroundOver the last years, a number of researchers have investigated how to improve the reuse of crosscutting concerns. New possibilities have emerged with the advent of aspect-oriented programming, and many frameworks were designed considering the abstractions provided by this new paradigm. We call this type of framework Crosscutting Frameworks (CF), as it usually encapsulates a generic and abstract design of one crosscutting concern. However, most of the proposed CFs employ white-box strategies in their reuse process, requiring two mainly technical skills: (i) knowing syntax details of the programming language employed to build the framework and (ii) being aware of the architectural details of the CF and its internal nomenclature. Also, another problem is that the reuse process can only be initiated as soon as the development process reaches the implementation phase, preventing it from starting earlier.MethodIn order to solve these problems, we present in this paper a model-based approach for reusing CFs which shields application engineers from technical details, letting him/her concentrate on what the framework really needs from the application under development. To support our approach, two models are proposed: the Reuse Requirements Model (RRM) and the Reuse Model (RM). The former must be used to describe the framework structure and the later is in charge of supporting the reuse process. As soon as the application engineer has filled in the RM, the reuse code can be automatically generated.ResultsWe also present here the result of two comparative experiments using two versions of a Persistence CF: the original one, whose reuse process is based on writing code, and the new one, which is model-based. The first experiment evaluated the productivity during the reuse process, and the second one evaluated the effort of maintaining applications developed with both CF versions. The results show the improvement of 97% in the productivity; however little difference was perceived regarding the effort for maintaining the required application.ConclusionBy using the approach herein presented, it was possible to conclude the following: (i) it is possible to automate the instantiation of CFs, and (ii) the productivity of developers are improved as long as they use a model-based instantiation approach.

[1]  Michal Antkiewicz,et al.  Framework-Specific modeling languages with round-trip engineering , 2006, MoDELS'06.

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  João Luís Sobral,et al.  Reusable aspect-oriented implementations of concurrency patterns and mechanisms , 2006, AOSD.

[4]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[5]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[6]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[7]  Andy Evans,et al.  Transformation Language Design: A Metamodelling Foundation , 2004, ICGT.

[8]  N. Soundarajan,et al.  Specifying Reusable Aspects , 2009 .

[9]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[10]  Frank Hill,et al.  An aspect-oriented security framework , 2003, Proceedings DARPA Information Survivability Conference and Exposition.

[11]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[12]  Paulo César Masiero,et al.  Building a Wizard for Framework Instantiation Based on a Pattern Language , 2003, OOIS.

[13]  Oscar Pastor,et al.  Model-driven architecture in practice - a software production environment based on conceptual modeling , 2007 .

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

[15]  Paulo Cesar Masiero,et al.  An approach to design crosscutting framework families , 2008, ACP4IS@AOSD.

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

[17]  Kai Koskimies,et al.  Automated Domain-Specific Modeling Languages for Generating Framework-Based Applications , 2008, 2008 12th International Software Product Line Conference.

[18]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[19]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[20]  Wouter Joosen,et al.  Towards reusable aspects: the callback mismatch problem , 2010 .

[21]  Paulo Alencar,et al.  ReuseTool - An extensible tool support for object-oriented framework reuse , 2011, J. Syst. Softw..

[22]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming , 2006, ICSR.

[23]  Cristina V. Lopes,et al.  Aspect-Oriented Programming , 1997, ECOOP.

[24]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[25]  Philippe Chevalley,et al.  A Genertative Approach to Framework Instantiation , 2003, GPCE.

[26]  Henry Sudhof,et al.  Patterns for Re-usable Aspects in Object Teams , 2006, NODe/GSEM.