An Aspect Oriented Framework for Flexible Design Pattern-based Development

The implementation of a Design Pattern (DP) may be affected by some problems due to typical deficiencies of Object Oriented languages that may worsen the modularity of a software system, and thus its comprehensibility, maintainability, and testability. Aspect Oriented Programming allows to implement DPs by its powerful quantification constructs that can handle better modularity and composition, helping to overcome some of the OO design trade-offs in current DP implementations. In Model Driven Development system models, defined by a Design Specification Language (DSL), are transformed between different levels of abstraction to get system implementation. In this paper we propose an Aspect Oriented DSL-based framework to specify and to apply, declaratively, Design Patterns to the system classes. The main aim driving the definition of the proposed framework is to improve the modularity, the internal code quality, and the flexibility, by allowing software designers to specify DP models with an extensive modifiability thus reducing the impact of changes related to DP adoption.

[1]  Mario Luca Bernardi,et al.  Improving Design Pattern Quality Using Aspect Orientation , 2005, 13th IEEE International Workshop on Software Technology and Engineering Practice (STEP'05).

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

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

[4]  G.C. Murphy,et al.  Identifying, Assigning, and Quantifying Crosscutting Concerns , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[5]  Paulo S. C. Alencar,et al.  A Transformational Process-Based Formal Approach to Object-Oriented Design , 1997 .

[6]  Lionel C. Briand,et al.  A metamodeling approach to pattern specification , 2006, MoDELS'06.

[7]  Valentino Vranic,et al.  Replacing Object-Oriented Design Patterns with Intrinsic Aspect-Oriented Design Patterns , 2011, 2011 Second Eastern European Regional Conference on the Engineering of Computer Based Systems.

[8]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[9]  Fabrizio Maria Maggi,et al.  Model Driven Development of Process-centric Web Applications , 2016, ICSOFT.

[10]  Ouafa Hachani,et al.  On Aspect-Oriented Technology and Object-Oriented Design Patterns , 2003 .

[11]  Hafedh Mili,et al.  A model-driven framework for representing and applying design patterns , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[12]  Neelam Soundarajan,et al.  Responsibilities and rewards: specifying design patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[13]  Pasquale Arpaia,et al.  An Aspect-Oriented Programming-based approach to software development for fault detection in measurement systems , 2010, Comput. Stand. Interfaces.

[14]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[15]  Uwe Zdun,et al.  Pattern language for the design of aspect languages and aspect composition frameworks , 2004, IEE Proc. Softw..