📄 200604231319105.html
字号:
<html>
<head><title>个人软件过程</title></head>
<center><h1>个人软件过程</h1></center>
<div><P align=right><FONT color=#f70938><FONT face=黑体><a href="200604112229525.html" tppabs="http://www.itisedu.com/phrase/200604112229525.html" target="_new">中科永联</a>高级技术培训中心(</FONT><FONT face=黑体>www.itisedu.com</FONT><FONT face=黑体>)<IMG src="200632719121358.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/200632719121358.jpg" border=0></FONT></FONT></P>
<P><FONT face=Verdana> <a href="200604231319105.html" tppabs="http://www.itisedu.com/phrase/200604231319105.html" target="_new">个人软件过程</a>(<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604231320005.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604231320005.html'" tppabs="http://www.itisedu.com/phrase/200604231320005.html" target="_new">Personal Software Process</a>,<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604231319415.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604231319415.html'" tppabs="http://www.itisedu.com/phrase/200604231319415.html" target="_new">PSP</a>)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括<a href="200603282233345.html" tppabs="http://www.itisedu.com/phrase/200603282233345.html" target="_new">软件开发</a>表格、指南和规程的结构化<a href="200603061723295.html" tppabs="http://www.itisedu.com/phrase/200603061723295.html" target="_new">框架</a>。PSP与具体的技术(<a href="200602281700255.html" tppabs="http://www.itisedu.com/phrase/200602281700255.html" target="_new">程序设计语言</a>、工具或者设计方法)相对独立,其原则能够应用到几乎任何的<a href="200602281725525.html" tppabs="http://www.itisedu.com/phrase/200602281725525.html" target="_new">软件工程</a>任务之中。PSP能够说明<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603061000265.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603061000265.html'" tppabs="http://www.itisedu.com/phrase/200603061000265.html" target="_new">个体软件过程</a>的原则; 帮助<a href="200604232134205.html" tppabs="http://www.itisedu.com/phrase/200604232134205.html" target="_new">软件</a>工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立<a href="200604231331545.html" tppabs="http://www.itisedu.com/phrase/200604231331545.html" target="_new">度量</a>个体<a href="200602282140185.html" tppabs="http://www.itisedu.com/phrase/200602282140185.html" target="_new">软件过程</a>改善的基准;确定过程的改变对软件工程师能力的影响。</FONT></P>
<P><FONT face=Verdana> 随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。目前,业界公认由CMU/SEI开发的软件<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604231313565.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604231313565.html'" tppabs="http://www.itisedu.com/phrase/200604231313565.html" target="_new">能力成熟度模型</a>SW-<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603051508215.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603051508215.html'" tppabs="http://www.itisedu.com/phrase/200603051508215.html" target="_new">CMM</a>是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。但是,CMM虽然提供了一个有力的<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603281517035.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603281517035.html'" tppabs="http://www.itisedu.com/phrase/200603281517035.html" target="_new">软件过程改进</a>框架,却只告诉我们"应该做什么",而没有告诉我们"应该怎样做",并未提供有关实现<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603291439315.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603291439315.html'" tppabs="http://www.itisedu.com/phrase/200603291439315.html" target="_new">关键过程域</a>所需要的具体知识和技能。为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal <a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604232214575.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604232214575.html'" tppabs="http://www.itisedu.com/phrase/200604232214575.html" target="_new">Software Process</a>,PSP)。</FONT></P>
<P><FONT face=Verdana> 在CMM1.1版本的18个关键过程域中有12个与PSP有关,据统计,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。因此,一个单位的软件开发人员如能接受PSP培训,对该单位软件能力成熟度的升级是一个有力的保证。CMM侧重于软件企业中有关软件过程的宏观管理,面向软件开发单位,PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人员。二者互相支持,互相补充,缺一不可。</FONT></P>
<P><FONT face=Verdana> 按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的<a href="200603101518295.html" tppabs="http://www.itisedu.com/phrase/200603101518295.html" target="_new">需求</a>。接着就是度量产品质量,有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此,必须对目标进行分解和度量,使软件质量能够"测量"。然后就是理解当前过程,查找问题,并对过程进行调整。最后应用调整后的过程,度量实践结果,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。 </FONT></P>
<P><FONT face=Verdana> 就象CMM为软件企业的能力提供一个阶梯式的进化框架一样,PSP为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了新的元素。这个进化框架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具,使其清楚地认识到自己的表现和潜力,从而可以提高自己的技能和水平。</FONT></P>
<P><FONT face=Verdana><STRONG>一、个体度量过程PSP0和PSP0.1</STRONG></FONT></P>
<P><FONT face=Verdana> PSP0的目的是建立个体过程<a href="200603130850315.html" tppabs="http://www.itisedu.com/phrase/200603130850315.html" target="_new">基线</a>,通过这一步,学会使用PSP的各种表格采集过程的有关数据,此时执行的是该软件开发单位的当前过程,通常包括计划、开发(包括设计、编码、编译和测试)以及后置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选定的缺陷<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">类型</a>标准、度量引入的缺陷个数和排除的缺陷个数等,用作为测量在PSP的过程中进步的基准。</FONT></P>
<P><FONT face=Verdana> PSP0.1增加了编码标准、<a href="200604232224305.html" tppabs="http://www.itisedu.com/phrase/200604232224305.html" target="_new">程序</a>规模度量和过程改善建议等三个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、解决问题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。</FONT></P>
<P><FONT face=Verdana> 应该强调指出,在PSP0阶段必须理解和学会使用不合格进行规划和度量的技术。设计一个好的表格并不容易,需要在实践中积累经验,以准确地满足期望的需求,其中最重要的是要保持数据的一致性、有用性和简洁性。</FONT></P>
<P><FONT face=Verdana><STRONG>二、个体规划过程PSP1和PSP1.1</STRONG></FONT></P>
<P><FONT face=Verdana> PSP1的重点是个体计划,引入了基于估计的计划方法PROBE(PROxy Based Estimating),用自己的历史数据来预测新程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。PSP1.1增加了对任务和进度的规划。</FONT></P>
<P><FONT face=Verdana> 在PSP1阶段应该学会编制项目开发计划,这不仅对承担大型软件的开发十分重要,即使是开发小型软件也必不可少。因为,只有对自己的能力有客观的评价,才能作出更加准确的计划,才能实事求是地接受和完成客户(顾客)委托的任务。</FONT></P>
<P><FONT face=Verdana><STRONG>三、个体质量管理过程PSP2和PSP2.1</STRONG></FONT></P>
<P><FONT face=Verdana> PSP2的重点是个体质量管理,根据程序的缺陷善建立检测表,按照检测表进行设计复查和代码复查(有时也称"代码走查"),以便及早发现缺陷,使修复缺陷的代价最小。随着个人经验和技术的积累,还应学会怎样改进检测表以适应自己的要求。PSP2.1则论述设计过程和设计模板,介绍设计方法,并提供了设计模板、但PSP并不强调选用什么设计方法,而强调设计完备性准则和设计验证技术。</FONT></P>
<P><FONT face=Verdana> 实施PSP的一个重要目标就是学会在开发软件的早期实际地、客观地处理由于人们的疏忽所造成的程序缺陷问题。人们都期盼获得高质量的软件,但是只有高素质的软件开发人员并遵循合适的软件过程,才能开发出高质量的软件,因此,PSP2引入并着重强调设计复查和代码复查技术,一个合格的软件开发人员必须掌握这两项基本技术。</FONT></P>
<P><FONT face=Verdana><STRONG>四、个体循环过程PSP3</STRONG></FONT></P>
<P><FONT face=Verdana> PSP3的目标是把个体开发小程序所能达到的生产效率和生产质量,延伸到大型程序;其方法是采用螺旋式上升过程,即迭代增量式开发方法,首先把大型程序分解成小的模块,然后对每个模块按照PSP2.1所描述的过程进行开发,最后把这些模块逐步集成为完整的软件产品。</FONT></P>
<P><FONT face=Verdana> 应用PSP3开发大型<a href="200602281706245.html" tppabs="http://www.itisedu.com/phrase/200602281706245.html" target="_new">软件系统</a>,必须采用增量式开发方法,并要求每一个增量都具有很高的质量。在这样的前提下,在新一轮开发循环中,可以采用<a href="200603120943595.html" tppabs="http://www.itisedu.com/phrase/200603120943595.html" target="_new">回归测试</a>的方法,集中力量考察新增加的这个(这些)增量是否符合要求。因此,要求在PSP2中进行严格的设计复查和代码复查,并在PSP2.1中努力遵循设计结束准则。</FONT></P>
<P><FONT face=Verdana> 从对个体软件过程框架的概要描述中,可以清楚地看到,如何作好项目规划和如何保证产品质量,是任何软件开发过程中最基本的问题。</FONT></P>
<P><FONT face=Verdana> PSP可以帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工程<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604240818395.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604240818395.html'" tppabs="http://www.itisedu.com/phrase/200604240818395.html" target="_new">过程改进</a>。</FONT></P>
<P><FONT face=Verdana> PSP软件工程规程为软件工程师提供了发展个人技能的结构化框架和必须掌握的方法。在软件行业,开发人员如果不经过PSP培训,就只能靠在开发中通过实践逐步掌握这些技能和方法,这不仅周期很长,要付出很大的代价,而且有越来越大的风险。 培训的方式有很多,既可以到专门的学校进修,也可以进行自学和参加培训班,例如:CMM网校中就有个体软件过程的课程。 <BR> <BR><STRONG>五、个人软件过程PSP之过程改进</STRONG></FONT></P><FONT face=Verdana>
<P><BR> PSP是一个需要逐步改进的过程。</P>
<P> Watts S. Humphrey服兵役的时候,必须学会机枪射击。开始训练时用猎枪打泥鸽子,Watts的成绩非常差,并且努力训练还是没有提高。教官对Watts进行了一段观察后,建议他用左手射击。作为一个习惯右手的人,开始Watts很不习惯,但练了几次后,Watts的成绩几乎总是接近优秀。</P>
<P> 这个事例说明了几个问题。首先,要通过测量来诊断一个问题,通过了解Watts击中了几只鸽子和脱靶的情况,很容易看出必须对Watts做些调整。然后,必须客观的分析测量的数据,通过观察Watts的射击,教官就可以分析Watts射击的过程—上膛、就位、跟踪目标、瞄准,最后射击。教官的目的就是发现Watts哪些步骤存在问题,找到问题所在,于是建议目的就是发现用左手射击。</P>
<P> 最后,也是最重要的,就是自身的变化。过程改进是非常困难的,因为人们很多时候不愿意尝试新事物。他们传统的习惯看起来很自然,以至于不相信改变会有什么帮助。Watts总是使用右手,从来没有想过左手射击会是什么样子。但是自Watts采纳了教官的建议,他的成绩就提高了。</P>
<P> 定义测量方法不是件容易的事情,但它总是可能的。首先定义测量方法。规定了测量方法后,就必须收集和分析数据。如果需要作些改进,接下来就要分析工作过程,看看什么地方需要改进。最后要想真正的改进,必须切实做出改进。</P>
<P> 如果Watts不改进他的射击过程,它的成绩几年后都不会有什么变化,也不会成为一个优秀的枪手。仅仅进行测量并不会产生什么提高,仅仅靠努力也不会有什么提高。在很大程度上工作方式决定了所得到的结果。如果还是按照老办法工作,得到的结果还会是老样子。</P>
<P> 改进工作方式与Watts学习射击的步骤一样。它们并不复杂,如图1所示:</P>
<P align=center><IMG src="200632719142327.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/200632719142327.jpg" border=0></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -