Towards Understanding the Importance of Variables in Dependable Software

A dependable software system contains two important components, namely, error detection mechanisms and error recovery mechanisms. An error detection mechanism attempts to detect the existence of an erroneous software state. If an erroneous state is detected, an error recovery mechanism will attempt to restore a correct state. This is done so that errors are not allowed to propagate throughout a software system, i.e., errors are contained. The design of these software artefacts is known to be very difficult. To detect and correct an erroneous state, the values held by some important variables must be ensured to be suitable. In this paper we develop an approach to capture the importance of variables in dependable software systems. We introduce a novel metric, called importance, which captures the impact a given variable has on the dependability of a software system. The importance metric enables the identification of critical variables whose values must be ensured to be correct.

[1]  Neeraj Suri,et al.  An approach to synthesise safe systems , 2006, Int. J. Secur. Networks.

[2]  Jean Arlat,et al.  Fault injection for dependability validation of fault-tolerant computing systems , 1989, [1989] The Nineteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[3]  V. K. Agarwal,et al.  Continuous Signature Monitoring: Low-Cost Concurrent Detection of Processor Control Errors , 1990 .

[4]  Jeffrey M. Voas,et al.  Putting assertions in their place , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[5]  Taghi M. Khoshgoftaar,et al.  Identifying modules which do not propagate errors , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[6]  Anish Arora,et al.  Component Based Design of Multitolerant Systems , 1998, IEEE Trans. Software Eng..

[7]  Andreas Steininger,et al.  On finding an optimal combination of error detection mechanisms based on results of fault injection experiments , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[8]  Neeraj Suri,et al.  An approach for analysing the propagation of data errors in software , 2001, 2001 International Conference on Dependable Systems and Networks.

[9]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..

[10]  Hermann Kopetz,et al.  Dependability: Basic Concepts and Terminology , 1992 .

[11]  Suku Nair,et al.  Design and Evaluation of System-Level Checks for On-Line Control Flow Error Detection , 1999, IEEE Trans. Parallel Distributed Syst..

[12]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[13]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[14]  Martin Hiller,et al.  Executable assertions for detecting data errors in embedded control systems , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[15]  Laurie A. Williams,et al.  On the value of static analysis for fault detection in software , 2006, IEEE Transactions on Software Engineering.

[16]  Neeraj Suri,et al.  On the placement of software mechanisms for detection of data errors , 2002, Proceedings International Conference on Dependable Systems and Networks.

[17]  Arshad Jhumka,et al.  Putting detectors in their place [program monitoring] , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[18]  Neeraj Suri,et al.  Error propagation profiling of operating systems , 2005, 2005 International Conference on Dependable Systems and Networks (DSN'05).

[19]  Neeraj Suri,et al.  PROPANE: an environment for examining the propagation of errors in software , 2002, ISSTA '02.

[20]  S. Griffis EDITOR , 1997, Journal of Navigation.

[21]  Thomas Ball,et al.  Static analysis tools as early indicators of pre-release defect density , 2005, ICSE.

[22]  Martin Hiller Error recovery using forced validity assisted by executable assertions for error detection: an experimental evaluation , 1999, Proceedings 25th EUROMICRO Conference. Informatics: Theory and Practice for the New Millennium.

[23]  Johan Karlsson,et al.  Reducing critical failures for control algorithms using executable assertions and best effort recovery , 2001, 2001 International Conference on Dependable Systems and Networks.

[24]  Nancy G. Leveson,et al.  The Use of Self Checks and Voting in Software Error Detection: An Empirical Study , 1990, IEEE Trans. Software Eng..

[25]  Anish Arora,et al.  Detectors and correctors: a theory of fault-tolerance components , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[26]  Neeraj Suri,et al.  EPIC: profiling the propagation and effect of data errors in software , 2004, IEEE Transactions on Computers.

[27]  Kang G. Shin,et al.  Fault Injection Techniques and Tools , 1997, Computer.

[28]  Edward J. McCluskey,et al.  Control-flow checking by software signatures , 2002, IEEE Trans. Reliab..

[29]  W. Kent Fuchs,et al.  Progressive retry for software error recovery in distributed systems , 1993, FTCS-23 The Twenty-Third International Symposium on Fault-Tolerant Computing.

[30]  Jean-Pierre Queille,et al.  Executable assertions and timed traces for on-line software error detection , 1996, Proceedings of Annual Symposium on Fault Tolerant Computing.

[31]  Neeraj Suri,et al.  Assessing inter-modular error propagation in distributed software , 2001, Proceedings 20th IEEE Symposium on Reliable Distributed Systems.

[32]  Jacob A. Abraham,et al.  CEDA: control-flow error detection through assertions , 2006, 12th IEEE International On-Line Testing Symposium (IOLTS'06).

[33]  Anish Arora,et al.  Distributed Reset , 1994, IEEE Trans. Computers.

[34]  L. Beltracchi,et al.  Error propagation analysis studies in a nuclear research code , 1998, 1998 IEEE Aerospace Conference Proceedings (Cat. No.98TH8339).

[35]  Jean Arlat,et al.  Estimators for Fault Tolerance Coverage Evaluation , 1995, IEEE Trans. Computers.

[36]  Tullio Vardanega,et al.  On the development of fault-tolerant on-board control software and its evaluation by fault injection , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[37]  Neeraj Suri,et al.  A framework for dependability driven software integration , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).