|
Choosing the Right Technology
by George
Noveck
Start ý The
Cost ý The Traps ý Take
the Pick ý Logic Processing ý Software
ý Whatýs Next? ý Sources
and PDF
SOFTWARE
Countless horror stories have given software
a bad reputation, so much so that the development efforts today (especially
in terms of product safety) are devoted to documenting and testing.
In other words, proving the absence of bugs. To be fair, this is not
merely the fault of undisciplined or unscrupulous software developers
and publishers. I remember the marketing stories that accompanied
the first microprocessors, practically guaranteeing how inexpensive
product development and manufacturing will be in the days to come.
This imaginary pot of gold stuck in our minds so that even today few
design managers have come to terms with the true cost of software
development. Then, having quoted unrealistic costs, they are forced
to cut corners and release software before it is ready.
The general rule of thumb is that one
line of code in C will take about three hours of engineering time.
Ten thousand lines of code in an embedded controller at the industry
rate will cost you a cool quarter of a million. You can calculate
the exorbitant cost of 30,000 hours represented in product delivery
if you have four software designers working 2,000 hours per year.
In commercial projects not requiring the stringent documentation and
testing needed for safety critical software, one to two hours per
line is realistic, but still, go ahead and do the math! Many recently-introduced
EDA tools automate documentation, traceability, and testing so you
can see significant improvements in productivity, but the fact remains
that software development is long, expensive, and will never reach
the level originally envisioned and promised by marketeers.
There are people who may argue that
they "whipped up" some code in only a few short hours. To
them I will repeat that, even if you get away with cutting a few corners
now, by the time you factor in the failures in the field, unhappy
customers, and next-to impossible code maintenance, you would have
been better off doing the job properly in the first place.
In contrast, I have always likened the
design of FPGAs or PALs to laying out a PCB. Although the routing
is done with the help of software, the result is a fully testable
hardware. This eliminates a large proportion of the documentation
and testing otherwise required for software, which is an incentive
to design with the FPGAs. For safety critical applications, the certifying
authorities are getting wise to the growing use of the FPGAs, but
their inherently faster and self- documenting development could not
be inflated to the required level for certifying software.
PREVIOUS
NEXT
Circuit Cellar provides up-to-date information for engineers. Visit
www.circuitcellar.com for
more information and additional articles.
For subscription information, call (860) 875-2199, subscribe@circuitcellar.com
or subscribe online.
ýCircuit Cellar, the Magazine for Computer Applications. Posted with
permission. |