Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Evaluation of Software Architectures under Uncertainty: A Systematic Literature Review

Published: 03 August 2021 Publication History

Abstract

Context: Evaluating software architectures in uncertain environments raises new challenges, which require continuous approaches. We define continuous evaluation as multiple evaluations of the software architecture that begins at the early stages of the development and is periodically and repeatedly performed throughout the lifetime of the software system. Numerous approaches have been developed for continuous evaluation; to handle dynamics and uncertainties at run-time, over the past years, these approaches are still very few, limited, and lack maturity. Objective: This review surveys efforts on architecture evaluation and provides a unified terminology and perspective on the subject. Method: We conducted a systematic literature review to identify and analyse architecture evaluation approaches for uncertainty including continuous and non-continuous, covering work published between 1990–2020. We examined each approach and provided a classification framework for this field. We present an analysis of the results and provide insights regarding open challenges. Major results and conclusions: The survey reveals that most of the existing architecture evaluation approaches typically lack an explicit linkage between design-time and run-time. Additionally, there is a general lack of systematic approaches on how continuous architecture evaluation can be realised or conducted. To remedy this lack, we present a set of necessary requirements for continuous evaluation and describe some examples.

References

[1]
Henrik Rexed. 2017. Challenges to performance engineering IoT apps. https://techbeacon.com/app-dev-testing/5-challenges-performance-engineering-iot-apps?amp_=
[2]
Amritanshu Agrawal, Tim Menzies, Leandro L. Minku, Markus Wagner, and Zhe Yu. 2020. Better software analytics via “DUO”: Data mining algorithms using/used-by optimizers.Empir. Softw. Eng. 25, 3 (2020), 2099–2136.
[3]
Sarah Al-Azzani and Rami Bahsoon. 2010. Using implied scenarios in security testing. In Proceedings of the ICSE Workshop on Software Engineering for Secure Systems. ACM, 15–21.
[4]
Yahya Al-Dhuraibi, Fawaz Paraiso, Nabil Djarallah, and Philippe Merle. 2018. Elasticity in cloud computing: State of the art and research challenges. IEEE Trans. Serv. Comput. 11, 2 (2018), 430–447.
[5]
Tariq Al-Naeem, Ian Gorton, Muhammed Ali Babar, Fethi Rabhi, and Boualem Benatallah. 2005. A quality-driven systematic approach for architecting distributed software applications. In Proceedings of the 27th International Conference on Software Engineering. ACM, 244–253.
[6]
Aldeida Aleti, Stefan Bjornander, Lars Grunske, and Indika Meedeniya. 2009. ArcheOpterix: An extendable tool for architecture optimization of AADL models. In Proceedings of the ICSE Workshop on Model-Based Methodologies for Pervasive and Embedded Software. IEEE, 61–71.
[7]
Aldeida Aleti, Barbora Buhnova, Lars Grunske, Anne Koziolek, and Indika Meedeniya. 2013. Software architecture optimization methods: A systematic literature review. IEEE Trans. Softw. Eng. 39, 5 (2013), 658–683.
[8]
Martha Amram, Nalin Kulatilaka, et al. 1998. Real Options: Managing strategic investment in an uncertain world. OUP Catalogue (1998). Oxford University Press.
[9]
Jayatirtha Asundi, Rick Kazman, and Mark Klein. 2001. Using Economic Considerations to Choose among Architecture Design Alternatives. Technical Report. DTIC Document.
[10]
Muhammad Ali Babar and Ian Gorton. 2004. Comparison of scenario-based software architecture evaluation methods. In Proceedings of the 11th Asia-Pacific Software Engineering Conference. IEEE, 600–607.
[11]
Muhammad Ali Babar, Liming Zhu, and Ross Jeffery. 2004. A framework for classifying and comparing software architecture evaluation methods. In Proceedings of the Australian Software Engineering Conference. IEEE, 309–318.
[12]
Rami Bahsoon and Wolfgang Emmerich. 2004. Evaluating architectural stability with real options theory. In Proceedings of the 20th IEEE International Conference on Software Maintenance. IEEE, 443–447.
[13]
Rami Bahsoon and Wolfgang Emmerich. 2008. An economics-driven approach for valuing scalability in distributed architectures. In Proceedings of the 7th Working IEEE/IFIP Conference on Software Architecture. IEEE, 9–18.
[14]
Carliss Young Baldwin and Kim B. Clark. 2000. Design Rules: The Power of Modularity. Vol. 1. The MIT Press.
[15]
Linden J. Ball, Balder Onarheim, and Bo T. Christensen. 2010. Design requirements, epistemic uncertainty and solution development strategies in software design. Des. Stud. 31, 6 (2010), 567–589.
[16]
Len Bass, Paul Clements, and Rick Kazman. 2012. Software Architecture in Practice. Addison-Wesley Professional.
[17]
Len Bass, Ingo Weber, and Liming Zhu. 2015. DevOps: A Software Architect’s Perspective. Addison-Wesley Professional.
[18]
PerOlof Bengtsson and Jan Bosch. 1998. Scenario-based software architecture reengineering. In Proceedings of the 5th International Conference on Software Reuse. IEEE, 308–317.
[19]
PerOlof Bengtsson, Nico Lassing, Jan Bosch, and Hans van Vliet. 2004. Architecture-level modifiability analysis (ALMA). J. Syst. Softw. 69, 1 (2004), 129–147.
[20]
Amel Bennaceur, Valérie Issarny, Daniel Sykes, Falk Howar, Malte Isberner, Bernhard Steffen, Richard Johansson, and Alessandro Moschitti. 2012. Machine learning for emergent middleware. In Proceedings of the International Workshop on Eternal Systems. Springer, 16–29.
[21]
Patrik Berander, Lars-Ola Damm, Jeanette Eriksson, Tony Gorschek, Kennet Henningsson, Per Jönsson, Simon Kågström, Drazen Milicic, Frans Mårtensson, Kari Rönkkö, et al. 2005. Software quality attributes and trade-offs. Blekinge Institute of Technology 97, 98 (2005), 19 pages.
[22]
Gordon Blair, Nelly Bencomo, and Robert B. France. 2009. [email protected]. Computer 42, 10 (2009).
[23]
Barry W. Boehm, et al. 1981. Software Engineering Economics. Vol. 197. Prentice-Hall, Englewood Cliffs, NJ.
[24]
Barry W. Boehm and Kevin J. Sullivan. 2000. Software economics: A roadmap. In Proceedings of the Conference on the Future of Software Engineering. ACM, 319–343.
[25]
Jan Bosch. 2004. Software architecture: The next step. In Proceedings of the European Workshop on Software Architecture. Springer, 194–199.
[26]
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, and Michel Wermelinger. 2004. A survey of self-management in dynamic software architecture specifications. In Proceedings of the 1st ACM SIGSOFT Workshop on Self-managed Systems. ACM, 28–33.
[27]
Hongyu Pei Breivold, Ivica Crnkovic, and Magnus Larsson. 2012. A systematic review of software architecture evolution research. Inf. Softw. Technol. 54, 1 (2012), 16–40.
[28]
Axel Busch, Dominik Fuchß, and Anne Koziolek. 2019. Peropteryx: Automated improvement of software architectures. In Proceedings of the IEEE International Conference on Software Architecture Companion (ICSA-C). IEEE, 162–165.
[29]
Radu Calinescu. 2013. Emerging techniques for the engineering of self-adaptive high-integrity software. In Assurances for Self-Adaptive Systems. Springer, 297–310.
[30]
Radu Calinescu, Lars Grunske, Marta Kwiatkowska, Raffaela Mirandola, and Giordano Tamburrelli. 2011. Dynamic QoS management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37, 3 (2011), 387–409.
[31]
Radu Calinescu, Kenneth Johnson, and Yasmin Rafiq. 2011. Using observation ageing to improve Markovian model learning in QoS engineering. In Proceedings of the 2nd ACM/SPEC International Conference on Performance Engineering. ACM, 505–510.
[32]
Radu Calinescu and Marta Kwiatkowska. 2009. Using quantitative analysis to implement autonomic IT systems. In Proceedings of the IEEE 31st International Conference on Software Engineering. IEEE, 100–110.
[33]
Javier Cámara, Gabriel Moreno, and David Garlan. 2015. Reasoning about human participation in self-adaptive systems. In Proceedings of the IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-managing Systems. IEEE, 146–156.
[34]
Stephanie Riegg Cellini and James Edwin Kee. 2015. Cost-effectiveness and cost-benefit analysis. Handb. Pract. Prog. Eval. 4 (2015).
[35]
Humberto Cervantes and Rick Kazman. 2016. Designing Software Architectures: A Practical Approach. Addison-Wesley Professional.
[36]
Franck Chauvel, Nicolas Ferry, Brice Morin, Alessandro Rossini, and Arnor Solberg. 2013. Models@ runtime to support the iterative and continuous design of autonomic reasoners. In MoDELS@ Run.time. Springer, 26–38.
[37]
Lianping Chen. 2018. Microservices: Architecting for continuous delivery and DevOps. In Proceedings of the IEEE International Conference on Software Architecture (ICSA). IEEE, 39–397.
[38]
Tao Chen, Ke Li, Rami Bahsoon, and Xin Yao. 2018. FEMOSAA: Feature-guided and knee-driven multi-objective optimization for self-adaptive software. ACM Trans. Softw. Eng. Methodol. 27, 2 (June 2018).
[39]
Betty H. C. Cheng, Kerstin I. Eder, Martin Gogolla, Lars Grunske, Marin Litoiu, Hausi A. Müller, Patrizio Pelliccione, Anna Perini, Nauman A. Qureshi, Bernhard Rumpe, et al. 2014. Using models at runtime to address assurance for self-adaptive systems. In [email protected]. Springer, 101–136.
[40]
Shang-Wen Cheng. 2008. Rainbow: Cost-effective software architecture-based self-adaptation. ProQuest.
[41]
Shang-Wen Cheng. 2008. Rainbow: Cost-effective Software Architecture-based Self-adaptation. Ph.D. Dissertation. Pittsburgh, PA.
[42]
Henrik Bærbak Christensen, Klaus Marius Hansen, and Bo Lindstrøm. 2010. Lightweight and continuous architectural software quality assurance using the ASQA technique. In Proceedings of the European Conference on Software Architecture. Springer, 118–132.
[43]
Paul Clements, Rick Kazman, Mark Klein, et al. 2003. Evaluating Software Architectures. Tsinghua University Press Beijing.
[44]
David W. Coit, Tongdan Jin, and Naruemon Wattanapongsakorn. 2004. System optimization with component reliability estimation uncertainty: A multi-criteria approach. IEEE Trans. Reliab. 53, 3 (2004), 369–380.
[45]
Software Engineering Standards Committee, et al. 1998. IEEE Standard for a Software Quality Metrics Methodology, Std. 1061-1998. Technical Report. Software Engineering Standards Committee.
[46]
Deshan Cooray, Ehsan Kouroshfar, Sam Malek, and Roshanak Roshandel. 2013. Proactive self-adaptation for improving the reliability of mission-critical, embedded, and mobile software. IEEE Trans. Softw. Eng. 39, 12 (2013), 1714–1735.
[47]
Rogério De Lemos, Holger Giese, Hausi A. Müller, Mary Shaw, Jesper Andersson, Marin Litoiu, Bradley Schmerl, Gabriel Tamura, Norha M. Villegas, Thomas Vogel, et al. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II. Springer, 1–32.
[48]
Martina De Sanctis, Romina Spalazzese, and Catia Trubiani. 2019. QoS-based formation of software architectures in the internet of things. In Proceedings of the European Conference on Software Architecture. Springer, 178–194.
[49]
Mark Denne and Jane Cleland-Huang. 2004. The incremental funding method: Data-driven software development. IEEE Softw. 21, 3 (2004), 39–47.
[50]
Armen Der Kiureghian and Ove Ditlevsen. 2009. Aleatory or epistemic? Does it matter?Struct. Saf. 31, 2 (2009), 105–112.
[51]
Yves Deswarte, Karama Kanoun, and Jean-Claude Laprie. 1998. Diversity against accidental and deliberate faults. In Proceedings of the Conference on Computer Security, Dependability and Assurance. IEEE, 171.
[52]
Gregory Ditzler, Manuel Roveri, Cesare Alippi, and Robi Polikar. 2015. Learning in nonstationary environments: A survey. IEEE Computat. Intell. Mag. 10, 4 (2015), 12–25.
[53]
Liliana Dobrica and Eila Niemela. 2002. A survey on software architecture analysis methods. IEEE Trans. Softw. Eng. 28, 7 (2002), 638–653.
[54]
Donia El Kateb, François Fouquet, Grégory Nain, Jorge Augusto Meira, Michel Ackerman, and Yves Le Traon. 2014. Generic cloud platform multi-objective optimization leveraging models@ run.time. In Proceedings of the 29th ACM Symposium on Applied Computing. ACM, 343–350.
[55]
Ahmed Elkhodary, Naeem Esfahani, and Sam Malek. 2010. FUSION: A framework for engineering self-tuning self-adaptive software systems. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 7–16.
[56]
Salah E. Elmaghraby, Willy S. Herroelen, et al. 1990. The scheduling of activities to maximize the net present value of projects.Eur. J. Oper. Res. 49, 1 (1990), 35–49.
[57]
Veli-Pekka Eloranta, Uwe van Heesch, Paris Avgeriou, Neil Harrison, and Kai Koskimies. 2015. Lightweight evaluation of software architecture decisions. In Relating System Quality and Software Architecture. Elsevier, 157–179.
[58]
Ilenia Epifani, Carlo Ghezzi, Raffaela Mirandola, and Giordano Tamburrelli. 2009. Model evolution by run-time parameter adaptation. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 111–121.
[59]
Hakan Erdogmus. 2002. A real options perspective of software reuse. In Proceedings of the International Workshop on Reuse Economics “Redirecting Reuse Economics” Tuesday.
[60]
Hakan Erdogmus and Jennifer Vandergraaf. 1999. Quantitative approaches for assessing the value of COTS-centric development. (1999).
[61]
Naeem Esfahani, Ahmed Elkhodary, and Sam Malek. 2013. A learning-based framework for engineering feature-oriented self-adaptive software systems. IEEE Trans. Softw. Eng. 39, 11 (2013), 1467–1493.
[62]
Naeem Esfahani, Ehsan Kouroshfar, and Sam Malek. 2011. Taming uncertainty in self-adaptive software. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM, 234–244.
[63]
Naeem Esfahani, Sam Malek, and Kaveh Razavi. 2013. GuideArch: Guiding the exploration of architectural solution space under uncertainty. In Proceedings of the 35th International Conference on Software Engineering. IEEE, 43–52.
[64]
Funmilade Faniyi, Rami Bahsoon, Andy Evans, and Rick Kazman. 2011. Evaluating security properties of architectures in unpredictable environments: A case for cloud. In Proceedings of the 9th Working IEEE/IFIP Conference on Software Architecture. IEEE, 127–136.
[65]
John Favaro. 1996. A comparison of approaches to reuse investment analysis. In Proceedings of the 4th International Conference on Software Reuse. IEEE, 136–145.
[66]
Craig R. Fox and Gülden Ülkümen. 2011. Distinguishing two dimensions of uncertainty. Persp. Think., Judg. Dec. Mak. (2011), 21–35.
[67]
Erik M. Fredericks, Byron DeVries, and Betty H. C. Cheng. 2014. Towards run-time adaptation of test cases for self-adaptive systems in the face of uncertainty. In Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-managing Systems. ACM, 17–26.
[68]
David Garlan and Bradley Schmerl. 2004. Using architectural models at runtime: Research challenges. In Proceedings of the European Workshop on Software Architecture. Springer, 200–205.
[69]
Carlo Ghezzi and Amir Molzam Sharifloo. 2013. Dealing with non-functional requirements for adaptive systems via dynamic software product-lines. In Software Engineering for Self-Adaptive Systems II. Springer, 191–213.
[70]
Lars Grunske. 2006. Identifying good architectural design alternatives with multi-objective optimization strategies. In Proceedings of the 28th International Conference on Software Engineering. ACM, 849–852.
[71]
Jayavardhana Gubbi, Rajkumar Buyya, Slaven Marusic, and Marimuthu Palaniswami. 2013. Internet of things (IoT): A vision, architectural elements, and future directions. Fut. Gen. Comput. Syst. 29, 7 (2013), 1645–1660.
[72]
Marcus Handte, Gregor Schiele, Verena Matjuntke, Christian Becker, and Pedro José Marrón. 2012. 3PC: System support for adaptive peer-to-peer pervasive computing. ACM Trans. Auton. Adapt. Syst. 7, 1 (2012), 10.
[73]
Mark Harman and Bryan F. Jones. 2001. Search-based software engineering. Inf. Softw. Technol. 43, 14 (2001), 833–839.
[74]
Mark Harman, S. Afshin Mansouri, and Yuanyuan Zhang. 2012. Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. 45, 1 (2012), 1–61.
[75]
William Heaven, Daniel Sykes, Jeff Magee, and Jeff Kramer. 2009. A case study in goal-driven architectural adaptation. In Software Engineering for Self-adaptive Systems. Springer, 109–127.
[76]
Robert Heinrich. 2016. Architectural run-time models for performance and privacy analysis in dynamic cloud applications. ACM SIGMETRICS Perf. Eval. Rev. 43, 4 (2016), 13–22.
[77]
Robert Heinrich, Christian Zirkelbach, and Reiner Jung. 2017. Architectural runtime modeling and visualization for quality-aware DevOps in cloud applications. In Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW). IEEE, 199–201.
[78]
Nikolaus Huber, Fabian Brosig, Simon Spinner, Samuel Kounev, and Manuel Bähr. 2016. Model-based self-aware performance and resource management using the Descartes modeling language. IEEE Trans. Softw. Eng. 43, 5 (2016), 432–452.
[79]
Mugurel T. Ionita, Pierre America, Dieter K. Hammer, Henk Obbink, and Jos J. M. Trienekens. 2004. A scenario-driven approach for value, risk, and cost analysis in system architecting for innovation. In Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture. IEEE, 277–280.
[80]
Anton Jansen and Jan Bosch. 2005. Software architecture as a set of architectural design decisions. In Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture. IEEE, 109–120.
[81]
Lawrence G. Jones and Anthony J. Lattanze. 2001. Using the Architecture Tradeoff Analysis Method to Evaluate a Wargame Simulation System: A Case Study. Technical Report. DTIC Document.
[82]
Rick Kazman, Jai Asundi, and Mark Klein. 2001. Quantifying the costs and benefits of architectural decisions. In Proceedings of the 23rd International Conference on Software Engineering. IEEE Computer Society, 297–306.
[83]
Rick Kazman, Len Bass, Gregory Abowd, and Mike Webb. 1994. SAAM: A method for analyzing the properties of software architectures. In Proceedings of the 16th International Conference on Software Engineering. IEEE, 81–90.
[84]
Rick Kazman, Len Bass, and Mark Klein. 2006. The essential components of software architecture design and analysis. J. Syst. Softw. 79, 8 (2006), 1207–1216.
[85]
Rick Kazman, Mark Klein, and Paul Clements. 2000. ATAM: Method for Architecture Evaluation. Technical Report. DTIC Document.
[86]
Chang-Ki Kim, Dan-Hyung Lee, In-Young Ko, and Jongmoon Baik. 2007. A lightweight value-based software architecture evaluation. In Proceedings of the 8th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, Vol. 2. IEEE, 646–649.
[87]
Dongsun Kim and Sooyong Park. 2009. Reinforcement learning-based dynamic adaptation planning method for architecture-based self-managed software. In Proceedings of the ICSE Workshop on Software Engineering for Adaptive and Self-managing Systems. IEEE, 76–85.
[88]
Barbara Kitchenham, O. Pearl Brereton, David Budgen, Mark Turner, John Bailey, and Stephen Linkman. 2009. Systematic literature reviews in software engineering–A systematic literature review. Inf. Softw. Technol. 51, 1 (2009), 7–15.
[89]
Barbara Kitchenham, Rialette Pretorius, David Budgen, O. Pearl Brereton, Mark Turner, Mahmood Niazi, and Stephen Linkman. 2010. Systematic literature reviews in software engineering–A tertiary study. Inf. Softw. Technol. 52, 8 (2010), 792–805.
[90]
Heiko Koziolek. 2011. Sustainability evaluation of software architectures: A systematic review. In Proceedings of the Joint ACM SIGSOFT Conference, QoSA and ACM SIGSOFT symposium, ISARCS on Quality of Software Architectures, QoSA and Architecting Critical Systems. ACM, 3–12.
[91]
Jeff Kramer and Jeff Magee. 2007. Self-managed systems: An architectural challenge. In Proceedings of the Conference on the Future of Software Engineering. IEEE Computer Society, 259–268.
[92]
Philippe B. Kruchten. 1995. The 4+ 1 view model of architecture. IEEE Softw. 12, 6 (1995), 42–50.
[93]
Christian Krupitzer, Felix Maximilian Roth, Sebastian VanSyckel, Gregor Schiele, and Christian Becker. 2015. A survey on engineering approaches for self-adaptive systems. Pervas. Mob. Comput. 17 (2015), 184–206.
[94]
Jihyun Lee, Sungwon Kang, and Chang-Ki Kim. 2009. Software architecture evaluation methods based on cost benefit analysis and quantitative decision making. Empir. Softw. Eng. 14, 4 (2009), 453–475.
[95]
Emmanuel Letier, David Stefan, and Earl T. Barr. 2014. Uncertainty, risk, and information value in software requirements and architecture. In Proceedings of the 36th International Conference on Software Engineering. ACM, 883–894.
[96]
Yan Liu, Muhammad Ali Babar, and Ian Gorton. 2008. Middleware architecture evaluation for dependable self-managing systems. In Proceedings of the International Conference on the Quality of Software Architectures. Springer, 189–204.
[97]
Timothy A. Luehrman. 1998. Strategy as a portfolio of real options. Harv. Bus. Rev. 76 (1998), 89–101.
[98]
Sara Mahdavi-Hezavehi, Vinicius H. S. Durelli, Danny Weyns, and Paris Avgeriou. 2017. A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems. Inf. Softw. Technol. 90 (2017), 1–26.
[99]
Sara Mahdavi-Hezavehi, Matthias Galster, and Paris Avgeriou. 2013. Variability in quality attributes of service-based software systems: A systematic literature review. Inf. Softw. Technol. 55, 2 (2013), 320–343.
[100]
Harry Markowitz. 1959. Portfolio selection, Cowles foundation monograph no. 16. John Wiley, NY. S. Moss 1981. An Economic Theory of Business Strategy. Halstead Press, NY.T. H. Naylor 1966. The theory of the firm: a comparison of marginal analysis and linear programming. South. Econ. J. 32 (Jan. (1959), 263–74.
[101]
R. Timothy Marler and Jasbir S. Arora. 2004. Survey of multi-objective optimization methods for engineering. Struct. Multidis. Optim. 26, 6 (2004), 369–395.
[102]
Indika Meedeniya, Aldeida Aleti, Iman Avazpour, and Ayman Amin. 2012. Robust ArcheOpterix: Architecture optimization of embedded systems under uncertainty. In Proceedings of the 2nd International Workshop on Software Engineering for Embedded Systems (SEES). IEEE, 23–29.
[103]
Indika Meedeniya, Aldeida Aleti, and Lars Grunske. 2012. Architecture-driven reliability optimization with uncertain model parameters. J. Syst. Softw. 85, 10 (2012), 2340–2355.
[104]
Indika Meedeniya, Irene Moser, Aldeida Aleti, and Lars Grunske. 2011. Architecture-based reliability evaluation under uncertainty. In Proceedings of the Joint ACM SIGSOFT Conference, QoSA and ACM SIGSOFT Symposium, ISARCS on Quality of Software Architectures, QoSA and Architecting Critical Systems. ACM, 85–94.
[105]
Indika Meedeniya, Irene Moser, Aldeida Aleti, and Lars Grunske. 2014. Evaluating probabilistic models with uncertain model parameters. Softw. Syst. Model. 13, 4 (2014), 1395–1415.
[106]
Gabriel A. Moreno, Javier Cámara, David Garlan, and Bradley Schmerl. 2016. Efficient decision-making under uncertainty for proactive self-adaptation. In Proceedings of the IEEE International Conference on Autonomic Computing. IEEE, 147–156.
[107]
Brice Morin, Olivier Barais, Jean-Marc Jezequel, Franck Fleurey, and Arnor Solberg. 2009. [email protected] to support dynamic adaptation. Computer 42, 10 (2009).
[108]
Klara Nahrstedt, Hongyang Li, Phuong Nguyen, Siting Chang, and Long Vu. 2016. Internet of mobile things: Mobility-driven challenges, designs and implementations. In Proceedings of the 1st International Conference on Internet-of-Things Design and Implementation (IoTDI). IEEE, 25–36.
[109]
Nanjangud Narendra and Prasant Misra. 2016. Research Challenges in the Internet of Mobile Things. Retrieved from https://iot.ieee.org/newsletter/march-2016/research-challenges-in-the-int ernet-of-mobile-things.html.
[110]
Robert C. Nickerson, Upkar Varshney, and Jan Muntermann. 2013. A method for taxonomy development and its application in information systems. Eur. J. Inf. Syst. 22, 3 (2013), 336–359.
[111]
William L. Oberkampf, Jon C. Helton, Cliff A. Joslyn, Steven F. Wojtkiewicz, and Scott Ferson. 2004. Challenge problems: Uncertainty in system response given uncertain parameters. Reliab. Eng. Syst. Saf. 85, 1–3 (2004), 11–19.
[112]
Bendra Ojameruaye, Rami Bahsoon, and Leticia Duboc. 2016. Sustainability debt: A portfolio-based approach for evaluating sustainability requirements in architectures. In Proceedings of the 38th International Conference on Software Engineering Companion. ACM, 543–552.
[113]
Magnus Osterlind, Pontus Johnson, Kiran Karnati, Robert Lagerstrom, and Margus Valja. 2013. Enterprise architecture evaluation using utility theory. In Proceedings of the 17th IEEE International Enterprise Distributed Object Computing Conference Workshops. IEEE, 347–351.
[114]
Ipek Ozkaya, Rick Kazman, and Mark Klein. 2007. Quality-attribute based economic valuation of architectural patterns. In Proceedings of the 1st International Workshop on the Economics of Software and Computation. IEEE, 5–5.
[115]
Dewayne E. Perry and Alexander L. Wolf. 1992. Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17, 4 (1992), 40–52.
[116]
Kai Petersen, Sairam Vakkalanka, and Ludwik Kuzniarz. 2015. Guidelines for conducting systematic mapping studies in software engineering: An update. Inf. Softw. Technol. 64 (2015), 1–18.
[117]
R. J. Pooley and A. A. L. Abdullatif. 2010. CPASA: Continuous performance assessment of software architecture. In Proceedings of the 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems (ECBS). IEEE, 79–87.
[118]
Aurora Ramirez, José Raúl Romero, and Sebastian Ventura. 2019. A survey of many-objective optimisation in search-based software engineering. J. Syst. Softw. 149 (2019), 382–395.
[119]
Samuel T. Redwine Jr and William E. Riddle. 1985. Software technology maturation. In Proceedings of the 8th International Conference on Software Engineering. IEEE Computer Society Press, 189–200.
[120]
Ralf H. Reussner, Steffen Becker, Jens Happe, Robert Heinrich, Anne Koziolek, Heiko Koziolek, Max Kramer, and Klaus Krogmann. 2016. Modeling and Simulating Software Architectures: The Palladio Approach. The MIT Press.
[121]
Matthias Rohr, Simon Giesecke, Marcel Hiel, Willem-Jan van den Heuvel, Hans Weigand, and Wilhelm Hasselbring. 2006. A classification scheme for self-adaptation research. (2006).
[122]
Banani Roy and T. C. Nicholas Graham. 2008. Methods for evaluating software architecture: A survey. School Comput. TR 545 (2008), 82.
[123]
Thomas L. Saaty. 2008. Decision making with the analytic hierarchy process. Int. J. Serv. Sci. 1, 1 (2008), 83–98.
[124]
Software Engineering Institute (SEI). 2018. Reduce Risk with Architecture Evaluation. Technical Report. SEI/CMU.
[125]
Mary Shaw and David Garlan. 1996. Software Architecture: Perspectives on an Emerging Discipline. Vol. 1. Prentice-Hall, Englewood Cliffs, NJ.
[126]
Dalia Sobhy, Rami Bahsoon, Leandro Minku, and Rick Kazman. 2016. Diversifying software architecture for sustainability: A value-based perspective. In Proceedings of the European Conference on Software Architecture (ECSA).
[127]
Dalia Sobhy, Leandro Minku, Rami Bahsoon, Tao Chen, and Rick Kazman. 2020. Run-time evaluation of architectures: A case study of diversification in IoT. J. Syst. Softw. 159 (2020), 110428.
[128]
Kevin J. Sullivan, Prasad Chalasani, Somesh Jha, and Vibha Sazawal. 1999. Software design as an investment activity: A real options perspective. Real Opt. Bus. Strat.: Applic. Decis. Mak. 10 (1999), 215–262.
[129]
Kevin J. Sullivan, William G. Griswold, Yuanfang Cai, and Ben Hallen. 2001. The structure and value of modularity in software design. In ACM SIGSOFT Softw. Eng. Notes, Vol. 26. ACM, 99–108.
[130]
Harald Sundmaeker, Patrick Guillemin, Peter Friess, and Sylvie Woelfflé. 2010. Vision and challenges for realising the Internet of Things. Cluster of European Research Projects on the Internet of Things, European Commision 3, 3 (2010), 34–36.
[131]
Michael Szvetits and Uwe Zdun. 2016. Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime. Softw. Syst. Model. 15, 1 (2016), 31–69.
[132]
Brendan Tansey and Eleni Stroulia. 2007. Valuating software service development: Integrating COCOMO II and real options theory. In Proceedings of the 1st International Workshop on the Economics of Software and Computation. IEEE, 8–8.
[133]
Gerald Tesauro. 2007. Reinforcement learning in autonomic computing: A manifesto and case studies. IEEE Internet Comput. 11, 1 (2007), 22–30.
[134]
Lenos Trigeorgis. 1996. Real Options: Managerial Flexibility and Strategy in Resource Allocation. The MIT Press.
[135]
Catia Trubiani, Indika Meedeniya, Vittorio Cortellessa, Aldeida Aleti, and Lars Grunske. 2013. Model-based performance analysis of software architectures under uncertainty. In Proceedings of the 9th International ACM Sigsoft Conference on Quality of Software Architectures. ACM, 69–78.
[136]
M. Jeroen Van Der Donckt, Danny Weyns, M. Usman Iftikhar, and Ritesh Kumar Singh. 2018. Cost-benefit analysis at runtime for self-adaptive systems applied to an internet of things application. In Proceedings of the Evaluation of Novel Approaches to Software Engineering Conference.
[137]
Jan Salvador van der Ven, Anton G. J. Jansen, Jos A. G. Nijhuis, and Jan Bosch. 2006. Design decisions: The bridge between rationale and architecture. In Rationale Management in Software Engineering. Springer, 329–348.
[138]
Naruemon Wattanapongskorn and David W. Coit. 2007. Fault-tolerant embedded system design and optimization considering reliability estimation uncertainty. Reliab. Eng. Syst. Saf. 92, 4 (2007), 395–407.
[139]
Lloyd G. Williams and Connie U. Smith. 2002. PASA SM: A method for the performance assessment of software architectures. In Proceedings of the 3rd International Workshop on Software and Performance. ACM, 179–189.
[140]
Claes Wohlin. 2014. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering. ACM, 38.
[141]
Jie Yang, Gang Huang, Wenhui Zhu, Xiaofeng Cui, and Hong Mei. 2009. Quality attribute tradeoff through adaptive architectures at runtime. J. Syst. Softw. 82, 2 (2009), 319–332.
[142]
He Zhang and Muhammad Ali Babar. 2010. On searching relevant studies in software engineering. In Proceedings of the 14th International Conference on Evaluation and Assessment in Software Engineering (EASE’10). 1–10.
[143]
Dongbin Zhao and Zhaohui Hu. 2011. Supervised adaptive dynamic programming based adaptive cruise control. In Proceedings of the IEEE Symposium on Adaptive Dynamic Programming and Reinforcement Learning (ADPRL). IEEE, 318–323.
[144]
Ruiqing Zhao and Baoding Liu. 2004. Redundancy optimization problems with uncertainty of combining randomness and fuzziness. Eur. J. Oper. Res. 157, 3 (2004), 716–735.
[145]
Liming Zhu, Aybüke Aurum, Ian Gorton, and Ross Jeffery. 2005. Tradeoff and sensitivity analysis in software architecture evaluation using analytic hierarchy process. Softw. Qual. J. 13, 4 (2005), 357–375.
[146]
Peter Zimmerer. 2018. Strategy for continuous testing in iDevOps. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings. ACM, 532–533.

Cited By

View all
  • (2024)Supporting Early Architectural Decision-Making through Tradeoff Analysis: A Study with Volvo CarsCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663860(411-416)Online publication date: 10-Jul-2024
  • (2024)The optimization approach for uncertainty assessment of the heating value of aviation fuelAccreditation and Quality Assurance10.1007/s00769-024-01610-0Online publication date: 3-Jul-2024
  • (2024)Towards a Sustainability-Aware Software Architecture Evaluation for Cloud-Based Software ServicesSoftware Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium10.1007/978-3-031-66326-0_13(200-216)Online publication date: 30-Jul-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 30, Issue 4
Continuous Special Section: AI and SE
October 2021
613 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3461694
  • Editor:
  • Mauro Pezzè
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 August 2021
Accepted: 01 April 2021
Revised: 01 September 2020
Received: 01 July 2019
Published in TOSEM Volume 30, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Continuous software architecture evaluation
  2. design-time software architecture evaluation
  3. run-time software architecture evaluation
  4. uncertainty

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)177
  • Downloads (Last 6 weeks)17
