Reducing Static Dependences Exploiting a Declarative Design Patterns Framework

Object Oriented Design Patterns (DPs) are recurring solutions to common problems in software design aiming to improve code reusability, maintainability and comprehensibility. Despite such advantages, the adoption of DPs causes the presence of crosscutting code increasing, significantly, the code duplication and the dependencies between systems. The main idea of this research is that code crosscutting can be reduced by the integration of Model Driven Development (MDD) techniques with Aspect Oriented Programming (AOP). According to this, an approach based on a Domain Specification Language (DSL) to to define declaratively the structure of DPs and their adoption on classes to declarative, is proposed. The approach aims to support aspects derivation to compose, at run time, AOP-based version of the specified DPs. The approach has been applied in a case study where the developed supporting framework was used in a concrete refactoring scenario, and a subsequent maintenance task. The results from the case study are presented and discussed.

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

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

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

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

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

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

[7]  Amnon H. Eden,et al.  Objectives , 1975 .

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

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

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

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

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

[13]  Mario Luca Bernardi,et al.  Mining static and dynamic crosscutting concerns: a role‐based approach , 2016, J. Softw. Evol. Process..

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

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

[16]  Mario Luca Bernardi,et al.  Declarative design pattern-based development using aspect oriented programming , 2014, SAC.