Skip to main content
Log in

Trends in continuous evaluation of software architectures

  • Special Issue Article
  • Published:
Computing Aims and scope Submit manuscript

Abstract

The software industry is increasingly facing the need for continuous deployment of systems. This leads to the adoption of continuous activities, including planning, integration, and deployment (a.k.a. Continuous Software Engineering (CSE)). At the same time, systems should exhibit high-quality architectures, which are often achieved through architecture evaluation methods. However, there is little insight of how such evaluation happens in the context of CSE. To cover this gap, we investigate in this work the state of the art of continuous evaluation of software architectures in CSE, including agile processes like SCRUM. For this, we systematically examine the literature to collect and summarize evidence. Our results show a diversity of means for evaluating architectures in continuous mode to support the continuous evolution of systems. We also found how such evaluation has been incorporated within continuous development processes and agile processes like SCRUM and Crystal. We finally derive the main trends and open issues in the area, aiming to support the community to better understand and further consolidate the field of continuous evaluation of software architectures.

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

Access this article

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

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. Due to page limitation, this work presents only the most relevant elements of the SMS protocol and the main information about SMS conduction. Detailed documentation is available in https://bit.ly/3FUYBEC.

  2. https://www.scopus.com.

  3. https://ieeexplore.ieee.org.

  4. https://dl.acm.org.

  5. https://www.sciencedirect.com.

