The Design Process

Overview

Software development processes include:

Requirements Gathering

Requirements Analysis

Design

System Implementation

Here's an activity diagram showing the relationships and products of these processes:

 

All stakeholders (customer, users, and developer) participate in the requirements gathering process, while only developers participate in the subsequent processes.

The following lectures focus on the design processes.

A Model of the Design Process

The input to the design process is the analysis model, which is the output of the Requirements Analysis Process and usually takes the form of a requirements analysis document or RAD:

Requirements Analysis Document
   Functional Specification (from the Requirements Gathering Process)
   Analysis Object Model (from the Analysis Process)
   Dynamic Model (also from the Analysis Process)

The output of the design process is the design model, which consists of components and the collaborations that realize them:

The design model is manifested by the System Design Document (SDD).

Only the system developers participate in the design process, which consists of two sub-processes: system design and component design:

The Design Sub-Processes

In the system design sub-process, the major system components are identified. This includes the services they will provide to other components as well as the services they will require from other components.

System Design

In the component design sub-process the internal structure of each component is specified. This takes the form of a collaboration of sub-components or a collaboration of objects. 

Component Design

Supplementary Material

Design Principles

Design Metrics