SOFTWARE QUALITY ASSURANCE (SQA) ================================ Reference: Software Engineering: A Practitioner's Approach by Pressman. SQA Process Goal: high-quality software. Software Quality: Conformance to 1. explicit functional and performance requirements. 2. explicit development standards. 3. implicit characteristics of professionally developed software. example: easy to maintain SQA Process Activities: 1. quality management 2. effective software engineering technology (methods and tools) 3. formal technical reviews that are applied throughout the software process 4. multi-tiered testing strategies 5. control of software documentation and updates 6. procedures to assure compliance with standards 7. measurement and reporting mechanisms Quality Control (QC): Series of inspections, reviews, and tests used throughout the development cycle to insure that each work product meets the requirements. Includes a feedback loop to the process that created the work product. SQA Plan: Purpose Management (organization, tasks, responsibilities) Documentation Standards (conventions) Reviews /Milestones Requirements Review Design Reviews (preliminary, detail) Verification Review (does the product work correctly?) Validation Review (is it the right product?) Management Reviews Software Configuration Management Problem Reporting and Corrective Action Tools, Techniques, Methodologies Records Factors: Product Operations: Correctness, Reliability, Efficiency, Integrity, Usability Product Revisions: Maintainability, Flexibility, Testability Product Transition: Portability, Reusability, Interoperatibility Sofware Reviews: Goals: Find defects in analysis, design, code Strive for uniform (or predictable) quality Walkthrough: 1. small number of people 2. review leader 3. short review concentrates on specific part of software 4. set agenda, limit debate, don't solve every problem 5. review product, not producer 6. take written notes 7. sign-off (accept, reject, accept provisionally) Improvements: Programming, Scheduling, Expertise