Automating the construction of domain-specific modeling languages for object-oriented frameworks

The extension of frameworks with domain-specific modeling languages (DSML) has proved to be an effective way of improving the productivity in software product-line engineering. However, developing and evolving a DSML is typically a difficult and time-consuming task because it requires to develop and maintain a code generator, which transforms application models into framework-based code. In this paper, we propose a new approach for extending object-oriented frameworks that aims to alleviate this problem. The approach is based on developing an additional aspect-oriented layer that encodes a DSML for building framework-based applications, eliminating the need of implementing a code generator. We further show how a language workbench is capable of automating the construction of DSMLs using the proposed layer.

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

[2]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

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

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

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

[6]  Krzysztof Czarnecki,et al.  Overview of Generative Software Development , 2004, UPP.

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

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

[9]  Kai Koskimies,et al.  Framework specialization aspects , 2007, AOSD.

[10]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[11]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[12]  Oscar Nierstrasz,et al.  The Effect of Object-Oriented Frameworks on Developer Productivity , 1996, Computer.

[13]  Don Roberts,et al.  Evolving Frameworks A Pattern Language for Developing Object-Oriented Frameworks , 2004 .

[14]  Kai Koskimies,et al.  Modular Hot Spots: A Pattern Language for Developing High-Level Framework Reuse Interfaces using Aspects , 2008, EuroPLoP.

[15]  Jeff McAffer,et al.  Eclipse Rich Client Platform: Designing, Coding, and Packaging Java¿ Applications , 2005 .

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

[17]  Aniruddha S. Gokhale,et al.  Domain-Specific Modeling , 2008, Handbook of Dynamic System Modeling.

[18]  Paulo S. C. Alencar,et al.  Customizing Aspect-Oriented Variabilities using Generative Techniques , 2006, SEKE.

[19]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[20]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.