Ever heard of “stack overflow”?
“Stack overflow is a programming error in which an attempt to write data to a particular block of memory fails because there is no space left in the block. This type of error happens in the same way as buffer overflows, heap overflows, and stack buffer overflows. The difference between these types of errors depends on the computer data structure being used, and the common feature is that an attempt occurs to write more data than there is available space to hold it.”
The point is, stack overflow is a programming error, and error made by the programmer, and occurs because the software attempted to do exactly what it was told to do. The failure was a human failure, by the programmer.
motor makes a good point.
“software failure” is really a reflection of programming failure.