EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER INTRODUCTION TO QUALITY ASSURANCE COPYRIGHT © 2012 DSR CORPORATION Objectives Understand what is quality Understand the software quality assurance basic notions, processes, and techniques COPYRIGHT © 2012 DSR CORPORATION 2 Class Materials Software Engineering Introduction diagrams are available here: http://estc.dsr-company.com Hands-on Exercises are available here: COPYRIGHT © 2012 DSR CORPORATION 3 Agenda 1. Software Quality Fundamentals 2. Software Quality Management Processes 3. Software Quality Management Techniques 4. Software Quality Measures COPYRIGHT © 2012 DSR CORPORATION 4 EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER SOFTWARE QUALITY FUNDAMENTALS COPYRIGHT © 2012 DSR CORPORATIONS Capability Maturity Model Integration http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration COPYRIGHT © 2012 DSR CORPORATION 6 Quality Improvement Building quality through: The prevention and early detection of errors Continuous improvement Customer focus Total Quality Management (TQM) approach The Six Sigma process 99.99966% of the products manufactured are statistically expected to be free of defects (3.4 defects per million) Management sponsorship Identifying actions and improvement projects to be addressed in a feasible time frame Identify resources to achieve the goal defined for it Proactive activities http://en.wikipedia.org/wiki/ISO/IEC_9126 http://en.wikipedia.org/wiki/Six_Sigma COPYRIGHT © 2012 DSR CORPORATION 7 EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER SOFTWARE QUALITY MANAGEMENT PROCESSES COPYRIGHT © 2012 DSR CORPORATIONS Code Review Performed during Inspection or Walk-through Finds the faults that are difficult to find by testing. Latent defect discovery rate: Formal inspection is in the 60-65% range, at most 85% For informal walk-through, the figure is less than 50% For most forms of testing is about 30% Does not replace testing Up to 75% of code review defects affect software maintainability rather than functionality Typical rate is about 150 lines of code per hour Handled according to code review rules http://en.wikipedia.org/wiki/Code_review COPYRIGHT © 2012 DSR CORPORATION 9 EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER SOFTWARE QUALITY MEASURES COPYRIGHT © 2012 DSR CORPORATIONS Software Complexity Metrics (cont.) Complexity Analysis of Real Time Software Using Software Complexity Metrics to Improve the Quality of Real Time Software. Armin Krusko COPYRIGHT © 2012 DSR CORPORATION 11 Summary Software quality has a definite value and cost. Software quality management processes intended to ensure the that quality is built-in into the software. Validation, Verification, and Review processes are the most intensive among them. Various techniques are involved to achieve the Software Quality Management Goals. Static and dynamic are most useful among them. Software quality measures allow us to estimate product quality as well as to plan, control, and improve the quality processes. COPYRIGHT © 2012 DSR CORPORATION 12 Questions 1. What is software quality? Why quality is so important? What the software quality cost consists of? 2. What are main software quality characteristics? 3. What are the main software quality management processes? 4. Give the short characteristic of Verification & Validation processes. Provide the examples of the applying of these processes on every stage of Software Life Cycle. Which Software Quality Management techniques are used in these processes? 5. What Reviews and Audits are used for? Which Software Quality Management techniques are used in these processes? 6. Characterize the Software Quality Management techniques. What the every technique allows to achieve and what it its limitaiton? 7. What are the Quality Measurement objectives? What the Software Quality Metrics do you know? COPYRIGHT © 2012 DSR CORPORATION 13 References 1. SWEBOK. Guide to the Software Engineering. Body of Knowledge. 2004 Version / A project of the IEEE Computer Society Professional Practices Committee 2. IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology 3. TickITplus certification scheme. http://www.tickitplus.org 4. Capability Maturity Model Integration (CMMI) http://www.sei.cmu.edu 5. ISO 9001:2008. Quality management systems — Requirements 6. ISO/IEC 9126. Software engineering — Product quality 7. IEEE/EIA 12207.0. Standard for Information Technology – Software Life Cycle Processes 8. IEEE730-1998. IEEE Standard for Software Quality Assurance Plan 9. IEEE 1059-1993. IEEE Guide for Software Verification and Validation Plans 10. ISO/IEC 9126-1:2001. Software engineering -- Product quality -- Part 1: Quality model 11. IEEE1028-1997. IEEE Standard for Software Reviews Jones, Capers; Christof, Ebert (April 2009). "Embedded Software: Facts, Figures, and Future“ 12. Complexity Analysis of Real Time Software – Using Software Complexity Metrics to Improve the Quality of Real Time Software. Armin Krusko 13. Software Engineering Code of Ethics and Professional Practice (Version 5.2) as recommended by the ACM/IEEE-CS. http://www.acm.org/about/se-code COPYRIGHT © 2012 DSR CORPORATION 14