You are on page 1of 5

Section 17.

1: Background Issues

 Quality control and assurance are vital for businesses producing products for others.

 In the past, quality control was the responsibility of the craftsperson, but it evolved as
mass production became prevalent.

 Formal quality control functions in manufacturing began at Bell Labs in 1916,


emphasizing measurement and continuous process improvement.

 The history of quality assurance in software development parallels that of hardware


manufacturing.

Section 17.2: Elements of Software Quality Assurance

 Software quality assurance encompasses various concerns and activities, managed by


SQA (Software Quality Assurance) groups.

 Key components of software quality assurance include standards, reviews, audits,


testing, error/defect collection and analysis, change management, education, vendor
management, security management, safety, and risk management.

Section 17.3: SQA Processes and Product Characteristics

 SQA processes and approaches must be tailored to specific software environments and
product quality requirements.

 The Software Engineering Institute's CMMI and ISO 9000 standards provide process
frameworks that can be harmonized to meet quality needs.

Section 17.4 : SQA Tasks

 SQA tasks include quality assurance planning, oversight, record keeping, analysis, and
reporting.

 SQA works to ensure requirements, design, code, quality control e ectiveness, and
resource allocation are aligned with quality goals.

 Metrics are used to measure attribute indicators for each quality goal, such as
ambiguity, cyclomatic complexity, or readability index.

 SQA tasks are conducted by the SQA group and are aimed at achieving a high-quality
end product.

 The SQA group prepares an SQA plan for each project, which serves as a template for
quality assurance activities.

 They participate in the development of the project's software process description to


ensure compliance with standards and policies.

 The SQA group reviews software engineering activities for compliance with the defined
software process and identifies and documents deviations.

 They audit software work products to verify compliance with the defined process and
standards.
 The SQA group ensures that deviations in software work and work products are
documented and handled according to a documented procedure.

Goals, Attributes, and Metrics:

 The goals of software quality assurance include requirements quality, design quality,
code quality, and quality control e ectiveness.

 Attributes and metrics are used to evaluate the achievement of these goals:

 Requirement quality attributes and metrics include ambiguity, completeness,


understandability, volatility, traceability, and model clarity.

 Design quality attributes and metrics include architectural integrity, component


completeness, complexity, interface complexity, layout appropriateness, and
patterns.

 Code quality attributes and metrics include complexity, maintainability,


reusability, and documentation.

 Quality control (QC) e ectiveness metrics evaluate resource allocation,


completion rate, review e ectiveness, and testing e ectiveness.

Software quality assurance is essential to identify and address issues early in the software
development process, ensuring that the final product meets quality standards and customer
expectations. By setting clear goals and using specific attributes and metrics, SQA helps teams
improve their processes and product quality.
Section 17.5: Formal Approaches to SQA

 A segment of the software engineering community advocates a more formal approach


to software quality assurance, including formal methods to prove program correctness.

 Formal methods involve rigorous syntax, semantics, and mathematical proofs to


demonstrate program conformance to specifications.

 While formal methods are of academic interest, they are not widely adopted in
commercial software development.

The text emphasizes the importance of quality assurance in software development and outlines
various components, including standards, reviews, audits, testing, and other activities to
ensure software quality. It also touches on formal methods for program correctness but
highlights their limited adoption in practical software development.
17.6 Statistical Software Quality Assurance

Summary: Statistical quality assurance involves applying quantitative methods to improve


software quality. The process includes data collection, root cause analysis, Pareto principle,
and corrective action.

1. Data Collection and Categorization:

 Information about software errors and defects is gathered and classified.

2. Root Cause Analysis:

 Identify the underlying causes of errors and defects, e.g., specification


nonconformance, design errors, standards violation, communication issues
with customers.

3. Pareto Principle:

 Isolate the vital few causes (20%) that contribute to 80% of the defects.

4. Corrective Action:

 Address and rectify the problems associated with the vital few causes.

 Focusing on the vital few is essential for improving the software development process.

Example: Data is collected on errors and defects, and three main causes (IES, MCC, EDR) are
identified as the vital few causes, contributing to 53% of all errors. Corrective actions are taken
to address these specific issues, e.g., improving customer communication and specifications
for MCC.

17.6.2 Six Sigma for Software Engineering

Summary: Six Sigma is a widely-used strategy for statistical quality assurance, focused on
minimizing variations and defects. It follows a structured approach with core steps: Define,
Measure, Analyze, Improve, and Control (DMAIC).

 Define customer requirements and project goals.

 Measure the existing process and quality performance (collect defect metrics).

 Analyze defect metrics and identify vital few causes.

 Improve the process by eliminating root causes.

 Control the process to prevent reintroduction of defects.

 The Six Sigma methodology aims for extremely high quality standards with a focus on
statistical applications.
17.10 Summary

Summary: Software quality assurance involves a systematic approach to improving software


quality throughout the development process. It includes statistical methods, reliability and
safety assessment, and adherence to quality standards such as ISO 9000. Proper SQA is a
hallmark of mature software engineering.

 SQA encompasses processes for quality improvement, data collection, and


compliance.

 Statistical SQA applies quantitative methods to improve quality.

 Software reliability and safety assess failure likelihood and consequences.

 ISO 9000 standards provide a framework for quality assurance.

 The SQA plan outlines activities to ensure software quality in each project.

You might also like