Living with Uncertainty in the Age of Runtime Models

Uncertainty can be defined as the difference between information that is represented in an executing system and the information that is both measurable and available about the system at a certain point in its life-time. A software system can be exposed to multiple sources of uncertainty produced by, for example, ambiguous requirements and unpredictable execution environments. A runtime model is a dynamic knowledge base that abstracts useful information about the system, its operational context and the extent to which the system meets its stakeholders’ needs. A software system can successfully operate in multiple dynamic contexts by using runtime models that augment information available at design-time with information monitored at runtime. This chapter explores the role of runtime models as a means to cope with uncertainty. To this end, we introduce a well-suited terminology about models, runtime models and uncertainty and present a state-of-the-art summary on model-based techniques for addressing uncertainty both at development- and runtime. Using a case study about robot systems we discuss how current techniques and the MAPE-K loop can be used together to tackle uncertainty. Furthermore, we propose possible extensions of the MAPE-K loop architecture with runtime models to further handle uncertainty at runtime. The chapter concludes by identifying key challenges, and enabling technologies for using runtime models to address uncertainty, and also identifies closely related research communities that can foster ideas for resolving the challenges raised.

[1]  Stephen Fickas,et al.  PC-RE: a method for personal and contextual requirements engineering with some experience , 2006, Requirements Engineering.

[2]  Paul Robertson,et al.  Automatic recovery from software failure , 2006, CACM.

[3]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[4]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[5]  Jochen Ludewig,et al.  Models in software engineering – an introduction , 2003, Software and Systems Modeling.

[6]  Hugh McManus,et al.  A framework for understanding uncertainty and its mitigation and exploitation in complex systems , 2006, IEEE Engineering Management Review.

[7]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[8]  Vicente Pelechano,et al.  Autonomic Computing through Reuse of Variability Models at Runtime: The Case of Smart Homes , 2009, Computer.

[9]  Holger Giese,et al.  A Self-optimizing Run-Time Architecture for Configurable Dependability of Services , 2003, WADS.

[10]  Paola Inverardi,et al.  Model-based system reconfiguration for dynamic performance management , 2007, J. Syst. Softw..

[11]  Thomas Vogel,et al.  Adaptation and abstract runtime models , 2010, SEAMS '10.

[12]  Richard N. Taylor,et al.  Using Architectural Models to Manage and Visualize Runtime Adaptation , 2009, Computer.

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

[14]  Paola Inverardi,et al.  A hybrid approach for resource-based comparison of adaptable Java applications , 2013, Sci. Comput. Program..

[15]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[16]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[17]  Nelly Bencomo,et al.  Run-time resolution of uncertainty , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[18]  Daniel E. Hastings,et al.  3.4.1 A Framework for Understanding Uncertainty and its Mitigation and Exploitation in Complex Systems , 2005 .

[19]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[20]  Hernán Astudillo,et al.  Mitigating the obsolescence of quality specifications models in service-based systems , 2012, 2012 Second IEEE International Workshop on Model-Driven Requirements Engineering (MoDRE).

[21]  Martin S. Feather,et al.  Requirements monitoring in dynamic environments , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[22]  Jacek M. Zurada,et al.  Artificial Intelligence and Soft Computing, 10th International Conference, ICAISC 2010, Zakopane, Poland, June 13-17, 2010, Part I , 2010, International Conference on Artificial Intelligence and Soft Computing.

[23]  Thomas Vogel,et al.  The Role of Models and Megamodels at Runtime , 2010, MoDELS.

[24]  Nelly Bencomo,et al.  Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[25]  Brice Morin,et al.  An Aspect-Oriented and Model-Driven Approach for Managing Dynamic Variability , 2008, MoDELS.

[26]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[27]  Jay R. Galbraith Designing Complex Organizations , 1973 .

[28]  David Garlan,et al.  Handling Uncertainty in Autonomic Systems , 2007 .

[29]  Luciano Baresi,et al.  Fuzzy Goals for Requirements-Driven Adaptation , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[30]  John Mylopoulos,et al.  Modeling Domain Variability in Requirements Engineering with Contexts , 2009, ER.

[31]  Siobhán Clarke,et al.  Applying non-constant volatility analysis methods to software timeliness. , 2009 .

[32]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[33]  Ozalp Babaoglu,et al.  Self-star Properties in Complex Information Systems, Conceptual and Practical Foundations [the book is a result from a workshop at Bertinoro, Italy, Summer 2004] , 2005, Self-star Properties in Complex Information Systems.

[34]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[35]  Paola Inverardi,et al.  A Software Lifecycle Process to Support Consistent Evolutions , 2010, Software Engineering for Self-Adaptive Systems.

[36]  Marsha Chechik,et al.  From Under-Approximations to Over-Approximations and Back , 2012, TACAS.

[37]  John Mylopoulos,et al.  Awareness requirements for adaptive systems , 2011, SEAMS '11.

[38]  Nelly Bencomo,et al.  RELAX: Incorporating Uncertainty into the Specification of Self-Adaptive Systems , 2009, 2009 17th IEEE International Requirements Engineering Conference.

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

[40]  Raian Ali,et al.  A Goal Modeling Framework for Self-contextualizable Software , 2009, BMMDS/EMMSAD.

[41]  Henryk Piech,et al.  Interval Probabilities of State Transitions in Probabilistic Automata , 2012, ICAISC.

[42]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[43]  Paola Inverardi,et al.  Integration Architecture Synthesis for Taming Uncertainty in the Digital Space , 2012, Monterey Workshop.

