Toyota's Woes Linked to Software Bugs and Raises Questions about

advertisement
Toyota’s Woes Linked to Software Bugs and Raises Questions
about Auto Electronics
It is now official that the problems with the 2010 Toyota Hybrid Prius
cars are directly related to defects in the braking control software. The
accelerator fiasco was a serious one indeed, causing 52 deaths since
2000.So how can Toyota and other automobile companies prevent
such devastating malfunctions from happening again? By making sure
the software that controls all the electronic devices in today's cars do
not have any problems in the first place. Dave Peterson from Coverity
discusses the issue.
There’s been a lot of coverage about the Toyota recalls and the role of
software in automobiles. What hasn’t been clearly defined, however, is the
sheer complexity of the software code involved and the challenges involved in
checking for problems.
Today’s auto software is not a standalone package. Most drivers think that
turning the steering wheel right and applying pressure on the brakes are
physical acts – but often they are literally computer commands telling your car
to slow down and turn. If drivers knew this, it could impact the way they react
to problems. If the accelerator 'sticks' they should throw the car in neutral because pulling on the pedal will not do anything.
Indeed, modern automobiles have as much as 100 million lines of code in
embedded software running inside the car – that’s more than an F-35 or a
Dreamliner 737 jumbo plane. From connecting and controlling mechanics,
ABS engagement systems to the traditional electronics such as navigation,
audio, heating and cooling, software affects various parts of the automobile.
The modern cars have brake by wire, adaptive cruise control, active steering,
tire sensors and many other parts all controlled by embedded systems and
software.
To complicate things further, most of the software code often comes from
multiple suppliers as well. In the Toyota case, it’s not clear whether the faulty
brake software in the Prius was coded by Toyota engineers or by a supplier
down the chain. And even if each individual code base was 100% bug free,
there’s no guarantee that when the different pieces are glued together into a
vehicle, there won’t be ‘glitches.’ To complicate things further, time to market
pressure and the rush to add more electronic features in modern automobiles
is creating a software integrity problem. Are we actually spending enough time
making sure the software is as perfect as the look of a new car?
1
This lack of software testing is probably the real challenge for auto
manufacturers like Toyota. How did things end up this way? What started as
a manufacturing assembly line process allowing many vehicles to be built in a
predictable way eventually evolved into a Deming quality control process
driving quality procedures for predictable, repeatable, scalable manufacturing.
The Deming approach was created by Edward Deming, the business
management guru who advised Japan on how to rebuild its shattered
industries after the Second World War. Simply put, Deming argued that
enlisting the efforts of willing workers to do things properly the first time and
giving them the right tools were the real secrets of improving quality -- not
teams of inspectors.
Sadly the automotive assembly has reached a point where well-built vehicles
are failing miserably because there is no Deming-like rigor on quality in the
new software assembly line. Vehicles at any speed — just like computer
systems at wire speeds — are unsafe without an engine of high integrity
software driving it.
So, it should follow that in the new software assembly line we too have an
Office of Defect Investigation – only, build it early into the development cycle,
and not after products have gone into the field. Once software has rolled into
the field, it’s too late – and the results can be damaging (as Toyota knows
only too well). In particular, this office may want to focus on three
“departments”:
Architecture Analysis as we the design software.
Static Analysis as we write the code.
Dynamic Analysis and as we detect and fix functional issues.
A while back, there was an urban legend making the round in news cycles.
According to the most popular version, Bill Gates allegedly stated, “If GM had
kept up with the technology like the computer industry has, we would all be
driving $25.00 cars that got 1,000 miles to the gallon.” In this story, GM
responded with a smart press release asserting that if it developed products
the way Microsoft did, its cars would have all the problems of Microsoft’s
software. This has been proven to be an untrue story but in context of the
Toyota recall, the debate still stands on its own.
Software professionals cannot be on the receiving end of such debates. They
need their own Offices of Defect Investigation and emphasis on production
quality early and often to ensure software integrity in every piece of software
delivered to the industry.
2
Download