Introduction to Software Engineering/Process/PSP

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Template:Introduction to Software Engineering/Top

The Personal Software Process (PSP) is a process for software development that aims to reduce defects in software and increase the accuracy of estimations of development duration.

Process[edit | edit source]

The following process is applied to all software development tasks. A task is here defined as a single iteration through this process; the development of most software will comprise a large number of tasks. If a problem description is very small or trivial, a number of different problems can be worked on together as one task.

The input to a task is the problem description.

Planning
  1. Develop a Requirements Statement based on the problem description
  2. Write a Task Summary
  3. Estimate time for each of the phases (including this one), based if possible on previous tasks
Development
  1. Produce and document a design that solves the problem
  2. Review the design
  3. Code the design
  4. Review the code
  5. Run the program
  6. Test the program
Postmortem
  1. Write a Task Report
  2. Compare estimated times with actual
  3. Record and review new duration and defect rates

At every stage apart from the first, any defects discovered must be recorded in the Defect Log, and then fixed.

Documents to be created/updated at each stage of the process.
↓ Phase Document → Requirements Statement Task Summary Time Log Defect Log Design Task Report
Plan YesY YesY YesY
Design YesY YesY YesY
Code YesY YesY
Run YesY YesY
Test YesY YesY
Postmortem YesY YesY YesY

Artifacts[edit | edit source]

The following artifacts (or documents, records, etc.) are produced during a PSP process. The images link to PDF versions of the forms.

Requirements Statement[edit | edit source]

A simple list of requirements that this task must satisfy. Write these in the present tense, so that they read as true once the task is complete.[1]

Task Summary[edit | edit source]

Task Overview

Time Log[edit | edit source]

Task Phase Start End Duration Notes
 
 

Design[edit | edit source]

The design documentation should take whatever form is appropriate, be it text, diagrams, and/or technical drawings.

Defect Log[edit | edit source]

File:PSP Defect Log form.png
Defect Log form

Task Report[edit | edit source]

File:PSP Report form.png
Report form

References[edit | edit source]

  1. Kendall, Matthew (7 January 2009). "Writing Technical Specifications in the Present".