![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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/1.jpg)
© 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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051917/60096159829ed44c7a37df70/html5/thumbnails/11.jpg)
11
Car built via automatic code process
Editors note: Author’s hobby is demolition derby driving