软件工作量及投资评估方法研究

时间:2021-03-15 18:15:05 论文范文 我要投稿

关于软件工作量及投资评估方法研究

  摘要:随着信息产业的飞速发展,软件工作量及成本投资评估一直是企业的难点,为了解决这个问题,文章对软件工作量及成本评估方法、流程进行了探讨。

关于软件工作量及投资评估方法研究

  关键词:软件工作量;软件工程经济;软件项目管理;成本评估方法

  随着信息技术的快速发展和应用领域的扩大深入,软件工作量及成本投资评估方法的研究正在成为当前及未来项目管理研究的热点之一。目前多数软件企业遇到项目投资前项目工作量不明确,投资评估是长期存在的难点,工作量统计一直采用收集各厂家工作量数据为主,对比各厂家工作量数据,最后根据企业需要决定开发厂家,工作量及成本投资估算缺乏科学性,较少采用RO1(投资回报)的分析,通过本文研究工作量及成本投资评估方法的研究,为企业提供工作量及成本投资提供科学的、相对准确的方法,为企业商业投资提供参考,它为解决软件危机所表现出的各种问题提供了思路和方案。

  一、软件工作量及成本评估方法简介

  目前,国际上已有许多软件规模估计方法,如功能点(FunctionPoint)、特征点(FeaturePoint)、对象点(ObjectPoint)、德尔菲(Delphi)、模糊逻辑(FuzzyLogic)、标准构件法(StandardComponent)等,这些方法随着各国研究者的不断研究细化又有许多具体的方法,如国际功能点用户协会 (IFPUGTheIntemationalFunctionPointUsersGroup)提出的IFPUG方法、英国软件度量协会 (UKSMAUnitedKing—domSoftwraeMetricsAssociation)提出的MkIIFPA方法、荷兰功能点用户协会 fNEFPUGNethedandsFunctionPointUsersGroup)提出的NESMA方法以及软件度量共同协会 (COSMICtheCOmmonSoftwareMetricsConsortium)提出的COSMIC—FFP方法,这些方法都属于 Albrecht功能点(FuncitonPoint)方法的发展和细化。

  目前大部分软件估计方法有工具支持。国际上目前已经有一些组织吸收和积累世界各地软件企业的软件估计和度量数据,建立了被广泛使用的历史数据库,如在功能规模度量领域,有一个ISBSG(国际软件基准组织InternationalSofwtareBenehmrakingStandardsGroup)数据库。另外,CO—COMOIIEsfimMingModel也有丰富的估计和度量数据提供。

  COCOMII:Boehm在其经典著作“软件工程经济学” (softwareengineeringconomics)中,介绍了一种软件估算模型的层次体系,称为COCOMO(构造性成本模型,COn— structiveCOstMOde1),它代表了软件估算的一个综合经验模型。COCOMOII是软件成本估算模型,是软件决策中成本和进度关系模型,涉及软件开发工作量、预算、进度、软件质量。

  功能点估算法是一种在需求分析阶段基于系统功能的一种规模估计方法。通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。这种方法的计算公式是:功能点=信息处理规模×技术复杂度。信息处理规模包括各种输入、输出、查询、内部逻辑文件数、外部接口文件数等等;技术复杂度包括性能复杂度、配置项目复杂度、数据通信复杂度、分布式处理复杂度、在线更新复杂度等等。

  运算法:是一种简单直观的估计方法,它根据规模估计的结果和相应的系数运算得到工作量估计。

  专家法(Wideband—Delphi):Delphi法是一种专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别。对于需要预测和深度分析的领域,依赖于专家的技术指导,可以获得较为客观的估算。通过专家们的互相讨论,还可以博取众长。

  当使用COCOMOII和功能点估算时,虽然两者是估算方法中比较科学的方法但也存在一些主观判断,一般存在很大主观判断时采用此方法。

  类比法:类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到估计数据。

  三点法:这种方法共估计三个值,软件产品预期规模的一般值、最大值和最小值。通过这三个值的计算可得到一个统计学上的期望值和一个标准偏差。

  工作量及成本估算不仅只是在项目初期展开,而是在项目的各个阶段都进行工作量及成本的估算,随着项目的开展,工作量估算更加准确。

  二、软件工作量及成本评估流程

  提交准确估算的能力取决于需求被明确定义的`程度。但是缺少明确定义的需求却不是不进行估算的借口。准确的估算需要以下关键元素:(1)对需求的基本理解;(2)准确计算产品规模的能力;(3)对产品复杂度的评定;(4)对厂家交付能力的描述。厂家的交付能力几个方面决定,包括:厂家开发过程,特别是避免无附加值活动的过程的能力(返工、官僚主义的拖延、沟通开销);软件工程人员的能力,特别是有关计算机科学问题和项目应用领域问题的经验;环境,它由能支持有效的软件开发和能使过程自动化的工具和技术构成;所有要求的产品质量,包括产品的特征、性能、可靠性和适应性。

  软件规模估算:软件估算首先要将整个工程的规模估算出来,才能进行下面的其他估算。规模,就是一个工程可量化的结果,是用具体数字来体现项目的描述。规模估算的信息来源是清晰、有界限的用户需求。软件规模度量单位一般使用功能点和SLOC(代码行)两种方法。在定制构造占绝对优势的应用中,SLOC(代码行)很好用,还因为SLOC(代码行)度量很容易自动化。但目前,语言的进步和构件的使用、自动化源代码生成以及面向对象技术,已经使SLOC(代码行)成为一种更有歧义的度量。功能点也有大量的追随者,功能的主要优势是,独立于技术,因此是一个在项目和组织之间进行比较的更好的原始单位。

  功能点的主要不足是,它的原始定义很抽象,并且不容易直接从进化的制品得到度量数据。虽然规模度量的两种方法都有他们的缺点,使用一种度量总比什么度量都不用的好。任何进行跨项目或跨组织比较的,都应使用功能点作为规模的度量标准。功能点也可能是一个项目生命周期的前期阶段更准确的估计量。但是在后期阶段,SLOC(代码行)是一个各种度量视角的更有用和更精确的度量基础。软件工作量估算:这是对开发软件所需的工作时间的估算,它和进度估算一起决定了开发团队的规模和构建。

  通常以人时、人天、人月、人年的单位来衡量,这些不同单位之间可以进行合理的转换。软件成本估算:包括人力、物质、有形的、无形的支出成本估算,其中以人力成本为主要部分。比较容易被忽视的使学习成本、软件培训成本、人员变动风险成本、开发延期成本等,一些潜在成本消耗。本课题研究中涉及成本单价由广东省电信直接提供。