Software Quality Author: Claire Lohr Presenter: Ehsan Ghaneie What is quality? The degree to which a system, component, or process meets specified requirements The degree to which a system, component, or process meets customer or user needs or expectations Other Definitions: Conformance to user requirements Achieving excellent levels of fitness for use Market-driven quality Customer-driven quality TQM principals Everyone has a customer There is quantitative feedback from all customers Corrective actions occur based on the measures Every process has an owner Software Quality Activities: – – Quality Assurance (QA) Quality Control Software Engineering Culture and Ethics Establish code of ethics for all participants – – Impossible for SQA organization to create desired level of quality by itself Every one has to be committed Usually part of a larger quality improvement program Value and Cost of Quality Cost of poor quality software: – Cost of improving quality: – Internal and external failures Prevention and appraisal Cost of improving quality is more than offset by savings resulting from higher quality Models for Quality in Software CMMI-SW ISO 9001:2000 ISO 90003 TickIt Six Sigma Plan, Do, Check, Act (PCDA) CMMI Ratings from 1 to 5: – – – – – 1 – Initial 2 – Repeatable 3 – Defined 4 – Managed 5 – Optimizing ISO 9001 Requirements for Quality Management System General Requirements Documentation Requirements Management Responsibility Resource Management Product Realization Measurement, analysis, and improvement Planning for SQA IEEE Std. 730: Standard for Software Quality Assurance – – – – – – – Choose process improvement model Plan the organization Show documentation in the life cycle context Add review, audit, test, problem reporting, and corrective action tasks Develop the measurement goals and processes Peer review of the SQAP Maintenance of the SQAP Minimum Documentation IEEE Std. 730 Requires Software requirements description (SRD) Software design description (SDD) Verification and validation plans Verification and validation results report User documentation Software configuration management plan (SCMP) Other (defined by the user of the standard) Minimum Software Reviews IEEE Std. 730 Requires Software specifications review (SPR) Architecture design review (ADR) Detailed design review (DDR) Verification and validation plan review Functional audit Physical audit In-process audits Managerial reviews Software CM plan review (SCMPR) Post-implementation review Other reviews and audits as defined Key Processes to Support SQA SQA process Verification process Validation process Review process SQA Process Includes: Setting standards Checking compliance with standards Revising standards Coaching participants Collecting, evaluating, and reporting metrics Disseminating best practice examples Proposing potential improvements Measurement for SQA Desirable attributes Undesirable attributes Each quality criteria can be evaluated with a metric Metric Attributes According to IEEE Std. 1061 Name Costs Benefit Impact Target Value Quality Factor Tools Application Data item Computation Interpretation Considerations Training required Example Validation history References Recommended Life Cycle for Quality Metrics Establish software quality requirements Identify software quality metrics Implement the software quality metrics Analyze the software quality metrics results Validate the software quality metrics Conclusion References: http://www.swebok.org/ http://www.tickit.org/ http://www.sei.cmu.edu/cmmi/ http://en.wikipedia.org/wiki/CMMI/ Thank you!