[comp.software-eng] A Cynic's Guide H/W vs. S/W

mjl@ritcv.UUCP (Mike Lutz) (03/13/88)

For the record h/w types can make mistakes as well:

1. The infamous IBM 360 floating point arithmetic botch, where Wilkinson
showed how relatively simple calculations to lead to catastrophic loss
of precision.  This led to the retrofit of a guard digit in the IBM
floating point architecture -- a retrofit which was possible *only*
because most of the 360 line was microprogrammable.

[ Note that this was a requirements analysis error, and like most such
errors, extermely expensive to fix]

2. Some of the first runs of the M68020 were RISC like in that they had
a delayed conditional branch.  Too bad that wasn't the spec.

I've also noticed that as more and more hardware is implemented using
microcontrollers and discrete state devices like PLAs, the more the
process begins to resemble software.  Probably due to our fundamentally
less sophisticated discrete mathematics (as compared to continuous
mathematics used in most other engineering disciplines -- see Parnas's
papers on SDI software for more on what makes s/w engineering different
and difficult).

Mike Lutz
-- 
Mike Lutz	Rochester Institute of Technology, Rochester NY
UUCP:		{allegra,seismo}!rochester!ritcv!mjl
CSNET:		mjl%rit@csnet-relay.ARPA