3) 用户业务的稳定性和管理的规范性:用户单位业务的变化和业务流程的调整,都有可能带来开发过程中需求的变化。
(该系数取值范围以后将通过经验统计方法给出。根据国外权威机构的调查,该系数一般为25%到400%。)
项目需求变更一般发生在项目建设过程中,立项阶段的咨询服务不受需求变化的影响。但验收测试和工程监理工作量会随着需求变化而加大,所以需求变更费为:
需求变更费B=(项目建设费M+验收测试费C+工程监理费G)*
需求变更风险系数f
= (D+S+W+C+G)* f
(三) 项目总经费概算
由此,可得出电子政务软件项目经费概算为: 项目经费概算= 项目初始预估建设费Q+需求变更费B
= P + (D+S+W) + C + G+(D+S+W+C+G)* f
= P+(D+S+C+G+W)*(1+f)
五、其他事项
项目完成后,根据最终的系统功能点数和性能要求,可由专业评估机构再次进行评估,根据评估结果确定最终项目合同金额。其中因需求变更而追加的费用一般不能超过预计的需求变更费,如果由于需求发生巨大变更而导致需求变更费用可能超过项目预留的需求变更费,承建方需要及时向建设方提出申请,由专家进行评估后决定是终止需求的变更或追签新合同。
11
项目概算过程中要充分发挥专家和中介机构在管理与决策过程中的咨询和评议作用。
参考文献:
1.《软件开发和服务项目价格构成及评估方法》,中国软件行业协会制定,上海市软件行业协会编写;
2.《信息系统工程造价指导书》,深圳市信息工程协会和广东省价格协会编制。
3.《基于COCOMOII模型的软件评估软件一系统设计及实现》,李鹏,山东大学硕士学位论文,2004.11。
4.《软件工程项目管理——功能点分析方法与实践》,李臶、林立新、曹亚波,清华大学出版社。
5.《软件成本估算COCOMOII模型方法》,Barry W.Boehm等著,李师贤等译,机械工业出版社。
6.《通信软件开发成本评估系统研究》,李文,电子科技大学工程硕士学位论文,2004年10月
附录一:软件项目功能点估算方法 附录二:软件人员月人工费用计算方法
12
附录一:
软件项目功能点估算方法
软件开发工作量指完成该项目所需要投入的人月数。一个人月表示一个软件人员在一个月的时间内从事软件开发项目的时间数。工作量大小由软件项目规模所决定。软件项目规模大小可根据历史经验、类比等方法来估算,但目前国际上通行的也比较科学的估算方法是采用功能点分析方法。功能点分析方法是通过一种基于软件功能的预测模型,以各种与软件项目功能有关的因素作为软件开发工作量的度量。一旦项目的需求分析确定,就可以大致得出软件的各项功能要素,并进行相应的功能点计算,以功能点表示软件的规模,并转化为工作量大小。功能点方式目前被广泛认可并应用在信息系统、数据库密集型、4GL应用系统开发等。
本方法采用功能点分析法来估算软件项目的功能点数。
一、 软件开发工作量的功能点估算流程
功能点是对软件功能和大小的间接度量单位,一般通过必须和用户交互的情况的数目来测算程序工作量的大小。其工作流程如下:
1、 2、
确定计算范围:确定功能点的计算规范、划定应用程序的边界; 功能点分析:识别和估算与软件数据和事务功能有关的各种要
素及其数量; 3、
功能点计算(初步):根据表格和加权值计算出初步的功能点数
UFC; 4、 5、
确定基数复杂度因子TCF;
功能点调节:计算出经调节后的功能点数:FP=UFC*TCF
13
二、 功能点分析
功能点分析是从软件用户的角度来评估一个软件系统的功能,它将软件的功能分为五个基本要素:其中两个表示终端用户的数据需求:内部逻辑文件(Internal Logical Files),外部接口文件(External Interface Files),另外三个表示用户对数据的获取处理的事务功能:用户输入(External InPuts),用户输出(External Outputs),用户查询(External Inquiries)。它们的详细定义如下:
1、内部逻辑文件(ILF):是一个用户可识别的逻辑相关的数据组,它在应用程序边界内,由用户输入来维护。它可能是某个大型数据库的一部分或是一个独立的文件。
2、外部接口文件(EIF):是一个用户可识别的逻辑相关的数据组,但仅仅是起参考的作用,且数据完全存于软件边界之外,由另一个应用程序进行维护,是另一个应用程序的内部逻辑文件。
3、用户输入(EI):是来自于软件外部的数据输入,可以是控制信息,也可是事务数据输入。如果是事务数据,它必须维护一个或多个内部逻辑文件。也就是说那些最后没有保存的中间计算结果和消息发送,都不算作数据输入单元。输入数据可来自于一个数据输入屏幕或其他应用程序。 4、用户输出(EO):是“经过处理”的数据,由程序内部输出到外部。这里“经过处理”是指其区别于用户查询数据,是将一个或多个ILF、EIF中取出数据经过一定的组合、计算、总结后得出的输出数据。
5、用户查询(EQ):是一个输入输出的组合过程,从一个或多个ILF、EIF中取出数据输出到程序外部。其中的输入过程不更新任何ILF,输出过程
14
不进行任何数据处理。
注:对软件项目进行估算的有效性和准确性取决于所掌握的有关项目的原始资料的完备性。这些原始资料包括:需求说明书、系统规格说明书、或者软件需求说明书等。从这些原始资料中可分析得出以上5类要素。如果以上5类要素的数据不准确,将直接影响到评估的结果。
三、 功能点计算(初步值UFC)
一旦估算出应用程序中每个功能要素的数量后,就可以将每个计数与
一个复杂度值(加权因子)相乘,最后进行合计,算出一个初步的总的功能点数UFC。复杂加权因子表如下:
功能要素复杂度加权因子表(Complexity weights Factor)
复杂度 功能要素 用户输入数EI 用户输出数EO 用户查询表EQ 内部逻辑文件数ILF 外部接口文件数EIF 低 平均 高 3 4 3 7 5 4 5 4 10 7 6 7 6 15 10 例如,每个功能要素的复杂度都是平均的,若有一个由25个数据登记表、5个接口文件,15个报告、10个外部查询和20个逻辑内部表单组成的系统,其功能点为:UFC=(25*4)+(5*7)+(15*5)+(10*4)+(20*10)=450个功能点。
15