Robustness Hinting

paris logo

Robustness Hinting will provide analysis of error handling to an underlying subsystem. This will
determine when it is necessary to take additional and perhaps costly, in terms of system resources, measures to overcome failure conditions. Additional measures should only be taken when there is no application code to handle the failure condition.

Robustness Hinting requires two types of solutions. The first is an analysis of the application to direct the automatic insertion of hints. We are pursuing this using both static and dynamic program analysis techniques. The second need is the intelligent usage of the robustness hint in order to improve overall performance.

Dynamic Program Analysis examines the ability of applications to handle error conditions. We use callee-generated software fault generation to determine an applicatin's ability to handle error conditions. Does the application handle the errors generated by the subsystem or called module. If an error is generated by the code that you call, how does your software behave?

Static Program Analysis is a mechanism for providing a robustness metric of an application. The identification of general robustness problems can be used to provide feedback to the programmer to direct the manual insertion of  error checks into  the application code at the most appropriate location.


Michael Bigrigg
Project Scientist, Institute for Complex Engineered Systems, Carnegie Mellon University

Student Research Programmers, Carnegie Mellon University
Madhur Joshi, Jeff Knupp, Morgan Linton

Student Research Programmers, University of Pittsburgh
Michael Finnerty, Alexander Poulis, Joe Slember, Julie Sperow, Jacob Vos, Christy Wilson

Student Research Programmers, University of North Carolina
Amit Mathew


  • Robustness Hinting for Improving End-to-End Dependability. Michael W. Bigrigg. Second Workshop on Evaluating and Architecting System Dependability (EASY). In conjunction with ASPLOS-X, San Jose, CA, USA, October 2002.
    Abstract / PDF

  • The Set-Check-Use Methodology for Detecting Error Propagation Failures in I/O Routines. Michael W. Bigrigg, Jacob J. Vos. Workshop on Dependability Benchmarking in conjunction with The International Conference on Dependable Systems and Networks, DSN-2002. Washington DC, June 2002.
    Abstract / PDF

  • Testing the Portability of Desktop Applications to a Networked Embedded System. Michael W. Bigrigg and Joseph G. Slember. Workshop on Reliable Embedded Systems, in conjunction with the 20th IEEE Symposium on Reliable Distributed Systems, October 28, 2001, New Orleans, LA.
    Abstract / PDF

Related Projects

Static Program Analysis for Robustness Checking

Dynamic Program Analysis for Robustness Checking

Associated Departments, Institutes and Labs at CMU