Patterns selection for software architecture: an approach based on quality attribute parameters

Applying patterns to architecture allows the reuse of efficient solutions. However, the activity of selecting which pattern is appropriate for each project is not trivial, especially for less experienced developers. The architecture is designed to satisfy, in part, quality attribute requirements. Pattern selection considering quality attributes specified for a project, delivers a very coarse-grained result, including patterns with very different purpose. This paper proposes an approach for selecting patterns, based on Quality Attribute Parameters. A study was conducted to identify parameters which consist of sub-requirements of quality attributes. The parameters are described directly or indirectly among software requirements and can characterize quality attributes. These parameters allow a more detailed description of quality requirements and a more fine-grained pattern selection. Thus, they help developers in the task of selecting patterns for each project more efficiently.

[1]  BT Bilişim,et al.  Portland Pattern Repository , 2011 .

[2]  Douglas C. Schmidt,et al.  Software patterns , 1996, CACM.

[3]  Rick Kazman,et al.  Decision-making techniques for software architecture design: A comparative survey , 2011, CSUR.

[4]  Prashant Jain,et al.  Pattern Oriented Software Architecture: Patterns for Resource Management , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[5]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[6]  Frank Buschmann,et al.  Pattern-Oriented Software Architecture, a Pattern Language for Distributed Computing , 2007 .

[7]  Michael Kirchner,et al.  面向模式的软件体系结构. 卷3, 设计系列 = Pattern-oriented software architecture. Volume 3, Patterns for resource management , 2004 .

[8]  Mamatha,et al.  Quality attributes of papads incorporating different levels of rice bran , 1995 .

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

[10]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[11]  Neil B. Harrison,et al.  Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[12]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[13]  Mor Peleg,et al.  Design patterns for clinical guidelines , 2009, Artif. Intell. Medicine.

[14]  Aliaksandr Birukou,et al.  A survey of existing approaches for pattern search and selection , 2010, EuroPLoP.

[15]  Ian Gorton,et al.  Essential software architecture , 2006 .

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

[17]  Jing Wang,et al.  From software architecture to design patterns: a case study of an NFR approach , 2005, Sixth International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing and First ACIS International Workshop on Self-Assembling Wireless Network.

[18]  Robert L. Nord,et al.  Generalizing a Model of Software Architecture Design from Five Industrial Approaches , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[19]  Douglas C. Schmidt,et al.  Patterns for concurrent and networked objects , 2000 .

[20]  Gao Jing,et al.  A Requirement Analysis Pattern Selection Method for E-Business Project Situation , 2007, IEEE International Conference on e-Business Engineering (ICEBE'07).

[21]  Douglas C. Schmidt,et al.  A pattern language for distributed computing , 2007 .

[22]  Neil B. Harrison,et al.  Leveraging Architecture Patterns to Satisfy Quality Attributes , 2007, ECSA.

[23]  Peter Sommerlad,et al.  Security Patterns: Integrating Security and Systems Engineering , 2006 .

[24]  Mario R. Barbacci,et al.  Quality Attribute Workshops (QAWs), Third Edition , 2003 .

[25]  Uwe Zdun,et al.  Patterns of Tracing Software Structures and Dependencies , 2003, EuroPLoP.

[26]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[27]  Paul Clements,et al.  Attribute-Driven Design (ADD), Version 2.0 , 2006 .

[28]  Lan Yuqing,et al.  A Requirement Analysis Pattern Selection Method for E-Business Project Situation , 2007 .

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

[30]  Standard Glossary of Software Engineering Terminology , 1990 .

[31]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[32]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

[33]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[34]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[35]  KruchtenPhilippe,et al.  Decision-making techniques for software architecture design , 2011 .

[36]  Forrest Shull,et al.  Using the ISO/IEC 9126 product quality model to classify defects: A controlled experiment , 2012, EASE.

[37]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.