软件项目成本估算

2024-09-27

软件项目成本估算(精选7篇)

软件项目成本估算 篇1

一、引言

随着信息技术的突飞猛进, 软件产业的规模也越来越大, 软件的价格越来越高, 因此软件成本的估算受到相关人员的重视。 软件成本管理的目的是确保在批准的预算范围内完成项目所需要的各项任务。 软件价格的估算不是一门精确的学科, 它受到许多因素的影响, 包括技术影响、环境影响和变更的程度等等。 因此, 软件项目如果要开发成功, 关键在于要使用科学准确的软件成本估算方法。

二、关于软件项目的成本估算方式

估算软件项目的成本是对开发新的软件项目进行总的成本统计和工作量预测的过程, 能够计划和预估整个软件项目将花费的资金。 估算软件项目的成本可以通过多种途径, 主要的估算方式有以下几种:

1.专家鉴别法:专家鉴别法主要是运用于软件的开发前期, 是依靠领域里面相关专家的经验, 对软件的开发成本估算后, 从而实施打分。 相关专家对软件估算得出多个数值, 再想办法将多个值综合成最后的一个估算值。 该方式的优点在于预测速度快、成本花费低, 而缺点在于得出的估算值不准确, 与实际相差较大。

2.比较类推法:比较类推方法在评估同历史项目的应用范围和环境方面类似度较高的项目中运用较多, 开发的新软件通过和历史项目进行比较后, 推算出大致估算值。 它具有简单易行、花费少的优势, 但具有一定的局限性, 评估结果准确性差。

3.从顶至下:从顶至下进行估算指的是从整体开始, 对整个软件项目估算, 运用曾经的项目完成工作经验, 对项目的总费用和总工作量进行计算和预测, 从而根据一定比例发放到局部的组成中。 自顶向下估算路线虽然简单, 但估算精度较差, 通常在项目的初期或信息不足时进行。

4.从底至顶:从底至顶的估算过程指的是逐渐细化有待开发的项目软件, 细化到具体的工作量, 由专门的负责人对工作量进行估计, 给出估算值, 把局部工作量统加为总工作量。 该方法所得的结果比较精确, 并且项目所设计的活动资源的数量更清楚, 缺点在于估算工作量大。

5.算法模型:算法模型成本估算主要采用经验公式来预测软件项目计划所需的规模、工作量和进度, 进而估算开发所需的成本, 它为决策者提供指导。 没有任何一种模型能完全反映软件组织及项目的特点、实际开发环境和相关人员的因素, 因而使用模型估算成本时要谨慎。

三、WBS-工作分解结构

软件规模是软件成本的主要因素, 是成本估算的基础, 软件规模的估计开始于软件的分解。 WBS中文即工作分解结构, 是通过规定的原则和方法来分解一个软件项目, 层层分解, 分解至无法分解, 先把项目分解变成任务, 任务往下细化为工作, 再往下把一个个具体工作派发给工作人员的普通生活中。 最后的结构是细化成“可交付成果”, 该组织确定了项目的整个范围。

不管用怎样的方式对软件项目实施估算, 都应建立在具体掌握了工作量的基础上, 最佳的方法是采用WBS-工作分解结构。 不同的工作分解将得到不同的项目成本, 如果工作分解不合理将使得工作效率无法提高, 项目的运营成本居高不下。 项目的开发费用受软件的难度影响, 同时项目管理方法及人员的能力也直接影响开发成本的高低。

WBS的原则性分解: 对一个主体性的软件项目分步骤细化, 原则上必须要把项目分解至无法继续分解, 细化至把一个个具体工作派发给每一位工作者的生活中执行。 每个工作要具体把人员以及资金、时间安排好。 WBS的每一项都只有一个人负责, WBS必须与工作任务的实际执行过程一致。

四、基于WBS的成本预测

项目的成本预测是基于WBS分解的基础, 借助WBS的分解方法对一个抽象不具体的软件项目分步骤合理细分, 细化至把具体工作时间、工作量派发给每一位执行, 在运用WBS后估算成本。 “超市管理系统”是一个典型的在运用WBS的基础上进行成本估算的软件项目, 具有很高的探究价值。

“超市管理系统” 的需求: 用户提到的需求比较抽象, 通常给出该系统需要完成的目标。 这种项目目标并不能帮助完成成本的预估和系统开发工作。 首要任务是要做好WBS分解, 接着确定好工作包, 最后才能实施成本的估算工作。 在软件项目中, 对需求做好详细分析是必不可少的, 要编写需求规格说明书, 该说明书中将详细地描述实现该软件系统的所有功能需求。 例如:销售信息管理功能, 在需求规格说明书中将描述出该功能模块完成的功能;销售信息管理所包括的商品名称、类型、数量、出售价格、销售人员等相关信息。

描述好实现该软件系统所有功能需求只能代表我们弄清了要完成的任务, 而最重要的任务是要在需求规格说明书确定后深入分析怎么完成任务的问题。 如何通过软件系统实现文字上的描述, 如何对功能模块进行准确设计, 然后转变为系统管理体系结构图。 根据用户需求得出的超市管理系统结构图, 如图1 所示。

WBS的分解要素包括功能模块和功能点这两个子系统。 WBS分解奠定于需求规格说明书、系统结构图这两种基础上。 按照以前对项目的分解经验, 可以对功能模块的具体工作量做出估算, 在此基础上计算出系统里所包含的总的工作量。 首先, 可以根据项目的特征对超市管理系统进行自上而下的、WBS的第一层分解。 具体的分解流程包括五个阶段, 即需求分析阶段、结构设计阶段、编码阶段、测试阶段和安装与维护阶段。 第一层的分解结构如表1 所示。

通过第一层的WBS分解, 已经把系统的功能设计方面细化到子系统的具体范畴中, 每一个子系统又可以细分, 细分至功能模块, 继而细分成特定的功能点。 如果我们从第一层分解继续细化, 依据以往项目经验数据很容易估算出每一个功能模块的工作量。 第二层WBS分解如表2 所示。

通过WBS分解, 得到工作量信息、进度日期和人员分配等信息。

从上面的分解图不难发现, 开发这个系统总共需要60 个工作日, 开发该系统的人员如果支出每月4000 元的成本, 那么可以计算出该项目成本预算至少为8000 元。

五、结语

软件项目规模估算是软件项目成本估算的基础, 规模估算应基于WBS工作分解。 正确和合理地分解任务能提高成本估算值, 让估算更加准确。

摘要:由于软件商品的无形性、无损耗性和易复制性, 软件商品的价格不易确定, 软件项目的成本不易被估算。软件价格估算的准确度直接影响项目的盈利。本文以“超市管理系统”为例, 重点介绍基于WBS的成本估算方法, 以此提高成本估算能力。

关键词:WBS,成本估算,软件成本

参考文献

[1]覃征, 徐文华, 韩颖, 唐晶.软件项目管理 (第2版) [M].北京:清华大学出版社, 2009.

[2]姚列健, 吴勇, 张社朝.软件项目如何进行成本估算[J].舰船防化, 2009 (2) :52-57.

软件成本估算研究 篇2

关键词:软件成本估算,工作量

1 引言

我们需要明确为什么要做软件项目预算。首先随着软件技术的快速改进,软件系统规模也不断扩大,其复杂程度也相应地日趋加大,大量的软件项目进度延期、预算超支和质量缺陷成为典型的软件危机。软件项目是不同于一般工程项目的项目类型。受用户需求,开发方式的影响很大。没有明确的预算,会导致软件开支的不可控制,随着项目的进行,开发放要承担的风险也会增加。另外如果没有预算,更不可能与客户达成开发协议。没有人会委托别人做一个自己都不知道要花多少钱才能完成的项目。

2 软件成本估算的内容

软件项目的生命周期包括需求分析、概要设计、详细设计、编码、软件测试、软硬件安装调试、软件培训和软件运行维护等阶段。软件项目的成本估算以整个周期的花费为依据,所以软件项目成本估算主要包括软件开发成本估算和软件维护成本估算两部分内容。

2.1 软件开发成本

项目属性是软件开发成本估算中的重要信息,而且包含许多因素。主要是估算所需投入的经费开支,包括建立开发环境所需的软件和硬件成本以及支付项目参与者的工资

1)硬件的购置费

如服务器、PC机、网络交换机等。

2)软件的购置费

