Software Reliability: The “Physics” of “Failure”. SJSU ISE 297 Donald Kerns 7/31/00. Thesis:. The field of software engineering is a very complex mix of technology, management and human psychology.
SJSU ISE 297
The field of software engineering is a very complex mix of technology, management and human psychology.
Glib usage of the phrase “software reliability” implies gross simplifications that make the measurement useless in all but the most closely defined situations.
A significant increase in the sophistication of the general field of software engineering will be necessary before true measures of “software reliability” are meaningful.
Software is not monolithic, yet the literature treats it as such. Different types of software have different failure modes and consequences…
Usage of the word “reliability” implies defects and failure, but the community (much less the literature) has yet to settle on what exactly constitutes a software failure. Most only use the first type.
All are “failures” yet the standard reliability measures
are at a loss to evaluate the different consequences.
Frequently, software is just the most visible element of a complex system. Almost all system defects start out appearing as software errors.
Normal configuration: 2 satellite bus
“Cost saving” configuration: Bigger satellite bus
Separation failure was a software defect only if the software
had been modified to fire bay 1 through the bay 2 wiring and didn’t.
if (strcmp(compiler, “Visual C++”))
elseif (strcmp(compiler, “Borland C++”))
“Does not meet customer expectations” is considered a software defect, however there is almost always a mismatch between customer expectations and the economics of the situation.
Finally, even if customer expectations are clearly documented at the beginning of a software development, and properly executed during implementation, the installation of that software system is a significant change to the environment that developed those expectations. This yields new expectations.
The software AND customer communities will need to address all of these issues in a formal, comprehensive, and consistent manner before the phrase “software reliability” has meaning.