What’s in a name? that which we call a rose
By any other name would smell as sweet
–Shakespeare
Names aren’t that important, but consistency is. I had a discussion with my colleague Onur Taviloglu about the terminology used in my post Debugging: a detailed look at failures. He pointed to me the terminology used by Algirdas Avižienis, which somewhat contradicted with the terminology of my post. So, I got in touch with my university professor Oguz Tosun, and dug through some resources:
- Avižienis, A., Laprie, J. C., Randell, B., & Landwehr, C. (2004). Basic concept and taxonomy of dependable and secure computing.
- Cai, K. Y. (2012). Software defect and operational profile modeling (Vol. 4). Springer Science & Business Media.
- Musa, J. D., Iannino, A., & Okumoto, K. (1987). Software reliability: measurement, prediction, application. McGraw-Hill, Inc..
- Pradhan, D. K. (1996). Fault-tolerant computer system design. Prentice-Hall, Inc..
And I came up with the following summary on used terminology:
Avižienis | Pradhan | me | Cai | Musa | me | |
Focus | HW/Random[1]Actually, Avižienis doesn’t focus only on HW, but computing in general. However, his terminology matches with other HW-based approaches, so I chose to simplify and categorize it as HW. | SW/Systematic | ||||
Phases | Fault Error Failure |
Fault Error Failure |
Fault Failure Error |
Error Defect Fault Failure |
Error Defect Failure |
Error Defect Failure |
First note is, on random failures, there is a consensus, and I was the outlier. So I corrected my terminology to Fault→Error→Failure like Avižienis and Pradhan.
Secondly, on systematic failures, there is also a fair consensus. My terminology matches Musa’s, while Cai is deviating somewhat by introducing an intermediate “fault” step, thereby creating a four phase model. I think we can settle on three phases to keep in the spirit of KISS, and also keep a similar three phase structure to random failures.
After correcting the terminology, the original post still remains valid and hopefully useful.
In the next posts, I want to focus on more practice than theory, but let’s see how life evolves. In the meantime, I’d love to hear back from you.
Footnotes
↑1 | Actually, Avižienis doesn’t focus only on HW, but computing in general. However, his terminology matches with other HW-based approaches, so I chose to simplify and categorize it as HW. |
---|