Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software...

11
© 2005 The MathWorks, Inc. Achieving Six Sigma Software Quality Through the Use of Automatic Code Generation Bill Potter Senior Staff Engineer Honeywell International

Transcript of Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software...

Page 1: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

© 2

005

The

Mat

hWor

ks, I

nc.

Achieving Six Sigma Software Quality Through the Use of Automatic Code Generation

Bill PotterSenior Staff EngineerHoneywell International

Page 2: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

2

Six Sigma

A common approach to Six Sigma quality is eliminating defects through DMAIC (define, measure, analyze, improve, control).To achieve Six Sigma, the defect rate must be no more than 3.4 defects per 1 million opportunities.Six Sigma has been successfully applied to manufacturing processes and it is currently being attempted on hardware and software development processes at some companies.

Page 3: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

3

Gaussian Distribution Plot

-6 -4 -2 0 2 4 60

0.5

1

1.5

2

2.5

3

3.5

4x 10

4

S tandard Deviation

Dis

tribu

tion

of 1

,000

,000

Opp

ortu

nitie

s

Gauss ian Dis tribution

Page 4: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

4

Where is industry today?

A typical software process today injects 100 defects per 1000 lines of source code using manual processes.– 40 defects are due to design errors (3.25 sigma)– 60 defects are due to coding errors (3.05 sigma)

If Detroit built your car the way companies develop software, what would it look like?

Page 5: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

5

Car built via typical software process

Page 6: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

6

Use of Real-Time Workshop® Embedded Coder at Honeywell

Honeywell has used Simulink®, Stateflow® and Real-Time Workshop Embedded Coder to produce production code since 1996– Limited subset of Simulink blocks– Limited subset of StateFlow constructs– Fixed set of code generator options

Page 7: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

7

Coding Defect Measurement Data for 2003 and 2004 on actual production programs

During these two years, 1.6 million source lines of code were generated using Real-Time Workshop Embedded Coder and compiled using a Borland compiler.One defect was found during a code review.No defects were found during software component testing.

Page 8: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

8

Six Sigma Achieved!

One defect per 1.6 million lines of code = 6.35 sigma– This was the defect injection rate for the coding process– Zero coding defects went to the customer

Page 9: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

9

Resolution of the defect

The one defect was that the multi-port switch code was applying loop rolling at a threshold of 2 instead of a threshold of 5.The code passed testing and achieved MCDC coverage (per DO178B Level A) even with this coding defect.The TLC file for this block was modified to eliminate any further defects.

Page 10: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

10

Conclusion

Manufacturing processes have been automated in order to achieve Six Sigma quality levels.When we automate the manufacturing of software, through the use of automatic code generation, we are also able to achieve Six Sigma quality levels.

So, what does that car look like when it is automatically coded?

Page 11: Achieving Six Sigma Software Quality Through the Use of Automatic Code … · A typical software process today injects 100 defects per 1000 lines of source code using manual processes.

11

Car built via automatic code process

Editors note: Author’s hobby is demolition derby driving