软件购入费用即购入作为基本构造的软件开发支援工具时的通用模块,以及同其他软件共享所付出的费用,均属于软件购入费用。如操作系统软件、数据库系统软件、开发工具软件等。

3)人工成本

直接人工费用包括系统分析员、程序员、系统工程师等,他们承担系统实施的具体技术工作,是软件工作量的主要构成部分主要是项目组成员所花费的工作量及企业正常发展的必要支出。如软件的分析/设计费(含系统调研、需求分析、系统设计)、实施费(含编程/测试、硬件购买与安装、系统软件购置、数据收集);税务、质量成本等。

4)专有技术购置费

5)商务费用

这些费用包含项目的管理人员、勤务人员等费用支出,这部分费用可根据投入的人数、及人员平均工资计算,也可根据经验系数由直接费用计算得出,另外也可包括其他应分摊在该项目上的费用如办公费、差旅费、会议费、交通费、培训费等。

6)其它不可预见费用

这些费用都是在项目确定后,根据具体情况和以往经验而确定的直接消耗在该项目上的费用,一般与软件的开发工作量无关或关系不密切如咨询费、工期延误费等。

另外,从项目整体来看,好的项目预算应该包括团体预算与小组或个人预算两部分,好的项目经理应该了解自己的团队,对突发事件等的考虑应该放在项目预算之中,然后将项目的开支细化到小组乃至个人,这一点看似多余,但是却很有必要。比如在实际的开发过程中,由于为了缩短工期而招收新的程序员,这就需要对新程序员进行培训。新程序员消耗的团队成本是要考虑在内的。这也就是传统意义上的peron-monthes所不能完全表达的部分。

2.2 软件维护成本

由运行费、管理服务费及维护费(纠错性维护费和适应性维护费)构成。

软件成本估算是对将要开发的软件项目所需的工作量和工作进度做出预测,不是仅仅停留在资金上。在软件开发项目中,除固定资产投资外,人的智力因素是主要部分;软件成本在很大程度上是支付给开发人员脑力劳动的费用,而这部分成本因开发进度不同存在相当大的差别。

3 软件成本估算常用的方法

最早的软件成本估算可以追溯到20世纪60年代,到现在已历经了40多年的发展,各个方面的研究都已经比较深入,产生了很多种估算方法,目前普遍应用的有以下几种方法:

3.1 专家估算法

专家判定技术,包括从毫无辅助的直觉到有历史数据、过程指引、清单等支持的专家判断,是根据已有的类似项目经验以及该领域的专家经验知识进行估算,由多位专家进行估算后取平均值,估算的结果比较准确,目前应用得最为广泛。常用的专家判定技术有Delphi技术和作业分解结构技术(Work Breakdown Structure,简称WBS)。专家估算法的优点是简便,缺点是对专家水平太过依赖,易造成较大误差。专家判断是一个非常普遍的方法,其主要判断标准是,估算工作由一个被认为是该任务专家的人来控制,并且估算过程的很大一部分是基于不清晰、不可重复的推理过程。

3.2 算法模型法

基于模型估算技术大多数是采用经验公式来预测软件项目计划所需的成本、工作量和进度。直接利用经验模型(如Putnam、COCOMO)预测工作量、进度数据和成本。但目前没有一种估算模型能够适用于所有的软件类型和开发环境,这些模型对每个不同的环境都需要进行校正,而且即使校验后,还存有大量的可变精度级别因此最好慎用此法的估算结果。

3.3 类比估算法

类比方法通过对一个或多个已完成的项目与新的类似项目的对比来预测当前项目的成本与进度。通过将项目与已完成的类似项目进行比较,找到对应处的差别,并估算各个差别造成的影响,从而导出开发项目的总成本。该方法的优点是可以提高估算的准确度,缺点是差别难以界定。

3.4 自顶向下估算法

估算人员参照经验估算要开发的软件的总成本,然后按步骤和工作单元将之进行分配,称为自顶向下估算方法。它的优点是估算量小,速度快;缺点是估算成本准确性不高,易造成遗漏。

3.5 自底向上估算法

切分开发任务,估算每一个子任务所需花费,然后相加算出总数。估算结果往往偏低。

3.6 动态分析方法

不同于其它估算技术,它认为软件项目工作量和成本因子在软件开发过程中不是静态的而是动态变化的,它主要应用于一些软件工程的成本估算模型中

4 结束语

由于软件成本估算中诸多因素相互影响,对成本作用的机理和定量关系上无法给出的问题,因此对于成本的估计准确性不定。尤其是我国软件业仍处于发展的相对初级阶段,影响因素更为复杂。另一方面,作为一个软件项目不但要考虑其成本,还要考虑其收益,而目前关于软件收益分析方面的研究较少。软件成本收益(投资回报率)分析的研究已开始逐渐引起软件研究人员和商业分析研究人员的重视,这不仅有助于进一步提高成本估算和效益分析的准确性,而且有助于进一步提高软件项目管理的效率。因此,软件开发成本估算与软件收益分析技术以及软件能力成熟度模型CMM研究的结合成为软件估算技术的发展方向之一。

参考文献

[1]Kishore S,Naik R.软件需求与估算[M].姜路,丁一夫,柳剑,译.北京:机械工业出版社,2004.

[2]Wittig G E,Finnie G R.Using Artificial Neural Networksand Function Point s to Estimate4GL Software Develop2ment Effort[J].Aust ralian Journal of Information Systems,1994,1(2):87294.

[3]石柱.软件工程标准手册[S].北京:中国标准出版社,2004.

[4]张海藩.软件工程导论[M].4版.北京:清华大学出版社,2003.

[5]Forrester J W.Indust rial Dynamics[M].Cambridge,MA:MIT Press,1961.

[6]王强军.基于类比方法的软件成本估算[J].中国科技信息,2008(5).

[7]甘早斌.软件开发成本估算技术综述[J].计算机工程与科学,2005(6).

信息系统项目软件估算 篇3

关键词:规模,工作量,进度,甘特图,成本,估算

软件估算是结合软件项目范围、软件规模、开发工具以及开发人员等因素对软件的策划、需求分析、软件设计、代码实现及单元测试、集成测试、配置项测试、系统测试、项目总结等研发过程所花费的工作量、进度、成本等进行预测, 一个合理的软件开发计划的建立, 必须首先对软件的规模、资源、工作量、进度等进行估算。

1 估算遵循原则

软件估算是一个持续的过程, 进行估算时应遵循的原则如下:

(1) 在做项目计划前进行估算, 并在项目的整个生命周期中进行跟踪和改进。

(2) 项目计划变更时, 需要重新进行估算, 估算的数据应记录在项目估算表中, 并保存所有原始估算记录。

(3) 选择合适的估算方法, 由3-4个本领域的资深人员分别进行独立的估算。

(4) 尽可能的使用历史数据, 并在实际运作过程中, 提出对历史数据进行修改的意见及该修改意见的客观依据。

2 估算准备工作

(1) 建立估算小组。估算小组由项目软件负责人和估算人员组成, 项目软件负责人作为协调人, 负责计划和协调软件估算活动。

(2) 由项目软件负责人召开估算会议, 会议主要进行以下工作:

(1) 项目软件负责人向估算人员介绍估算的内容、项目的各种假设和限制条件;

(2) 估算人员对估算内容达成一致, 并确认项目的各种假设和限制条件;

(3) 估算人员对估算单位达成一致;

(4) 项目软件负责人确定可接受的阈值。

3 软件规模估算

3.1 代码规模

(1) 项目软件负责人选择合适的估算方法, 如宽带Delphi法、Pert Sizing法、基本模块法、类比法、可重用代码法、经验值法等。

(2) 项目软件负责人和估算人员确定技术解决方案 (开发工具、语言、平台等) 。

(3) 项目软件负责人记录用于产生估算数据的假设条件和约束条件 (如约定代码行数包含注释, 不包含空格等) 。

(4) 估算人员对软件代码规模进行估算, 包含新增的软件部分和重用的软件部分。

(5) 项目软件负责人记录选择的估算方法、开发语言、开发工具、开发平台、影响估算的假设和约束条件等背景资料, 并更新到项目估算表中。

3.2 文档规模

(1) 软件开发人员充分分析《软件研制任务书》后, 估算适用的所有工程文档规模, 并更新到项目估算表中。

(2) 软件测试人员估算测试相关文档规模, 并更新到项目估算表中。

(3) 估算人员根据经验值商讨修改, 对文档规模的估算结果达成一致。

