Specifying reliability as a software attribute
This paper examines some issues in specifying reliability as a software attribute. A scheme for characterizing software reliability, known as a failure profile, is introduced. Failure profiles are derived for particular implementations of an abstraction by identifying analytically the behavior of the module when software or hardware faults occur. A failure profile is developed for a sorting program to demonstrate an informal technique for identifying the consequences of faults. The derived failure profile is compared with observations of the program's behavior in the presence of artificially induced faults to demonstrate the effectiveness of the failure profile characterization of software reliability. The issues raised in the application of the informal technique are discussed with respect to developing a formal and more mechanical technique for producing and using failure profiles.