软件工程/流程/PSP 简介
外观
个人软件流程 (PSP) 是一个用于软件开发的流程,旨在减少软件缺陷并提高对开发持续时间的估算准确性。
以下流程应用于所有软件开发任务。此处将任务定义为通过此流程的单次迭代;大多数软件的开发将包含大量任务。如果问题描述非常小或微不足道,可以将多个不同问题作为一项任务一起处理。
任务的输入是问题描述。
- 计划
-
- 根据问题描述制定需求说明
- 编写任务摘要
- 估算每个阶段的时间(包括本阶段),尽可能基于以前的任务
- 开发
-
- 生成并记录解决问题的方案
- 审查设计
- 根据设计编写代码
- 审查代码
- 运行程序
- 测试程序
- 事后分析
-
- 编写任务报告
- 比较估计时间与实际时间
- 记录并审查新的持续时间和缺陷率
除了第一个阶段之外,在每个阶段发现的任何缺陷都必须记录在缺陷日志中,然后修复。
↓ 阶段 | 文档 → | 需求说明 | 任务摘要 | 时间记录 | 缺陷日志 | 设计 | 任务报告 |
---|---|---|---|---|---|---|---|
计划 | ![]() |
![]() |
![]() |
||||
设计 | ![]() |
![]() |
![]() |
||||
代码 | ![]() |
![]() |
|||||
运行 | ![]() |
![]() |
|||||
测试 | ![]() |
![]() |
|||||
事后分析 | ![]() |
![]() |
![]() |
以下工件(或文档、记录等)是在 PSP 流程中生成的。图像链接到表格的 PDF 版本。
此任务必须满足的一系列简单需求。用现在时写这些需求,以便在任务完成后,它们读起来是正确的。[1]

任务 | 阶段 | 开始 | 结束 | 持续时间 | 注释 |
---|---|---|---|---|---|
设计文档应采用任何合适的形式,无论是文本、图表和/或技术图纸。
- ↑ Kendall, Matthew (7 January 2009). "Writing Technical Specifications in the Present".