3.4 关键计算机资源估算

(1) 项目软件负责人和项目组成员充分分析《软件研制任务书》后, 确定是否有关键计算机资源要求, 若无则结束该步骤。

(2) 项目软件负责人估算在软件开发、测试和运行环境中受到约束的关键计算机资源, 如:计算机内存、磁盘容量、通信信道带宽、处理器性能。

(3) 项目软件负责人将估算的结果更新到项目估算表中。

(4) 估算人员根据经验值商讨修改, 对关键计算机资源估算达成一致。

3.5 硬件与软件环境资源估算

(1) 项目软件负责人和项目组成员充分分析和理解需求后, 估算在软件开发、测试和运行环境中受到约束的硬件及软件环境资源。

(2) 明确资源的指标要求 (或功能要求) 、来源、获取日期、用途和保密要求等。

(3) 项目软件负责人将估算的结果更新到项目估算表中。

(4) 估算人员根据经验值商讨修改, 对硬件与软件环境资源估算达成一致。

3.6 工作量和进度估算

工作量估算的内容并不仅仅限于软件开发部分, 还包括其它的管理活动成本, 工作量估算的内容应当包含以下内容。

(1) 软件工程活动的工作量, 包括需求分析、软件设计、代码实现与单元测试、集成测试、配置项测试、系统测试和项目总结的工作量。

(2) 项目支持活动的工作量, 包括配置管理活动的工作量、质量保证活动的工作量。

(3) 项目管理活动的工作量。

工作量估算具体步骤如下:

(1) 项目软件负责人和估算人员根据经验值商讨确定技术难度和平均生产率系数。

(2) 项目软件负责人依据规模估算的结果和运算法, 计算出整体工程工作量。

(3) 项目软件负责人与估算人员根据项目历史经验, 确定本项目的工程工作量比例系数, 并将下列比例结果填入项目估算表中:

(1) 软件需求分析与整体工程工作量的比例;

(2) 软件设计与整体工程工作量的比例;

(3) 代码实现与单元测试与整体工程工作量的比例;

(4) 软件集成测试与整体工程工作量的比例;

(5) 配置项测试与整体工程工作量的比例;

(6) 系统测试与整体工程工作量的比例;

(7) 管理工作量与本阶段工程活动工作量的比例;

(8) QA工作量与本阶段工程活动工作量的比例;

(9) CM工作量与本阶段工程活动工作量的比例。

a.项目软件负责人根据确定的工作量比例系数和整体工程工作量, 推算得出工作包的工作量, 填入项目估算表;

b.项目软件负责人计算总工作量 (总工作量=整体工程工作量+管理工作量+配置管理工作量+质量保证工作量) , 并填入项目估算表中;

c.项目软件负责人利用工作量和可用的人力资源计算出任务的时间长度, 再根据任务的依赖关系、里程碑和阶段的时间节点要求, 安排进度, 记录到项目计划甘特图。

3.7 成本估算

a.项目软件负责人利用以下公式, 换算出项目人工成本:

项目人工成本=总工作量×人均成本;

b.项目软件负责人更新项目估算表。

4 总结

软件相似度在成本估算中的应用 篇4

中国项目管理研究委员会在其网站上发表评论指出:2004年, 首届“国际软件行业项目管理论坛”发布的数据, 国内某些软件企业的项目计划完成率不过70%, 全球软件开发项目中只有16%能按计划完成。并且指出, 造成这种现象的主要原因在于没有做好项目控制和管理[1]。软件开发成本估算是制定软件项目开发计划的重要依据, 并且随着软件项目规模的日益扩大和投资的增加, 软件开发成本估算的重要性日益突出。常用的成本估算模型可以分为3类:专家估算法, 算法模型估算及类比法[2,3]。专家估算法是由一个被认为是该任务专家的人来控制, 并且估算过程的很大一部分是基于不清晰、不可重复的推理过程, 专家的个人偏好、经验差异与专业局限性都可能为估算的准确性带来风险。算法模型估算通过分析影响软件成本的各种因素, 根据各因素对成本的影响关系建立数学模型进行软件成本进行估算的方法, 例如构造性成本模型 (COCOMO) 就是一种典型的算法估算法[4,5]。该类方法客观、高效、可重复, 且能利用以前的项目经验进行校准;但是难以用在没有前例的场合。类比 (analogy) 法是基于实例推理CBR (case-based reasoning) 的一种形式, 即通过对一个或多个已完成的项目与新的类似项目的对比来预测当前项目的成本[6,7]。该方法的准确性依赖于相似项目的选择。不管是那一种类型的估算方法, 都与相似项目的选择有着直接或间接的关系, 因此, 相似项目的选择对成本估算有着重要的影响, 鉴于此, 本文对项目之间的相似度计算进行研究。

1 相似度计算方法介绍

对象间的相似度是度量对象间的相似程度, 与距离相反, 相似度的值越小, 说明个体间相似度越小, 差异越大。常用的计算对象相似度的方法有欧几里得距离、余弦相似度、Jaccard相似系数及调整余弦相似度等[8]。

欧几里得距离

欧氏距离度量了在m维空间中两个点之间的真实距离, 体现了个体数值特征的绝对差异。具体的计算方法为:

余弦相似度

余弦相似度用向量空间中两个向量夹角的余弦值来衡量对象间的差异。与距离度量相比, 余弦相似度更加注重对象在方向上的差异, 而非距离或长度上, 具体的计算方法为:

Jaccard相似系数

Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度。它只关心对象间共同具有的特征是否一致这个问题, 具体的计算方法为:

调整余弦相似度

虽然余弦相似度对对象间存在的偏见可以进行一定程度的修正, 但是因为只能分辨对象在维之间的差异, 没法衡量每个维数值的差异, 就出现了调整余弦相似度, 具体的计算方法为:

其中, xi和yi表示项目i的评分, 分别表示所有项目的平均评分。

2 软件的相似度计算

为了说明相似度, 首先给出一个定义:

定义1 历史项目集DB定义为一个三元组 (P, A, R) , 其中:P表示项目集, P={p1, p2, …, pm}表示具有m个历史项目的集合;A表示描述项目的属性集合, A={a1, a2, …, an}表示描述项目n个方面特征的集合;R表示项目P的属性A的取值, R={aj (pi) }表示第i个项目的第j个属性的取值。

若将项目作为文档, 属性作为文档的特征, 那么计算文档相似度的方法即可应用于计算软件的相似度, 首先计算各属性间的相似度Asim, 然后根据属性相似度计算项目相似度Psim。由于属性取值类型的不同, 应采用不同的方法计算属性间的相似度;而且项目集中存在的缺失值也会影响计算的准确性, 因此, 应该考虑如何对其进行处理。具体的计算过程分为两个步骤:计算属性相似度和计算项目相似度。

2.1 计算属性相似度

由于项目的相似度是由描述它的属性集确定的, 但是, 描述项目的各个属性的类型不同, 它们可能是数值、集合、范围、模糊值、向量或布尔类型等, 例如:项目的规模是一个具体的数值, 项目的开发语言可能是{html, php, sql}, 团队的开发经验是[1, 10], 项目的复杂程度等级是低, 使用到了CASE集成工具, 因此该值的1, 项目的功能是70%的内部处理, 10%的数据输入, 10%的输出, 10%数据库查询操作, 不涉及文件查询, 那么, 可表示为 (0.7, 0.1, 0.1, 0.1, 0) 。对于不同类型的属性, 使用不同的方法计算它们的相似度。本文中Asim (ak (pi) , ak (pj) ) 表示项目i与项目j的第k个属性间的相似度, 并且它满足Asim (ak (pi) , ak (pj) ) ∈[0, 1]。具体情况如下:

a) 如果属性是数值型, 那么使用欧式距离作为计算相似度的依据, 距离的计算采用式 (5) 进行, 然后运用式 (7) 计算属性相似度。

其中:ak (pi) 表示项目i的第k个属性;ak (pj) 表示项目j的第k个属性;

其中:Pk表示所有项目的第k个属性的取值, max (Pk) 和min (Pk) 分别表示第k个属性值中的最大值和最小值。

b) 若属性值是布尔类型, 采用式 (8) 计算属性相似度。

c) 若属性值是集合, 采用Jaccard系数计算属性相似度, 具体计算方法参照式 (9) 。

其中:表示项目i和j的第k个属性集中相同元素的个数, 表示项目i和j的第k个属性集中不重复元素的个数。