References

  1. Agren SM, Knauss E, Heldal R et al (2022) Architecture evaluation in continuous development. J Syst Softw 184:1–12

    Article  Google Scholar 

  2. Ahuja C, Kaur P, Singh H (2019) Software architecture evaluation in agile environment. In: Hoda MN, Chauhan N, Quadri SMK et al (eds) Software engineering. Springer Singapore, Singapore, pp 335–356

    Chapter  Google Scholar 

  3. Alshuqayran N, Ali N, Evans R (2016) A systematic mapping study in microservice architecture. In: IEEE 9th international conference on service-oriented computing and applications (SOCA), pp 44–51

  4. Bass L, Clements P, Kazman R (2012) Software architecture in practice. Addison-Wesley Professional, Boston

    Google Scholar 

  5. Bersani MM, Marconi F, Tamburri DA, et al (2016) Continuous architecting of stream-based systems. In: 2016 13th working IEEE/IFIP conference on software architecture (WICSA), pp 146–151

  6. Bosch J (2000) Design and use of software architectures: adopting and evolving a product-line approach. Addison Wesley, Boston

    Google Scholar 

  7. Bouwers E, van Deursen A (2010) A lightweight sanity check for implemented architectures. IEEE Softw 27(4):44–50

    Article  Google Scholar 

  8. Buchgeher G, Weinreich R (2014) Chapter 7 - continuous software architecture analysis. In: Ali Babar M, Brown AW, Mistrik I (eds) Agile software architecture. Morgan Kaufmann, Boston, pp 161–188

    Chapter  Google Scholar 

  9. Chang T, Danylyzsn A, Norimatsu S, et al (1997) Continuous verification in mission critical software development. In: Proceedings of the thirtieth hawaii international conference on system sciences pp 273–284

  10. Chen L (2015) Continuous delivery: huge benefits, but challenges too. IEEE Softw 32(2):50–54

    Article  Google Scholar 

  11. Chen L (2017) Continuous delivery: overcoming adoption challenges. J Syst Softw 128:72–86

    Article  Google Scholar 

  12. Cruz P, Salinas L, Astudillo H (2020) Quick evaluation of a software architecture using the decision-centric architecture review method: an experience report. Software architecture. Springer International Publishing, New York, pp 281–295

    Chapter  Google Scholar 

  13. Dabney J, Rajagopal P, Badger J (2021) Adding a verification view for autonomous real-time architecture. In: AIAA SciTech 2021 Forum, pp 1–12

  14. Eloranta VP, van Heesch U, Avgeriou P et al (2014) Chapter 6 - Lightweight evaluation of software architecture decisions. In: Mistrik I, Bahsoon R, Eeles P et al (eds) Relating system quality and software architecture. Morgan Kaufmann, Boston, pp 157–179

    Chapter  Google Scholar 

  15. Farhan S, Tauseef H, Fahiem MA (2009) Adding agility to architecture tradeoff analysis method for mapping on crystal. In: 2009 WRI world congress on software engineering, pp 121–125

  16. Fitzgerald B, Stol K (2017) Continuous software engineering: a roadmap and agenda. J Syst Softw 123:176–189

    Article  Google Scholar 

  17. Garcia J, Popescu D, Edwards G, et al (2009a) Identifying architectural bad smells. In: 2009 13th European conference on software maintenance and reengineering, pp 255–258

  18. Garcia J, Popescu D, Edwards G et al (2009) Toward a catalogue of architectural bad smells. In: Mirandola R, Gorton I, Hofmeister C (eds) Architectures for adaptive software systems. Springer, Berlin, Heidelberg, pp 146–162

    Chapter  Google Scholar 

  19. Gonzalez CE, Rojas CJ, Bergel A et al (2019) An architecture-tracking approach to evaluate a modular and extensible flight software for cubesat nanosatellites. IEEE Access 7:126,409-126,429

    Article  Google Scholar 

  20. Gultureanu D, Kerns K, Henthorn T et al (2018) Flight software development and validation workflow management system. INCAS Bull 10(1):85–94

    Article  Google Scholar 

  21. Hasselbring W (2018) Software architecture: past, present, future. Springer International Publishing, Cham, pp 169–184

    Google Scholar 

  22. Hofmeister C, Kruchten P, Nord R, et al (2005) Generalizing a model of software architecture design from five industrial approaches. In: 5th working IEEE/ifip conference on software architecture (WICSA), pp 77–88

  23. Ihor B, Oleksii D, Aleksandr K et al (2020) Multicriteria choice of software architecture using dynamic correction of quality attributes. In: Hu Z, Petoukhov S, Dychka I et al (eds) Advances in computer science for engineering and education II. Springer International Publishing, Cham, pp 419–427

    Chapter  Google Scholar 

  24. Kampmann A, Mokhtarian A, Rogalski J et al (2020) Agile latency estimation for a real-time service-oriented software architecture. IFAC-PapersOnLine 53(2):5795–5800

    Article  Google Scholar 

  25. Kanwal F, Junaid K, Fahiem MA (2010) A hybrid software architecture evaluation method for FDD - An agile process model. In: 2010 international conference on computational intelligence and software engineering, pp 1–5

  26. Kazman R, Bass L, Abowd G, et al (1994) SAAM: a method for analyzing the properties of software architectures. In: 16th international conference on software engineering (ICSE), pp 81–90

  27. Kazman R, Klein M, Barbacci M, et al (1998) The architecture tradeoff analysis method. In: 4th IEEE international conference on engineering of complex computer systems (Cat. No.98EX193), pp 68–78

  28. Kazman R, Asundi J, Klein M (2001) Quantifying the costs and benefits of architectural decisions. In: 23rd international conference on software engineering (ICSE), pp 297–306

  29. Kitchenham B (2007) Guidelines for performing systematic literature reviews in software engineering. Technical Report

  30. Kitchenham B, Budgen D, Brereton O (2015) Evidence-based software engineering and systematic reviews. CRC Press, Boca Raton

    Book  Google Scholar 

  31. Luthria H, Rabhi F (2012) Service-oriented architectures: Myth or reality? IEEE Softw 29(4):46–52

    Article  Google Scholar 

  32. Marinescu R (2004) Detection strategies: metrics-based rules for detecting design flaws. In: 20th IEEE international conference on software maintenance, pp 350–359

  33. Nakagawa EY, Antonino PO, Schnicke F et al (2021) Continuous systems and software engineering for industry 4.0: a disruptive view. Inf Softw Technol 135:106,562

    Article  Google Scholar 

  34. Nord R, Tomayko J (2006) Software architecture-centric methods and agile development. IEEE Softw 23(2):47–53

    Article  Google Scholar 

  35. Papatheocharous E, Andreou S (2013) Evidence of agile adoption in software organizations: an empirical survey. In: McCaffery F, O’Connor V, Messnarz R (eds) Systems, software and services process improvement. Springer, Berlin Heidelberg, pp 237–246

    Chapter  Google Scholar 

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

    Google Scholar 

  37. Peldszus S, Kulcsár G, Lochau M, et al (2016) Continuous detection of design flaws in evolving object-oriented programs using incremental multi-pattern matching. In: 31st IEEE/ACM international conference on automated software engineering (ASE), pp 578–589

  38. Petersen K, Feldt R, Mujtaba S, et al (2008) Systematic mapping studies in software engineering. In: 12th international conference on evaluation and assessment in software engineering (EASE), pp 68–77

  39. Pooley R, Abdullatif A (2010) CPASA: Continuous performance assessment of software architecture. In: 17th IEEE international conference and workshops on engineering of computer based systems, pp 79–87

  40. Rozanski N, Woods E (2012) Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley, Boston

    Google Scholar 

  41. Salama M, Bahsoon R (2017) Analysing and modelling runtime architectural stability for self-adaptive software. J Syst Softw 133:95–112

    Article  Google Scholar 

  42. Sandgren H, Antinyan V (2021) Software safety analysis to support iso 26262–6 compliance in agile development. IEEE Softw 38(3):52–60

    Article  Google Scholar 

  43. Schwanke R, Xiao L, Cai Y (2013) Measuring architecture quality by structure plus history analysis. In: 35th international conference on software engineering (ICSE), pp 891–900

  44. Sion L, Van Landuyt D, Yskout K, et al (2018) Sparta: Security amp; privacy architecture through risk-driven threat assessment. In: IEEE international conference on software architecture companion (ICSA-C), pp 89–92

  45. Soares RC, dos Santos V, Nakagawa EY (2022) Continuous evaluation of software architectures: an overview of the state of the art. In: 37th symposium on applied computing (SAC), pp 1425–1431

  46. Sobhy D, Minku L, Bahsoon R et al (2020) Run-time evaluation of architectures: a case study of diversification in iot. J Syst Softw 159(110):428

    Google Scholar 

  47. Taibi D, Lenarduzzi V, Pahl C (2019) Continuous architecting with microservices and DevOps: a systematic mapping study. In: Muñoz VM, Ferguson D, Helfert M et al (eds) Cloud Computing and Services Science. Springer International Publishing, Cham, pp 126–151

    Chapter  Google Scholar 

  48. Velasquez N, Kim G, Kersten N, et al (2014) 2014 state of DevOps report. URL https://puppet.com/resources/report/2014-state-devops-report/

  49. Venkitachalam H, Powale KA, Granrath C et al (2017) Automated continuous evaluation of autosar software architecture for complex powertrain systems. In: Eibl M, Gaedke M (eds) Informatik 2017. Gesellschaft für Informatik, Bonn, pp 1563–1574

    Google Scholar 

  50. Vijayasarathy L, Turk D (2012) Drivers of agile software development use: dialectic interplay between benefits and hindrances. Inf Softw Technol 54(2):137–148

    Article  Google Scholar 

  51. Vogelsang A, Eder S, Hackenberg G, et al (2014) Supporting concurrent development of requirements and architecture: a model-based approach. In: 2nd international conference on model-driven engineering and software development (MODELSWARD), pp 587–595

  52. Yang C, Liang P, Avgeriou P (2016) A systematic mapping study on the combination of software architecture and agile development. J Syst Softw 111:157–184

    Article  Google Scholar 

Download references

Funding

This study was funded by FAPESP (2015/24144-7 and 2019/23633-1) and CNPq (313245/2021-5).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rodrigo C. Soares.

Ethics declarations

Conflict of interest

The authors have no conflicts of interest to declare that are relevant to the content of this article.

Additional information

Publisher's Note

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

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Soares, R.C., Capilla, R., dos Santos, V. et al. Trends in continuous evaluation of software architectures. Computing 105, 1957–1980 (2023). https://doi.org/10.1007/s00607-023-01161-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-023-01161-1

Keywords

Mathematics Subject Classification

Navigation