Abstract This paper highlights a growing problem as software systems become more and more tightly coupled and complex, that of poor diagnostic capability. Diagnosis has never been particularly sophisticated in software systems, often being an ad hoc process in which programmers receive no training. As a result, significant numbers of failures in modern systems cannot be diagnosed in the sense of being uniquely related to one or more faults and as such they continue to fail. As a result, modern software systems are unique amongst modern engineering systems is being characterised by repetitive and frequently avoidable failure. This paper discusses the strongly related issues of repetitive failure, feedback and diagnosis in a generally light-hearted way but makes a plea for diagnosis to be an essential feature of systems design. All engineering systems fail and this knowledge should be part of the software design process such that inevitable failures can be quickly related to the contributing fault or faults and the system corrected to avoid future re-occurrence.
[1]
Les Hatton,et al.
The T-experiments: errors in scientific software
,
1996,
Quality of Numerical Software.
[2]
Edward N. Adams,et al.
Optimizing Preventive Service of Software Products
,
1984,
IBM J. Res. Dev..
[3]
Les Hatton,et al.
Does OO Sync with How We Think?
,
1998,
IEEE Softw..
[4]
Peter Neumann,et al.
Safeware: System Safety and Computers
,
1995,
SOEN.
[5]
Leslie Hatton,et al.
Software failures-follies and fallacies
,
1997
.
[6]
R. Dawkins.
Climbing Mount Improbable
,
1996
.
[7]
Tony Hoare.
Programming is an Engineering Profession
,
1983
.
[8]
C. D. Gelatt,et al.
Optimization by Simulated Annealing
,
1983,
Science.