d) 若属性是模糊型, 首先将该模糊值按照程度次序转化为有序的连续整数值, 然后采用数值类型进行计算。

e) 若属性是范围 (在此不区分闭区间, 开区间和半开半闭区间) , 那么假定ak (pi) 的取值范围为〈lik, hik〉, 假定ak (pj) 的取值范围为〈ljk, hjk〉, 然后根据式 (10) 计算相似度。

其中:min (hik, hjk) 表示项目i与j的第k个属性取值范围上界的最小值, max (lik, ljk) 表示项目i与j的第k个属性取值范围下界的最大值, max (hik, hjk) 表示项目i与j的第k个属性取值范围上界的最大值, min (lik, ljk) 表示项目i与j的第k个属性取值范围下界的最小值。

f) 若属性的取值为有序的数值集合, 例如前面描述功能所用的方法, 可以将其看作向量, 然后, 运用向量的余弦值计算其相似度, 采用式 (11) 进行计算。

上面讨论了在没有属性缺失的情况下属性间相似度的计算方法, 但是由于各种因素导致的数据缺失是不可避免的, 那么, 如何计算含有缺失值的属性间的相似度也应该考虑。常用的缺失值处理方法可分为删除存在缺失值的个案和缺失值插补[9]。本文采用了四种计算含有缺失值的属性相似度计算方法:删除有缺失值的列, 补0法, 补1法和补均值法。

删除有缺失值的列:仅对所有项目中都有的属性信息进行计算;

补0法:在计算含有缺失值的属性相似度时, 根据下面的方法进行处理:

补1法:在计算含有缺失值的属性相似度时, 所有的局部相似度计算结果均为1, 即Asim (ak (pi) , ak (pj) ) =1。

补均值法:若缺失值是数值, 则使用本列数值的均值对缺失值进行填充;若缺失值不是数值, 则Asim (ak (pi) , ak (pj) ) =0.5。

2.2 计算项目pi和pj的相似度Psim (pi, pj)

本文采用文档相似度的计算方法, 即计算出每个特征的相似度以后, 然后根据该特征对文档的影响程度计算文档之间的相似度, 本文在计算项目之间的相似度采用该方法进行, 具体的计算依据为:

其中:qk表示第k个属性的权值, 并且所有属性的权值之和为1, 即满足表示项目i和j的第k个属性的相似度。

由于各个属性对成本的影响程度难以确定, 因此, 本文认为所有属性具有同等的重要性, 因此项目的相似度依据为:

其中:表示属性的数量。

为了说明该方法的有效性, 在计算出项目间的相似度以后, 使用文献[10]中的方法来估算待评项目的开发成本。常用的评估指标采用平均绝对偏差MAE。

平均绝对偏差MAE通过计算所有评估项目的预测成本与实际成本之间的偏差与实际成本比值的平均值来度量估算的准确性, MAE的值越小, 估算结果越准确, 具体的计算方法为:

其中:E (pi) 表示项目pi的实际成本, 表示项目pi的估算成本。

3 实验

本文以USP05-FT项目集为例, 采用均值对缺失值进行处理, 分别以相似度值0.72, 0.76, 0.80, 0.84, 0.88及0.92来选择近邻, 文献[10]中的方法进行成本的估算, 以MAE来评估估算结果的准确性, 结果如图1所示。

从实验结果来看, 随着相似度的增加, 平均绝对偏差减少, 说明越相似的项目近邻集, 估算结果越准确。从图1来看, 估算的平均准确率可以达到85%以上。

另外, 从USP05-FT项目集中抽取了8个项目数据作为实例来评估处理缺失值的四种不同方法。在本文中将项目1作为待评估成本的项目, 其他的项目作为历史项目集, 采用了前文介绍的四种方法处理含有缺失值的属性间的相似度计算, 最终计算的各项目与项目1的相似度结果如表1所示。

若采用相似度0.8进行近邻的选择, 仅有一个项目被选择, 导致估算结果完全一致, 无法比较四种处理缺失值方法的优劣。因此, 本文选择2个相似度最大的项目作为近邻进行成本的估算, 结果表明:补0法在本次估算中的效果最好, 补1法的评估结果与实际值偏差最大。

4 结语

软件成本估算是项目管理的重要内容, 本文将计算文档相似度的方法应用于软件的相似度。由于项目数据中缺失值的存在, 本文首先采用的四种不同的方法进行处理, 并针对属性取值类型的不同采用不同的方法来计算属性间的相似度。然后将各属性的相似度进行加权平均得出项目间的相似度, 根据计算结果在历史项目集中确定待评估项目的近邻集, 根据近邻集中项目的成本即可确定待评估项目的成本。将该方法应用于USP05-FT的项目实例, 实验结果表明:采用不同的相似度来选择近邻, 评估的准确性可以达到85%以上。并将四种缺失值的处理方法应用于部分项目, 结果表明:补0法在本次估算中的效果最好, 补1法的评估结果与实际值偏差最大。各属性的权值以及不同的近邻选择方法都会对估算结果的准确性产生影响, 这将是下一步要解决的问题。

参考文献

[1]李明树, 何梅, 杨达, 等.软件成本估算方法及应用[J].软件学报, 2007 (4) :776-777.

[2]Hareton Leung, Zhang Fan.Software Cost Estimation[EB/OL].2012-10-15.https://www.st.cs.uni-saarland.de/edu/empirical-se/2006/PDFs/leung.pdf.

[3]Li Y F, Xie M.A study of project selection and feature weighting for analogy based software cost estimation[J].Journal of Systems and Software, 2009, 2:242-245.

[4]Boehm B W, Valerdi R, Lane J, et al.COCOMO suite methodology and evolution[J].The Journal of Defense Software Engineering, 2005, 18 (4) :20-25.

[5]Roger S Pressman.软件工程:实践者的研究方法[M].机械工业出版社, 2010:510.

[6]Li Y F, Xie M.A study of the non-linear adjustment for analogy based software cost estimation[J].springer Empirical Software Engineering, 2009, 12:610-615.

[7]Shepperd M, Schofield C.Estimating software project effort using analogies[J].IEEE Trans.on Software Engineering, 1997, 23 (12) :736-743.

[8]许海玲, 吴潇, 李晓东, 等.互联网推荐系统比较研究[J].软件学报, 2009, 20 (2) :350-362.

[9]Patrick Royston, Cancer Division.Multiple imputation of missing values[EB/OL].2013-3.http://hbanaszak.mjr.uw.edu.pl/Temp Txt/Royston_2004_Multiple%20Imputation%20of%20Missing%20Values.pdf, 2013, 3.

软件项目成本估算 篇5

随着软件测试逐渐从软件开发过程分离,成为一个独立的软件过程,对软件测试的成本估算的研究提出了迫切的需求。早期的软件开发模型认为软件测试仅仅是软件开发生命周期中的一个阶段,这种认识造成了软件规模估算方法缺乏对软件测试规模估算的研究。估算偏低造成了软件测试不充分,测试时间仓促;估算偏高又会造成投资浪费。在软件测试工作开展以前,恰当地估算软件测试的规模及成本,为软件测试项目分配合适的人力资源及测试时间,将使软件产品的质量得到大幅提高。

目前,软件测试规模及成本的估算研究和应用还比较少,相比较而言,软件规模及成本的估算方法可谓种类繁多,主要的软件规模度量方式有代码行、功能点及其扩展方式、对象点以及用例点,以及软件成本估算模型COCOMO 81、COCOMO II模型等。

1 软件功能测试成本分析

影响软件功能测试核心成本的要素包括两个方面:被测系统的功能规模和测试效率。软件功能测试规模与软件的功能规模密切相关,在估算出软件的功能规模后,考虑对软件功能测试规模产生影响的因素,并用其对软件的功能规模进行处理,得到软件的功能测试规模。对功能测试规模有影响的因素包括:功能复杂性、用户重要性、使用频度、可复用程度。在对软件功能测试规模有一个预估之后,考虑影响测试成本的另一个因素:测试效率。对测试效率产生影响的因素有很多,具体可以分为以下一些方面:项目先例性、团队凝聚力、风险控制能力、测试工具、文档完整性等。在此基础上建立相应的软件测试成本的计算方法及其模型,即可得到软件功能测试的成本。

2 软件功能测试成本估算模型

