Contents

Preface

Acknowledgments

Authors

1     In The Beginning

Birth of DigitalHome

Forming a Project Team

Assessing DigitalHome’s Needs

DH Customer Need Statement

DH High-Level Requirements Definition

Case Study Exercises

2     Launching DigitalHome

Project Launch

Team Building

Software Development Process

Development Strategy

Case Study Exercises

3     Assuring DigitalHome Quality

Software Quality Assurance

Software Quality Assurance Processes

Quality Measurement and Defect Tracking

Case Study Exercises

4     Managing the DH Project

Project Planning

Planning Activities

Risk Management

Software Configuration Management

Quality Planning

Case Study Exercises

5     Engineering the DH Requirements

Software Requirements Fundamentals

Eliciting Requirements

Analyzing Requirements

Specifying Requirements

Validating Requirements

Case Study Exercises

6     Designing DigitalHome

Software Design Concepts and Principles

Software Architecture

Architecture Views and Styles

Object-Oriented Design

Design Verification

Software Reuse and Design Patterns

Documenting Software Design

Case Study Exercises

7     Constructing DigitalHome

Build/Integration Plan

Construction Fundamentals

Unit Construction

Case Study Exercises

8     Maintaining DigitalHome

Maintenance Fundamentals

Maintenance Processes

Maintenance Techniques

Case Study Exercises

9     Acting Ethically and Professionally

Software Engineering Professional Issues

Code of Ethics and Professional Conduct

Software Development Standards

Software Legal Issues

Case Study Exercises

10   Using the Scrum Development Process

Scrum Process Overview

Backlog Generation and Grooming

Building the Product

Scrum Reflection Activities

Case Study Exercises

References

Appendix A: Digital Home Customer Need Statement

Appendix B: DigitalHome Software Requirements Specification

Appendix C: DigitalHome Use Case Model

Index