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.



Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
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.
References
Agren SM, Knauss E, Heldal R et al (2022) Architecture evaluation in continuous development. J Syst Softw 184:1–12
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
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
Bass L, Clements P, Kazman R (2012) Software architecture in practice. Addison-Wesley Professional, Boston
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
Bosch J (2000) Design and use of software architectures: adopting and evolving a product-line approach. Addison Wesley, Boston
Bouwers E, van Deursen A (2010) A lightweight sanity check for implemented architectures. IEEE Softw 27(4):44–50
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
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
Chen L (2015) Continuous delivery: huge benefits, but challenges too. IEEE Softw 32(2):50–54
Chen L (2017) Continuous delivery: overcoming adoption challenges. J Syst Softw 128:72–86
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
Dabney J, Rajagopal P, Badger J (2021) Adding a verification view for autonomous real-time architecture. In: AIAA SciTech 2021 Forum, pp 1–12
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
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
Fitzgerald B, Stol K (2017) Continuous software engineering: a roadmap and agenda. J Syst Softw 123:176–189
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
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
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
Gultureanu D, Kerns K, Henthorn T et al (2018) Flight software development and validation workflow management system. INCAS Bull 10(1):85–94
Hasselbring W (2018) Software architecture: past, present, future. Springer International Publishing, Cham, pp 169–184
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
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
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
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
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
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
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
Kitchenham B (2007) Guidelines for performing systematic literature reviews in software engineering. Technical Report
Kitchenham B, Budgen D, Brereton O (2015) Evidence-based software engineering and systematic reviews. CRC Press, Boca Raton
Luthria H, Rabhi F (2012) Service-oriented architectures: Myth or reality? IEEE Softw 29(4):46–52
Marinescu R (2004) Detection strategies: metrics-based rules for detecting design flaws. In: 20th IEEE international conference on software maintenance, pp 350–359
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
Nord R, Tomayko J (2006) Software architecture-centric methods and agile development. IEEE Softw 23(2):47–53
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
Paul C, Kazman R, Klein M (2002) Evaluating software architectures: methods and case studies. Addison-Wesley Professional, Boston
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
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
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
Rozanski N, Woods E (2012) Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley, Boston
Salama M, Bahsoon R (2017) Analysing and modelling runtime architectural stability for self-adaptive software. J Syst Softw 133:95–112
Sandgren H, Antinyan V (2021) Software safety analysis to support iso 26262–6 compliance in agile development. IEEE Softw 38(3):52–60
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
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
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
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
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
Velasquez N, Kim G, Kersten N, et al (2014) 2014 state of DevOps report. URL https://puppet.com/resources/report/2014-state-devops-report/
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
Vijayasarathy L, Turk D (2012) Drivers of agile software development use: dialectic interplay between benefits and hindrances. Inf Softw Technol 54(2):137–148
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
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
Funding
This study was funded by FAPESP (2015/24144-7 and 2019/23633-1) and CNPq (313245/2021-5).
Author information
Authors and Affiliations
Corresponding author
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.
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-023-01161-1
Keywords
- Continuous software engineering
- Software architecture
- Architecture evaluation
- Continuous architecture evaluation