本节提出了软件功能测试成本估算模型STCEM(Software testing cost estimation model),模型分别对软件功能测试的规模以及影响软件测试的效率进行了估算及定义,并基于算法估算模型,给出估算公式,以此得到软件功能测试的估算成本,基本流程如图1所示。

STCEM利用Mark II方法估算软件规模,利用规模调整因子进行修正,得到功能测试规模,并结合项目的效率因子,最终得出软件功能测试成本。

2.1 估算软件规模(FP)

软件规模是测试规模的直接决定因素,在各种软件规模的估算方法中,功能点分析法由于其突出的特点在近年得到了比较广泛的应用。典型的方法包括IFPUG方法、Mark II方法等,IFPUG方法比较复杂,Mark II方法基于逻辑事物进行功能点分析,相对比较简单,无需对组件的复杂程度进行分类,并且可以直接对逻辑事物进行规模因子调整,获得功能测试点。本模型中采用Mark II方法方法来估算软件的规模。

2.2 定义规模因子(SF)

在计算出每一个逻辑事务Lj的功能规模FP后,从测试角度出发,考虑会对功能测试规模产生影响的因素,如功能复杂性、用户重要性、使用频度、可复用程度,定义为规模因子SF,通过其对功能点进行调整,得到每一个逻辑事务的测试点。各规模因子的定义为:

· 功能复杂性(FC) 从模块输入输出元素数量的角度度量;

· 用户重要性(UI) 相比其他模块,用户认为某一模块的重要程度;

· 使用频度(UF) 某模块被用户使用的频率以及使用该模块的用户规模;

· 可复用程度(RD) 测试的复用与否。

其中可复用程度根据是否复用取值分别为0.7(可复用)和1(不可复用),功能复杂性、用户重要性、使用频度分为低、中、高等级,取值由表1 所示。

在对功能复杂性、用户重要性、使用频度、可复用程度进行定义之后,每一逻辑事物Lj的规模因子SFj采用公式进行计算:

SFj=[(FCj+UΙj+UFj)÷15]×RDj(1)

其中,公式中的数值15为各规模因子取等级为“中”时对应的取值之和。

2.3 计算测试规模(TP)

为每一个逻辑事务Lj估算出功能规模及定义其规模因子之后,可以利用公式得到该逻辑事物的功能测试规模,计算公式为:

TPj=FPj×SFj (2)

被测系统总的功能测试规模为各逻辑事务功能测试规模之和:

ΤΡ=ΤΡj(3)

2.4 定义效率因子(CF)

对测试效率产生影响的因素包括:项目先例性、团队凝聚力、风险控制能力、测试工具、文档完整性等,定义如下:

· 项目先例性(Pp) 对于测试项目的新奇程度。需考虑因素:对软件测试目标有组织级的理解、对类似软件系统的测试工作经验;

· 团队凝聚力(Ga) 项目相关人员适应他人的能力及意愿,团队内部的沟通渠道及频繁程度,团队为成员的成长与发展、自我价值的实现提供的条件;

· 风险控制能力(Rc) 项目组识别风险、控制及预防风险的能力,以及风险的危险程度;

· 测试工具(Tt) 功能测试工具是否被使用及使用的程度;

· 文档完整性(Di) 开发小组提供的文档的完整程度及质量。

各效率因子等级分别为低、中、高,取值定义由表2 所示。

总效率因子的计算公式为:

CF=Pp×Ga×Rc×Tt×Di=∏ CFi (4)

2.5 计算测试成本

测试总成本通常包括计划和管理成本、测试准备成本、测试核心成本、测试后成本。各种成本占软件测试总成本的比例根据测试阶段,测试类型不同而不同,并且,针对不同的测试组织,所占比例也可能不同。一般的,测试的核心成本会占到总成本的70-80%,计划和管理成本占10%左右,准备成本占5%左右,测试后成本根据是否包括回归测试部分占到总成本的5-15%左右。

在估算出软件功能测试的规模并定义了影响测试成本的效率因子后,采用基于算法模型的通用形式计算功能测试的核心成本。

基于算法模型的基本思想是:找到软件工作量的各种成本影响因子,判定它对工作量所产生影响的程度是可加的、乘数的还是指数的,其通用形式为:

PM=A×(∑Size)∑B×∏ EM (5)

其中,PM为工作量,通常表示为人月;A为校准因子;Size为对工作量呈可加性影响的软件模块的功能尺寸的度量;B为对工作量呈指数或非线性影响的比例因子;EM为影响软件开发工作量的工作量乘数。

基于算法模型的通用形式,功能测试核心成本的估算公式定义为:

PD=a×TPb×∏ CFi=a×(∑FPj×SFj)b×∏ CFi (6)

其中PD为工作量,以人日为单位(一个人日为8个小时,一个人月通常为22个人日);ab为常量参数;TP为功能测试规模;FPj为某一逻辑处理事务的功能点;SFj为该逻辑事物的规模因子;CFi为效率因子。

根据测试核心成本所占测试总成本的比例,相应可计算测试总成本:

PDt=PD÷p (7)

其中PDt为测试总成本,PD为测试核心成本,p为测试核心成本占测试总成本的比例。

在公式(6)中,ab为常量参数,SFjCFi为变化因子,取值在模型中定义。为了使各参数取值更贴近自身情况,各企业可根据自己的历史经验数据对abSFjCFi进行校准。由于在模型中,SFj取值分散于各个逻辑事务中,如对其进行校准工作量巨大,所以,只对abCFi等参数进行校准,校准模型采用常用的多元线性回归分析方法。某测试机构基于有限的项目经验数据对相关参数校准的结果为:a =6.23,b=0.46,CFi的校准值由表3所示。

带入参数校准值后的测试核心成本估算公式为:

PD=6.23×TP0.46×∏ CFi (8)

3 应用案例

软件功能测试成本估算模型STCEM在某第三方测试机构多个项目进行了应用,取得了较好的效果。本节以某培训系统测试项目为例,利用STCEM进行了成本估算,并对其有效性进行评估分析。测试启动时,该软件的开发以及内部测试已经完成,形成了比较完整的需求文档、设计文档以及用户手册。系统的主要功能包括培训信息浏览、培训课程、网上作业、交流论坛、个人信息、管理员界面。该系统为B/S架构,规模为中小型,测试类型为功能测试,采用黑盒测试方法,未使用到测试工具,符合功能测试成本估算模型的特点。

3.1 估算测试规模

首先,使用Mark II功能点法估算被测系统的软件规模。经过估算,软件的规模约为208个功能点,具体如表4所示。

对每一个逻辑事务定义规模因子等级,赋予相应等级的取值,得到该项目测试点数约为186个,具体如表5所示。

3.2 定义效率因子

通过对该项目的分析,将其效率因子“项目先例性(Pp)”、“团队凝聚力(Ga)”、“风险控制能力(Rc)”、“测试工具(Tt)”和“文档完整性(Di)”分别定义为:“高”、“中”、“高”、“中”和“低”,得到效率因子定义由表6所示。

总的效率因子为:

CF=Pp×Ga×Rc×Tt×Di=1.054 (9)

3.3 计算测试成本

TPCF值代入公式(8)得:

PD=6.23×TP0.46×CF=6.23×1860.46×1.054=72.66 (10)

即该测试项目的核心成本为72.66人日。

由于该项目将对发现的缺陷进行回归测试,根据经验将测试核心成本占总成本的比例设为75%,代入公式(7):

PDt=PD÷p=PD÷75%=96.88 (11)

即该项目的测试成本估计为96.88人日。

3.4 结果评估

项目采用STCEM预估的工作量为96.88个人日,而实际项目由4个人用了一个半月的时间完成,也就是约132个人日,预估的工作量偏差为26.6%。对偏差原因进行分析发现,首先风险控制方面,预估中对项目风险进行了比较详细的评估,也提出了相应的解决方案,但部分风险发生后的排除造成额外的时间延迟。其次,预估中认为项目小组成员均有比较高的项目经验,实际情况是项目小组在项目开始后作了一次调整,由一名新毕业的学生代替了一名具有较丰富经验的测试人员,造成了一定的测试进度滞后。

4 总 结

本文提出一种基于算法模型的软件功能测试成本估算模型STCEM,该模型分别对软件功能测试的规模、影响软件测试的效率进行了定义,得到功能测试核心成本及总成本。文中对模型中的参数进行了初步校准,给出了相应参数的取值。实践证明估算模型STCEM对测试工作的开展及测试计划的制定具有一定的指导意义。另外,由于历史经验数据有限,对模型中参数的校准可能不够准确,因此,需要长时间积累项目数据,持续对模型中的参数进行校准。同时,模型中的规模因子以及效率因子也需要随着理论和实践知识的发展作进一步的调整和补充。

参考文献

[1]杨根兴,蔡立志,陈昊鹏,等.软件质量保证、测试与评价[M].北京:清华大学出版社,2007.

[2]李明树,何梅,杨达,等.软件成本估算方法及应用[J].软件学报,2007,18(4):776-795.

[3]ISO/IEC.20926,IFPUG4.1 Function point counting practices manual[R].2002.

[4]ISO/IEC.20968,Software engineering—Mk II Function Point Analy-sis—Counting Practices Manual[R].2002.

[5]李帜,林立新,曹亚波,等.软件工程项目管理:功能点分析方法与实践[M].北京:清华大学出版社,2005.

软件项目成本估算 篇6

在石油天然气勘探开发项目中,成本估算对于项目的后续评估和成本控制起着重要的支持作用。然而由于地质环境比较复杂,或者受到技术水平限制,又或者是缺乏经验等原因,使得现阶段我国对油气勘探项目成本估算的精准度受到了限制,即勘探项目的不确定性导致成本估算的可变性较大。

一、油气勘探项目成本估算存在的问题

油气勘探项目具有风险大,不确定因素多,探索性强的特点;项目计划和设计具有较强的可变性。油气资源埋藏在地下,项目的实施是通过零散、多解性的信息研究进行预测,通过钻井、试油工作验证和完善,是一个认识-实践-再认识的科学探索过程,具有较高的风险性(包括地质风险、工程风险和经济风险)。项目目标为油气资源-储量序列,实际上就是一个认识结果,不易全部量化,具有不可预见性,不可能在实验室里模拟好,设计好。某些发现或信息的获得会导致计划调整、设计变更甚至项目终止。也就是说,勘探项目的很多先决条件无法在估算时被充分限定。

勘探项目的这种特点增加了成本估算的难度,特别是项目初期准确测算成本的难度,使得估算的可变性增加。一般常见的估算变动趋势就是随着估算阶段的一步步深入,测算出的成本不断增加。这种趋势会使勘探项目在进行可行性研究和立项时的成本低于在实际拨款时的成本,投资方需要不断追加投资以满足项目运行的需要。这一情况造成的后果是,过多的超出原定计划的投资可能会影响投资方的信任并造成施工方信誉的损失;如果追加款项不能及时到位,还有可能影响工程的进度质量和施工方的经济效益。

在技术和地质条件一定的情况下,要有效解决这一问题,项目估算人员就起到了关键作用。如果项目估算人员对施工条件、进度计划和地质构造缺乏经验或过于乐观,抑或在资金紧张的情况下为了迎合投资方而刻意弱化问题,都会导致项目初期的成本估算偏低。反过来说,如果在招投标阶段过于谨慎,制定了一个比较宽裕的成本数字,那么显然又会因缺乏说服力而在竞标过程中丧失优势。基于我国油气行业管理的现状,大多数投资方都会在一定范围内接受后续投资的追加,因此估算人员的任务就是在此范围内寻找一种均衡。最有效的办法就是采用科学的成本估算方法,提高估算数字的准确性和说服力度。

二、油气勘探项目成本估算的原则

为了有效提高估算的准确性和适应性,在估算过程中应考虑和坚持以下几个原则。

1. 全面考虑技术与非技术因素

为了防止出现上面提到的原因,应当对可能影响成本费用的各种因素都加以考虑,除了传统意义上的技术性因素,如:施工使用的队型、工作量、设备基础、驻地距离、施工设计设计方案和材料消耗量等,还应当充分考虑“非技术”因素的影响。特别是对于新区项目,“非技术”因素的影响可能更为重要。

为了支持对工艺设施的成本估算,所需要解决的许多基础问题,就可以叫做“非技术性”因素。主要的“非技术性”因素大类有:场地和自然条件(包括入场便利性、场地的高宽负重限制、气候条件的影响、高程等);当地政府的影响(包括环境文物保护要求、居民赔偿标准等);物资(包括进出口限制、当地提供替代品程度、标准化等);劳动力(包括劳动技能、劳动风俗等);设施支持和利用(包括水电供应、废物处理、泄露管理等)。

2. 成本估算要保持一定的弹性

最理想的情况是,完成某项任务所需费用可根据历史标准估算。但对石油物探来说,由于不同项目针对的任务目标、地质条件千差万别,把以前的活动与现实对比几乎是不可能的。费用的信息,不管是否根据历史标准,都只能将其作为一种估算。而且,在费时较长的大型项目中,还应考虑到今后一段时期内原材料费用的上涨如何,经营基础以及管理费用在整个项目寿命周期内会不会变化等问题。所以,成本估算显然是在一个无法以高度可靠性预计的环境下进行。这种不确定性要求在估算时应保持一定的弹性,对技术和工艺变更、原材料价格变化、通货膨胀、自然灾害、可能发生的索赔和反索赔事件等不正常情况发生的概率要进行考虑,使估算有一定的适应能力。

三、油气勘探项目成本估算方法

为比较准确地预测物探项目成本,在这里我们设计一种三个层次的成本论证方法。其中的第一个层次是排除项目影响以独立评估成本;第二层次是应用历史数据和标准来确定成本趋势和关系;第三层次是进行成本的专家分析和研究。

1. 第一层次成本估算——独立评估成本

独立评估成本是指由物探公司内部的估算人员在排除项目影响的情况下,只是单纯的依据资源计划和各类价格信息,独立分析和评估成本。使用这种方法的基础是,使用WBS方法进行资源计划分析。即利用WBS方法,先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动单元等。然后估算每个WBS要素的费用。使用这种方法,可以得出公正的成本评估,从而确保估算工作的完成并识别超出现有估算成本范围的工作量。独立评估成本应采用实物估算法,即根据市场来确定各种资源单价及各种取费率,比较准确地反映估算时各种材料、人工、机械设备等的成本水平,具体的编制步骤如下。

(1)人工费的目标成本,可由项目经理部的劳资部门(人员)计算。

人工费的目标成本=∑各类人员计划用工量×实际水平的工资率,式中,计划用工量可根据实际水平,考虑先进性,适当提高。

(2)材料费的目标成本,可由项目经理部的材料部门(人员)计算。

材料费的目标成本=∑各类材料的计划用量×实际价格

(3)机械使用费的目标成本,可由项目经理部的机关部门(人员)计算。

机械使用费的目标成本=∑各类机械的计划台班数×规定的台班价格

(4)其他直接费用的目标成本,可由项目经理部的生产部门和材料部门(人员)共同计算。

(5)间接费用的目标成本,由项目经理部的财务人员计算。一般根据项目经理部内部的计划职工平均人数按历史成本的间接费用,以及压缩费用的措施和人均支出数进行测算。

2. 第二层次成本估算——确定成本趋势和关系

为了使油气勘探项目的评估成本符合历史标准和变化趋势,不至于过于脱离实际;也为甲方的资金拨付提供更有力的依据,施工方使用成本数据在这种成本论证过程中是必不可少的。现有的成本数据库可以提供类似项目成本标准的底线,然后可以将其调整为当前项目的成本标准。

在此估算阶段,一般采用比例投资估算法,使用的比例系数是从已完工的类似项目中的统计数据中总结出来的,具体包括:

(1)已知以前某勘探项目建设中主要设备费占总投资额的比例,则根据资源战略计划确定出当前项目的设备费后,按此比例估算当前项目的总投资额,计算公式为:

式中

l——当前项目的总投资额:

K——以前项目设备费占总投资的比例(%);

n——设备的种类数;

