软件工作量的估计方法——第二周作业
众所周知,软件作为一种非实体的产品,其生产方式与传统的硬件生成迥然不同,而且在软件的生命周期中存在许多不可预期的情况。为了评估一个产品的成本、价值,软件工作量的估计是很有必不可少的。但是软件工作量的估计又仅仅只是简单的估计而已,因为不准确的估计结果可能对项目产生很大的影响。在此,我将根据查找的资料简单介绍几种软件工作量的估计方法,并基于每种方法的原理特点谈谈我的一些看法。
1、 基于WBS的工作量估计方法
基于WBS的估计方法是自底向上的方法,即对项目按照WBS原则(包括任务分层原则、80小时原则、责任到人原则等具体见以下链接)进行分解。
http://wenku.baidu.com/link?url=2LR28SH3Qbg_GYQAB0cCA0LV4leZamgBYCFuMT5mrnMPJams7cfM54mYl9rvXiSQgHl2V51c0VuWJebkAkzVf8GDdijE-82sUf8MhSeCOZ_
2、 Pert Sizing估算方法
Pert Sizing是一种加权平均法。在估计每一项任务时,首先按最佳的、可能的、悲观的悲观的三种情况给出估计值,记作a、m、b。实用下式求得最终估计值。
最终估计值=(a+4*m+b)/6
详细内容见:http://wenku.baidu.com/link?url=ZU9AWgRdFUuKN47Hyv05otj8dClp4Z6dSHIbzMH8hF3vFPz9Jsw2_ycwsdisJCAh-bhfKvBYtlsELZNFiK0Hjo7rMQbm7mRl504yPlmHjEi
3、 宽带DELPHI方法估算方法
DELPHI是一种工作量投入较高,估算时间较长的一种估算方法。当然,基于其所做的较多工作,评估结果较为准确。它的估算流程具体如下:
除此之外还有些主要侧重于对项目规模的估算方法
1、 基于代码行(SLOC)的工作量估计方法
基于代码行的工作量的估算方法,先将项目进行分解,然后同以前的 项目进行类比,估算出代码行数,最后使用生产率方法、参数模型法将代码转化成行数。
2、 功能点分析(FPA)法
功能点的具体过程如下:
(1) 对估算功能单元的类型进行识别
(2) 计算每种类型的复杂度
(3) 计算总体的调整前的功能点数
(4) 根据调整因子对功能点数进行调整
计算公式如下:
FP=UFC*TCF
UFC,未调整的功能点计数;TCF表示技术复杂度因子
3、 用例点(UCP)分析法
详细内容见http://blog.sina.com.cn/s/blog_93c2f6700101384z.html
以上的方法,并不存在某一种方法胜过所有的方法。在估算的过程中具体使用某一种方法还是要根据实际情况决定。在项目进行的每个阶段中,针对不同的软件项目适于采用的方法都是不同的。比如说在工期紧迫或者在项目中后期重新估算的时候可以采用Pert Sizing估算方法,因为其容易操作和理解,而在项目启动的阶段的初步估算使用DELPHI和基于WBS的工作量估计则更为合适,因为这两者的估计结果相对而言更为准确。