Introduction to Software Engineering/Process/PSP
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
-
- Develop a Requirements Statement based on the problem description
- Write a Task Summary
- Estimate time for each of the phases (including this one), based if possible on previous tasks
- Development
-
- Produce and document a design that solves the problem
- Review the design
- Code the design
- Review the code
- Run the program
- Test the program
- Postmortem
-
- Write a Task Report
- Compare estimated times with actual
- 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.
↓ Phase | Document → | Requirements Statement | Task Summary | Time Log | Defect Log | Design | Task Report |
---|---|---|---|---|---|---|---|
Plan | |||||||
Design | |||||||
Code | |||||||
Run | |||||||
Test | |||||||
Postmortem |
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]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]Task Report
[edit | edit source]References
[edit | edit source]- ↑ Kendall, Matthew (7 January 2009). "Writing Technical Specifications in the Present".