Uncertainty in Self-Adaptive Systems: A Research Community Perspective

One of the primary drivers for self-adaptation is ensuring that systems achieve their goals regardless of the uncertainties they face during operation. Nevertheless, the concept of uncertainty in self-adaptive systems is still insuciently understood. Several taxonomies of uncertainty have been proposed, and a substantial body of work exists on methods to tame uncertainty. Yet, these taxonomies and methods do not fully convey the research community’s perception on what constitutes uncertainty in self-adaptive systems, and on the key characteristics of the approaches needed to tackle uncertainty. To understand this perception and learn from it, we conducted a survey comprising two complementary stages in which we collected the views of 54 and 51 participants, respectively. In the rst stage, we focused on current research and development, exploring how the concept of uncertainty is understood in the community, and how uncertainty is currently handled in the engineering of self-adaptive systems. In the second stage, we focused on directions for future research, to identify potential approaches to dealing with unanticipated changes and other open challenges in handling uncertainty in self-adaptive systems. The key ndings of the rst stage are: a) an overview of uncertainty sources considered in self-adaptive systems, b) an overview of existing methods used to tackle uncertainty in concrete applications, c) insights into the impact of uncertainty on non-functional requirements, d) insights into dierent opinions in the perception of uncertainty within the community, and the need for standardised uncertainty-handling processes to facilitate uncertainty management in self-adaptive systems. The key ndings of the second stage are: a) the insight that over 70% of the participants believe that self-adaptive systems can be engineered to cope with unanticipated change, b) a set of potential approaches for dealing with unanticipated change, c) a set of open challenges in mitigating uncertainty in self-adaptive systems, in particular in those with safety-critical requirements. From these ndings, we outline an initial reference process to manage uncertainty in self-adaptive systems. We anticipate that the insights on uncertainty obtained from the community, and our proposed reference process will inspire valuable future research on self-adaptive systems.

[1]  Luciano Baresi,et al.  The disappearing boundary between development-time and run-time , 2010, FoSER '10.

[2]  Antonio Vallecillo,et al.  Uncertainty representation in software models: a survey , 2021, Software and Systems Modeling.

[3]  Magnus C. Ohlsson,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[4]  Nelly Bencomo,et al.  A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty , 2009, MoDELS.

[5]  Danny Weyns,et al.  A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems with Multiple Quality Requirements , 2015 .

[6]  Danny Weyns,et al.  Software Engineering of Self-adaptive Systems , 2019, Handbook of Software Engineering.

[7]  Danny Weyns,et al.  An Introduction to Self‐Adaptive Systems , 2021 .

[8]  Danny Weyns,et al.  Engineering Trustworthy Self-Adaptive Software with Dynamic Assurance Cases , 2017, IEEE Transactions on Software Engineering.

[9]  Henry Muccini,et al.  Patterns for Self-Adaptation in Cyber-Physical Systems , 2017, Multi-Disciplinary Engineering for Cyber-Physical Production Systems.

[10]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[11]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[12]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[13]  David Garlan,et al.  Uncertainty in Self-Adaptive Systems: Categories, Management, and Perspectives , 2017 .

[14]  Danny Weyns,et al.  Variability in Software Systems—A Systematic Literature Review , 2014, IEEE Transactions on Software Engineering.

[15]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[16]  Shari Lawrence Pfleeger,et al.  Personal Opinion Surveys , 2008, Guide to Advanced Empirical Software Engineering.

[17]  David Garlan,et al.  Software engineering in an uncertain world , 2010, FoSER '10.

[18]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[19]  Sam Malek,et al.  Uncertainty in Self-Adaptive Software Systems , 2010, Software Engineering for Self-Adaptive Systems.

[20]  Bradley R. Schmerl,et al.  Proactive self-adaptation under uncertainty: a probabilistic model checking approach , 2015, ESEC/SIGSOFT FSE.

[21]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[22]  Steven J. Taylor,et al.  Introduction to Qualitative Research Methods: A Guidebook and Resource , 2015 .

[23]  Jesper Andersson,et al.  Claims and supporting evidence for self-adaptive systems: A literature study , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[24]  Darryl K. Ahner,et al.  A survey of decision making and optimization under uncertainty , 2019, Annals of Operations Research.

[25]  Sam Malek,et al.  Taming uncertainty in self-adaptive software , 2011, ESEC/FSE '11.

[26]  Takeo Kanade,et al.  Software Engineering for Self-Adaptive Systems II , 2013, Lecture Notes in Computer Science.

[27]  David Garlan,et al.  Managing Uncertainty in Self-Adaptive Systems with Plan Reuse and Stochastic Search , 2018, 2018 IEEE/ACM 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[28]  Jesper Andersson,et al.  Software Engineering Processes for Self-Adaptive Systems , 2013, Software Engineering for Self-Adaptive Systems.

[29]  Andres J. Ramirez,et al.  A taxonomy of uncertainty for dynamically adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[30]  Danny Weyns,et al.  Understanding Uncertainty in Self-adaptive Systems , 2020, 2020 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS).

[31]  Danny Weyns,et al.  SimCA*: A Control-theoretic Approach to Handle Uncertainty in Self-adaptive Systems with Guarantees , 2019, ACM Trans. Auton. Adapt. Syst..

[32]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[33]  Hartmut Schmeck,et al.  Adaptivity and self-organization in organic computing systems , 2010, TAAS.

[34]  Lutz Prechelt,et al.  On the Status and Future of Peer Review in Software Engineering , 2017, Inf. Softw. Technol..

[35]  Raffaela Mirandola,et al.  Uncertainties in the modeling of self-adaptive systems: a taxonomy and an example of availability evaluation , 2014, ICPE.

[36]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .