软件项目估计方法及应用.doc
软件项目估计方法及应用 凡事预则立,不预则废。一个好的开始项目等于成功的一半,软件项目的成功关键在于一个切实可行、安排合理的项目计划。某种程度上来说,项目计划的好坏已经决定了项目的成败。而要做好项目计划,则必须从优秀的项目估计开始。 《孙子兵法》云:“夫未战而庙算胜者,得算多也,未战而庙算不胜者,得算少也。多算胜,少算不胜,而况于无算乎 !”意思是说,在拉开战幕之前,就详细分析敌我实力,商讨周密的作战计划,充分评估有利条件和不利条件,开战之后就往往会取得胜利 ;反之,没能进行周密“庙算”,开战之后就往往会失败,更何况不进行“庙算”呢 ?由此可见,预先估计对于一件事情的成败的重要性是至关重要的,甚至是决定性的。 项目估计如此重要,那么我们如何才能做好估计呢 ? 很多项目经理会说,我们也做了估计,可是最终还是失败了,这又是为什么呢 ?对这 些失败的项目进行“尸体解剖”,我们发现这些项目经理往往是对项目估计认识不充分,缺少正确的项目估计的技能和知识,从而导致项目估计工作不完整、不全面、不准确,因而无法有效的支撑项目计划的制定。 估计的方法及流程 以项目的初始估计为例,完整的项目估计活动应该遵循如图所示的步骤: (1) 作为项目估计的输入,需求要尽可能的明确。需求描述的越清晰、越完整,估计的结果偏差就越小。 (2) 在估计的操作中,被估计的需求应进行一定程度的分解。理论上,分解的颗粒度越精细,估计的结果的精度也越高。但在实际操作中 ,需要考虑两个方面的因素。一方面,项目从启动到结束,需求的可分解性是逐渐增加的,因此在最初的阶段,需求分解不太可能达到非常精细的程度,即使强制进行了细致的分解,对估计结果的影响也不明显 ;另外一个方面,需求分解的越细致,操作的工作量也越大,估计的成本也越高。因此,需要把握需求分解的颗粒度,要找到其中的平衡点。 (3) 规模估计的目的是衡量最终交付产品的规模量级。对于软件项目的规模一般是代码行 (LOC,或 KLOC)。常用估计方法通常有 Delphi 方法、类比法、功能点估计法和 PERT估计法 a) Delphi 法 i、 组织者向专家发放项目需求,估计专家熟悉项目需求。一般由 3~ 4 名专家参与估计为佳。 ii、 组织者向各专家提供项目规格和估计表格 ; iii、组织者召集小组会各专家讨论与规模相关的因素,并设定估计结论的接受标准。一般以估