[44]  Hongyang Qu,et al.  Assume-Guarantee Verification for Probabilistic Systems , 2010, TACAS.

[45]  Nelly Bencomo,et al.  Relaxing claims: coping with uncertainty while evaluating assumptions at run time , 2012, MODELS'12.

[46]  David B. Knoester,et al.  Automatically exploring how uncertainty impacts behavior of dynamically adaptive systems , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[47]  Xiaoqing Frank Liu,et al.  Specification of non-functional requirements for contract specification in the NGOSS framework for quality management and product evaluation , 2007, Fifth International Workshop on Software Quality (WoSQ'07: ICSE Workshops 2007).

[48]  Euiho Suh,et al.  Context-aware systems: A literature review and classification , 2009, Expert Syst. Appl..

[49]  Valérie Issarny,et al.  Dynamic decision networks for decision-making in self-adaptive systems: A case study , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[50]  Matthias Baldauf,et al.  A survey on context-aware systems , 2007, Int. J. Ad Hoc Ubiquitous Comput..

[51]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[52]  Neri Merhav,et al.  Hidden Markov processes , 2002, IEEE Trans. Inf. Theory.

[53]  Paola Inverardi,et al.  Leveraging State-Based User Preferences in Context-Aware Reconfigurations for Self-Adaptive Systems , 2011, SEFM.

[54]  Valérie Issarny,et al.  The role of models@run.time in supporting on-the-fly interoperability , 2013, Computing.

[55]  Norman Fenton,et al.  Using Bayesian Networks to Model Expected and Unexpected Operational Losses , 2005, Risk analysis : an official publication of the Society for Risk Analysis.

[56]  Radu Calinescu,et al.  Large-scale complex IT systems , 2011, Commun. ACM.

[57]  M.S. Feather,et al.  Reconciling system requirements and runtime behavior , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[58]  Martin Glinz,et al.  On Non-Functional Requirements , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[59]  Lei Guo,et al.  How much uncertainty can be dealt with by feedback? , 2000, IEEE Trans. Autom. Control..

[60]  Paola Inverardi,et al.  A Framework for Reconfiguration-Based Fault-Tolerance in Distributed Systems , 2003, WADS.

[61]  Pierre-Yves Schobbens,et al.  Simulation-based abstractions for software product-line model checking , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[62]  Christel Baier,et al.  Probabilistic ω-automata , 2012, JACM.

[63]  Kishor S. Trivedi,et al.  Uncertainty Propagation through Software Dependability Models , 2011, 2011 IEEE 22nd International Symposium on Software Reliability Engineering.

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

[65]  Peter Sawyer,et al.  Understanding the Scope of Uncertainty in Dynamically Adaptive Systems , 2010, REFSQ.

[66]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[67]  Howard Barringer,et al.  Component Verification with Automatically Generated Assumptions , 2005, Automated Software Engineering.

[68]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[69]  Hui Song,et al.  Supporting runtime software architecture: A bidirectional-transformation-based approach , 2011, J. Syst. Softw..

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

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

[72]  Robert Laddaga,et al.  Model Based Diagnosis and Contexts in Self Adaptive Software , 2005, Self-star Properties in Complex Information Systems.

[73]  John Mylopoulos,et al.  (Requirement) evolution requirements for adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[74]  Holger Giese,et al.  Integrated Software Development for Embedded Robotic Systems , 2012, SIMPAR.

[75]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[76]  Azaria Paz,et al.  Probabilistic automata , 2003 .

[77]  Cecilia Temponi,et al.  Assessment of customer's and technical requirements through a fuzzy logic-based method , 1997, 1997 IEEE International Conference on Systems, Man, and Cybernetics. Computational Cybernetics and Simulation.

[78]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[79]  Mark Weiser,et al.  The computer for the 21st Century , 1991, IEEE Pervasive Computing.

[80]  Nelly Bencomo,et al.  Towards requirements aware systems: Run-time resolution of design-time assumptions , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[81]  John Mylopoulos,et al.  Non-Functional Requirements in Software Engineering , 2000, International Series in Software Engineering.

[82]  Raul Poler,et al.  Models for production planning under uncertainty: A review ☆ , 2006 .

[83]  J. Laffont The economics of uncertainty and information , 1990 .

[84]  Nelly Bencomo,et al.  Requirements reflection: requirements as runtime entities , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[85]  Joost Noppen,et al.  Imperfect Information in Software Design Processes , 2007 .

[86]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[87]  Oscar Nierstrasz,et al.  Context-oriented Programming , 2008, J. Object Technol..

[88]  Bashar Nuseibeh,et al.  Social Adaptation - When Software Gives Users a Voice , 2012, ENASE.

[89]  Rogério de Lemos,et al.  Architecting dependable systems , 2003, J. Syst. Softw..

[90]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[91]  Antonio Bucchiarone,et al.  Dynamic Adaptation of Fragment-Based and Context-Aware Business Processes , 2012, 2012 IEEE 19th International Conference on Web Services.

[92]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[93]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[94]  Brice Morin,et al.  A semi-automatic behavioral mediation approach based on models@runtime , 2012, MRT '12.

[95]  Paolo Bellavista,et al.  A survey of context data distribution for mobile ubiquitous systems , 2012, CSUR.

[96]  Alberto H. F. Laender Conceptual Modeling - ER 2009, 28th International Conference on Conceptual Modeling, Gramado, Brazil, November 9-12, 2009. Proceedings , 2009, ER.