




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程管理与质量保证黑龙江大学软件学院0.软件开发工程管理第六章软件工程规模本钱估算1.本章要点一、软件工程规模本钱的概念二、估算的过程三、估算的方法四、估算的误差2.本钱管理过程资源方案编制:确定工程需要的资源种类和数量本钱估算:中心环节编制一个为完成工程各活动所需要的资源本钱的近似估算本钱预算:工程进度将总本钱估算分配到各单项工作活动上本钱控制:工程跟踪控制工程预算的变更3.关于估算估算不是很准确的,有误差的经验〔历史〕数据非常重要不要太迷信数学模型4.软件工程规模软件工程规模即工作量,是从软件工程范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。5.规模的单位LOC(LocofCode)源代码程序长度的测量FP(FunctionPoint)用系统的功能数量来测量人月人天人年6.软件工程本钱完成软件规模相应付出的代价。待开发的软件工程需要的资金。人的劳动消耗所需要的代价是软件产品的主要本钱开发本钱是以一次性开发过程所花费的代价来计算的7.软件的规模和本钱的关系软件工程规模(工作量〕是本钱的主要因素,是本钱估算的根底有了规模就确定了本钱,如一个工程需要20人月,3万元/人月,那么工程的本钱是60万。8.本钱估算定义对完成工程所需费用的估计和方案包括预测开发一个软件系统所需要的总工作量的过程。是一种量化的结果可以有一些误差,通常需要一定的调节本钱估算不同于工程定价贯穿于软件的生存周期,只要WBS有变化就需要进行本钱估算估计本钱、资源、进度时需要经验、历史信息。9.本章要点一、软件工程规模本钱的概念二、估算的过程三、估算的方法四、估算的误差10.本钱估算过程估算输入估算结果本钱估算方法11.本钱估算输入工程需求、WBS历史工程度量资源要求〔资源编制方案〕资源消耗率〔资源单价〕:如人员本钱:100元/小时进度规划:工程总进度〔一般是合同要求〕学习曲线(工程组学习某项技术的时间〕12.资源规划需要的资源种类、数量等13.一个大型IT工程的例如资源直方图14.本钱估算规模本钱估算主要是对各种资源的估算,包括人力资源、设备、资料等。直接本钱间接本钱这些估算的算法下节讲15.直接本钱与具体工程相关的本钱〔人员的工资、材料费、外包外购本钱等〕,包括开发本钱、管理本钱、质量本钱等。16.间接本钱不能具体到某个工程中的本钱,可以分摊到各个具体工程中的本钱,例如:培训房租水电员工福利市场费用管理费其他等等17.工程估算结果估算结果包括估算文件和估算说明估算文件包括资源,资源的数量,质量标准,估算本钱等信息单位:一般是货币单位,或是规模单位BAC(BudgetAtcompletion预算完成)估算说明工作范围,通常由WBS获得估算的根底和依据,即确认估算是合理的和估算是根据什么产生的确认为本钱估算所做的任何假设的合理性估算的误差变动等18.本章要点一、软件工程规模本钱的概念二、估算的过程三、估算的方法四、估算的误差19.估算的根本方法代码行、功能点、用例点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法20.代码行〔LOC〕从软件程序量的角度定义工程规模。要求功能分解足够详细的有一定的经验数据〔类比和经验方法〕与具体的编程语言有关21.1.静态单变量估算模型这种模型在计算软件开发的资源花费时,只需要设定被开发软件的一种参数,故称为单变量型。它的一般形式是:
资源=C1×(估计的软件特征)C2其中,资源可以是开发工作量(E)、开发时间(T)或开发人数(P)等;估计特征可以用源程序长度(L)、或软件的开发工作量(E);C1、C2为依赖于开发环境和软件应用领域的两个经验常数。.1.静态单变量本钱估算模型自1973年至l977年,Walston与Felix从60个软件工程(源程序长度从4至467千行,工作量从l2至11758个人—月,使用了28种不同的高级语言)的统计中导出了以下的一组参数方程:E(人—月)=5.1×L(千行)0.91T(月)=4.1×L(千行)0.36T(月)=2.47×E(人—月)0.35P(人)=0.54×E(人—月)0.6文档长度(页)=49×L(千行)1.01这组方程在计算E、T、P等开发所需的资源时,使用L(千行)作为估计的特征。由L计算开发时间、工作量或文档页数,再由算出的工作量E来计算开发时间与所需人数。这类模型简单易懂,常数C1、C2可以从历史数据导出。但如果没有适用于本单位情况的经验常数,就不能直接搬用。.2.Putnam本钱估算模型Putnam模型是一种动态多变量资源模型,可以用下面的方程式来表示:L=cK1/3T4/3或K=L3/(c3T4)其中L(行)与T(年)仍分别代表源程序长度和开发时间。K表示全生存期(含维护在内)所需要的工作量(人—年)。对大型软件而言,其大小约为开发工作量E的2.5倍,即E=0.4K。c是一个与开发环境有关的常数。对“优良〞、“好〞与“不好〞的3种环境,c的典型值可分别取l2500、10000与6500。.2.Putnam本钱估算模型这个模型发表于1978年,是L.Putnam对50个大型军用软件(生存期工作量均在30人一年以上)研究得出的结果。后来又对另外l50个大型软件进行验证,也取得满意的效果。一般认为,规模在10万行以上的软件,用这个模型是适当的。Putnam模型的特点,是在同一个模型中给出了K(或E)、L和T三者之间的关系。例如,给定了L和T,就可以用它来估计开发所需的工作量E。如果估计的程序长度有一个范围(例如从L1~L2),那么在保持工作量不变的情况下,可算出相应的开发时间T1与T2等。Putnam模型方程揭示了E与T之间的关系。根据这一方程,开发工作量E与开发时间T的4次方成反比。这说明,开发时间的小量变化,会引起开发工作量相当大的变化。如果把开发时间成倍延长,那么一个原来需要100个人一月完成的工程,能够把工作量降低到仅需6.5个人—月(=100/24)。.3.COCOMO模型
(1)按照软件的应用领域和复杂程度,将它们分为组织(Organic)、半独立(Semide-tached)和嵌入(Embeded)3种类型,每类分别使用一组不同的模型方程,如表11-1中由上向下,程序的复杂度逐步提高,E和T的计算值也随之增大。.3.COCOMO模型(2)在模型中增加一个工作量调节因子EAF(EffortadjustmentFactor),反映各种有关因素对软件开发的影响。Boehm把这些因素归结为4类共l5种因子,如下表所示。每种因子的可根据实际情况在一定范围内上下浮动。模型中使用的调节因子值,就是这15种因子的值的乘积,可以写作EAF=(i=1,2,…,15).3.COCOMO模型.例如.例如(1)换用水平较低的开发人员本例中原来使用较高水平的分析员和程序员,一个人—月的花费是6000美元。如果换用5000美元/人—月的人员,那么人员水平的两个调节因子均将从0.86上升为1.00,整个EAF值将从原来的l.17变成l.17/0.86/0.86=1.58。开发本钱不仅没有节省,反比原来有所增长。请看下面的计算:原开发本钱:6000×44.4×1.17=311400新开发本钱:5000×44.4×1.58=350760.例如(2)扩充内存储器容量假定原有的内存容量为64KB,允许软件使用的内存为46KB。现决定增加l0000美元购置内存扩充板,使软件可用的内存从46KB扩充为96KB。这样,内存容量的调节因子值可从原来的l.06(见11.2末栏第5项)下降为1.00,从而使EAF从1.17下降为1.10。虽然新增加10000美元的投资,总开发本钱仍可望下降。以下是新本钱的算式:6000×44.4×1.10+10000=293000.功能点〔FP〕用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部根本功能外部根本功能加权和量化32.功能点的公式FP=UFC*TCFUFC:未调整功能点计数TCF:技术复杂度因子33.UFC-未调整功能点计数功能计数项:外部输入:由用户提供的用来描述面向应用的数据项〔如屏幕、表单、对话框、控件、文件等〕外部输出:那些向用户提供的用来生成面向应用的数据项。外部查询:要求答复的交互式输入的项外部文件:对其他系统的机器可读界面的项内部文件:系统里的逻辑主文件的项34.UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件7101535.功能点计算实例-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计UFC30136.TCF-技术复杂度因子TCF=0.65+0.01(sum(Fi)):Fi:0-5,TCF:0.65-1.35技术复杂度因子F1可靠的备份和恢复F2数据通信F3分布式函数F4性能F5大量使用的配置F6联机数据输入F7操作简单性F8在线升级F9复杂界面F10复杂数据处理F11重复使用性F12安装简易性F13多重站点F14易于修改37.技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响38.功能点计算实例假设一个软件工程所有技术复杂度都是平均程度,即技术复杂度因子的值都为3,那么计算功能点如下:FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=32239.功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK(面向对象之母)21SPREADSHEET(电子制表)640.用例点估算模型41.用例点估算模型42.用例点估算方法的根本步骤计算未调整的角色的权值UAW;计算未调整的用例的权值UUCW;计算未调整的用例点UUCP;计算技术和环境因子TEF和ECF计算调整的用例点UCP;计算工作量(man-hours)。43.1、计算未调整的角色的权值UAWUAW=44.2、计算未调整的用例的权值UUCWUUCW=45.3、计算未调整的用例点UUCPUUCP=UAW+UUCW:例如46.4、计算技术因子TCF47.5.环境复杂度因子〔ECF〕.6、计算调整的用例点UCPUCP=UUCP×TCF×ECF=110×1.02×0.62=70ECF为环境复杂度因子49.7、计算工作量如果:PF=20工时/用例点那么:Effort=UCP×PF=70×20=1400h=175人天50.估算的根本方法代码行、功能点、用例点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法51.类比-定义从工程的整体出发,进行类推,即估算人员根据以往的完成类似工程所消耗的总本钱〔或工作量〕,来推算将要开发的软件的总本钱〔或工作量〕,然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式52.类比—使用情况有类似的历史工程数据信息缺乏〔要求不是非常精确)的时候在合同期和市场招标时在高层对任务的总的评估53.类比—特点简单易行,花费少具有一定的局限性准确性差,可能导致工程出现困难54.类比—举例证券交易网站需求类似历史数据:10万学习曲线:5-8万55.估算的根本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法56.自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的本钱估算,然后将结果累加起来得出工程总本钱。57.自下而上—使用情况在进入工程开始以后,WBS以后的开发阶段需要进行准确估算的时候58.自下而上—特点这种方法准确。它的准确度来源于每个任务的估算情况非常费时,估算本身也需要本钱支持可能发生虚报现象59.估算的根本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法60.参数估算法—定义一种使用工程特性参数建立数据模型来估算本钱的方法,是一种统计技术,如回归分析和学习曲线。参考历史信息根据实际情况,对参数模型按适当比例调整模型可以简单也可以复杂,很少有通用性61.参数估算法—使用情况存在成熟的工程估算模型应该具有良好的数据库数据为根底目前软件企业估算很少使用通用的数学模型62.参数估算法-估算单位每个任务必须至少有一个统一的规模单位,例如KLOC,FP人天,人月,人年参数:xx元/KLOC.xx元/FP,xx元/人天63.参数估算法-特点比较简单,而且也比较准确如果模型选择不当或者数据不准,也会导致偏差64.参量本钱估算实例〔适合单价合同〕项目经理(30美元/小时)15,000美元分析家(20美元/小时)20,000美元技术员(13美元/小时)2,6000美元总劳动开支61,000美元一般管理费(35%)21,350美元总劳动费加管理费82,350美元额外费用(25%)16,470美元小计98,820美元交通费(四次旅行,1000/次)4000美元微机计算机费(2台,3500/台)7000美元打印与复制费2000美元总辅助费13,000美元总项目费用开支111,820美元65.软件本钱估算模型理论导出:不成熟阶段经验导出:软件估算常常采用66.经验导出本钱模型提供工作量(规模)的直接估计通过过去工程数据,进行回归分析,得出的回归模型依据不同的细化程度,通过参数的输入来进行本钱估算。通常,输入包括产品的预计规模产品的自然属性组织能力工程性质67.经验导出本钱模型整体公式:E=A+B*S^CE:以人月表示的工作量A,B,C:经验导出的常数S:主要的输入参数(通常是LOC,FP等)68.经验导出本钱模型(续)面向LOC驱动的Walston-Felix(IBM)E=5.2*(KLOC)^0.91Balley-BasiliE=5.5+0.73*(KLOC)^1.16.COCOMOE=3.2*(KLOC)^1.05DotyE=5.288*(KLOC)^1.04769.估算的根本方法代码行、功能点、用例点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法70.专家估算法由多位专家进行本钱估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。71.专家估算法-Deiphi组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算专家详细研究软件规格说明后,对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei=(ai+4mi+bi)/6,72.专家估算法-Deiphi(续)综合结果后:E=〔E1+E2+…En〕/n〔N:表示N个专家〕,再组织专家无记名填表格,比较估算差,并查找原因如果各个专家的估算差异超出规定的范围〔例如:15%〕,那么需重复上述过程,最终可以获得一个多数专家共识的软件规模73.专家估算法-举例某多媒体信息查询系统—专家估算专家1:1,8,9=〉〔1+9+4*8〕/6=7〔万元〕专家2:4,6,8=〉〔4+8+4*6〕/6=6〔万元〕估算结果=〔6+7〕/2=6.5〔万元〕74.估算方法总结初期类比专家估算方案阶段自下而上参数模型实施阶段〔包括变更发生〕自下而上参数模型75.本钱估算方法综述主要考虑三种模型:类比法,自下而上法,参数法.自下而上法费时费力,参数法比较简单自下向上法与参数法的估计精度相似各种方法不是孤立的,应该注意相互的结合使用类比法通常用来验证参数法和自下而上法的结果76.实用软件估算模型是一种自下而上和参数法的结合模型,步骤如下:对任务进行分解估算每个任务的本钱Ei直接本钱=E1+E2+……+Ei+……+En工程总估算本钱=直接本钱+间接本钱工程总报价=工程总估算本钱+风险利润风险利润=利润+风险基金+税77.估算每个任务的本钱直接估算本钱Ei先估算规模Qi,然后估算本钱Ei=Qi*人力本钱参数唯一估计值:Qi=AvgPERT算法:Qi=(Max+4Avg+Min)/6退出78.直接本钱估算直接本钱组成开发本钱管理本钱质量本钱直接本钱=规模*人力本钱参数简易估算:开发〔工作量〕规模:Scale(Dev)(单位:人月)管理、质量〔工作量〕规模:Scale(Mgn)=a*Scale(Dev)a:比例系数:例如:20%--25%79.直接本钱估算直接本钱=规模*人力本钱参数例如:人力本钱参数=2万/人月,30人月的工程的直接本钱是60万退出80.工程总估算本钱估算本钱=直接本钱+间接本钱间接本钱估算:按照企业模型直接估算:简易算法:间接本钱=直接本钱*间接本钱系数间接本钱=规模*人力本钱参数*间接本钱系数例如:间接本钱系数=1.5--381.工程总估算本钱估算本钱=直接本钱+间接本钱估算本钱=规模*人力本钱参数〔1+间接本钱系数〕本钱系数=人力本钱参数*〔1+间接本钱系数〕简易算法:估算本钱=规模*本钱系数例如:本钱系数=3万/人月退出82.工程总报价工程总报价=工程总估算本钱+风险利润工程利润=估算本钱*a%风险基金=估算本钱*a%税=估算本钱*b%(例如:b为5.5左右)工程总报价=x%*工程总估算本钱83.本章要点一、软件工程规模本钱的概念二、估算的过程三、估算的方法四、估算的误差84.估算准确度类型准确度说明量级估算:合同前Orderofmagnitude-25~~+75%概念和启动阶段决策预算估算:合同期Budget-10~~+25%编制初步计划确定性估算:WBS后Definitive-5~~+10%工作分解后的详细计划85.估算不准的原因根底数据缺乏缺乏经验的估算人员签约前后不连贯低劣的推测技术估算对需求的敏感性86.对付估算误差防止低劣估算处理低劣估算带来的后果87.防止低劣估算防止无准备的估算留出估算的时间,并做好方案使用以前的工程数据使用以开发人员为根底的估算分类法估算详细的较低层次上的估算使用几种不同估算技术,并比较它们的结果88.处理低劣估算带来的后果通过数据说明资源缺乏,争取更多资源强化变更管理程序确定目标的优先次序89.估算的表达方式技巧加减限定6个人月,+3人月,-1人月范围5-9人月90.估算的表达方式技巧3.风险量化:见下例估算:6个人月,+3,-2+1人月:延迟交付转换子系统-1人月:新成员的工作效率高+1人月:采用的新工具没有预计的好-1人月:采用的新工具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动会上的感动演讲稿类作文15篇
- 那一刻我们永远在一起(12篇)
- 2025年科研机构安全生产工作计划
- 小区物业收费及服务提升协议
- 三年级下册语文学习计划
- 日常全身护理方法
- 小学英语口语训练与辅导计划
- 艺术创作领域成果证明书(8篇)
- 高校文学社团《走着走着,花就开了》创作交流会
- 线上线下一体化商城合作框架协议
- 初三上学期自我陈述报告范文800字
- 2023年中考物理专题复习:《电磁学》实验题
- 腹部CT断层解剖结构肝胰腺
- 建平磷铁矿业有限公司磷(含磁铁磷灰石)矿矿山地质环境保护与土地复垦方案
- DB22∕T 3181-2020 公路水路行业安全生产风险分级管控和隐患排查治理双重预防机制建设通用规范
- GB/T 36713-2018能源管理体系能源基准和能源绩效参数
- GB/T 25068.1-2020信息技术安全技术网络安全第1部分:综述和概念
- “二级甲等妇幼保健院”评审汇报材料
- 《狼王梦》读书分享PPT
- 三年级美术下册第10课《快乐的节日》优秀课件1人教版
- 电力市场交易模式
评论
0/150
提交评论