软件成本估算课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件成本估算课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 成本 估算 课件
- 资源描述:
-
1、软件成本估算l预测一个软件开发过程所需要的资源目标l软件成本计算和软件报价的基本原理以及在它们之间存在的复杂关系。l对软件生产率评估的度量。l在对软件成本和进度安排进行评估时应当使用一系列不同的技术。l用于算法成本估算的COCOMO 2模型的原理内容l生产率l估算技术l算法成本建模l项目的工期和人员配备估算的基本问题l完成一项活动需要多少工作量?l完成一项活动需要多少时间?l一项活动的总成本是多少?l项目估算和进度安排是交叉进行的管理活动软件成本构成l硬件和软件成本l差旅费和培训费用l工作成本 (大多数项目中是主要成本)项目中投入的工程师的工资社会和保险费用l工作成本还要计入办公场所、供热和照
2、面费用网络和通信费用共用设施的费用 (e.g 图书馆,员工餐厅, etc.)成本和报价l估算是为了得到承包商开发一个软件的成本l在成本和报价之间没有一个简单的关系 价格成本利润l广泛的因素包括机构的、经济的和商务上的考虑会影响报价影响软件报价的因素因素因素描述描述市场机遇开发机构为了便于进入一个新的软件市场,可能会提出一个低报价。成本估算的不确定性如果机构对成本估算没有把握,它会提高报价,在正常利润之上增加某些意外费用。合同条款客户可能愿意让开发者保有程序源代码的所有权,以便可以在未来的开发项目中复用。这时的要价就会比移交源代码的情况低得多。需求易变性如果需求很有可能发生变化,机构就会降低报价
3、以赢得合同,当得到合同之后,一旦需求有所变更,机构就会乘机抬高报价。经济状况当开发者处于资金短缺阶段时,为得到合同而作出较低报价,少获点例甚至收支相抵总比破产强。l软件开发工程师生产软件和相关文档的效率的度量l不是面向质量的,虽然质量保证是生产率评估的一个因素l本质上,我们是想度量单位时间里生产的有用功能程序员的生产率l面向规模的度量 这种方法是根据活动输出的量来衡量。可能是提交的源代码行数,目标代码说明书的长度或者系统文档的页数等。l面向功能的度量 这种方法是看移交软件总的功能有多少。功能点和对象点方法是最常用的方法。生产率的度量l估算软件规模l估算总的程序员人月数l估算分包商生产率 ,并且
4、合并到总的估算中度量的问题l什么是一个代码行?当程序打印在卡片上时代开始就使用的度量方法,一行一张卡片代码行如何跟语句对应起来,一个语句可能占几行,一行也可能有几个语句。l什么程序应该算作系统的一部分?l假设在系统大小和源代码大小之间有着线性关系代码行l编程语言越低级,计算出来的生产率越高同样的功能,低级语言需要更多代码l程序员的代码越冗长,计算出来的生产率越高生产率计算是基于程序员所写的代码量的生产率比较的问题高级和低级语言系统开发时间AnalysisDesignCodingTestingDocumentationAssembly codeHigh-level language3 weeks
5、3 weeks5 weeks5 weeks8 weeks8 weeks10 weeks6 weeks2 weeks2 weeksSizeEffortProductivityAssembly codeHigh-level language5000 lines1500 lines28 weeks20 weeks714 lines/month300 lines/month功能点l基于程序特性的组合外部输入输出用户交互外部接口系统使用的文件l每一项都有一个复杂性权值(315)l功能点计数就是将每项功能点数乘以权值,然后求和的结果。功能点l功能点计数由项目复杂性修正l根据给定语言的每功能点平均代码行数,
6、功能点计数可以用来计算代码行数LOC = AVC * FPs AVC 是基于语言的因子,汇编语言200-300, 4GL则2-40l功能点计数是非常主观的,依赖于估算者。自动功能点计数是不可能的。对象点l当使用高级语言(特别是4GL)开发时,作为另一个功能相关方法,对象点方法可以代替功能点方法l对象点不同于对象类l 程序的对象点是下列内容的加权估算:独立的显示屏幕数生成的报表数为辅助4GL代码而必须开发的3GL模块数对象点估算l对象点估算比功能点容易,因为它只关心屏幕数、报告数和3GL模块数l可以在开发过程的很早期使用,这时要估计系统的代码行还很困难。l实时嵌入式系统, 40-160 LOC/
7、人月l系统程序, 150-400 LOC/人月l商业应用, 200-800 LOC/人月l在对象点方法中,随支持工具和开发者能力不同,生产率在 450对象点/人月生产率估算影响生产率的因素因素因素描述描述应用领域经验应用领域知识是有效的软件开发的根本。已经对领域有充分了解的工程人员很可能是生产率最高的。过程质量所用的开发过程对生产率有极大的影响。项目规模项目规模越大,团队之间的交流和沟通就越花时间,真正有用的时间就会减少,因而,个人生产率就会降低。技术支持好的支持技术和CASE工具、配置管理系统等有助于提高生产率。工作环境一个好的工作环境有助于提高生产率。l所有基于单位时间内产量的做法都有问题
8、,因为没有考虑质量l以质量为代价,通常都能提高生产率l还不清楚生产率和质量之间的关系l变更不断的情况下,使用代码行生产率计算是没有意义的。质量和生产率估算技术l没有一个简单的方法可以精确估算软件开发所需的资源初始估算是基于用户需求定义中不充分的信息软件可能是运行于不熟悉的计算机系统或者使用新的技术项目中的开发人员不了解l项目成本估算可能是自己设定的用来确定项目预算和调整软件产品以保证预算不被突破估算技术l算法成本建模l专家判定l类比估计lParkinson定律l根据客户预算报价算法成本建模l所建立的模型利用有关历史信息来估计需要的工作量,用到的历史信息是有关某些软件度量(例如规模)与项目成本之
9、间的关系l本章后续讨论专家判定l多位软件开发和应用领域方面的专家用他们的经验预测软件成本。反复进行直到达成一致。l优点: 相对廉价的估算方法。如果专家具有相似系统的直接经验的话,可以比较精确。l缺点: 如果没有专家的话,将非常不精确。类比估计l将项目和一个同样应用领域里的类似项目作比较,从而计算出成本。l优点: 如果项目数据具备的话比较精确l缺点: 如果没有可比的项目,则不可能应用。需要系统性维护的成本数据库Parkinson定律l工作占满所有可用的时间。成本决定于所有可用的资源而不是客观的估算。l优点: 不会超支l缺点: 系统经常完不成根据客户预算报价l将客户对项目的预算作为软件的成本l优点
展开阅读全文