版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RoadMap合同管理
生存期需求管理任务分解项目进度项目估算质量计划配置计划风险计划团队管理项目度量集成项目跟踪控制
项目结束0chapter__6RoadMap合同管理需求管理任务分解软件开发项目管理第六章软件项目规模成本估算1chapter__6软件开发项目管理1chapter__6本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析2chapter__6本章要点一、软件项目规模成本的概念2chapter__6成本管理过程资源计划编制:确定项目需要的资源种类和数量成本估算:中心环节编制一个为完成项目各活动所需要的资源成本的近似估算成本预算:项目进度将总成本估算分配到各单项工作活动上成本控制:项目跟踪控制项目预算的变更3chapter__6成本管理过程资源计划编制:3chapter__6关于估算估算不是很准确的,有误差的经验(历史)数据非常重要不要太迷信数学模型4chapter__6关于估算估算不是很准确的,有误差的4chapter__6软件项目规模软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。5chapter__6软件项目规模软件项目规模即工作量,是从软件项目范围中抽出的软规模的单位LOC(LocofCode)源代码程序长度的测量FP(FunctionPoint)用系统的功能数量来测量人月人天人年6chapter__6规模的单位LOC(LocofCode)6chapter软件项目成本完成软件规模相应付出的代价。待开发的软件项目需要的资金。
人的劳动的消耗所需要的代价是软件产品的主要成本7chapter__6软件项目成本完成软件规模相应付出的代价。7chapter_成本的单位货币单位人民币元美元……..8chapter__6成本的单位货币单位8chapter__6软件的规模和成本的关系规模是成本的主要因素,是成本估算的基础有了规模就确定了成本,9chapter__6软件的规模和成本的关系规模是成本的主要因素,是成本估算的基础本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析10chapter__6本章要点一、软件项目规模成本的概念10chapter__6成本估算过程估算输入估算结果成本估算方法11chapter__6成本估算过程估算输入估算结果成本估算方法11chapter成本估算输入项目需求、WBS历史项目度量资源要求(资源编制计划)资源消耗率:如人员成本:100元/小时进度规划:项目总进度(一般是合同要求)学习曲线12chapter__6成本估算输入项目需求、WBS12chapter__6资源规划需要的资源种类、数量等13chapter__6资源规划需要的资源种类、数量等13chapter__6SampleResourceHistogramforaLargeITProject14chapter__6SampleResourceHistogramfor成本估算直接成本间接成本15chapter__6成本估算直接成本15chapter__6直接成本与具体项目相关的成本16chapter__6直接成本与具体项目相关的成本16chapter__6间接成本不能具体到某个项目中的成本,可以分摊到各个具体项目中的成本,例如:培训房租水电员工福利市场费用管理费其他等等17chapter__6间接成本不能具体到某个项目中的成本,17chapter__项目估算结果估算文件资源,资源的数量,质量标准,估算成本等信息单位:一般是货币单位BAC(BudgetAtcompletion)估算说明工作范围估算的基础和依据估算的假设估算的误差变动等18chapter__6项目估算结果估算文件18chapter__6估算说明预测所需要的总工作量的过程。是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期。
19chapter__6估算说明预测所需要的总工作量的过程。19chapter__本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析20chapter__6本章要点一、软件项目规模成本的概念20chapter__6估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法21chapter__6估算的基本方法代码行、功能点、对象点21chapter__代码行(LOC)从软件程序量的角度定义项目规模。要求功能分解足够详细的有一定的经验数据(类比和经验方法)与具体的编程语言有关22chapter__6代码行(LOC)从软件程序量的角度定义项目规模。22cha功能点(FP)用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化23chapter__6功能点(FP)用系统的功能数量来测量其规模23chapte功能点的公式FP=UFC*TCFUFC:未调整功能点计数TCF:技术复杂度因子24chapter__6功能点的公式FP=UFC*TCF24chapter__6UFC-未调整功能点计数功能计数项:外部输入外部输出外部查询外部文件内部文件25chapter__6UFC-未调整功能点计数功能计数项:25chapter__UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件7101526chapter__6UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素功能点计算实例-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计UFC30127chapter__6功能点计算实例-UFC功能点项简单一般复杂外部输入6*3TCF-技术复杂度因子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易于修改28chapter__6TCF-技术复杂度因子TCF=0.65+0.01(sum(F技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响29chapter__6技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不功能点计算实例FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=32230chapter__6功能点计算实例FP=UFC*TCF30chapter__6功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET631chapter__6功能点与代码行的转换语言代码行/FPAssembly320C对象点(OP)对象点是基于对象的软件产品规模估算。
著名的Probe方法---WattsHumphrey
32chapter__6对象点(OP)对象点是基于对象的软件产品规模估算。32c对象规模表(C++)方法种类很小小中大很大计算2.345.1311.2524.6654.04数据2.64.798.8416.3130.09I/O9.0112.0616.1521.6228.93逻辑7.5510.9815.9823.2533.83设置3.885.046.568.5311.09文本3.758.0017.0736.4177.6633chapter__6对象规模表(C++)方法种类很小小中大很大计算2.345.1Probe方法的步骤
基于产品需求构建体系结构和概要设计对设计中的每个类(面向对象方法中的Class)的输入和交互,标识所设计的对象属于表中哪类方法并估算其复杂性将上述标识的结果构造成一个如上表形式的矩阵,然后将这个矩阵中的值与上表中对应的值相乘将上述所有相乘结果相加求和,产生估算结果
34chapter__6Probe方法的步骤
基于产品需求构建体系结构和概要设计34对象点的估计-举例方法种类很小小中大很大计算2.345.1311.2524.6654.04数据2.64.798.8416.3130.09I/O9.0112.0616.1521.6228.93逻辑7.5510.9815.9823.2533.83设置3.885.046.568.5311.09文本3.758.0017.0736.4177.66规模估算*5*8*65.13*5+16.15*8+8.53*6=206.0335chapter__6对象点的估计-举例方法种类很小小中大很大计算2.345.13估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法36chapter__6估算的基本方法代码行、功能点、对象点36chapter__类比-定义估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式37chapter__6类比-定义估算人员根据以往的完成类似项目所消耗的总成本(或工类比—使用情况有类似的历史项目数据信息不足(要求不是非常精确)的时候在合同期和市场招标时38chapter__6类比—使用情况有类似的历史项目数据38chapter__6类比—特点简单易行,花费少具有一定的局限性准确性差,可能导致项目出现困难39chapter__6类比—特点简单易行,花费少39chapter__6类比—举例证券交易网站需求类似历史数据:10万40chapter__6类比—举例证券交易网站40chapter__6估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法41chapter__6估算的基本方法代码行、功能点、对象点41chapter__自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。42chapter__6自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的自下而上—使用情况项目开始以后,WBS的开发阶段需要进行准确估算的时候43chapter__6自下而上—使用情况项目开始以后,WBS的开发阶段43cha自下而上—特点这种方法相对比较准确,它的准确度来源于每个任务的估算情况非常费时,估算本身也需要成本支持可能发生虚报现象44chapter__6自下而上—特点这种方法相对比较准确,它的准确度来源于每个任务自下而上—举例银行综合业务系统估算结果45chapter__6自下而上—举例银行综合业务系统估算结果45chapter_估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法46chapter__6估算的基本方法代码行、功能点、对象点46chapter__参数估算法—定义一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线。47chapter__6参数估算法—定义一种使用项目特性参数建立数据模型来估算成本的参数估算法—使用情况存在成熟的项目估算模型应该具有良好的数据库数据为基础48chapter__6参数估算法—使用情况存在成熟的项目估算模型48chapte参数估算法-估算单位每个任务必须至少有一个统一的规模单位,例如KLOC,FP人天,人月,人年参数:xx元/KLOC.xx元/FP,xx元/人天49chapter__6参数估算法-估算单位每个任务必须至少有一个统一的规模单位,例参数估算法-特点比较简单,而且也比较准确如果模型选择不当或者数据不准,也会导致偏差50chapter__6参数估算法-特点比较简单,而且也比较准确50chapter参数成本估算实例(适合单价合同)项目经理(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美元51chapter__6参数成本估算实例(适合单价合同)项目经理(30美元/小时)1软件成本估算模型理论导出:不成熟阶段经验导出:软件估算常常采用52chapter__6软件成本估算模型理论导出:不成熟阶段52chapter__经验导出成本模型提供工作量(规模)的直接估计通过过去项目数据,进行回归分析,得出的回归模型53chapter__6经验导出成本模型提供工作量(规模)的直接估计53chapt经验导出成本模型整体公式:E=A+B*SCE:以人月表示的工作量A,B,C:经验导出的系数S:主要的输入参数(通常是LOC,FP等)54chapter__6经验导出成本模型整体公式:E=A+B*SC54chapte经验导出成本模型(续)面向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.04755chapter__6经验导出成本模型(续)面向LOC驱动的55chapter_经验导出成本模型(续)面向FP驱动的AlbrechtandGaffneyE=-12.39+0.0545FPKemererE=60.62*7.728*10^-8FP^3Matson,BarnettE=585.7+15.12FP56chapter__6经验导出成本模型(续)面向FP驱动的56chapter__建议掌握模型IBM模型-(Walston-Felix)COCOMO模型-(Boehm)57chapter__6建议掌握模型IBM模型-(Walston-Felix)57IBM模型1977年,IBM的Walston和Felix提出了如下的估算公式E=5.2×L^0.91,L是源代码行数(以KLOC计),E是工作量(以PM计)D=4.1×L^0.36,D是项目持续时间(以月计)S=0.54×E^0.6,S是人员需要量(以人计)DOC=49×L^1.01。DOC是文档数量(以页计)58chapter__6IBM模型1977年,IBM的Walston和Felix提出举例采用java完成项目,366功能点,则L=366×46=16386行=16.386KLOCE=5.2×L^0.91=5.2×16.386^0.91=66人月DOC=49×L^1.01=49×16.386^1.01=826页59chapter__6举例采用java完成项目,366功能点,则59chaptCOCOMO(ConstructiveCostmodel)项目类型:有机:Organic嵌入式:Embedded半有机:Semidetached模型类别:基本COCOMO中等COCOMO高级COCOMO60chapter__6COCOMO(ConstructiveCostmodel模型类别基本COCOMO静态单变量模型中等COCOMO基本模型基础上考虑影响因素,调整模型高级COCOMO中等COCOMO模型基础上考虑各个步骤的影响61chapter__6模型类别基本COCOMO61chapter__6项目类型有机:Organic,各类应用程序,例如数据处理、科学计算等受硬件的约束比较小,程序的规模不是很大
嵌入式:Embedded系统程序,例如实时处理、控制程序等
紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意
半有机:Semidetached各类实用程序,介于上述两种软件之间,例如编译器(程序)规模和复杂度都属于中等或者更高
62chapter__6项目类型有机:Organic,62chapter__6基本COCOMOE=a(KLOC)exp(b)其中:E是所需的人力(人月),KLOC是交付的代码行a,b是依赖于项目自然属性的参数:63chapter__6基本COCOMOE=a(KLOC)exp(b)63cha基本COCOMO系数表方式ab有机2.41.05半有机3.01.12嵌入式3.61.264chapter__6基本COCOMO系数表方式ab有机2.41.05半有机3.0举例一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:a=3.0,b=1.12。E=3.0*L
^1.12=3.0*33.3
^1.12=152PM
65chapter__6举例一个33.3KLOC的软件开发项目,属于中等规模、半有中等COCOMOE=a(KLOC)exp(b)*乘法因子a
b是系数乘法因子是根据成本驱动属性打分的结果,对公式的校正系数
66chapter__6中等COCOMOE=a(KLOC)exp(b)*乘法因子66中等COCOMO系数表方式ab有机2.81.05半有机3.01.12嵌入式3.21.267chapter__6中等COCOMO系数表方式ab有机2.81.05半有机3.0中等COCOMO的两类模型前设计模型(EarlyDesign)知之甚少的时候初步估计后体系结构模型(Postarchitecture)需求和早期的设计完成比较精确的估计68chapter__6中等COCOMO的两类模型前设计模型(EarlyDesig前设计模型的乘法因子属性人的能力产品的可靠性和复杂性所要求的复用平台困难经验设施进度69chapter__6前设计模型的乘法因子属性人的能力69chapter__6后体系结构模型乘法因子属性产品属性平台属性人员属性项目属性70chapter__6后体系结构模型乘法因子属性产品属性70chapter__6产品属性可靠性数据复杂性文档复用71chapter__6产品属性可靠性71chapter__6人员属性分析员的经验分析能力程序员水平平台经验语言经验人员的连续性72chapter__6人员属性分析员的经验72chapter__6项目属性使用软件工具的水平开发工作在不同地点的分布程度预计的进度压缩程度73chapter__6项目属性使用软件工具的水平73chapter__6平台属性产品运行时间,强调目标的计算能力应用的存储使用在目标平台和开发平台中,硬件和软件的稳定性74chapter__6平台属性产品运行时间,强调目标的计算能力74chapter乘法因子计算每个属性Fi的取值范围为:
很低、低、正常、高、很高、极高,共六级。
正常情况下Fi=1。
Boehm推荐的Fi取值范围
0.70,
0.85,
1.00,
1.15,
1.30,
1.65当每个Fi的值选定后,乘法因子的计算如下
乘法因子=F1*F2*…Fi…*Fn75chapter__6乘法因子计算每个属性Fi的取值范围为:
很低、低、正常举例(续)一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用中等COCOMO模型
a=3.0,b=1.12。乘法因子=0.70*0.85*1……*1.15=1.09E=3.0*L
^1.12=3.0*33.3
^1.12×1.09=166PM
76chapter__6举例(续)一个33.3KLOC的软件开发项目,属于中等规模高级(详细)COCOMO将项目分解为一系列的子系统或者子模型在一组子模型的基础上更加精确地调整一个模型的属性,77chapter__6高级(详细)COCOMO将项目分解为一系列的子系统或者子模型估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法78chapter__6估算的基本方法代码行、功能点、对象点78chapter__专家估算法由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。79chapter__6专家估算法由多位专家进行成本估算,一个专家可能会有偏见,最好专家估算法-Deiphi组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算专家详细研究软件规格说明后,对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei=(ai+4mi+bi)/6,80chapter__6专家估算法-Deiphi组织者发给每位专家一份软件系统的规格专家估算法-Deiphi(续)综合结果后:E=E1+E2+…En/n(N:表示N个专家)再组织专家无记名填表格,比较估算差,并查找原因如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程,最终可以获得一个多数专家共识的软件规模81chapter__6专家估算法-Deiphi(续)综合结果后:E=E1+E2+…专家估算法-举例某多媒体信息查询系统—专家估算专家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(万元)82chapter__6专家估算法-举例某多媒体信息查询系统—专家估算82chap估算方法总结初期类比专家估算计划阶段自下而上参数模型实施阶段(包括变更发生)自下而上参数模型83chapter__6估算方法总结初期83chapter__6成本估算方法综述主要考虑三种模型:类比法,自下而上法,参数法.自下而上法费时费力,参数法比较简单自下向上法与参数法的估计精度相似类比法通常用来验证参数法和自下而上法的结果各种方法不是孤立的,应该注意相互的结合使用84chapter__6成本估算方法综述主要考虑三种模型:类比法,自下而上法,参数法实用软件估算模型是一种自下而上和参数法的结合模型,步骤如下:对任务进行分解:1,2,…,i…估算每个任务的成本Ei直接成本=E1+E2+……+Ei+……+En项目总估算成本=直接成本+间接成本项目总报价=项目总估算成本+风险利润
风险利润=利润+风险基金+税85chapter__6实用软件估算模型是一种自下而上和参数法的结合模型,步骤如下:估算每个任务的成本直接估算成本Ei先估算规模Qi,然后估算成本Ei=Qi*人力成本参数唯一估计值:Qi=AvgPERT算法:Qi=(Max+4Avg+Min)/6退出86chapter__6估算每个任务的成本直接估算成本Ei退出86chapter_直接成本估算直接成本=规模*人力成本参数直接成本组成开发成本管理成本质量成本例如:人力成本参数=2万/人月,30人月规模的项目的直接成本是60万87chapter__6直接成本估算直接成本=规模*人力成本参数87chapter直接成本估算-简易估算:开发(工作量)规模:Scale(Dev)(单位:人月)管理、质量(工作量)规模:Scale(Mgn)=a*Scale(Dev)[a为比例系数:例如:20%--25%]直接成本=Scale(Dev)+a*Scale(Dev)退出88chapter__6直接成本估算-简易估算:开发(工作量)规模:退出88cha项目总估算成本估算成本=直接成本+间接成本间接成本估算:按照企业模型直接估算:简易算法:间接成本=直接成本*间接成本系数间接成本=规模*人力成本参数*间接成本系数例如:间接成本系数=0.389chapter__6项目总估算成本估算成本=直接成本+间接成本89chapte项目总估算成本估算成本=直接成本+间接成本估算成本=直接成本+直接成本*间接成本系数估算成本=直接成本(1+间接成本系数)估算成本=规模*人力成本参数(1+间接成本系数)成本系数=人力成本参数*(1+间接成本系数)简易算法:估算成本=规模*成本系数例如:成本系数=3万/人月退出90chapter__6项目总估算成本估算成本=直接成本+间接成本退出90chap项目总报价项目总报价=项目总估算成本+风险利润项目利润=估算成本*a%风险基金=估算成本*b%税=估算成本*c%(例如:c为5.5左右)项目总报价=(a+b+c)%*项目总估算成本+项目总估算成本91chapter__6项目总报价项目总报价=项目总估算成本+风险利润91chap总估算成本(BAC)费用BAC时间?92chapter__6总估算成本(BAC)费用BAC时间?92chapter__本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析93chapter__6本章要点一、软件项目规模成本的概念93chapter__6估算准确度类型准确度说明量级估算:合同前Orderofmagnitude-25~~+75%概念和启动阶段决策预算估算:合同期Budget-10~~+25%编制初步计划确定性估算:WBS后Definitive-5~~+10%工作分解后的详细计划94chapter__6估算准确度类型准确度说明量级估算:合同前-25~~+75%概估算不准的原因基础数据不足缺乏经验的估算人员签约前后不连贯低劣的推测技术估算对需求的敏感性95chapter__6估算不准的原因基础数据不足95chapter__6避免低劣估算避免无准备的估算留出估算的时间,并做好计划使用以前的项目数据使用开发人员提供的数据为基础估算分类法估算详细的较低层次上的估算使用软件估算工具使用几种不同估算技术,并比较它们的结果96chapter__6避免低劣估算避免无准备的估算96chapter__6估算的表达方式技巧加减限定6个人月,+3人月,-1人月范围5-9人月97chapter__6估算的表达方式技巧加减限定97chapter__6估算的表达方式技巧3.风险量化:见下例估算:6个人月,+3,-2+1人月:延迟交付转换子系统-1人月:新成员的工作效率高+1人月:采用的新工具没有预计的好-1人月:采用的新工具比预计的好+0.5人月:员工病事假+0.5人月:低估规模98chapter__6估算的表达方式技巧3.风险量化:见下例估算:6个估算的表达方式技巧4.情况:见下:案例估算的例子情况估算最佳情况100人月计划情况110人月最差情况150人月99chapter__6估算的表达方式技巧4.情况:见下:案本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析100chapter__6本章要点一、软件项目规模成本的概念100chapter__案例说明School项目估算项目估算结果101chapter__6案例说明School项目估算101chapter__6小结成本估算的过程成本估算的方法掌握成本估算的技巧项目的总成本估算102chapter__6小结成本估算的过程102chapter__6课堂练习(继续上章练习)请提交成本估算结果(其它条件可以自行假设)103chapter__6课堂练习(继续上章练习)请提交成本估算结果(其它条件可以自行RoadMap合同管理
生存期需求管理任务分解项目进度项目估算质量计划配置计划风险计划团队管理项目度量集成项目跟踪控制
项目结束104chapter__6RoadMap合同管理需求管理任务分解软件开发项目管理第六章软件项目规模成本估算105chapter__6软件开发项目管理1chapter__6本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析106chapter__6本章要点一、软件项目规模成本的概念2chapter__6成本管理过程资源计划编制:确定项目需要的资源种类和数量成本估算:中心环节编制一个为完成项目各活动所需要的资源成本的近似估算成本预算:项目进度将总成本估算分配到各单项工作活动上成本控制:项目跟踪控制项目预算的变更107chapter__6成本管理过程资源计划编制:3chapter__6关于估算估算不是很准确的,有误差的经验(历史)数据非常重要不要太迷信数学模型108chapter__6关于估算估算不是很准确的,有误差的4chapter__6软件项目规模软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。109chapter__6软件项目规模软件项目规模即工作量,是从软件项目范围中抽出的软规模的单位LOC(LocofCode)源代码程序长度的测量FP(FunctionPoint)用系统的功能数量来测量人月人天人年110chapter__6规模的单位LOC(LocofCode)6chapter软件项目成本完成软件规模相应付出的代价。待开发的软件项目需要的资金。
人的劳动的消耗所需要的代价是软件产品的主要成本111chapter__6软件项目成本完成软件规模相应付出的代价。7chapter_成本的单位货币单位人民币元美元……..112chapter__6成本的单位货币单位8chapter__6软件的规模和成本的关系规模是成本的主要因素,是成本估算的基础有了规模就确定了成本,113chapter__6软件的规模和成本的关系规模是成本的主要因素,是成本估算的基础本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析114chapter__6本章要点一、软件项目规模成本的概念10chapter__6成本估算过程估算输入估算结果成本估算方法115chapter__6成本估算过程估算输入估算结果成本估算方法11chapter成本估算输入项目需求、WBS历史项目度量资源要求(资源编制计划)资源消耗率:如人员成本:100元/小时进度规划:项目总进度(一般是合同要求)学习曲线116chapter__6成本估算输入项目需求、WBS12chapter__6资源规划需要的资源种类、数量等117chapter__6资源规划需要的资源种类、数量等13chapter__6SampleResourceHistogramforaLargeITProject118chapter__6SampleResourceHistogramfor成本估算直接成本间接成本119chapter__6成本估算直接成本15chapter__6直接成本与具体项目相关的成本120chapter__6直接成本与具体项目相关的成本16chapter__6间接成本不能具体到某个项目中的成本,可以分摊到各个具体项目中的成本,例如:培训房租水电员工福利市场费用管理费其他等等121chapter__6间接成本不能具体到某个项目中的成本,17chapter__项目估算结果估算文件资源,资源的数量,质量标准,估算成本等信息单位:一般是货币单位BAC(BudgetAtcompletion)估算说明工作范围估算的基础和依据估算的假设估算的误差变动等122chapter__6项目估算结果估算文件18chapter__6估算说明预测所需要的总工作量的过程。是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期。
123chapter__6估算说明预测所需要的总工作量的过程。19chapter__本章要点一、软件项目规模成本的概念二、估算的过程三、估算的方法四、估算的误差五、案例分析124chapter__6本章要点一、软件项目规模成本的概念20chapter__6估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法125chapter__6估算的基本方法代码行、功能点、对象点21chapter__代码行(LOC)从软件程序量的角度定义项目规模。要求功能分解足够详细的有一定的经验数据(类比和经验方法)与具体的编程语言有关126chapter__6代码行(LOC)从软件程序量的角度定义项目规模。22cha功能点(FP)用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化127chapter__6功能点(FP)用系统的功能数量来测量其规模23chapte功能点的公式FP=UFC*TCFUFC:未调整功能点计数TCF:技术复杂度因子128chapter__6功能点的公式FP=UFC*TCF24chapter__6UFC-未调整功能点计数功能计数项:外部输入外部输出外部查询外部文件内部文件129chapter__6UFC-未调整功能点计数功能计数项:25chapter__UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件71015130chapter__6UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素功能点计算实例-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计UFC301131chapter__6功能点计算实例-UFC功能点项简单一般复杂外部输入6*3TCF-技术复杂度因子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易于修改132chapter__6TCF-技术复杂度因子TCF=0.65+0.01(sum(F技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响133chapter__6技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不功能点计算实例FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=322134chapter__6功能点计算实例FP=UFC*TCF30chapter__6功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET6135chapter__6功能点与代码行的转换语言代码行/FPAssembly320C对象点(OP)对象点是基于对象的软件产品规模估算。
著名的Probe方法---WattsHumphrey
136chapter__6对象点(OP)对象点是基于对象的软件产品规模估算。32c对象规模表(C++)方法种类很小小中大很大计算2.345.1311.2524.6654.04数据2.64.798.8416.3130.09I/O9.0112.0616.1521.6228.93逻辑7.5510.9815.9823.2533.83设置3.885.046.568.5311.09文本3.758.0017.0736.4177.66137chapter__6对象规模表(C++)方法种类很小小中大很大计算2.345.1Probe方法的步骤
基于产品需求构建体系结构和概要设计对设计中的每个类(面向对象方法中的Class)的输入和交互,标识所设计的对象属于表中哪类方法并估算其复杂性将上述标识的结果构造成一个如上表形式的矩阵,然后将这个矩阵中的值与上表中对应的值相乘将上述所有相乘结果相加求和,产生估算结果
138chapter__6Probe方法的步骤
基于产品需求构建体系结构和概要设计34对象点的估计-举例方法种类很小小中大很大计算2.345.1311.2524.6654.04数据2.64.798.8416.3130.09I/O9.0112.0616.1521.6228.93逻辑7.5510.9815.9823.2533.83设置3.885.046.568.5311.09文本3.758.0017.0736.4177.66规模估算*5*8*65.13*5+16.15*8+8.53*6=206.03139chapter__6对象点的估计-举例方法种类很小小中大很大计算2.345.13估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法140chapter__6估算的基本方法代码行、功能点、对象点36chapter__类比-定义估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式141chapter__6类比-定义估算人员根据以往的完成类似项目所消耗的总成本(或工类比—使用情况有类似的历史项目数据信息不足(要求不是非常精确)的时候在合同期和市场招标时142chapter__6类比—使用情况有类似的历史项目数据38chapter__6类比—特点简单易行,花费少具有一定的局限性准确性差,可能导致项目出现困难143chapter__6类比—特点简单易行,花费少39chapter__6类比—举例证券交易网站需求类似历史数据:10万144chapter__6类比—举例证券交易网站40chapter__6估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法145chapter__6估算的基本方法代码行、功能点、对象点41chapter__自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。146chapter__6自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的自下而上—使用情况项目开始以后,WBS的开发阶段需要进行准确估算的时候147chapter__6自下而上—使用情况项目开始以后,WBS的开发阶段43cha自下而上—特点这种方法相对比较准确,它的准确度来源于每个任务的估算情况非常费时,估算本身也需要成本支持可能发生虚报现象148chapter__6自下而上—特点这种方法相对比较准确,它的准确度来源于每个任务自下而上—举例银行综合业务系统估算结果149chapter__6自下而上—举例银行综合业务系统估算结果45chapter_估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法150chapter__6估算的基本方法代码行、功能点、对象点46chapter__参数估算法—定义一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线。151chapter__6参数估算法—定义一种使用项目特性参数建立数据模型来估算成本的参数估算法—使用情况存在成熟的项目估算模型应该具有良好的数据库数据为基础152chapter__6参数估算法—使用情况存在成熟的项目估算模型48chapte参数估算法-估算单位每个任务必须至少有一个统一的规模单位,例如KLOC,FP人天,人月,人年参数:xx元/KLOC.xx元/FP,xx元/人天153chapter__6参数估算法-估算单位每个任务必须至少有一个统一的规模单位,例参数估算法-特点比较简单,而且也比较准确如果模型选择不当或者数据不准,也会导致偏差154chapter__6参数估算法-特点比较简单,而且也比较准确50chapter参数成本估算实例(适合单价合同)项目经理(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美元155chapter__6参数成本估算实例(适合单价合同)项目经理(30美元/小时)1软件成本估算模型理论导出:不成熟阶段经验导出:软件估算常常采用156chapter__6软件成本估算模型理论导出:不成熟阶段52chapter__经验导出成本模型提供工作量(规模)的直接估计通过过去项目数据,进行回归分析,得出的回归模型157chapter__6经验导出成本模型提供工作量(规模)的直接估计53chapt经验导出成本模型整体公式:E=A+B*SCE:以人月表示的工作量A,B,C:经验导出的系数S:主要的输入参数(通常是LOC,FP等)158chapter__6经验导出成本模型整体公式:E=A+B*SC54chapte经验导出成本模型(续)面向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.047159chapter__6经验导出成本模型(续)面向LOC驱动的55chapter_经验导出成本模型(续)面向FP驱动的AlbrechtandGaffneyE=-12.39+0.0545FPKemererE=60.62*7.728*10^-8FP^3Matson,BarnettE=585.7+15.12FP160chapter__6经验导出成本模型(续)面向FP驱动的56chapter__建议掌握模型IBM模型-(Walston-Felix)COCOMO模型-(Boehm)161chapter__6建议掌握模型IBM模型-(Walston-Felix)57IBM模型1977年,IBM的Walston和Felix提出了如下的估算公式E=5.2×L^0.91,L是源代码行数(以KLOC计),E是工作量(以PM计)D=4.1×L^0.36,D是项目持续时间(以月计)S=0.54×E^0.6,S是人员需要量(以人计)DOC=49×L^1.01。DOC是文档数量(以页计)162chapter__6IBM模型1977年,IBM的Walston和Felix提出举例采用java完成项目,366功能点,则L=366×46=16386行=16.386KLOCE=5.2×L^0.91=5.2×16.386^0.91=66人月DOC=49×L^1.01=49×16.386^1.01=826页163chapter__6举例采用java完成项目,366功能点,则59chaptCOCOMO(ConstructiveCostmodel)项目类型:有机:Organic嵌入式:Embedded半有机:Semidetached模型类别:基本COCOMO中等COCOMO高级COCOMO164chapter__6COCOMO(ConstructiveCostmodel模型类别基本COCOMO静态单变量模型中等COCOMO基本模型基础上考虑影响因素,调整模型高级COCOMO中等COCOMO模型基础上考虑各个步骤的影响165chapter__6模型类别基本COCOMO61chapter__6项目类型有机:Organic,各类应用程序,例如数据处理、科学计算等受硬件的约束比较小,程序的规模不是很大
嵌入式:Embedded系统程序,例如实时处理、控制程序等
紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意
半有机:Semidetached各类实用程序,介于上述两种软件之间,例如编译器(程序)规模和复杂度都属于中等或者更高
166chapter__6项目类型有机:Organic,62chapter__6基本COCOMOE=a(KLOC)exp(b)其中:E是所需的人力(人月),KLOC是交付的代码行a,b是依赖于项目自然属性的参数:167chapter__6基本COCOMOE=a(KLOC)exp(b)63cha基本COCOMO系数表方式ab有机2.41.05半有机3.01.12嵌入式3.61.2168chapter__6基本COCOMO系数表方式ab有机2.41.05半有机3.0举例一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:a=3.0,b=1.12。E=3.0*L
^1.12=3.0*33.3
^1.12=152PM
169chapter__6举例一个33.3KLOC的软件开发项目,属于中等规模、半有中等COCOMOE=a(KLOC)exp(b)*乘法因子a
b是系数乘法因子是根据成本驱动属性打分的结果,对公式的校正系数
170chapter__6中等COCOMOE=a(KLOC)exp(b)*乘法因子66中等COCOMO系数表方式ab有机2.81.05半有机3.01.12嵌入式3.21.2171chapter__6中等COCOMO系数表方式ab有机2.81.05半有机3.0中等COCOMO的两类模型前设计模型(EarlyDesign)知之甚少的时候初步估计后体系结构模型(Postarchitecture)需求和早期的设计完成比较精确的估计172chapter__6中等COCOMO的两类模型前设计模型(EarlyDesig前设计模型的乘法因子属性人的能力产品的可靠性和复杂性所要求的复用平台困难经验设施进度173chapter__6前设计模型的乘法因子属性人的能力69chapter__6后体系结构模型乘法因子属性产品属性平台属性人员属性项目属性174chapter__6后体系结构模型乘法因子属性产品属性70chapter__6产品属性可靠性数据复杂性文档复用175chapter__6产品属性可靠性71chapter__6人员属性分析员的经验分析能力程序员水平平台经验语言经验人员的连续性176chapter__6人员属性分析员的经验72chapter__6项目属性使用软件工具的水平开发工作在不同地点的分布程度预计的进度压缩程度177chapter__6项目属性使用软件工具的水平73chapter__6平台属性产品运行时间,强调目标的计算能力应用的存储使用在目标平台和开发平台中,硬件和软件的稳定性178chapter__6平台属性产品运行时间,强调目标的计算能力74chapter乘法因子计算每个属性Fi的取值范围为:
很低、低、正常、高、很高、极高,共六级。
正常情况下Fi=1。
Boehm推荐的Fi取值范围
0.70,
0.85,
1.00,
1.15,
1.30,
1.65当每个Fi的值选定后,乘法因子的计算如下
乘法因子=F1*F2*…Fi…*Fn179chapter__6乘法因子计算每个属性Fi的取值范围为:
很低、低、正常举例(续)一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用中等COCOMO模型
a=3.0,b=1.12。乘法因子=0.70*0.85*1……*1.15=1.09E=3.0*L
^1.12=3.0*33.3
^1.12×1.09=166PM
180chapter__6举例(续)一个33.3KLOC的软件开发项目,属于中等规模高级(详细)COCOMO将项目分解为一系列的子系统或者子模型在一组子模型的基础上更加精确地调整一个模型的属性,181chapter__6高级(详细)COCOMO将项目分解为一系列的子系统或者子模型估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法182chapter__6估算的基本方法代码行、功能点、对象点78chapter__专家估算法由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。183chapter__6专家估算法由多位专家进行成本估算,一个专家可能会有偏见,最好专家估算法-Deiphi组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算专家详细研究软件规格说明后,对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei=(ai+4mi+bi)/6,184chapter__6专家估算法-Deiphi组织者发给每位专家一份软件系统的规格专家估算法-Deiphi(续)综合结果后:E=E1+E2+…En/n(N:表示N个专家)再组织专家无记名填表格,比较估算差,并查找原因如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程,最终可以获得一个多数专家共识的软件规模185chapter__6专家估算法-Deiphi(续)综合结果后:E=E1+E2+…专家估算法-举例某多媒体信息查询系统—专家估算专家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(万元)186chapter__6专家估算法-举例某多媒体信息查询系统—专家估算82chap估算方法总结初期类比专家估算计划阶段自下而上参数模型实施阶段(包括变更发生)自下而上参数模型187chapter__6估算方法总结初期83c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年保山c1客运资格证考试项目
- 2024年珠海道路旅客运输从业资格证模拟试题
- 吉首大学《结构模型设计制作》2021-2022学年第一学期期末试卷
- 吉林艺术学院《音乐美学Ⅰ》2021-2022学年第一学期期末试卷
- 吉林艺术学院《色彩基础训练II》2021-2022学年第一学期期末试卷
- 2024年共同经营宾馆合作协议书模板
- 2024年供货肉类合同范本
- 2024年大宗商办租赁合同范本
- 2024年大型储罐合同范本
- 公司与公司劳务外包协议书范文范本
- 高铁项目桥上救援疏散通道施工方案2019.05.25
- 学做小小理财师
- COVID-19-疫情-新冠病毒-英语作业ppt(关于抗击疫情的英雄们)
- 混凝土楼板上行走吊机时楼板承载能力计算方法
- 维克多高中英语3500词汇
- 医疗机构抗菌药物临床应用备案表
- 初中毕业证书怎么查询电子版
- 宝宝白细胞高怎么回事:新生儿含有白细胞
- 分析化学题库及答案
- 《义务教育集团化办学考核评价办法》
- 岗位技能矩阵图
评论
0/150
提交评论