PSP中代码的估算、度量和错误的记录
PSP(Psrsonal Software Process,个体软件过程)是一个过程描述、测度和方法的结构化集合,能够帮助软件工程师改善其个人性能。它提供了表格、脚本和标准,以帮助软件工程师估算和计划其工作。它显示了如何定义过程及如何测量其质量和生产率。
一个基本的PSP原则是:每个人都是不同的,对于某个工程师有效的方法不一定适合另一个,这样,PSP帮助工程师测量和跟踪他们自己的工作,使得他们能够找到最适合自己的方法。
软件工程师在做项目的开发计划时,或是由经验而来,或是由用户需求而定,往往存在计划与实际相差比较大的情况,或者是前松后紧,遗漏过多,造成维护量的增加。如何减少这种情况的发生?就需要把经验量化并做出分析。PSP做到了这一点,它能够记录项目的估算情况与实际情况,并进行比较分析,既利于有经验的软件工程师提高以后项目的预测率,也利于新手软件开发人员参考其他工程师的经验。项目的开发成本是一个很重要的问题。PSP能够记录项目的估算成本与实际成本,提高软件开发人员对项目成本估算的准确度,这对在项目早期就有一个清楚的认识大有帮助,以利于以后工作的规划与开展。
现在软件在大多数基于计算机的系统中已成为最昂贵的部分,如果软件成本估算的误差很大,就会使盈利变成亏损。软件项目估算是一种解决问题的形式,在多数情况下,要解决的问题非常复杂,想一次性整体解决比较困难。因此,对问题进行分解,把其分解成一组较小的接近于最终解决的可控的子问题,再定义它们的特性。
估算技术一般有代码行(LOC)和功能点(FP)估算法,这是两种不同的估算技术,但有许多共同特性。项目计划人员首先给出一个有界的软件范围的叙述,再由此尝试着把软件分解成一些小的可分别独立进行估算的子功能。然后对每一个子功能估算其LOC或FP(即估算变量)。接着,把基线生产率度量用做特定的估算变量,导出子功能的成本或工作量。将子功能的估算进行综合后就能得到整个项目的总估算。
LOC或FP估算技术对于分解所需要的详细程度是不同的。当用LOC作为估算变量时,功能分解是绝对必要的且需要达到很详细的程度。而估算功能点所需要的数据是宏观的量,当把FP当做估算变量时所需要的分解程度可以不很详细。LOC是直接估算的,而FP是通过估计输入、输出、数据文件、查询和外部接口的数目,以及复杂性校正值间接地确定的。除去所用到的估算变量,项目计划人员必须对每一个分解的功能提出一个有代表性的估算值范围。利用历史数据或凭实际经验,计划人员对每个功能分别按乐观的、可能的、悲观的三种情况给出LOC或FP估计值。
为了反映开发特性的影响,应当随时修正平均生产率。LOC和FP估算表的具体说明见目录下。
LOC(Lines of Code,代码行)估算代码尺寸
把项目划分为若干个功能,分别计算每个功能的代码长度,所有功能代码行之和即项目的代码长度。
LOC估算表各项说明:
每个功能的代码长度估算值=(乐观值+4*可能值+悲观值)/6
估算工作量=代码总估算长度/估算生产率
估算总成本=日薪*估算工作量
估算行成本=估算总成本/估算代码长度
估算生产率由经验获得
FP(功能点)估算代码尺寸
项目的功能点数是几个测量参数(用户输入数、用户输出数、用户查询数、文件数、外部接口数)的功能点之和。
用户输入数:计算每个用户输入,它们向软件提供面向应用的数据。输入应该与查询区分开来,分别计算。
用户输出数:计算每个用户输出,它们向软件提供面向应用的信息。这里,输出是指报表、屏幕、出错信息,等等。一个报表中的单个数据项不单独计算。
用户查询数:一个查询被定义为一次联机输入,它导致软件以联机输出的方式产生实时的响应。每一个不同的查询都要计算。
文件数:计算每个逻辑的主文件(如数据的一个逻辑组合,它可能是某个大型数据库的一部分或是一个独立的文件)。
外部接口数:计算所有机器可读的接口(如磁带或磁盘上的数据文件),利用这些接口可以将信息从一个系统传送到另一个系统。
FP估算表各项说明:
每个测量参数的估算FP计数=估算值*加权因子
项目估算FP=各参数FP计数之和*复杂度调整因子
估算生产率由经验获得
估算工作量=项目估算FP/估算生产率
估算总成本=日薪*估算工作量
单个FP估算成本=估算总成本/估算FP
项目测量
项目测量的目的是双重的。首先,这些度量能够指导进行一些必要的调整以避免延迟,并减少潜在问题及风险,从而使得开发时间减到最少。其次,项目度量可在项目进行的基础上评估产品质量,并且可在必要时修改技术方法以改进质量。
随着质量的提高,错误会减到最小,而随着错误数的减少,项目中所需的修改工作量也会降低,就导致整个项目成本的降低。
软件测量可分为直接测量和间接测量。软件工程过程的直接测量,包括花费的成本和工作量。产品的直接测量,包括产生的代码行、执行速度、内存大小及某段时间内报告的缺陷。产品的间接测量,包括功能、质量、复杂性、有效性、可靠性、可维护性及其他能力。
测量技术有LOC测量和FP测量法,LOC测量是直接测量,FP测量是间接测量。
LOC(Lines of Code,代码行)测量代码尺寸
把项目划分为若干个功能,分别计算每个功能的代码长度,所有功能代码行之和即项目的代码长度。
LOC测量表各项说明:
实际总成本=日薪*实际工作量
实际行成本=实际总成本/实际代码长度
实际生产率=实际代码长度/实际工作量
FP(功能点)测量代码尺寸
每个测量参数的实际FP计数=实际值*加权因子
项目实际FP=各参数FP计数之和*复杂度调整因子
实际总成本=日薪*实际工作量
单个FP成本=总成本/FP计数
实际生产率=实际FP计数/实际工作量
项目进度
为了更精确地制订计划,可以把项目划分为若干个小任务,分别制定每个任务的完成计划。
工作量的安排可参考LOC估算工作量或FP估算工作量,通过工具提供的LOC估算表或FP估算表,可以查看估算工作量的值。
错误记录
记录项目各个阶段的错误及解决办法。软件工程师们都知道,缺陷排除效率(DRE)是软件质量度量的指标之一。当把一个项目作为一个整体来考虑时,DRE按如下方式定义:
DRE=E/(E+D)
其中E=软件交付给最终用户之前所发现的错误数
D=软件交付之后所发现的缺陷数
最理想的DRE值是1,即软件中没有发现缺陷。但现实中,D会大于0,如何把错误发现的阶段尽量控制在软件交付使用前?PSP能帮您改善这一点。
posted on 2012-12-18 17:10
Klarke 阅读(257)
评论(0) 编辑 收藏 引用