Reducing Static Dependences Exploiting a Declarative Design Patterns Framework

Mario Luca Bernardi, Marta Cimitile

Abstract

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.

References

  1. Baca, P. and Vranic, V. (2011). Replacing object-oriented design patterns with intrinsic aspect-oriented design patterns. In Eastern European Regional Conference on the Engineering of Computer Based Systems, ECBS-EERC 7811, pages 19-26, Washington, DC, USA. IEEE Computer Society.
  2. Bernardi, M. L., Cimitile, M., and Distante, D. (2013a). Web applications design recovery and evolution with RE-UWA. Journal of Software: Evolution and Process, 25(8):789-814.
  3. Bernardi, M. L., Cimitile, M., and Lucca, G. A. D. (2013b). An aspect oriented framework for flexible design pattern-based development. In ICSOFT 2013 - International Joint Conference on Software Technologies, Reykjavík, Iceland, 29-31 July, 2013 , pages 528-535.
  4. Bernardi, M. L., Cimitile, M., and Lucca, G. A. D. (2013c). A model-driven graph-matching approach for design pattern detection. In 20th Working Conference on Reverse Engineering, WCRE 2013, Koblenz, Germany, October 14-17, 2013, pages 172-181.
  5. Bernardi, M. L., Cimitile, M., and Lucca, G. A. D. (2014). Declarative design pattern-based development using aspect oriented programming. In Symposium on Applied Computing, SAC 2014, Gyeongju, Republic of Korea - March 24 - 28, 2014, pages 1625-1630.
  6. Bernardi, M. L., Cimitile, M., and Lucca, G. A. D. (2016). Mining static and dynamic crosscutting concerns: a role-based approach. Journal of Software: Evolution and Process, 28(5):306-339.
  7. Boussaidi, G. E. and Mili, H. (2007). A model-driven framework for representing and applying design patterns. In Computer Software and Applications Conference, 2007., volume 1, pages 97-100.
  8. Eaddy, M., Aho, A., and Murphy, G. C. (2007). Identifying, assigning, and quantifying crosscutting concerns. In International Workshop on Assessment of Contemporary Modularization Techniques, ACoM 7807, pages 2-, Washington, DC, USA. IEEE Computer Society.
  9. Eden, A. H. (2001). Formal specification of object-oriented design. In International Conference on Multidisciplinary Design in Engineering CSME-MDE 2001, pages 21-22.
  10. Elaasar, M., Briand, L. C., and Labiche, Y. (2006). A metamodeling approach to pattern specification. In International Conference on Model Driven Engineering Languages and Systems, MoDELS'06, pages 484- 498, Berlin, Heidelberg. Springer-Verlag.
  11. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  12. Giunta, R., Pappalardo, G., and Tramontana, E. (2012). Aodp: Refactoring code to provide advanced aspectoriented modularization of design patterns. In ACM Symposium on Applied Computing, SAC 7812, pages 1243-1250, New York, NY, USA. ACM.
  13. Hannemann, J. and Kiczales, G. (2002). Design pattern implementation in java and aspectj. In ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA 7802, pages 161-173, New York, NY, USA. ACM.
  14. Hannemann, J., K. G. (2001). Overcoming the prevalent decomposition of legacy code. In Workshop on Advanced Separation of Concerns at the International Conference on Software Engineering, ICSE.
  15. Soundarajan, N. and Hallstrom, J. O. (2004). Responsibilities and rewards: specifying design patterns. In International Conference on Software Engineering, 2004., pages 666-675.
  16. Zdun, U. (2004). Pattern language for the design of aspect languages and aspect composition frameworks. IEE Proceedings - Software, 151(2):67-83.
Download


Paper Citation


in Harvard Style

Bernardi M. and Cimitile M. (2016). Reducing Static Dependences Exploiting a Declarative Design Patterns Framework . In Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016) ISBN 978-989-758-194-6, pages 154-160. DOI: 10.5220/0006009401540160


in Bibtex Style

@conference{icsoft-pt16,
author={Mario Luca Bernardi and Marta Cimitile},
title={Reducing Static Dependences Exploiting a Declarative Design Patterns Framework},
booktitle={Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016)},
year={2016},
pages={154-160},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006009401540160},
isbn={978-989-758-194-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Joint Conference on Software Technologies - Volume 2: ICSOFT-PT, (ICSOFT 2016)
TI - Reducing Static Dependences Exploiting a Declarative Design Patterns Framework
SN - 978-989-758-194-6
AU - Bernardi M.
AU - Cimitile M.
PY - 2016
SP - 154
EP - 160
DO - 10.5220/0006009401540160