Reflects downloads up to 02 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Supporting Early Architectural Decision-Making through Tradeoff Analysis: A Study with Volvo CarsCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663860(411-416)Online publication date: 10-Jul-2024
  • (2024)The optimization approach for uncertainty assessment of the heating value of aviation fuelAccreditation and Quality Assurance10.1007/s00769-024-01610-0Online publication date: 3-Jul-2024
  • (2024)Towards a Sustainability-Aware Software Architecture Evaluation for Cloud-Based Software ServicesSoftware Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium10.1007/978-3-031-66326-0_13(200-216)Online publication date: 30-Jul-2024
  • (2023)Atrophy in Aging SystemsInformation Systems Research10.1287/isre.2023.121835:1(66-86)Online publication date: 7-Apr-2023
  • (2023)Rise of the Planet of Serverless Computing: A Systematic ReviewACM Transactions on Software Engineering and Methodology10.1145/357964332:5(1-61)Online publication date: 21-Jul-2023
  • (2023)Architecture-Based Uncertainty Impact Analysis to Ensure Confidentiality2023 IEEE/ACM 18th Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS)10.1109/SEAMS59076.2023.00026(126-132)Online publication date: May-2023
  • (2023)Model-based Confidentiality Analysis under Uncertainty2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00062(256-263)Online publication date: Mar-2023
  • (2023)A Review of Software Architecture Evaluation Methods for Sustainability Assessment2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00050(191-194)Online publication date: Mar-2023
  • (2023) ExTrAJournal of Systems and Software10.1016/j.jss.2022.111578198:COnline publication date: 1-Apr-2023
  • (2022)Towards Supporting the Generation of Infrastructure as Code Through Modelling Approaches - Systematic Literature Review2022 IEEE 19th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C54293.2022.00048(210-217)Online publication date: Mar-2022
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media