Skip to main content
Log in

Software architectural patterns in practice: an empirical study

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  1. Charette RN (2009) This car runs on code. IEEE Spectr 46(3):3

    MathSciNet  Google Scholar 

  2. Aad G, Abbott B, Abdallah J, Abdelalim A, Abdesselam A, Abdinov O, Abi B, Abolins M, Abramowicz H, Abreu H et al (2010) The ATLAS simulation infrastructure. Eur Phys J C 70(3):823–874

    Article  Google Scholar 

  3. Microsoft Patterns & Practices Team (2009) Microsoft application architecture guide, 2nd edn. Microsoft Press

  4. Bass RKL, Clements P (2013) Software architecture in practice, 3rd edn. Addison-Wesley, Reading

    Google Scholar 

  5. Kassab M, El-Boussaidi G, Mili H (2012) A quantitative evaluation of the impact of architectural patterns on quality requirements. In: Lee R (ed) Software engineering research, management and applications. Springer, Berlin, pp 173–487

  6. Garlan D, Shaw M (1993) An introduction to software architecture. In: Advances in software engineering and knowledge engineering, vol I. World Scientic Publishing Company

  7. Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline, 1st edn. Prentice Hall, Englewood Cliffs

    MATH  Google Scholar 

  8. Buschmann F, Henney K, Schmidt DC (2007) Pattern-oriented software architecture, on patterns and pattern languages, 5th edn. Wiley, New York

    Google Scholar 

  9. Avgeriou P, Zdun U (2005) Modeling architectural patterns using architectural primitives. In: ACM SIGPLAN Notices, vol 40, No 10. ACM, pp 133–146

  10. Gamma E (1995) Design patterns: elements of reusable object-oriented software. Pearson Education India, Delhi

    Google Scholar 

  11. Bode S, Riebisch M (2010) Impact evaluation for quality-oriented architectural decisions regarding evolvability. In: European conference on software architecture. Springer, Berlin, pp 182–197

  12. Wood WG (2007) A practical example of applying attribute-driven design (add), version 2.0. Technical report, DTIC Document

  13. Paul C, Kazman R, Klein M (2002) Evaluating software architectures: methods and case studies. Addison-Wesley Professional

  14. Harrison NB, Avgeriou P, Zdun U (2010) Incorporating fault tolerance tactics in software architecture patterns. In: Proceedings of the 2nd international workshop on software engineering for resilient systems (ACM), pp 12–21

  15. Kassab M, El-Boussaidi G (2013) Towards quantifying quality, tactics and architectural patterns interactions. In: The 25th international conference on software engineering and knowledge engineering, Boston, 510 MA, USA, June 27–29, pp 441–446

  16. Soni D, Nord RL, Hofmeister C (1995) Software architecture in industrial applications. In: Proceedings of the 17th international conference on software engineering, ICSE ’95. ACM, New York, pp 196–207

  17. Gardazi SU, Shahid AA (2009) Survey of software architecture description and usage in software industry of Pakistan. In: 2009 international conference on emerging technologies, pp 395–402

  18. Bardram JE, Christensen HB, Hansen KM (2004) Architectural prototyping: an approach for grounding architectural design and learning. In: Proceedings. Fourth working IEEE/IFIP conference on software architecture (WICSA 2004), pp 15–24

  19. Christensen HB, Hansen KM (2010) An empirical investigation of architectural prototyping. J Syst Softw 83(1):133–142

    Article  Google Scholar 

  20. Christensen HB, Hansen KM (2008) Architectural prototyping in industrial practice. Springer, Berlin, pp 196–209

    Google Scholar 

  21. Andrews D, Nonnecke B, Preece J (2007) Conducting research on the internet: online survey design, development and implementation guidelines. https://auspace.athabascau.ca/handle/2149/1336

  22. Szolnoki G, Hoffmann D (2013) Online, face-to-face and telephone surveys–comparing different sampling methods in wine consumer research. Wine Econ Policy 2(2):57–66

    Article  Google Scholar 

  23. Khazaal Y, van Singer M, Chatton A, Achab S, Zullino D, Rothen S, Khan R, Billieux J, Thorens G (2014) Does self-selection affect samples’ representativeness in online surveys? An investigation in online video game research. J Med Internet Res 16(7):e164

    Article  Google Scholar 

  24. Maalej W, Tiarks R, Roehm T, Koschke R (2014) On the comprehension of program comprehension. ACM Trans Softw Eng Methodol 23(4):31:1–31:37

  25. Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer, Berlin

    Book  MATH  Google Scholar 

  26. Qian K (2010) Software architecture and design illuminated. Jones & Bartlett Learning, Burlington

    Google Scholar 

  27. Developer Survey Results—2016. Technical report, StackOverflow (2016). http://stackoverflow.com/research/developer-survey-2016. Visited 26 Feb 2017

  28. Wilcox M, Schuermans S, Voskoglou C (2016) Developer economics, state of the developer nation, Q3 2016. Technical report, VisionMobile Ltd

  29. Harrison NB, Avgeriou P (2007) Leveraging architecture patterns to satisfy quality attributes. In: European conference on software architecture. Springer, Berlin, pp 263–270

  30. ISO I (2001) Software engineering—Product quality—Part 1

  31. Campbell DT, Stanley JC (2015) Experimental and quasi-experimental designs for research. Ravenio Books, San Francisco

    Google Scholar 

  32. Hyman R (1982) Quasi-experimentation: design and analysis issues for field settings (book). J Personal Assess 46(1):96–97

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohamad Kassab.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kassab, M., Mazzara, M., Lee, J. et al. Software architectural patterns in practice: an empirical study. Innovations Syst Softw Eng 14, 263–271 (2018). https://doi.org/10.1007/s11334-018-0319-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-018-0319-4

Keywords

Navigation