Software architectural patterns in practice: an empirical study

Mohamad Hassan Kassab, Manuel Mazzara, Joo Young Lee, Giancarlo Succi

Research output: Contribution to journalArticle

Abstract

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.

Original languageEnglish (US)
Pages (from-to)263-271
Number of pages9
JournalInnovations in Systems and Software Engineering
Volume14
Issue number4
DOIs
StatePublished - Dec 3 2018

Fingerprint

Software architecture
Software engineering
Costs
Industry

All Science Journal Classification (ASJC) codes

  • Software

Cite this

Kassab, Mohamad Hassan ; Mazzara, Manuel ; Lee, Joo Young ; Succi, Giancarlo. / Software architectural patterns in practice : an empirical study. In: Innovations in Systems and Software Engineering. 2018 ; Vol. 14, No. 4. pp. 263-271.
@article{f29dc0e75f4c4902a9f9ae1f93803fe2,
title = "Software architectural patterns in practice: an empirical study",
abstract = "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.",
author = "Kassab, {Mohamad Hassan} and Manuel Mazzara and Lee, {Joo Young} and Giancarlo Succi",
year = "2018",
month = "12",
day = "3",
doi = "10.1007/s11334-018-0319-4",
language = "English (US)",
volume = "14",
pages = "263--271",
journal = "Innovations in Systems and Software Engineering",
issn = "1614-5046",
publisher = "Springer London",
number = "4",

}

Software architectural patterns in practice : an empirical study. / Kassab, Mohamad Hassan; Mazzara, Manuel; Lee, Joo Young; Succi, Giancarlo.

In: Innovations in Systems and Software Engineering, Vol. 14, No. 4, 03.12.2018, p. 263-271.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Software architectural patterns in practice

T2 - an empirical study

AU - Kassab, Mohamad Hassan

AU - Mazzara, Manuel

AU - Lee, Joo Young

AU - Succi, Giancarlo

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.

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

VL - 14

SP - 263

EP - 271

JO - Innovations in Systems and Software Engineering

JF - Innovations in Systems and Software Engineering

SN - 1614-5046

IS - 4

ER -