Software Quality Management

Week 7: Ensuring Excellence in Software Development

Quality
Management

Learning Objectives

By the end of this session, you will be able to:

  • ✓ Understand what software quality means and why it matters
  • ✓ Identify key quality attributes and measurement techniques
  • ✓ Apply quality management processes effectively
  • ✓ Utilize reviews and inspections for quality assurance
  • ✓ Understand the role of standards in quality management

What is Software Quality?

Software quality management ensures that software has a low number of defects and reaches required standards of maintainability, reliability, and portability.

Why Quality Matters

Key Insight

The subjective quality of software is largely based on its non-functional characteristics. Users can often work around missing functionality, but if software is unreliable or too slow, they cannot achieve their goals.

Missing Feature
Workaround Possible

Poor Performance
Goal Blocking

External Quality Attributes

User-Visible Characteristics

Maintainability

Can evolve to meet changing customer needs

Dependability & Security

Reliable, secure, and safe operation

Efficiency

Optimal use of system resources

Acceptability

Understandable, usable, and compatible

Comprehensive Quality Attributes

Safety & Security

  • • Safety
  • • Security
  • • Reliability
  • • Resilience

Usability

  • • Understandability
  • • Usability
  • • Learnability
  • • Portability

Technical

  • • Testability
  • • Adaptability
  • • Modularity
  • • Reusability

Quality Management Process

Parallel to Software Development

Software Development:

D1
D2
D3
D4
D5

Quality Management:

Standards
Quality Plans
Review Reports

Quality Planning Components

Short and Succinct Plans

Product Introduction

What we're building

Product Plans

How we'll build it

Process Descriptions

Steps we'll follow

Quality Goals

What quality means for this project

Risk Management

Identification and mitigation of potential quality threats

Process-Based Quality Approach

Define Process
Develop Product
Assess Quality
Improve Process

Quality Not OK

Standardize Process

Quality OK

Types of Quality Metrics

Dynamic Metrics

Runtime measurements - closely related to quality attributes

  • Response Time (Performance)
  • Failure Count (Reliability)
  • Resource Utilization
  • Throughput Measurements

Easy to measure, direct relationship

Static Metrics

Code analysis - indirect relationship to quality

  • Lines of Code
  • Cyclomatic Complexity
  • Inheritance Depth
  • Module Coupling

Help assess complexity and maintainability

System Quality Assessment Framework

Business Process Assessment

How well does the system support current business goals?

Environment Assessment

How effective is the system's environment? How expensive to maintain?

Application Assessment

What is the quality of the application software system?

Quality Indicators for Assessment

System Change Requests

Higher number = Lower quality

📊 Metric: Count per time period

User Interface Variety

More interfaces = More inconsistencies

📊 Metric: Number of different UIs

Data Volume

Larger volumes = More errors and inconsistencies

📊 Metric: Records processed

Data Cleanup Costs

Expensive and time-consuming indicator

📊 Metric: Time and money spent

Software Standards

Purpose of Standards

Standards define required attributes of products or processes and provide:

  • Framework for defining quality in a particular setting
  • Identification of "best practice"
  • Solid foundation for building quality software

Types of Standards

International Standards (ISO 9001)
National Standards
Organizational Standards
Project Standards

Each level provides more specific guidance for quality management

ISO 9001 Framework

International Standard for Quality Management Systems

  • Applies to organizations that design, develop, and maintain products
  • Sets out general quality principles and organizational procedures
  • Must be documented in an organizational quality manual
  • Provides framework for continuous improvement

Types of Quality Reviews

Inspections

Focus: Defect removal

Target: Product quality

Reviews

Focus: Progress assessment

Target: Product & process

Quality Reviews

Focus: Standards compliance

Target: Product & standards

Program Inspections

Definition

Peer reviews where engineers examine source code to discover anomalies and defects

Key Benefits

  • Don't require system execution
  • Applicable to any system representation
  • Proven effective for discovering errors
  • Systematic team-based approach

Application Areas

  • Requirements documents
  • Design specifications
  • Source code
  • Test data and plans

Understanding Complexity

Key Insight

Most maintenance effort is spent on a relatively small number of system components.

Components ranked by complexity

Complexity Factors

Control Structure

Complexity of decision paths and loops

if-else
nested loops
switch statements

Data Structure

Complexity of data organization and relationships

nested objects
complex arrays
relationships

Module Size

Size of objects, methods, and modules

lines of code
method count
class size

Types of Maintenance

Fault Repairs

Fix bugs and correct deficiencies in the system

🔧

Environmental Adaptation

Adapt to different operating environments and platforms

🌐

Functionality Enhancement

Add or modify functionality to satisfy new requirements

Quality Management in Agile

Traditional Approach Agile Approach
Document-based quality assurance Informal, culture-based quality
Formal quality processes Team collaboration focus
Dedicated QA team responsibility Shared team responsibility
Phase-gate quality reviews Continuous quality improvement

Establishing Quality Culture in Agile

Shared Responsibility

All team members feel responsible for quality outcomes

Collaborative Improvement

Team works together to identify and implement quality improvements

Continuous Learning

Regular retrospectives focus on quality lessons learned

Prevention Focus

Emphasis on preventing defects rather than finding them

Relationship: Internal ↔ External Quality

Internal Attributes

Measurable code characteristics

  • • Cyclomatic complexity
  • • Depth of inheritance
  • • Lines of code
  • • Number of error messages
  • • Length of user manual

External Attributes

User-experienced quality

  • • Reliability
  • • Maintainability
  • • Usability
  • • Reusability
  • • Performance

Internal attributes predict external quality attributes, helping teams focus improvement efforts effectively.

Key Takeaways

1. Quality is Multi-faceted

Encompasses reliability, maintainability, efficiency, and usability

2. Process Matters

Good processes lead to good products

3. Measurement is Essential

Use metrics to predict and assess quality

4. Standards Provide Framework

Define what quality means in your context

5. Reviews are Critical

Most widely used technique for quality assessment

6. Prevention vs. Detection

Better to prevent defects than find them later

Practical Application Questions

Consider These Scenarios:

  1. How would you design a quality plan for a mobile banking app?
  2. What metrics would you use to assess the maintainability of a large e-commerce system?
  3. How would you establish a quality culture in an agile development team?
  4. What types of reviews would be most appropriate at different stages of development?
  5. How do internal code metrics relate to user-experienced quality?
1 / 25