PSP--基于反馈的过程

软件工程中CMM(Capability Maturity Model)模型指出了管理大规模软件开发的实践方法。其包括五个级别定义企业的软件开发成熟度。

PSP--基于反馈的过程

这五个级别是对于整个团队获整个组织而言的,属于TSP(团队软件过程)。PSP引用了TSP CMM模型的一些方法使之可以评估个体的软件成熟度,以提高业界人士软件能力以及为业界评估个体软件能力提供一套合理的基准。

CMM模型以企业或开发团队作为对象,把整体软件开发过程看成是群体控制的过程,把参与软件开发的个体看成具备一定稳定性,但具有一定不确定性的元素。在软件开发中,不像演奏会那样一个小提琴手错一个音符不会影响整体效果,任何参与成员产生的一个错误可能都会是导致系统最终崩溃的起因。

PSP理论的引入试图对CMM模型做一定的补充,试图完善软件开发过程中对个体忽略的方面。

PSP模型

PSP--基于反馈的过程

  • PSP0
    主要是对软件过程进行测度,基于测度产生一个报告。作为历史参考数据,用于下面的软件过程。测度的数据可以包括:错误个数KLOC,软件开发用时,错误类型统计。

  • PSP1
    相比PSP0,在工程开始之前引入个人规划,也就是这一阶段会引入软件过程的计划,包括对软件的规模(LOC)进行预估,对软件开发时间(用时)进行预估。

  • PSP2
    PSP2强调对软件质量的保证。KLOC代码错误数代表一个工程师内在的技能水平,一个经验丰富的软件工程师错误率会更低。PSP2对于PSP1而言,增加的质量保证阶段,通过对工程师程序的代码和设计进行评审来确保软件质量,并建立评审列表,进行自我过程质量评测。

  • PSP3
    PSP3是当程序扩大到一定规模,即使注释清晰的代码都很快无法跟踪程序的逻辑,因此PSP3处理大型程序开发过程的思想是将PSP3分解成多个PSP2去做。
    基于的思想是每个循环完成一个标准的PSP2过程,确保每次增量建立于以往的高质量增量之上。假如以往的软件模块质量不高,而新增模块依赖于以往模块,即使新增模块的代码质量再高,都无法弥补以往模块对于系统糟糕的影响。因此,其就基于这一点考虑,如果每次增量都是高质量的,那么就会不断造成良性循环。

PSP2过程的代码评审和设计评审会对系统进行回归测试,即如果系统新增加了一个模块,看以前的功能在新模块添加之后,是否可以继续正常使用。因此,可以保证对以往模块的信心,避免大规模系统重构。