Design Document Template

Introduction

  • Introduce the general issue with which the project deals, e.g. rising cost of health care, environment, etc.
  • Why is it an issue? supporting evidence; statistics, news, articles, etc.
  • Briefly describe how the project deals with the issue.
  • Project Impact on society locally and globally:
    • Positive impact.
    • Possible negative impact, due to misuse or unaccounted for risks.

Problem Statement

The specific problem the project is trying to solve.

Background

  • Related terminology, concepts, and technology.
  • Existing solutions, e.g. products, research.

Requirements and Specifications

  • Functional user requirements.
  • Non-functional user requirements, e.g. response time, power consumption, cost, size.
  • Technical specifications:
    • Derived from and maps to customer requirements.
    • Must be specific and testable. The product must meet all specifications.

System Design

Completely document the project design. Use graphical illustrations as much as you can.

Solution Concept

  • General approach of solving the stated problem.
  • Description of used/developed algorithms.
  • Alternative approaches and algorithms, comparison, and selection criteria.
  • Sub-function identification.

Architecture

  • System architecture and components.
  • Alternative architectures, comparison, and selection criteria.
  • Hardware vs. software components.
  • Functions of each component.

Component Design

For each hardware and software component:

  • Custom vs. off-the-shelf, and justification for developing a custom component.
  • Off-the-shelf components: alternatives, comparison, and selection criteria.
  • Custom components:
    • Design and implementation, e.g. flow chart, state machine, pseudocode.
    • Component design alternatives, comparison, and selection criteria.

System Integration

  • Standard vs. custom interfaces between components, and justification for developing custom interfaces.
  • Specification of custom interfaces.
  • Component interaction, e.g. sequence diagrams.

Progress

For each task, whether completed, in progress, or not started yet, list:

  • Owner.
  • Description.
  • Timespan: when does it start and when is it completed.
  • Status: in progress, completed, waiting for another task (specify), delayed (why), … etc.