Declarative design pattern-based development using aspect oriented programming

Aspect Oriented Programming (AOP) can help to reduce crosscutting in the implementation of Design Patterns (DP), due to typical deficiencies of Object Oriented languages that can affect negatively the quality of the overall software system. The implementation of DPs may be further improved by using Model Driven Development techniques together with AOP. We have defined an approach to specify and to apply, declaratively, DPs to the classes of the base system. A Domain Specification Language (DSL) has been defined to specify declaratively the structure of DPs and their adoption on classes. From the DSL specifications, aspects are derived to compose, at run-time, an AOP-based version of the specified DPs. The approach was validated by a case study where the developed supporting framework was used in a concrete development scenario, and subsequent maintenance task. The results from the case study are presented and discussed.

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

[2]  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).

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

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

[5]  Giuseppe Pappalardo,et al.  AODP: refactoring code to provide advanced aspect-oriented modularization of design patterns , 2012, SAC '12.

[6]  KiczalesGregor,et al.  Design pattern implementation in Java and aspectJ , 2002 .

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

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

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

[10]  Mario Luca Bernardi,et al.  An Aspect Oriented Framework for Flexible Design Pattern-based Development , 2016, ICSOFT.

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

[12]  Mario Luca Bernardi,et al.  Web applications design recovery and evolution with RE‐UWA , 2013, J. Softw. Evol. Process..

[13]  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.

[14]  Mario Luca Bernardi,et al.  A model-driven graph-matching approach for design pattern detection , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

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