Software complexity and bugs in the code.

Consider this: Holzmann[1] estimates 50 software errors remain in every 1,000 lines of recently written code, and code that has been thoroughly tested still contains 10. McDonnell[2] estimates the industry average at 10-50 per 1000 lines of delivered code. Should we be frightened? Sure mobile devices, and desktop machines aren’t likely to cause fatal errors that lead to physical devices going haywire, but software controlling objects that move just might.

Android OS has about 10 million lines of code. Now consider the software that runs Paris Metro Line 14: 87,000 lines of Ada. It controls the line’s train traffic, regulates the train speed, manages several alarm devices and allows for traffic of both automatic and non-automatic trains on the same line. One piece of software controls moving trains, and the other controls a mobile device.

The F-22 Raptor consists of about 1.7 million LOC, the F-35 Joint Strike Fighter, 5.7 million LOC. Boeing’s 787 Dreamliner, requires about 6.5 million LOC to operate its avionics and onboard support systems.

Food for thought.

[1] Holzmann, G.J., “The logic of bugs”, Foundations of Software Engineering, pp.81–87 (2002).
[2] McDonnell, S., Code Complete, (2nd ed.) Redmond, Wa.: Microsoft Press, (2004).

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s