软件能力成熟度模型(四)--PSP,TSP与CMMI
CMM/CMMI只关注“做什么”,而不关注“怎么做”,未提供实现各过程域所需要的知识和方法。
为了解决上述问题,CMU-SEI在CMM1.1基础上提出了PSP/TSP。
一、PSP
1.PSP的产生
- 1995年,CMU-SEI的Watts s. Humphrey领导开发出PSP(Personal Software Processes),即个人软件过程,被认为是由定性软件工程走向定量软件工程的标志。
- PSP是一种可用于控制、管理和改进软件工程师个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。
2.PSP关注点
- 如何制订计划
- 如何控制质量
- 如何与其他人相互协作
- 如何预防缺陷(PSP重点)
- 关键是如何提高设计质量
3.PSP中的个人任务
- 为每一个项目/模块制订开发计划;
- 记录开发时间;
- 跟踪错误;
- 在工程摘要报表中保留数据;
- 使用已有的数据计划以后的项目/模块;
- 分析已有的数据以改进开发过程,不断提高开发水平。
4.PSP的使用效果
参加PSP培训的104位软件人员在应用了PSP后:
- 软件中总的差错数减少了58.0%;
- 在测试阶段发现的差错减少了71.9%;
- 生产效率提高了20.8%
5.PSP过程改进
5.0 PSP0(个人过程基线)
- PSP0是过程基线,目的是为了在个人的工作中引入表格和脚本,以便工程师按照测量和报告格式记录软件过程。
- PSP0可以通过增加三个过程而扩展到 PSP0.1:
- 代码规范
- 代码规模度量
- 过程优化计划
5.1 PSP1(个人计划过程)
- PSP1在PSP0的基础上增加了计划步骤:
- 规模估计:分为代码规模估算、时间估算、资源估算。
- 状态报告:对软件工程师的工作进行跟踪,检查规模估计与实际状态之间的差异。
- PSP1.1又在PSP1的基础上引入了任务计划和安排。
5.2 PSP2(个人质量管理)
- PSP2强调提高质量,引入了缺陷管理,包含了代码审查和设计审查。
- PSP2.1在PSP2.0基础上增加了设计模板。
5.3 PSP3(循环个人过程)
- PSP3将个人软件过程的应用拓展到大规模程序开发当中。
将开发大型程序的个体过程细分为可以应用PSP2的片段,遵照PSP2过程循环增量地开发大型程序,从而支持迭代式的开发。在任何时间点,只有一个PSP2级过程是活动的。
二、TSP
- 软件开发通常是以团队形式进行的,因此仅有PSP是不够的。CMU-SEI又以PSP为基础,开发了TSP(Team Software Processes),即小组软件过程。
- TSP指导项目组中的成员如何有效规划和管理所面临的项目开发任务,并且使软件开发队伍始终以最佳状态来完成工作。
- TSP实施集体管理与自我管理相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对小组开发过程进行定义、度量和改进。
- 小组远不只是一群有才能的个人的集合。为了建立并保持高效率的工作关系,小组需要共同的目标,大家一致同意的行动计划和适当的领导,小组成员要在需要的时候乐于寻求帮助。
1. TSP实施条件
- 需要有高层主管和各级经理的支持,以取得必要的资源。
- 整个软件开发小组至少应在CMMI的第二级(已管理级)。
- 全体软件开发人员必须经过PSP的培训,并有按TSP工作的愿望和热情。
- 开发小组成员应在2到20个人之间。经验表明,4~8个人的小组工作效率最高。
2 .TSP的管理原则
- TSP遵循集体管理和自己管理自己相结合的原则。
- 在每一项目阶段开始要作好工作计划。
- 要有明确定义的目标,努力完成已经接受的委托任务。
- 应定期追踪项目进展状态并进行定期汇报。
- 按自己管理自己的原则管理软件过程。
- 按集体管理的原则进行管理,全体成员都要参加和关心小组工作的规划、进展的追踪和决策的制订等项工作。
3 .TSP的循环开发策略
- TSP通过循环开发策略完成产品。先在第一个周期中开发出最小的合理产品,再决定在接下来的每一个周期中要加进去的功能。这样的步骤可以保证得到一系列最终产品的可运行的前期版本。每个周期包括7个步骤:决定策略、进行计划、考虑需求、设计、实现、测试和最终检查。
4 .TSP度量要素
- 对软件开发小组进行度量的基本要素:
- 所编文档页数;
- 所编代码行数;
- 花费在各个开发阶段或各个开发任务上的时间;
- 在各个开发阶段中注入和改正的差错数目;
- 在各个阶段对最终产品增加的价值。
- TSP有关质量度量的经验原则:
- 软件设计时间应大于软件实现时间;
- 设计评审时间至少应占一半以上的设计时间;
- 代码评审时间应大于编制代码的时间;
- 每千行源程序在编译阶段发现的差错不应超过10个;
- 每千行源程序在测试阶段发现的差错不应超过5个。
三、PSP、TSP与CMMI之间的关系
- PSP、 TSP 和CMMI为软件产业提供了一个集成化的、三维的软件过程改进框架。
- PSP注重于个人的技能,能够指导软件工程师保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过PSP的学习和实践,软件工程师们能够在他们参与的项目中更为高效和高质量地完成工作,从而保证了项目整体的进度和质量。
- TSP注重团队的高效工作和产品交付能力,结合PSP的工程技能,使软件工程师将个体过程结合进小组软件过程,并通过指导管理层如何支持和授权项目小组,坚持团队的高质量的工作,并且依据数据进行项目管理,以达到生产高质量产品的目的。
- CMMI注重于组织能力和成熟度的提高,它提供了评价组织的能力、改进组织过程的管理方式,比TSP具有更高的层次。
- CMMI关注“做什么”,PSP和TSP则提供了“怎么做”。
原文地址:https://blog.csdn.net/yongchaocsdn/article/details/80893195