ArchReco: a software tool to assist software design based on context aware recommendations of design patterns

This work describes the design, development and evaluation of a software Prototype, named ArchReco, an educational tool that employs two types of Context-aware Recommendations of Design Patterns, to support users (CS students or professionals) who want to improve their design skills when it comes to training for High Level Software models. The tool’s underlying algorithms take advantage of Semantic Web technologies, and the usage of Content based analysis for the computation of non-personalized recommendations for Design Patterns. The recommendations’ objective is to support users in functions such as finding the most suitable Design Pattern to use according to the working context, learn the meaning, objectives and usages of each Design Pattern. The current work presents the Semantic Modeling of the Software Design process through the definition of the context that defines the Software Design process and in particular the representation of the Design Patterns as Ontology model, the implemented Context Aware Recommendation Algorithms and the evaluation results extracted from a user based testing for the ArchReco prototype.

[1]  Kent L. Norman,et al.  Development of an instrument measuring user satisfaction of the human-computer interface , 1988, CHI '88.

[2]  Lionel C. Briand,et al.  VPML: an approach to detect design patterns of MOF-based modeling languages , 2015, Software & Systems Modeling.

[3]  Uwe Zdun,et al.  Using Patterns to Capture Architectural Decisions , 2007, IEEE Software.

[4]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[5]  Francesco Ricci,et al.  Distributional semantic pre-filtering in context-aware recommender systems , 2015, User Modeling and User-Adapted Interaction.

[6]  H. James Hoover,et al.  Using SCL to specify and check design intent in source code , 2006, IEEE Transactions on Software Engineering.

[7]  Yann-Gaël Guéhéneuc,et al.  Recommendation system for design patterns in software development: An DPR overview , 2012, 2012 Third International Workshop on Recommendation Systems for Software Engineering (RSSE).

[8]  S. Balaji,et al.  WATEERFALLVs V-MODEL Vs AGILE: A COMPARATIVE STUDY ON SDLC , 2012 .

[9]  Nigel Cross,et al.  Expertise in Design: an overview , 2004 .

[10]  Otis Gospodnetic,et al.  Lucene in Action, Second Edition: Covers Apache Lucene 3.0 , 2010 .

[11]  Alf Inge Wang,et al.  An Application of a Game Development Framework in Higher Education , 2009, Int. J. Comput. Games Technol..

[12]  James R. Lewis,et al.  IBM computer usability satisfaction questionnaires: Psychometric evaluation and instructions for use , 1995, Int. J. Hum. Comput. Interact..

[13]  Li Chen,et al.  A user-centric evaluation framework for recommender systems , 2011, RecSys '11.

[14]  TangAntony,et al.  10 years of software architecture knowledge management , 2016 .

[15]  Nuno Seco,et al.  Using CBR for Automation of Software Design Patterns , 2002, ECCBR.

[16]  R. Holt,et al.  Tool Support for Software Engineering Education , 1994 .

[17]  Frank Leymann,et al.  Combining Pattern Languages and Reusable Architectural Decision Models into a Comprehensive and Comprehensible Design Method , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[18]  Hong Zhu,et al.  On the Composition of Design Patterns , 2008, 2008 The Eighth International Conference on Quality Software.

[19]  Gregory D. Abowd,et al.  A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications , 2001, Hum. Comput. Interact..

[20]  Remco C. de Boer,et al.  Knowledge Management in Software Architecture: State of the Art , 2009, Software Architecture Knowledge Management.

[21]  Sandro Morasca,et al.  Defining and Validating Measures for Object-Based High-Level Design , 1999, IEEE Trans. Software Eng..

[22]  Zhang Kang,et al.  Visualizing Design Patterns in Their Applications and Compositions , 2007 .

[23]  Michele Risi,et al.  Design pattern recovery through visual language parsing and source code analysis , 2009, J. Syst. Softw..

[24]  Yann-Gaël Guéhéneuc,et al.  DeMIMA: A Multilayered Approach for Design Pattern Identification , 2008, IEEE Transactions on Software Engineering.

[25]  Muhammad Ali Babar,et al.  10 years of software architecture knowledge management: Practice and future , 2016, J. Syst. Softw..

[26]  Olaf Zimmermann Architectural decision identification in architectural patterns , 2012, WICSA/ECSA '12.

[27]  A. Govardhan,et al.  A Comparison Between Five Models Of Software Engineering , 2010 .

[28]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[29]  Luigi Ceccaroni,et al.  Semantically-enhanced pre-filtering for context-aware recommender systems , 2013, CaRR '13.

[30]  Olaf Zimmermann,et al.  Twenty Years of Patterns' Impact , 2013, IEEE Softw..

[31]  Ghulam Rasool,et al.  A Survey on Design Pattern Recovery Techniques , 2011 .

[32]  André van der Hoek,et al.  Comprehensive Evaluation of an Educational Software Engineering Simulation Environment , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[33]  Fred D. Davis Perceived Usefulness, Perceived Ease of Use, and User Acceptance of Information Technology , 1989, MIS Q..

[34]  Jingde Cheng,et al.  A Supporting Tool for Spiral Model of Cryptographic Protocol Design with Reasoning-Based Formal Analysis , 2016 .

[35]  Juan de Lara,et al.  Formal Foundation for Pattern-Based Modelling , 2009, FASE.

[36]  Joyce J. Elam,et al.  Inside a software design team: knowledge acquisition, sharing, and integration , 1993, CACM.

[37]  Bart P. Knijnenburg,et al.  Explaining the user experience of recommender systems , 2012, User Modeling and User-Adapted Interaction.

[38]  Alexander Chatzigeorgiou,et al.  Design Pattern Detection Using Similarity Scoring , 2006, IEEE Transactions on Software Engineering.

[39]  Kam-Fai Wong,et al.  Interpreting TF-IDF term weights as making relevance decisions , 2008, TOIS.

[40]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[41]  Dorota Kuchta,et al.  Conceptual model of working space for Agile (Scrum) project team , 2016, J. Syst. Softw..

[42]  Yann-Gaël Guéhéneuc,et al.  A Simple Recommender System for Design Patterns , 2007 .

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

[44]  Muhammad Abdullah Awais Requirements Prioritization: Challenges and Techniques for Quality Software Development , 2016 .