Chapter 3

Assuring DigitalHome Quality

Software Quality Assurance

After the project team had decided on their development process (Table 3.1), Jose Ortiz asked the team to remember the importance that HomeOwner management had placed on the need for a high-quality DigitalHome prototype. Massood Zewail, who is a recent graduate of a Master of software engineering program, affirmed the importance of software quality assurance (SQA) and suggested that the team study the V-Model software development process for its features, which would help ensure a high-quality product. Some members of the team were not familiar with the V-Model, and some were not convinced its quality features could be properly integrated into the Table 3.1 process. Also, Yao Wang expressed concern about ensuring the security of DigitalHome system. Jose asked Massood to prepare a tutorial on SQA and include discussion of the V-Model security engineering. Massood agreed to deliver a tutorial on quality assurance; however, he also pointed out that “quality without measurement is just cheerleading”; therefore, he also included some discussion of measurement as part of his presentation.

Table 3.1   DigitalHome Development Process Script

Purpose

  • Guide the development of the DigitalHome software system

Entry Criteria

  • Identification of a problem or opportunity, which may need a software solution

Phase

Activity

Project Inception

  • Establish the business case and feasibility for the project

  • Determine the scope of the project

  • Develop a customer need statement

  • Develop a high-level requirements document

Project Launch

  • Establish development team, and their roles, responsibilities, and goals.

  • Analyze Need Statement

  • Establish a Development Process

  • Identify External Interfaces and create Context Diagram

  • Create a Conceptual Design

  • Determine a Development Strategy

  • Research and study of possible project technology

Planning (discussed in Chapter 4)

  • Develop Task, Schedule, and Resource Plans

  • Develop a Risk Plan

  • Develop a Quality Plan

  • Develop a Configuration Management Plan

  • Determine project standards and tools

  • Perform project planning/tracking

Analysis (discussed in Chapter 5)

  • Review the Need Statement and prepare for requirements elicitation

  • Elicit requirements from potential customers and users

  • Analyze requirements and build object-oriented analysis models

  • Specify and documents requirements in an SRS

  • Inspect and revise the SRS

  • Obtain customer agreement to requirements

  • Develop a System Test Plan

  • Develop Requirements Traceability Matrix (RTM)

  • Develop User Manual

  • Track, monitor and update plans (Task/Schedule/Quality/CM/Risk) & RTM

Architectural Design (discussed in Chapter 6)

  • Develop OO high-level design models

  • Refine the OO analysis models

  • Develop additional design models

  • Specify and document design in an SDS (Software Design Specification)

  • Develop a Build/Integration Plan

  • Review and revise the SDS

  • Consult with customer, and revise SRS and SDS, as appropriate

  • Track, monitor and update plans (Task/Schedule/Quality/CM/Risk) & RTM

Construction Increment 1, 2,... (discussed in Chapter 7)

  • Complete Class Specifications (data types and operation logic)

  • Develop Increment (Class/Integration) Test Plan

  • Set up appropriate test environment (e.g., test harness, stubs/drivers)

  • Review the Class Specifications

  • Write source code

  • Review and test the source code

  • Integrate code with previous increments

  • Perform Increment (Class/Integration) Test

  • Consult with customer, and revise SRS, SDS, and code, as appropriate

  • Track, monitor and update plans (Task/Schedule/Quality/CM/Risk) & RTM

System Test

  • Update test environment

  • Update System Test Plan

  • Perform the System Test

  • Consult with customer, and revise requirements, design and code as appropriate

  • Track, monitor and update plans (Task/Schedule/Quality/CM/Risk) & RTM

Acceptance Test

  • Prepare Acceptance Test materials (including a user’s manual)

  • Set up customer test environment

  • Customer performs Acceptance Test

  • Revise SRS, SDS, code, and User Manual as appropriate

  • Track, monitor, and update plans (Task/Schedule/Quality/CM/Risk) & RTM

Postmortem

  • Perform postmortem analysis of project process and product quality

Exit Criteria

  • Completed SRS, SDS, RTM, User Manual, System Test Plan

  • Source code for a thoroughly reviewed and tested program

  • Completed plan documentation

  • Project postmortem report

image

Software Quality Assurance Processes

Massood Zewail also prepared and delivered tutorial on the processes used in SQA.

Quality Measurement and Defect Tracking

Jose Ortiz asked Massood Zewail if he would also prepare and deliver a tutorial on the processes used in software quality measurement and tracking.