技术开发 频道

软件项目估计

    一个有效的软件项目估计应满足以下特点或要求

    ● 软件项目估计结果要能再现

    如上所说,具有越多的项目准确信息,估计的结果越准确。这并不是说后面的估计可以和前面的估计完全不同,两者风马牛不相干。有效估计是这样,后面进行的估计在相同条件下,即拥有项目资料的相等的情况,不同的估计人员应用相同的估计方法,两者的结果是一样的。这就是项目估计结果的可再现性。当然,随着项目不断深入,估计人员应该会获得更多,更详细的项目资料,那么估计的结果应该也更加准确和精确。这种对估计过程进行比较可以为以后的估计积累更多的经验。事实上,对估计活动连续的跟踪可以建立一种机制,这种机制可以清楚的显示项目需求等变更情况。(有人在连续进行软件项目估计的企业做过调查,他们发现,在项目的过程中,一般每月会有1~3%需求蔓延)

    ● 应用了多种估计方法

    采用多种估计方法可以从不同的角度比较估计结果,减少估计的错误和保证安全

    ● 估计结果要经过事实求实地推敲和质疑

    ● 估计过程是可管理和控制的

    ● 估计过程是文档化

    4 软件项目估计方法

    大部分估计方法主要是提供一个对估计对象的规模的度量,在此基础上,可以算出相关的工作量和成本。如果是对整个项目进行估计,得到的总体的成本可以根据一个百分比分配到软件开发的每一个阶段。现在有许多不同的著名估计方法。Wide-band Delphi其实是估计过程向导,模糊逻辑法的目的是借助模糊逻辑理论,拟定量计算估计项目和参考项目的相似度,从而根据历史项目(参考项目)的历史数据计算估计项目的规模,这要求机构有历史数据并且收集的历史数据是有效的。代码行、功能点和对象点等方法是根据软件项目(或产品)的特征提出的软件估计方法。从文献来看,功能点方法是一种目前最受拥戴的方法,Cocomo模型也广泛地被使用。在原理上,功能点方法和Cocomo模型都是基于客户需求或软件规模估计工作量。

    代码行的缺点是要等到项目的最后阶段才能得到,而且编码一般只占10%左右系统开发工作量。如前文所叙,功能点方法的优势可以从目前有许多不同的功能点方法这个方面体现出来。 功能点方法的缺点是在项目的早期阶段如需求分析阶段得不到项目足够的准确信息,可能估计的结果不过准确和足够精确。但无论如何,不考虑目前提出的一些新的估计方法如构件点(Construction Points)、预测性对象点(Predictive Object Points)等未来的发展,功能点方法是目前最受欢迎和广泛使用的方法,目前被国际标准化组织纳入国际标准的方法都是功能点方法。

    自从1979年IBM的Albrecht提出第一个在世界范围内有影响的功能点方法以来,许多针对原著变革、扩展的可供选择的方法被提出来。图2以时间顺序显示了包括那些在下面要详细描述的方法的演变重要阶段。方法之间的箭头表示各个扩展版本的相互影响。图中显示最近的方法是COSMIC全面功能点。功能分析方法度量过程是对软件功能和规模的间接定量度量,它基于客观的外部应用接口和主观的内部应用复杂度以及总体的性能特征,它包括三个逻辑部分组成:未调整的功能点、加权因子和功能点:

    功能大小(the functional size),通过度量每一个独立的功能进行计算。这是指未调整的功能点(UFP unadusted function points)的度量过程。这个方面又包括数据流功能类型度量和事物功能类型度量,包括对外部输入、外部输出、外部查询、内部逻辑文件和外部接口文件的计数。

 

图2功能点方法发展历程
0
相关文章