软件项目中的成本估算模型有哪些呢?
现有的大多数软件成本估算模型适于预算、权衡分析、计划、控制和投资分析等范畴。
成本估算模型技术多采用经验公式对软件项目进行成本估算。
在大多数估算模型中,软件规模是决定成本的主要因素。
有两种衡量软件规模的常规方法:基于代码行的估算方法和基于功能点的估算方法。
许多成本估算模型中将代码行或功能点数作为主要的输入参数。
1.面向代码行的成本估算模型 代码行(lines of code,LOC)是衡量源代码长度的最常用的方法。
NCLOC(non-comments source lines ofcode缩写)用于表达不含注解的源代码行数。
NCLOC也常常被当作为有效的代码行数(effective lines of code,ELOC)。
在很多情况下,为了日后更清楚地阅读和理解程序,提高系统的可维护性,在程序开发中往往要求在程序中附上详细的注解,在这种情况下,包含注解的源代码行数也是一个有效的度量标准。
CLOC(commented source line of code缩写)用于表达含注解的源代码行数。
综上所述,我们给出代码行的定义如公式1所示:总长度(LOC)=NCLOC+CLOC (1) 2.面向功能点的成本估算模型 面向功能点(Function points,FP)的成本估算模型是用系统的功能数量来测量软件规模的。
该方法先评估产品所需功能,然后根据技术复杂度因子(权)对其成本进行量化和修正,估算出最终的软件成本。
其基本步骤是: (1)计算未调整的功能点(UFC)数目这里所谈的功能点数并非最终软件中实际的功能数量,最终软件实际功能模块的个数在软件开发之前是不可能精确估算的。
在此,我们首先将软件的所有功能分为外部输入、外部输出、外部查询、外部文件及内部文件五大类,并估算每类功能的数量(FPi),然后依据待开发软件的特点评估各类功能的复杂度权重(Wi),在依据公式2可得未调整的功能点数(UFC)。
UFC=SUM(FPi*Wi) (2)外部输入由用户提供的、描述面向应用的数据外部输出系统向用户提供的、面向用户的数据外部查询要求回答的交互式输入外部文件对其他系统可读的文件内部文件系统里的逻辑主文件权重因素(Wi)项简单一般复杂外部输入3 4 6外部输出4 5 7外部查询3 4 6外部文件7 10 15内部文件5 7 10 (2)计算调整后的功能点数考虑到用户对系统性能的不同要求,我们还需从表3中反映的14个方面对UFC作进一步的调整,从而计算出待开发系统的技术复杂度因子(technical complexity factor,TCF)。
表3技术复杂度因子第12期舒小仙:软件项目管理的成本估算81F1可靠的备份和恢复F2数据通信F3分布式处理F4性能F5大量使用的配置F6联机数据输入F7操作简便性F8在线升级F9界面的复杂性F10数据处理的复杂性F11代码的复用性F12安装的简易性F12多重站点F14易修改性表3中的因子Fi(其中:i=1,2,……14)取值范围在0-5之间[1],值0表示该因子对系统无影响,值5表示该因子是对系统有强大的影响。
技术复杂度因子的计算公式如公式3所示:TCF=0.65+0.01(SUM(Fi)) (3)由UFC乘以技术复杂度因子(technical complexityfactor,TCF)得到调整后的功能点数FP,参见公式4。
FP=UFC*TCF (4) 3.基于回归分析的成本模型 成本模型提供工作量的直接估算,通常有一个主要的成本因素和若干个次要的调整因素。
该模型是利用过去软件项目中收集的数据进行回归分析导出待开发软件的成本模型[1]。
其整体结构如公式5所示:E=A+B*SC (5)ABC为经验性的导出常数,E为每个月的投入,S为主要输入(常用源代码行数LOC或功能点数FP)[1]。
以LOG为主要输入参数来计算的成本模型的例子:E=5.2*(KLOC)0.91 Walston-Felix模型E=3.2*(KLOC)1.05 COCOMO基础模型以FP为主要输入参数来计算的成本模型的例子:E=-12.39+0.0545FP Albrecht and Gdffney模型E=585.7+15.12FP Matson,Barnett,和Mellichamp模型 4.各类模型存在的问题分析 当一个模型有75%的准确性时,我们认为是可以接受。
但目前大多数的模型无法达到这个标准[1]。
从前面模型中不难看出,无论是模型结构、复杂度或软件项目规模,都是靠开发者的经验估计出来的,而这些参数在开发的早期很难预测。
大多数模型在当初导出它们的工作范围内工作的很好,但应用于普通情况时表现很差。
软件需求是复杂的,有差异的。
虽许多模型包含解决差异的调整因素,评估员可依靠调整因素去解决当前问题的任何变动,然而这种方法常常是不适当的。
实际上,许多因素会相互影响,有时会导致过度忽略了某个因素的重要性。
同时,这些方法也非常具有主观性,常常带有开发者的个人倾向。
另外,调整因素的计算过程也过于复杂,不是一个容易确定的值。
一般模型要求对软件规模进行估算,但项目初期很难预测。
对规模的估计结果也很主观,并要求模型的规模度量与用于实际中的规模度量相同,否则不能给出准确的结果。
成本估算的软件标准简介
1、行业标准《软件研发成本度量规范》 本标准规定了软件研发成本度量方法、过程及原则,包括软件研发成本的构成、软件研发成本度量过程、软件研发成本度量的应用。
本标准适用于度量成本与功能规模密切相关的软件研发项目的成本。
本标准不涉及软件定价,但相关各方可依据本标准明确研发成本,从而为软件定价提供重要依据。
标准研制背景长期以来,如何度量和评估软件研发项目的成本一直是产业界的难题。
目前我国尚无科学统一的软件研发项目成本度量标准体系以指导、规范、管理软件项目的研发成本,较大程度导致做预算时无据可依,造成极大浪费;在软件项目招评标过程中,由于无法界定软件工程项目的合理成本范围,常常出现恶意低价或超高价格竞标现象;软件开发商在项目实施过程中,由于缺乏成本控制的科学依据,也经常出现时间滞后、费用远远超出最初估算水平的情况。
标准研制过程在国家工业和信息化部软件服务业司领导下,从2010年开始启动我国软件成本度量标准体系的研制工作。
中国软件行业协会系统与软件过程改进分会 (以下简称 “过程改进分会”)和中国电子技术标准化研究院(以下简称“电子四所”)围绕软件研发成本度量标准体系建设开展了基础性研究工作,梳理了标准体系。
核心标准《软件研发成本度量规范》于2010年12月正式立项,计划号为2010-3194T-SJ,由过程改进分会和电子四所共同牵头起草,组织产、学、研、 用约40家单位共同参与,历时3年,为软件项目预算、立项审批、招投标、项目计划、变更管理等工作提供“科学依据”。
标准的价值1、倡导使用统一的国际功能点方法度量软件规模,使度量结果可比对;2、倡导使用基准数据估算软件工期和成本,使估算结果更科学;3、倡导使用一致的估算过程和公式,使估算过程透明化、估算结果可追溯。
标准试点应用《软件研发成本度量规范》从2012年开始试点应用。
海关总署、中国人民银行、东软集团等单位都参与了试点工作,分别在预算审批、项目立项、招投标、项目计划等场景进行应用,取得了很好的效果。
截至2013年年底,共有约2000人参加CCEP培训,近1500人通过考试并成为国内首批CCEP(软件成本估算专家)。
采用标准规定的方法后,极大的解决了试点企业长期以来面临的问题。
标准发布行业标准《软件研发成本度量规范》(SJ/T11463-2013) 由中华人民共和国工业和信息化部于2013年10月17日正式发布,并于2013年12月1日开始正式实施。
最新进展经推荐,该标准由中关村智联软件服务业质量创新联盟 牵头,正在申请升级为国家标准,于2015年7月31日正式下达计划号:20151553-T-469 2、北京市地方标准《信息化项目软件开发费用测算规范》1、规范研制背景 北京作为全国软件与信息服务业之都,产业规模一直位居全国前列,并且保持着较快的增长水平,软件和信息服务业在全市经济发展中也占有越来越重要的地位。
随着十二五规划的逐步实施,北京市各行各业信息化建设投资也不断加大,仅全市每年属于市级财政拨款范畴的信息化项目就可达700至800个,金额总量可达三十多亿元,涉及上千家企事业单位。
然而本市一直没有科学统一的标准以支撑、规范、管理信息化项目软件开发费用的测算,这大大制约了北京软件产业的健康可持续发展。
由于相关标准的缺失,如何测算信息化项目软件开发的合理费用一直都是北京软件产业发展中的难点,因而常常导致软件项目预算审批无依据、恶意竞标等问题的发生。
2、规范的价值 由北京市经济和信息化委员会归口指导,北京软件和信息服务交易所、北京软件行业协会过程改进分会联合制订的北京市首个软件成本度量地方标准《信息化项目软件开发费用测算规范》于今年11月起正式实施,这标志着我市信息化项目软件开发工作拥有了科学、标准的费用评估方法,有助于规范行业市场、推动软件企业提升生产效率,提升产业增长质量。
3、联盟标准《行标应用指南(预算场景)》 1、编制背景 长期以来,如何度量软件研发成本一直是产业界的难题,尤其是在预算、招投标、项目计划等活动中因为缺失科学统一的软件研发成本度量标准,较大程度导致项目做预算时无据可依,进而造成预算浪费或预算不足;在软件项目招投标过程中,因为缺乏软件研发成本度量依据,恶意竞标、低价中标现象频频发生;开发方在项目实施过程中,由于缺乏成本控制的科学依据,也经常出现时间滞后,费用远远超出最初预算的情况。
科学统一的软件研发成本度量标准既是有效进行软件项目管理的重要依据,也是当前软件产业发展的迫切需要。
为此,工业与信息化部软件服务业司委托中国软件行业协会系统与软件过程改进分会牵头组织编制了《软件研发成本度量规范》。
标准中规定了软件研发成本度量的方法及过程,包括软件研发成本的构成、软件研发成本度量过程、软件研发成本度量的应用。
其目的是帮助软件研发涉及各方科学、一致地进行成本度量。
但标准中没有包含软件研发成本度量过程中所需要的估算模型、行业基准数据及其在不同场景进行成本估算的详细步骤和方法,因此需要制订标准的应...
做软件开发的成本究竟如何估算
展开全部 可以用Delphi方法(专家),或国际功能点估算法。
如果用Delphi方法,大致步骤如下:1、先按 WBS (工作任务分解)进行工作量估算(人日)2、再用工作量*每人日的费用就得到人员成本3、用人员成本+其它成本(房租水电的分摊、交通费、电话费等)如果用国际功能点估算法,大致步骤如下::1、先计算软件的规模(即功能点数)2、用功能点*生产率=工作量(人日)3、再用工作量*每人日的费用就得到人员成本4、用人员成本+其它成本(房租水电的分摊、交通费、电话费等)...
一个软件项目如何评估工作量和成本?
让我们首先来分析一下一个用户是怎样被吸引到网站上的。
一般来说,客户都要经历这样的过程:从开始上网时乱逛式的点击(click/pageview),到被内容留住(stickiness),再到被专业性、个人化的定制服务所吸引,注册成为某网站的忠实客户(loyalty),最后被专业的个人化的服务所打动而开始支付(payment),这就是一个客户对网站的需求,它也驱动着网站服务升级。
对客户来说,他付出了:上网时间与精力;费用——包括上网电话费和网络使用费、网上购买支付的费用;隐私——为了让别人更好地为你服务,就得牺牲一部分隐私,笔者所付出的代价就是每天都会接到二、三十封商业垃圾邮件。
一个网站得到的是:1.费用方面。
获得高点击率后就可以收取一部分广告收入,当然你的内容粘性越大,广告收入越高;ISP接入的费用,也就是用户在你的网上消费的时长;信息分成费用比如中公网上的游戏,能与169进行费用分成;电子商务支付的费用,包括买商品、专业数据库查询、炒股服务等等;2.资产方面。
对商业网站来说更重要的是获得信息资产,包括——无形资产,如网站知名度,特别是门户网站,用点击率、点击率加客户停留时间来测量;客户资料价值,客户注册后,你可以获得客户资料,分析客户的需求,进行定制性服务,让客户更满意;信息资料集成,网络开设后逐步累积的各类信息资料并相应汇聚成了各种分类数据库;可扩展的技术支持平台,在与客户的互动中日臻完善形成网站独特的可扩展的技术平台,并可随着市场与客户需求的变化而在这一平台上不断增加内容与服务手段、成熟和具有扩展性的品牌形象、组织结构和工作流程。
以客户分析入手总结一个网站的收入流是投资银行较常用的手段,主要包括以下指标:1.页面访问次数(pageview)——点击率;2.停留时间——粘性;3.回访率——忠诚度;4.支付。
这是网站的未来收入和资产定价的基本标准。
高盛公司最早评价门户网站的模型就是所谓市值比访问量模型(Steve Harmon),从而计算出Yahoo!每个客户价值为798美金,通过这个相对指标大致可以估算每一个客户的价值,再根据客户增长的速度反过来推算网站的市场价值;随着网站内容的丰富,特别是Internet在近3年内由信息搜索发展到虚拟社区使得内容的粘性日渐变成评价指标,于是衡量网站价值的模型=页面访问量*停留时间,高盛以此为依据认为AOL的客户价值超过Yahoo!。
99年以来电子商务的快速发展使得注册客户量越发显著——即客户忠诚度和客户信息对于销售者有着重要的意义。
Yahoo!从单一门户到提供大量个性化服务而获得注册客户的显著增长,从而获得了巨额的中介收入而演变为电子商务的门户,成功的转型是它高股价的业绩来源,同时也从某种角度证明:注册客户成为更具有价值的群体,因此第一种评估方法有被改进为市场价值/注册客户价值,通过对注册用户增长率进行分析(Subscriber growth),而且把注册客户带来的无形收益进行统计(per user statistic)——客户的支付率和支付能力,常用的指标是市价/销售额(Price/Sales rate) 模型。
商业网站评估还有一个不可忽视的内容就是对未来的预期分析。
众所周知,如果网络公司不是代表了未来的商业模式,类似Amazon这样连续5、6年都亏损的公司,估价可能只有5美元,而不是现在的300美元,可从数学分析角度就很难估价未来预期。
但相对指标对描述客户价值是非常有益的,而且对寻求上市的网站公司的价值评估也起到重要的作用。
按照目前我国的上市公司数据披露原则,利用收益/现金流贴现来评估网络公司价值将成为最重要的方法,所以在具体运用中就必须要把预期商业平台的扩展纳入到评估体系里,必须要考察网站平台的扩展性和独特性。
市场/客户的需求一步一步地驱动着网站向成熟商业模式发展,同时网站本身又有着自己为满足需求进行的供给性驱动,两者的合力共同推动着互联网站服务的变化。
网络技术和商业运营平台的价值 互联网领域中许多网站的建立是根据不同资源推动建立的,大致可分为两大类型:早期的公司主要是以技术作为驱动的,创始人都是计算机或通讯技术等方面的人才或爱好者,由自娱自乐到创造出有特色的网络服务模式,杨致远与Yahoo!、丁磊与Netease都是典型代表,在市场利益的推动下从网络的技术平台转向网络的商业平台;另一种则是从纯粹的商业模式出发,往往与大量的风险资本和商业合作伙伴相关联构成新的网络公司,如Amazon、eBay,中国的sohu、8848等。
90年代中后期以前主要是技术推动为主,随着资本市场对网络认可度的加强,商业模式是最主要的网络公司的驱动因素,技术推动的公司也逐步转向了以商业模式驱动的公司,商业运行平台的作用越来越重要。
由此就不得不深入研究网络公司价值驱动的重要因素——技术和与之配合的商业运作平台的拓展性(Scalability)。
技术平台应该包含:接入技术——包括接入途径的多样化、接入设备的多样化和接入速度的快速性;内容技术——由于接入技术的迅猛发展,网站开发的内容技术也就将从以文本为主的内容开发模式转向内容的多媒体;软件...
计算机软件工程简答题求做
1. 软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。
它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。
目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。
CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。
过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
软件工程是一种层次化的技术。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
2. 1.P(Plan)软件规格说明 2.D(Do)软件开发 3.C(Check)软件确认 4A(Action)软件演进 3. 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架.演化模型主要针对事先不能完整定义需求的软件开发。
用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。
软件开发人员根据用户的需求,首先开发核心系统。
当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。
软件开发人员根据用户的反馈,实施开发的迭代过程。
第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。
在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。
于是,设计就不断地演化出新的系统。
实际上,这个模型可看作是重复执行的多个“瀑布模型”。
4. 结构化分析方法(Structured Method)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。
结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。
针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。
它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
结构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。
它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。
SD方法尤其适用于变换型结构和事务型结构的目标系统。
在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
结构化设计的步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。
5. DFD图如下图示,将DNF图转化为初始的MSD图。
1.打开visio,在visio里选择创建框图2.拉八个圆圈,并调整大小和形状3.选中单箭头,输入一定的箭头(注意,拉过去的箭头都是双向的,要选中双向箭头/右击/箭头向右)4双击箭头中间就可以编辑想要的文字(要调整相应的文本格式)。
所得图形如下图第二图示:1.选择创建基本流程图2.拉足够多个流程和箭头(箭头要稍作变化,先选中连接线工具,然后右击选直线连接线)3.双击相应位置,编辑想要输入的文字据上图,所得图如下示:二、同上图做法:
转载请注明出处51数据库 » 软件开发成本估算模型
彩色B