(Qi——第i种设备的数量;

Pi——第i种设备的到达现场单价。

(2)按统计资料计算出已经完工的类似石油勘探项目中各个作业项目(地震物探作业、钻井作业、测录井作业等)占某项费用的比例,以当前项目的该项费用为基数,分别计算出目前项目各个作业项目的投资额,然后相加汇总后就得到该项目的总投资额。计算公式为:

式中

C——当前项目总投资额;

E——当前项目某项费用;

P1,P2,P3——各作业项目费用占该项费用的比例(%);

f1,f2,f3——不同时期、不同地点综合调整系数;

l——当前项目的其他费用。

3. 第三层次成本估算——成本研究和专家分析

某些油气勘探项目中有些业务活动的成本很可能会高于历史数据,特别是外部市场或者新区的勘探作业。为了识别这种活动,可以采用第三层次的两种做法:研究成本和专家分析成本。成本研究可以通过研究为项目所在地区提出一种风险类型。这种风险类型应集中指出高层次的项目成本推动因素,并形成主要成本推动因素的风险参数。这里的风险表示为平均成本关系或数据上下的正、负(+、一)百分比,作为调整估算结果的依据。表1是一个成本风险类型分析的通用格式,可以作为研究的基础。专家分析就是与其他单位或科研机构的成本估算专家建立联系,以便实现相互磋商和数据共享。(见项目成本推动因素的风险类型分析表)

四、加强油气勘探项目成本估算的若干建议

加强油气勘探项目估算,除了使用科学的估算方法,还应注意以下几个问题。

1. 重视勘探技术进步对项目成本的影响

新技术可以在降低成本方面实现突破,提高生产率以及简化作业过程等等。石油勘探行业作为一个技术密集型的产业,其未来的发展速度与质量直接以来与对知识、技术等资源的创新、形成和利用。一般来说,新技术的应用可以降低勘探成本,但是当新技术存在可靠性风险时,就应当考虑其通过对项目风险的影响,最终影响项目的成本。

2. 应用先进的估算软件

目前,市面上有一些商业软件系统可用于陆上基础设施项目和海上油气开发项目。应用这些先进的项目估算软件,就是利用这些软件的特长,也是它们的设计思想:根据有限数据和很少的工程量快速提出成本估算。应用估算软件可以提高效率,在选择软件时应当注重它的适应性。

3. 注重专业人才的培养

软件项目成本估算 篇7

目前, 我国在成本估算方面的应用方法主要集中在经验估算法、类比估算法和WBS详细估算等传统估算方法[4], 这已经无法满足现阶段的航空制造业这类规模庞大、技术复杂的项目对成本估算的需求。本文以我国航空飞机为研究对象, 基于参数法成本估算构建了成本影响因素模型和参数法成本估算模型, 这两个模型对飞机的成本影响因素分析和成本估算都有重要作用。

1 成本影响因素模型

1.1 参数法成本估算分析

参数法成本估算是根据项目的历史数据, 运用数理统计的方法, 把研制费用与某些物理、性能等技术参数之间的关系用数学模型表达出来, 以此分析研制费用与技术参数之间的定量关系的一种方法[5]。这种方法估算研制费用时, 通常根据某公司现有型号的历史成本数据和技术性能参数建立函数关系 (也称为费用估算关系) , 再依据新型号的性能参数, 运用此模型, 即可算出其研制费用[6]。参数法使用大量类似项目的统计结论同新项目进行比较, 推导特定参数与成本估算的关系, 所以这种方法估计项目成本的最重要的条件是具备足够的历史数据, 特别是能代表产品技术及研制生产环境的数据。

应用参数法成本估算进行航空飞机研制项目的成本估算就是要根据现有型号飞机研制项目的历史成本数据和技术性能参数建立函数关系[7], 再依据收集到的新型号飞机研制项目的相关性能参数, 运用此模型, 即可估算出其研制成本。

参数法成本估算与其他成本估算方法相比具有其自身的优势, 具体分析如表1所示。

参数法成本估算是客观、无偏见、连续的费用估算, 它与经验估算法和类比法等主观估算方法相比, 能够提供更客观的结果。同时工程技术人员只要能准确估量出项目的物理参数和性能参数, 通过参数模型就能估算出费用, 在一定程度上不必了解项目的很多细节。在缺乏项目信息、实施方案、竞争对手产品或供应商设备信息时, 使用参数法成本估算可以加快成本和进度的估算速度。在项目的早期阶段, 参数法成本估算所提供的结果可以影响设计决策, 从而使设计更科学合理。

1.2 成本影响因素模型的构建与分析

1.2.1 成本影响因素模型的构建。

飞机研制项目成本的影响因素是复杂多变的, 有飞机本身的一些物理参数, 如重量、体积、速度等等, 还有运行环境、人员技术水平、设计范围、研制情况、需求情况等等影响因素[8]。这些影响因素都在不同阶段、不同程度上对飞机研制成本有一定的影响。通过对曾科在其发表的《基于参数估算法的项目成本估算》[9]一文中的关于参数成本估算模型的成本驱动因素的分析总结, 结合飞机研制项目的相关研究, 将影响飞机研制项目的成本的各种因素分为三类, 如图1所示。

基于组织特征的影响因素是指实行项目的组织所在的背景环境、组织的团队经验以及有关技术的发展情况等相关特征。基于项目特征的影响因素主要包括项目的需求状况、自动化程度、项目熟悉度、开展任务量、开展任务类型和新设计百分比等相关的因素。基于核心参数的影响因素主要是所研制产品的物理参数, 如规模、复杂度、成本密度、样本数量等等, 这些是影响成本的主要因素。只有准确掌握了核心参数, 才可以对项目得具体情况有所了解, 也为提高成本估算结果的准确程度提供重要依据[10]。

从以上对飞机成本估算的研究可以看出, 飞机研制项目的成本影响因素较多, 各个影响因素之间可能还存在相互依存、相互制约、彼此影响的关系, 通过相关分析可以看出各个影响因素之间的关系强度, 对于存在高度相关关系的影响因素就可以根据实际情况进行合理取舍。通过对飞机研制项目的成本影响因素的选择, 得出了如表2所示的飞机研制成本影响因素, 这些影响因素从不同的角度对飞机研制项目的成本产生了影响。应用参数法进行成本估算时, 可以根据这些参数本身的特性把参数进一步分类并组合, 使成本估算工作更加方便易实施, 结果也更加准确。

1.2.2 成本影响因素模型的分析

(1) 基于组织特征的影响因素

基于组织特征的影响因素主要有环境描述、多地点研制、技术发展情况以及团队经验。环境描述通过将硬件环境和软件环境结合, 将飞机研制项目的环境进行分类打分。多地点研制描述了在多个地理位置, 团队协作中面临的通讯问题, 通讯情况将会影响生产率, 通过定义研制地点的数量和通讯级别来确定该值。技术发展情况包括了技术过时控制和技术进步控制, 根据技术的程度将技术控制定义在0到3的范围内。对于技术进步控制来说, 一项技术从初始应用到逐渐成熟后, 技术成本大幅度下降, 采用较高的参数值;如果成本在全寿命周期中各阶段的区别不大, 采用较低的参数值。技术过时控制从参数值0到3, 分别表示比典型过时速度由慢到快。在实际应用过程中由专家根据当时的实际情况进行打分确定的。

(2) 基于项目特征的影响因素

基于项目特征的影响因素主要包括新设计百分比重复设计百分比、研制工程指数和需求状况。

新设计百分比是基于设计任务中已经存在或已经完成的工作, 定义新设计工作量, 范围从0% (不存在新设计) 到100% (完全的新设计) 。新设计百分比的计算是通过重复件和独特件的数量综合计算得出的, 计算方法如下:

研制工程指数大小从1到100不等, 取决于整合任务重要程度、整合固有复杂度决定的任务难度、现有知识、经验和运用于整合人工制品。主要分为以下几类, 无需整合和测试成本 (0) , 系统熟悉、有现有的测试计划只需改进 (30) , 系统熟悉、无现有计划 (50) , 全新系统形式 (70) , 极端复杂整合 (100) 。在成本估算过程中对于上述参数因子的确定则依据以上分类方法, 再结合项目的实际情况采用专家打分法。

需求状况是从需求规模和需求稳定性两方面来分析的。需求稳定性表示项目实施中, 需求与实施进程的关系, 因此定义了五个级别, 数值从1到5, 表示稳定性逐渐减弱。而需求规模则根据简单系统需求的数量G11, 普通系统需求的数量G12和复杂系统需求的数量G13计算得出, 公式如下所示:

(3) 基于核心参数的影响因素

基于核心参数的影响因素主要有规模、成本密度和复杂度三方面。

规模方面主要选取了结构件重量、电子件重量、体积、飞行速度和样机数量四个因素。

成本密度是一个以实际经验为依据的参数, 通过调整其他参数, 包括数量、重量、经验等级等, 表示了产品技术本身和制造商的生产力水平之间的关系。

复杂度包括工程复杂度、项目复杂度、外部装配复杂度和硬件软件集成系数。工程复杂度是根据对设计工作范围C11、个人经验C12与工程复杂度C1的历史数据的分析整理, 建立回归方程得出, 如公式4所示。项目复杂度描述了项目类活动的复杂程度, 调整项目规划和供应商管理的工作量, 应当基于特定的项目信息来调整。外部装配复杂度分别定义了装配和测试任务级别、装配点的数量和装配团队的经验等级, 数值范围从0到5之间。硬件软件集成系数从1到99分别表示了硬件与软件部分集成的复杂程度。

2 参数法成本估算模型的构建和验证

将搜集到的成本影响因素和成本{ (X1, X2, …, Xi;Y) ;i=1, 2, …n}作为样本, 构建一个多变量输入和单一变量输出的向量多元非线性回归预测模型[8], 具体步骤如下:

(1) 数据预处理:本文数据已做了相关的处理, 对飞机型号从1到30进行统一编号, 并将关键参数因子依据表2.2进行从上到下进行编码, X1为重量, X2为体积, X3为样机数量, ……, X24为多地点研制。

(2) 飞机研制项目成本与各关键参数因子曲线拟合:构建自变量与因变量之间散点图和拟合曲线, 对比各拟合方程的sig值。

(3) 回归模型的选择:根据拟合曲线, 选择误差最小的模型。基于经济学生产函数理论和拟合方程筛选的基础上, 采用幂函数的非线性估算模型Y=α0X1α2X2α2…Xnαn进行非线性回归建模误差最小。把幂函数的非线性回归方程两边取对数, 形成一个新的方程:

对该方程进行线性回归, 就可以得到该线性回归方程的运行结果。其模型汇总表如表3所示。

转化后的线性模型相关系数R为0.999、调整的相关系数的平方为0.989, 说明该回归方程的因变量和自变量之间的相关性较强。标准估计的误差为0.147, 说明该回归方程进行成本估算时的估算值与实际值偏差较小。

(4) 飞机项目研制成本模型构建:进行回归分析, 具体结果如表4所示。

由该运行结果可得转化后的线性回归方程的系数, 然后将常数项通过a0=Lnα0计算得出原幂函数的非线性回归方程的常数项α0=0.005, α1, α2…α24的数值对应回归系数表中的数值。将各项系数带入原幂函数的非线性回归方程, 得到飞机研制项目成本估算模型, 如下所示:

(5) 模型检验:首先, 从经济意义角度进行检验, 该模型参数因子中只有X15结构件重复设计百分比, X16电子件重复设计百分比和X21技术进步控制的指数为负, 表明参数因子数值增大导致成本下降。而其他参数因子指数均为正, 表明参数因子数值增大导致成本增加。符合实际飞机成本的经济意义。其次, 从统计意义角度进行检验, 各个系数的显著性概率大多都小于0.05, 虽然有个别系数的显著性概率稍大于0.05, 但是从整体对结果的整体影响较小, 可以忽略不计。并且飞机研制项目成本估算中98.9%部分可以由以上模型来解释。

最后, 通过对不同项目的走访调查, 得到项目成本影响因素所需数据, 代入成本估算模型, 得到如表5所示的研制成本估算结果及误差数据表。

由上表可以看出, 应用参数法成本估算模型进行飞机研制项目的成本估算得到的估算值与实际值的相对误差在2%左右, 有的甚至低至0.58%。表明对于飞机成本估算问题, 通过本文构建的基于参数法的飞机研制项目成本估算模型可以得到的让人满意的结果。

3 我国航空飞机研制项目实施参数法成本估算的建议

3.1 航空飞机制造企业角度

首先, 航空飞机制造企业应该加强对成本估算的重视。航空飞机制造企业应该从自身角度充分认识到成本估算对于整个飞机研制项目的重要性, 在成本估算方面加大投入力度。只有得到了企业自己对成本估算工作的肯定, 成本估算工作才能顺利展开, 反之会遇到重重障碍。

其次, 航空飞机制造企业应该注重培养成本估算方面的专业人才。只有进行成本估算工作的工作人员具备丰富的专业知识, 并能灵活运用与工作中去, 才能使成本估算实现其真正价值。培养方式是多种多样的, 可以资助工作人员参加相关培训, 可以派遣工作人员到合作单位进行参观学习等等。企业应根据自身的实际情况合理安排工作人员的培训。

3.2 研发机构角度

首先, 研发机构应该通过借鉴国外高技术水平、实施探索多种形式的国际合作以及加强航空飞机制造业成本估算方法的基础研究来提高成本估算方法的技术水平。只有通过互相借鉴和学习提高, 人类创造的科学成果才能获得更大的技术进步。我国可以以合作的方式分享先进技术和管理经验, 在这个基础上进行研究, 做出进一步的改造和创新, 来提高我国在这方面的技术水平。

其次, 研发机构应该研发成本估算工具软件。成本估算本身就是一项复杂的工作, 而飞机研制项目的成本估算更加复杂庞大, 单单依靠工作人员人工计算, 不仅浪费人力物力财力, 还有可能产生一些不必要的人为误差。成本估算工具软件就可以解决以上可能会出现的问题。但是, 目前我国的成本估算工具软件的研发还不够成熟, 自主研发的软件数量还比较少[11]。只有加强相关工具软件的研究开发, 并在实际项目的成本估算中充分应用工具软件进行成本估算工作, 才可以使项目的成本估算变得简便易操作, 结果也更加精确, 进而也提高了我国成本估算的整体技术水平。

3.3 政府角度

政府要发挥积极作用, 通过多种政策鼓励支持航空制造业成本估算的技术创新。首先, 要制定鼓励研发成本估算方法的科技政策, 保护成本估算方法技术的知识产权, 鼓励航空企业发明创造, 为技术研发提供一个公平公正的良好环境。然后, 要制定长期稳定的发展政策, 将航空制造业成本估算列为国家的重要发展对象, 把研发飞机成本估算方法作为重大专项, 列入国家经济、科技、国防等规划, 并给予适当的资金支持。最后, 在投资、融资政策方面, 建立以政府和企业投入为主体, 银行信贷作支撑, 广泛吸引社会和境外资金的多元化的融资体系。政府应该建立周期长、利息低的政策性融资渠道和担保机制, 对航空制造企业的成本估算研究实行税收优惠。

4 结论

我国航空飞机研制项目的成本估算研究现在还处于探索阶段, 如何在项目资料不全、历史数据不充分、工具软件不完善的情况下, 较好的完成成本估算工作成为我们亟待解决的问题。高科技的发展对航空飞机的研制提出了更高的要求, 这必然促进了航空飞机研制项目成本估算方法的发展和完善。参数法成本估算由于其自身优势比较适用于航空飞机研制项目的成本估算, 在项目的控制管理中发挥了重要作用。该方法的深入研究弥补了我国现有飞机研制项目的成本估算方法的不足, 丰富了我国航空飞机研制项目成本估算研究理论, 对于今后的飞机研制成本的分析有很大帮助作用。

参考文献

[1]浦一飞.从空容公司看大飞机研制[J].航空工业经济研究, 2009 (1) :15-17

[2]MURINO T, NAVIGLIO G, ROMANO E.Cost estimation in an aeronautical supply chain[J].IEEE Computer Society, 2011 (9) :126-132

[3]罗正军, 王晓娟, 戴婷婷, 等.民用飞机费用估算与评价软件体系结构研究[J].计算机科学技术与发展, 2012, 22 (3) :187-91

[4]李昊.项目成本估算[J].江西建材, 2009 (4) :120-121

[5]马长军.项目成本估算及现金流分析[J].科技向导, 2011 (09) :184

[6]蒋铁军, 王树宗, 魏汝祥.武器系统费用估算的参数法研究[J].上海理工大学学报, 2007, 29 (3) :303-306

[7]赵光华.管理定量分析方法[M].北京:北京大学出版社, 2008:66-70

[8]姚珊珊.航空企业成本管理关键技术[J].飞机设计, 2010, 30 (5) :68-71

[9]曾科.基于参数估算法的项目成本估算[J].中国总会计师, 2011 (8) :88-90

[10]THOKALA P, SCANLAN J, CHIPPERFIELD A.Life cycle cost modelling as an aircraft design support tool[J].Journal of Aerospace Engineering, 2010 (4) :477-488

上一篇:工商监管下一篇:增强检查