APR: architectural pattern recommender

This paper proposes Architectural Pattern Recommender (APR) system which helps in such architecture selection process. Main contribution of this work is in replacing the manual effort required to identify and analyse relevant architectural patterns in context of a particular set of software requirements. Key input to APR is a set of architecturally significant use cases concerning the application being developed. Central idea of APR's design is two folds: a) transform the unstructured information about software architecture design into a structured form which is suitable for recognizing textual entailment between a requirement scenario and a potential architectural pattern, b) leverage the rich experiential knowledge embedded in discussions on professional developer support forums such as Stackoverflow to check the sentiment about a design decision. APR makes use of both the above elements to identify a suitable architectural pattern and assess its suitability for a given set of requirements. Efficacy of APR has been evaluated by comparing its recommendations for "ground truth" scenarios (comprising of applications whose architecture is well known).

[1]  Lenhart K. Schubert Semantic Representation , 2015, AAAI.

[2]  Didar Zowghi,et al.  Constructing a Catalogue of Conflicts among Non-functional Requirements , 2010, ENASE.

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

[4]  Günter Neumann,et al.  The Excitement Open Platform for Textual Inferences , 2014, ACL.

[5]  Eiman M. Salah,et al.  DPS: Overview of Design Pattern Selection Based on MAS Technology , 2013, DCAI.

[6]  Kenji Takahashi,et al.  Inquiry-based requirements analysis , 1994, IEEE Software.

[7]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[8]  Ekawit Nantajeewarawat,et al.  Design pattern recommendation based-on a pattern usage hierarchy , 2014, 2014 International Computer Science and Engineering Conference (ICSEC).

[9]  Peter Wiemer-Hastings,et al.  Latent semantic analysis , 2004, Annu. Rev. Inf. Sci. Technol..

[10]  Stephan Faßbender,et al.  Towards systematic selection of architectural patterns with respect to quality requirements , 2015, EuroPLoP.

[11]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[12]  Nadia Bouassida,et al.  A New Approach for Interactive Design Pattern Recommendation , 2015 .

[13]  Hans van Vliet,et al.  Software Architecture Knowledge Management , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[14]  Mark Steyvers,et al.  Topics in semantic representation. , 2007, Psychological review.

[15]  R. Malan,et al.  Functional Requirements and Use Cases , 1999 .

[16]  Timothy Lethbridge,et al.  A taxonomy of software types to facilitate search and evidence-based software engineering , 2008, CASCON '08.