TY - JOUR
T1 - Software architectural patterns in practice
T2 - an empirical study
AU - Kassab, Mohamad
AU - Mazzara, Manuel
AU - Lee, Joo Young
AU - Succi, Giancarlo
N1 - Publisher Copyright:
© 2018, Springer-Verlag London Ltd., part of Springer Nature.
PY - 2018/12/3
Y1 - 2018/12/3
N2 - Software architecture involves a series of decisions based on many factors in a wide range of software development. Architects face recurring issues in different software architecture design, and to reduce huge cost and risks, software architecture decisions can rely on a set of idiomatic patterns commonly named architectural styles or patterns. Architectural pattern determines the vocabulary of components and connectors that are used in instances of the pattern together with a set of constraints to combine the two. Little contemporary data exists to document actual practices used by software professionals when selecting and incorporating architectural patterns for their projects in industry. Therefore, a comprehensive survey of software professionals was conducted to attempt to discover these practices. This exploratory survey and its quantitative results offer opportunities for further interpretation and comparison. Data from this survey are presented in this paper and include characteristics of projects, practices, organizations, and practitioners related to the usage of architectural patterns. Some of the notable findings include that architectural patterns are widely used in software projects with the Model–View–Controller being the most common. Despite reported difficulties in incorporating architectural patterns, the majority of the software professionals revealed that patterns were the most essential for completing the projects. The most difficult pattern to implement and the most expensive to adopt was the peer-to-peer, while the easiest was the client–server.
AB - Software architecture involves a series of decisions based on many factors in a wide range of software development. Architects face recurring issues in different software architecture design, and to reduce huge cost and risks, software architecture decisions can rely on a set of idiomatic patterns commonly named architectural styles or patterns. Architectural pattern determines the vocabulary of components and connectors that are used in instances of the pattern together with a set of constraints to combine the two. Little contemporary data exists to document actual practices used by software professionals when selecting and incorporating architectural patterns for their projects in industry. Therefore, a comprehensive survey of software professionals was conducted to attempt to discover these practices. This exploratory survey and its quantitative results offer opportunities for further interpretation and comparison. Data from this survey are presented in this paper and include characteristics of projects, practices, organizations, and practitioners related to the usage of architectural patterns. Some of the notable findings include that architectural patterns are widely used in software projects with the Model–View–Controller being the most common. Despite reported difficulties in incorporating architectural patterns, the majority of the software professionals revealed that patterns were the most essential for completing the projects. The most difficult pattern to implement and the most expensive to adopt was the peer-to-peer, while the easiest was the client–server.
KW - Architectural patterns
KW - Architectural tactics
KW - Common practices
KW - Quality attributes
KW - Software architecture
KW - Software professionals
UR - http://www.scopus.com/inward/record.url?scp=85058463473&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85058463473&partnerID=8YFLogxK
U2 - 10.1007/s11334-018-0319-4
DO - 10.1007/s11334-018-0319-4
M3 - Article
AN - SCOPUS:85058463473
SN - 1614-5046
VL - 14
SP - 263
EP - 271
JO - Innovations in Systems and Software Engineering
JF - Innovations in Systems and Software Engineering
IS - 4
ER -