A fault injection approach based on reflective programming

This paper presents an approach for the validation of OO applications by software-implemented fault injection (SWIFI) that is based on computational reflection. The primary motivation for the use of reflection is that it allows a clear separation between functional aspects and the later being related to necessary for fault injection and monitoring. Besides separation of concerns, the use of OO programming and reflection is also intended to provide more flexibility, extensibility, portability and reusability for the instrumentation features. Ease of use, not only to the instrumentation programmer but also to the user is also a goal. This paper presents FIRE, a prototyping tool that supports the proposed approach. FIRE was implemented using OpenC++1.2 and it's aimed to validate C++ applications. Preliminary results on the use of FIRE are also presented.

[1]  Brian Cantwell Smith,et al.  Procedural reflection in programming languages , 1982 .

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

[3]  Daniel P. Siewiorek,et al.  FIAT-fault injection based automated testing environment , 1988, [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[4]  Jean Arlat,et al.  Fault Injection for Dependability Validation: A Methodology and Some Applications , 1990, IEEE Trans. Software Eng..

[5]  Jacob A. Abraham,et al.  FERRARI: a tool for the validation of system dependability properties , 1992, [1992] Digest of Papers. FTCS-22: The Twenty-Second International Symposium on Fault-Tolerant Computing.

[6]  Kang G. Shin,et al.  Software fault injection and its application in distributed systems , 1993, FTCS-23 The Twenty-Third International Symposium on Fault-Tolerant Computing.

[7]  Jan Torin,et al.  On microprocessor error behavior modeling , 1994, Proceedings of IEEE 24th International Symposium on Fault- Tolerant Computing.

[8]  Ravishankar K. Iyer,et al.  FTAPE: A fault injection tool to measure fault Tolerance , 1994 .

[9]  Henrique Madeira,et al.  Xception: Software Fault Injection and Monitoring in Processor Functional Units1 , 1995 .

[10]  J. Laprie,et al.  FAULT INJECTION FOR DEPENDABILITY VALIDATION OF FAULT-TOLERANT COMPUTING SYSTEMS , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing, 1995, ' Highlights from Twenty-Five Years'..

[11]  Jean-Claude Laprie,et al.  Dependability — Its Attributes, Impairments and Means , 1995 .

[12]  Kang G. Shin,et al.  DOCTOR: an integrated software fault injection environment for distributed real-time systems , 1995, Proceedings of 1995 IEEE International Computer Performance and Dependability Symposium.

[13]  Jean-Charles Fabre,et al.  Friends - A Flexible Architecture for Implementing Fault Tolerant and Secure Distributed Applications , 1996, EDCC.

[14]  Fault Injection Techniques and Tools , 1997, Computer.

[15]  R. C. Jones,et al.  On the uniformity of error propagation in software , 1997, Proceedings of COMPASS '97: 12th Annual Conference on Computer Assurance.

[16]  Maria Lúcia Blanck Lisbôa A New Trend on the Development of Fault-Tolerant Applications: Software Meta-Level Architectures , 1997, J. Braz. Comput. Soc..

[17]  Gary McGraw,et al.  Software fault injection: inoculating programs against errors , 1997 .

[18]  Jeffrey M. Voas,et al.  A 'Crystal Ball' for Software Liability , 1997, Computer.

[19]  Luciane Lamour Ferreira,et al.  Reflective Design Patterns to Implement Fault Tolerance , 1998 .

[20]  Luiz Eduardo Buzato,et al.  Composition of Meta-Objects in Guarana , 1999 .

[21]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.