|
| Jim Rogers wrote:
> The individual units were unit tested by their development teams.
> This lead both teams to believe they had correct software.
> Unfortunately, there was insufficient integration testing. Integration
> testing was the only possible way to catch the problem since the
> development language did not provide a useful syntax for defining
> measurement units unambiguously.
Space robot projects operate on shoestring budgets. (Telling the military
that Io harbors terrorists would fix this situation immediately...)
If all the components are hand-made, then bench testing an integrated model
is as expensive as liftoff, minus the rocket.
To the list of potential fixes I add accurate software emulators of hardware
controllers. They could have been cheaply and chronically
integration-tested, between remote development sites. Fewer blind-spots. I
can't imagine something as simple as metric unit conversion mismatch
slipping thru that one.
> Design by contract would not have caught the problem. Values were witin
> expected ranges, they were simply interpreted wrong.
I can think of a contract that...
> Functional programming would not have prevented the problem either.
I can think of a function that...
> Again, unit tests would not have worked.
I can think of a unit test that...
> You seem to be implying that all solutions are equally adequate.
He implied they are equally inadequate. All engineers can hope for is
comparative rates of coverage.
> Of course, the base problem in this case was a failure of requirements
> definition. The requirements document should have specified the units
> of measure to use in the calculations. One of the advantages to
> creating static and strong type definitions is that it forces developers
> to ask some of the unasked questions, such as which units of measure
> to use. In this manner many weaknesses in requirements can be revealed
> and therefore fixed.
Right. Add requirements documents (and EVERYONE READING THEM) to the list of
potential fixes.
Would ISO compliance have helped too? no imperial units...
--
Phlip
http://industrialxp.org/community/b...tUserInterfaces
|
|