Proactive Self-Adaptation for Improving the Reliability of Mission-Critical, Embedded, and Mobile Software

Embedded and mobile software systems are marked with a high degree of unpredictability and dynamism in the execution context. At the same time, such systems are often mission-critical, meaning that they need to satisfy strict reliability requirements. Most current software reliability analysis approaches are not suitable for these types of software systems, as they do not take the changes in the execution context of the system into account. We propose an approach geared to such systems which continuously furnishes refined reliability predictions at runtime by incorporating various sources of information, including the execution context of the system. The reliability predictions are leveraged to proactively place the software in the (near-)optimal configuration with respect to changing conditions. Our approach considers two representative architectural reconfiguration decisions that impact the system's reliability: reallocation of components to processes and changing the number of component replicas. We have realized the approach as part of a framework intended for mission-critical settings, called REsilient SItuated SofTware system (RESIST), and evaluated it using a mobile emergency response system.

[1]  Nenad Medvidovic,et al.  A Bayesian Model for Predicting Reliability of Software Systems at the Architectural Level , 2007, QoSA.

[2]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[3]  Lawrence R. Rabiner,et al.  A tutorial on hidden Markov models and selected applications in speech recognition , 1989, Proc. IEEE.

[4]  Roger C. Cheung,et al.  A User-Oriented Software Reliability Model , 1978, IEEE Transactions on Software Engineering.

[5]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[6]  Sam Malek,et al.  A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems , 2009, MoDELS.

[7]  Aditya P. Mathur,et al.  On the estimation of reliability of a software system using reliabilities of its components , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[8]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[9]  Marija Mikic-Rakic,et al.  An Extensible Framework for Improving a Distributed Software System's Deployment Architecture , 2012, IEEE Transactions on Software Engineering.

[10]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

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

[12]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

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

[14]  Steven A. Demurjian,et al.  A Binary Integer Programming Model for Optimal Object Distribution , 1998, OPODIS.

[15]  Thomas L. Hemminger,et al.  A Moving Average Modeling Approach for Computing Component-Based Software Reliability Growth Trends , 2015 .

[16]  Hany H. Ammar,et al.  Architectural-Level Risk Analysis Using UML , 2003, IEEE Trans. Software Eng..

[17]  Marija Mikic-Rakic,et al.  Improving Dependability of Component-Based Systems via Multi-versioning Connectors , 2002, WADS.

[18]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[19]  Gregory D. Abowd,et al.  Towards a Better Understanding of Context and Context-Awareness , 1999, HUC.

[20]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  Sam Malek,et al.  Scenario-Driven Dynamic Analysis of Distributed Architectures , 2007, FASE.

[22]  David Garlan,et al.  User Guidance of Resource-Adaptive Systems , 2008, ICSOFT.

[23]  Alvin T. S. Chan,et al.  MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing , 2003, IEEE Trans. Software Eng..

[24]  Cecilia Mascolo,et al.  XMIDDLE: A Data-Sharing Middleware for Mobile Computing , 2002, Wirel. Pers. Commun..

[25]  Sam Malek,et al.  A framework for utility-based service oriented design in SASSY , 2010, WOSP/SIPEW '10.

[26]  Florin Popentiu-Vladicesdu,et al.  A Software Architecture for Monitoring the Reliabity in Distributed Systems , 1999 .

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

[28]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

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

[30]  David S. Rosenblum,et al.  Using Scenarios to Predict the Reliability of Concurrent Component-Based Software Systems , 2005, FASE.

[31]  Bojan Cukic,et al.  A Bayesian approach to reliability prediction and assessment of component based systems , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

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

[33]  Rajarshi Das,et al.  Achieving Self-Management via Utility Functions , 2007, IEEE Internet Computing.

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

[35]  Swapna S. Gokhale,et al.  Architecture-Based Software Reliability Analysis: Overview and Limitations , 2007, IEEE Transactions on Dependable and Secure Computing.

[36]  Kenneth Dixon,et al.  Introduction to Stochastic Modeling , 2011 .

[37]  Homayoun Seraji,et al.  Behavior-based robot navigation on challenging terrain: A fuzzy logic approach , 2002, IEEE Trans. Robotics Autom..

[38]  Sam Malek,et al.  RESISTing reliability degradation through proactive reconfiguration , 2010, ASE.

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

[40]  Michael Pinedo,et al.  The "Largest Variance First" Policy in Some Stochastic Scheduling Problems , 1987, Oper. Res..

[41]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[42]  Sam Malek,et al.  Improving the reliability of mobile software systems through continuous analysis and proactive reconfiguration , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[43]  Yuriy Brun,et al.  An architecture-driven software mobility framework , 2010, J. Syst. Softw..

[44]  Dai Pan,et al.  Architecture-based software reliability modeling , 2006, J. Syst. Softw..

[45]  William J. Stewart,et al.  Introduction to the numerical solution of Markov Chains , 1994 .

[46]  Amy L. Murphy,et al.  LIME: a middleware for physical and logical mobility , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[47]  David Garlan,et al.  Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments , 2002, WICSA.

[48]  Katerina Goseva-Popstojanova,et al.  Architecture-based approaches to software reliability prediction , 2003 .