在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性。成本估算是立项的依据,是项目计划的基础。
软件估算方法包括:规模估算、工作量估算、进度估算和成本估算。
本节主要介绍规模估算。软件成本、进度等估算方法请参见下一篇文章。
规模估算
规模估算主要有代码行估算和功能点估算两种方法。
1 代码行数估算LOC:根据历史项目经验推测。PERT加权平均法。
预期规模E=(a+4b+c)/6,标准差SD=(c-a)/6。1sd的概率为68%,2sd的概率为95,3sd的概率为99。此方法估值偏低。
2 功能点数估算FP::IFPUG
功能点方法是一种估算软件项目大小的方法,它是从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。在2013年由工业和信息化部发布的行业标准《软件研发成本度量规范》中也推荐使用功能点方法进行软件规模度量,进而对软件项目工作量、工期、成本进行估算。
2.1 估算流程:需求-》WBS分解-》功能点(代码行数)-》经验系数(复杂度、技术难度、生产率等)-》工作量(人月)-》进度-》成本。
1)根据软件需求进行WBS分解,获得工作项。
2)然后划分类别。
3)计算工作任务涉及的数据项和数据文件数目,据此估算每个需求的功能点权重(功能点数)。
4)再根据调整系数(经验得出)计算最后的功能点总数。
2.2 估算参数