[
Lists Home |
Date Index |
Thread Index
]
Not exactly true. Until you work with real time systems,
it is easy to think software always behaves the same way
every time.
Here is a thought experiment. In a separate thread,
the concept of information entropy was discussed again.
Consider entropy a cost value:
o In a state network, a decision can have multiple
options. The value of any information is the number
of these outcomes it eliminates.
o A state network may be multi-dimensional. While
we think of it as a single choice path, it can be
multiple paths occurring virtually simultaneously
in real time.
o Where there are dependencies among these paths,
the cost of controlling these and the value of that
control information must be known to determine the
energy budget for the system. If one can optimize
that decision cost, the information value is inversely
proportional to the proximity to its application in
real time.
The network effect is related to the service cost in
real time. The reliability of software is a function
of that cost.
len
From: Elliotte Rusty Harold [mailto:elharo@metalab.unc.edu]
At 7:03 AM -0800 12/31/04, Benjamin Franz wrote:
>People treat software like it isn't real. Software machines are just
>as real as hardware machines - and often control hardware machines.
>If you are killed by a radiation therapy machine because of broken
>software - you are just as dead as if the cause was broken hardware.
Yes, but there is a qualitative difference between software failures
and hardware failures (though the effects of either can be equally
damaging). Software mostly fails due to outright bugs and failure to
anticipate certain conditions it encounters. However, if it works in
a certain condition, it always works. Hardware can fail for these
reasons, but it also has an additional way to fail most software
doesn't: it decays over time as parts wear. It is completely
plausible for a piece of hardware to work 10,000 times in a row and
then fail the 10,001st time, even though nothing has changed. This
style of failure is very rare for software. Software needs to be
upgraded and maintained to handle changes in the environment where
the software runs, not because the software wears out.
|