1.1.3 软件开发工作量和时间估算
软件开发工作量估算是软件成本估算的重要部分,软件开发的总时间和总工作量的估算策略有两种。一种是自顶向下,即首先对整个项目的总开发时间和总工作量进行估算,然后分解到各阶段、步骤和工作单元。另一种是自底向上,即首先估计各工作单元所需的时间和工作量,然后相加,得到各步骤和阶段直至整个项目的总工作量和总时间。无论采取哪种思路,都必须使用一定的方法,有以下三种常用的方法:
(1)专家估算法
专家估算法依靠一个或多个专家,对要求的项目做出估计,其准确程度取决于专家对估算项目的定性参数的了解和经验。该方法适宜于自顶向下的策略。
(2)类推估算法
对于自顶向下策略,类推估算法是将要估算的项目的总体参数与类似项目进行直接比较从而获得结果。对于自底向上策略,类推估算法是将具有相似条件的工作单元进行比较,获得估算结果。
(3)算式估算法
经验表明,软件开发的人力投入M与软件项目的指令数L存在如下关系:
其中P为常数,单位为指令数/人·日。使用该公式,必须用专家估算法和类推估算法估算指令数L和P值。而且其中L是源指令数还是目标指令数、是否包含未交付的试验指令、P值如何选择、是否包括系统分析、是否包括质量保证和项目管理等问题难以界定。因此式(1-1)实际使用存在许多困难。大量的研究发现,对式(1-1)稍作修改,得:
式(1-2)与实际统计数据一致,该式被称为幂定律算法。其中E为到交付使用为止的总的开发工作量,单位为人·月;S为源指令数,不包括注释,但包括数据说明、公式或类似的语句;常数r和c为校正因子,若S的单位为103条,E的单位为人·月,则r∈[1,5],c∈[0.9,1.5]。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。