个人软件过程(PSP)简介 一、 前言 个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。 二、 个体软件过程简介 1. 综述 在本次课上,我学习了个人软件过程(Personal Software Process,PSP)的相关知识,在本次报告中,将结合一些资料对个人软件过程的相关概念进行介绍,并写一下我自己的观点。 要开发高质量的软件,必须改进软件生产过程,这是软件工程的常识。目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们"应该做什么",而没有告诉我们"应该怎样做",并未提供有关实现关键过程域所需要的具体知识和技能。为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal Software Process,PSP)。 2. 个体度量过程PSP0和PSP0.1 PSP0是建立个体过程的第一步。通过这一步,学会使用PSP的各种表格采集过程的有关数据,此时执行的是该软件开发单位的当前过程,通常包括计划、开发(包括设计、编码、编译和测试)以及后置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选定的缺陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,用作为测量在PSP的过程中进步的基准。 PSP0.1增加了编码标准、程序规模度量和过程改善建议等三个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、解决问题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。 在这一阶段,必须理解和学会使用规划和度量的技术,以准确地满足期望的需求,其中最重要的是要保持数据的一致性、有用性和简洁性。 我认为,在这一阶段,重点是理解程序员之间约定俗称的编码规范。在大型的程序开发中,需要很多人协作才能完成任务。要想写作编写代码,必须要统一编码规范。另外,一个合格的程序员,应该随时记录自己的软件开发过程中出现的问题以及解决这些问题的方法,作必要的备案。这些都会是今后可以用到的重要材料。 3. 个体质量管理过程PSP2和PSP2.1 PSP2的重点是个体质量管理,根据程序的缺陷善建立检测 个人软件过程PSP之过程改进表,按照检测表进行设计复查和代码复查(有时也称"代码走查"),以便及早发现缺陷,使修复缺陷的代价最小。随着个人经验和技术的积累,还应学会怎样改进检测表以适应自己的要求。PSP2.1则论述设计过程和设计模板,介绍设计方法,并提供了设第1页 计模板、但PSP并不强调选用什么设计方法,而强调设计完备性准则和设计验证技术。 我认为,在这一阶段,开发者最重要的学会对自己的代码进行恰当的评估,并学会用正确的方法来复查自己的代码,及早地找出代码中的Bug,防止缺陷进入之后的开发流程导致缺陷修复的成本增加。 4. 个体质量管理过程PSP3 PSP3的目标是把个体开发小程序所能达到的生产效率和生产质量,延伸到大型程序;其方法是采用螺旋式上升过程,即迭代增量式开发方法,首先把大型程序分解成小的模块,然后对每个模块按照PSP2.1所描述的过程进行开发,最后把这些模块逐步集成为完整的软件产品。 应用PSP3开发大型软件系统,必须采用增量式开发方法,并要求每一个增量都具有很高的质量。在这样的前提下,在新一轮开发循环中,可以采用回归测试的方法,集中力量考察新增加的这个(这些)增量是否符合要求。因此,要求在PSP2中进行严格的设计复查和代码复查,并在PSP2.1中努力遵循设计结束准则。 我认为,在PSP3阶段,一个程序员已经达到了一个较高的水平,他所面对的往往是一些大型的程序,因此合理的安排自己的任务、约束自己的代码,从而提高自己代码的质量就显得尤为重要。增量式开发模式是大型程序开发的有效方法,在采用恰当的增量的同时,利用PSP3来提高代码的质量,将十分有利于快速开发高质量的大型程序。 5. 总结 作为软件学院的一员,不论将来要从事技术还是算法的研究,利用PSP提高自己的程序修为,我认为还是很有必要的,一个人的要快速成长,必须依靠正确的理论指导,PSP正式这样一个较为科学的理论。PSP从低到高的等级,代表着从低到高成长阶段,在不同的阶段,我们应该用适应本阶段的要求来约束自己,这样不断提高所在的阶段,最终成为一个合格的程序员。 从对个体软件过程框架的概要描述中,可以清楚地看到,如何作好项目规划和如何保证产品质量,是任何软件开发过程中最基本的问题。 PSP可以帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的。 三、 参考文献 1、 吴超英、车向东译,《个体软件开发过程》,人民邮电出版社,2001。 2、 《软件工程(原书第8版) 》 萨默维尔 (作者), 程成 (译者), 陈霞 (译者) 机械工业出版社,2007 3、 《软件工程规范》,汉弗莱 (Watts S.Humphrey) (作者), 傅为 (译者), 苏俊 (译者), 许青松 (译者) ,清华大学出版社 4、 《高效程序员的45个习惯:敏捷开发修炼之道》,苏帕拉马尼亚姆(Venkat Subramaniam) (作者), 亨特(Andy Hunt) (作者), 钱安川 (译者), 郑柯 (译者) ,人民邮电出版社,2010 第2页 本文来源:https://www.wddqw.com/doc/124b7c0fde36a32d7375a417866fb84ae55cc372.html