软件项目管理-第3章_第1页
软件项目管理-第3章_第2页
软件项目管理-第3章_第3页
软件项目管理-第3章_第4页
软件项目管理-第3章_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件项目管理-第3章第3章软件项目成本管理3.1概述3.2软件项目规模估算3.3软件项目成本估算3.4软件项目成本监控3.5案例:精确到螺丝钉的成本控制3.6故事解析3.7小结3.1概述3.1.1成本3.1.2成本管理3.1.3成本估算的时机成本估算的意义:成本估算是从费用的角度对项目进行规划。成本估算的问题:项目人员对软件开发盲目乐观,对费用估计过低;系统分析员对软硬件权衡不准确,造成软件成本增幅过大;项目经理对各个阶段的工作进度没有可靠的依据,难以控制开发过程。3.1概述成本的概念生产一种产品所需要的费用交换中所放弃的东西什么是软件项目成本为完成软件项目而支付的货币量人力资源成本软硬件资源成本商务活动成本其它成本费用项目成本的分类根据成本的可确定程度:无形成本、有形成本;根据是否可识别和跟踪:直接项目成本、间接项目成本3.1.1成本3.1.2成本管理成本管理的目标:确保在批准的预算范围内完成项目所需的各项任务软件项目成本管理活动软件系统规模估算软件项目成本估算软件项目成本预算制定软件项目成本监控3.1.3估算的时机软件项目估算是个逐步求精的过程。对任何一种估算方法来说,估算的时机和精度都是一种矛盾。选择合适的时间点进行估算是估算中必须考虑的一个问题。

软件产品生命周期及需要进行估算的五个时间点:E1,E2,E3,E4,E53.1.3估算的时机客户需求:E1客户需求阶段列出客户需要的基本软件功能。时间点E1的估算可以为软件组织提供初步信息,否则需要重新考虑项目的可行性。需求分析:E2 完成对软件项目的规格说明,进一步细化系统功能。有助于软件组织在进入在开发前再次权衡产品的可行性。系统设计:E3 系统设计阶段给出产品的完整软件体系结构和各个子系统及模块的说明;这阶段的估算一般不会做出终止项目的决定,但却影响以后各阶段资源的分配。3.1.3估算的时机系统实现:E4 设计通过审查之后,系统的实现工作就开始了。该阶段结束时,前面各项活动中消耗的资源(时间及人力等)和软件工作量均可获得,从而可对原有的估算进行调整,后期需要的工作则按此估算进行计划。系统运行维护:E5 当所有的工作都已完成并得到了验证后,系统就可以投入运行了。估算工作实际上是对估算过程的评价,即用实际的消耗与各个阶段估算值进行比较,为下一项目积累宝贵的经验。3.1.3估算的时机3.2.1WBS3.2.2LOC估计3.2.3FP估计3.2.4PERT规模估计3.2软件项目规模估算传统的WBS结构:3.2.1WBS图3.2典型的WBS常用的软件规模度量标准:代码行LOC:功能点FP:3.2.1WBS软件规模的估计原则:在技术允许的条件下,应从最详细的WBS开始;精确定义度量的标准;估计底层每一模块的规模,汇总以得到总体估计;适当考虑偶然因素的影响。3.2.1WBSLOC:

代码行LOC是常用的源代码程序长度的度量标准。 代码行可分为两种:无注释的代码行(NCLOC)注释的源代码行(CLOC)

实际工作中,也常常使用KLOC(千代码行)来表示程序长度。 一代码行(1LOC)价值和人月均代码行数可以体现一个软件生产组织的生产能力。3.2.2LOC估计功能点:

功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,常应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。计算功能点数的步骤:(1)计算所需要的输入、输出、查询、外部文件、内部文件的数量。(2)有了以上五个功能项的数量后,再由估计人员对项目的复杂性作出判断,大致分成简单、一般、复杂三种情况。然后根据表3.1求出功能项的加权和。3.2.3FP估计功能项权重简单一般复杂输入346输出457查询346外部文件71015内部文件57103.2.3FP估计表3.1功能点的复杂度权重功能点FP是由未调整的功能点数UFC与技术复杂度因子(TCF)相成得到。如表3.2所示:3.2.3FP估计表3.2技术复杂度因子的组成从表3.2计算出:TCF=0.65+0.01*(SUM(Aj))TCF的取值范围为0.65~1.35,分别对应着组成部分Aj都取值0和5,得到功能点FP的计算公式: FP=UFC*TCF3.2.3FP估计案例分析:某学院安装了一个工资系统,人事处要求创建一个子系统来分析每门课程的人力资源成本。要求该子系统提供查询每门课程人力资源成本的功能。每名教师所得工资的细节可以通过工资系统中的文件得到,教师花在教每门课上的小时数可通过一个基于计算机的计时表系统中的文件得到。该子系统将计算结果存放到由总会计系统读取的一个文件中,并产生一个报告,来显示每名教师每门课的课时数及这些课时数相应的成本。问题:

计算该子系统的UFC、FP。(子系统产生的报告复杂度为高,其它所有元素的复杂度均为中等)3.2.3FP估计步骤二:计算UFCUFC=1*7+1*4+3*7=32功能计数项计数复杂度权重外部输入无外部输出报告17外部查询14外部接口文件工资文件1,计时表文件1,计算结果文件17内部文件无3.2.3FP估计步骤一:求出功能点的复杂度权重案例中技术复杂度影响因素的取值F1可靠的备份和恢复1F2数据通信5F3分布式函数0F4性能3F5大量使用的配置1F6联机数据输入0F7操作简单性1F8在线升级0F9复杂界面1F10复杂数据处理4F11重复使用性0F12安装简易性3F13多重站点0F14易于修改3步骤三:技术复杂度影响因素的取值3.2.3FP估计步骤五:计算FPFP=UFC*TCF=32*0.87=27.8步骤四:计算TCFsum(Fi)=22TCF=0.65+0.01(sum(Fi))=0.65+0.01*22=0.873.2.3FP估计功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET63.2.3FP估计功能点度量在以下情况下特别有用:(1)估计新的软件开发项目;(2)应用软件包括很多输入输出或文件活动;(3)拥有经验丰富的功能点估计专家;(4)拥有充分的数据资料,可以相当准确地将功能点转化为LOC。3.2.3FP估计3.2.4PERT估计软件期望规模:估算值的标准偏差:第i部分的期望规模和标准偏差:软件规模E软件标准偏差3.3软件项目成本估算3.3.1软件生产率估算3.3.2软件项目成本估算方法3.3.3软件项目成本估算模型3.3.4软件项目成本估算步骤3.3.5软件项目成本预算制定3.3.6案例:过分乐观的估算3.3.1软件生产率估算软件生产率每个人月平均完成代码数量生产率数据的获取获取步骤(见课本P86)影响因素软件规模和产品类型对生产率的影响;软件变更和产品类型对生产率的影响;…..3.3.1软件生产率估算估算例子:已知中等规模的控制程序的生产率200LOC/PM。求中等规模的语言程序的生产率?专家判定对于由多个专家得到的多个估算值合成一个最终的估算值。可采用的方法有:(1)求中值或平均值(2)召开小组会议(3)Delphi技术(4)WidebandDelphi技术3.3.2软件项目成本估算方法3.3.2软件项目成本估算方法图3.4Delphi成本估算迭代表的样例图3.5WidebandDelphi估算过程类比类比法就是把当前项目和以前做过的类似的项目比较,通过比较获得其工作量的估算值。该方法需要软件开发组织保留有以往完成项目的历史记录。类比方式:整个项目类比;子系统类比。自顶向下:整体到部分。 其缺点是难以识别较低级别上的技术性困难。自底向上:部分到整体。 易于忽略许多与软件开发有关的系统级成本。3.3.2软件项目成本估算方法算法模型(1)模型的分类根据模型变量的依存关系分为:静态模型和动态模型根据基本变量的多少分为:单变量模型和多变量模型3.3.2软件项目成本估算方法(2)静态单变量模型:用同一个基本公式通过同一个预测量来估算所需要的值。一般公式为:其中C是待估算量,L是用作输入的预测量,a和b是根据历史经验得到的参数,根据开发组织和环境等的不同而不同。如SEI模型(3)静态多变量模型:但还取决于部分代表开发环境的个各种因素变量,如软件开发方法、用户需求变化等。如COCOMO模型。(4)动态多变量模型:通过多个变量的相互作用对软件过程做出估算。如:Putnam3.3.2软件项目成本估算方法(5)其它模型(回归分析)3.3.2软件项目成本估算方法其中,A、B、C是由经验估计的常数,X是预测变量,E是工作量,同事有LOC和FP两种表示1981年Boehm提出了“构造性成本模型”(ConstructiveCostModel,CoCoMo).在静态、单变量模型基础上构造出来的。是一个分层次的成本估算模型(基本CoCoMo、中间CoCoMo、详细CoCoMo)自底向上的估算方法3.3.3软件项目成本估算模型1.COCOMO模型COCOMO模型的三个子模型采用相同的工作量计算方式:

E工作量单位:人月S程序规模单位KLOCEAF工作量调整因子,在基本模型中取值为1;a,b是两个随开发模式而变化的因子。软件开发中的三种开发模式:有机式、嵌入式、半分离式3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型基本CoCoMo:用于系统开发的初期,估算整个系统的工作量(包括维护)和软件开发所需要的时间;中间CoCoMo:用于估算各个子系统的工作量和开发时间;详细CoCoMo:用于估算独立的软部件,如系统内部的各个模块。3.3.3软件项目成本估算模型基本CoCoMo模型把工作量作为软件程序规模的函数来计算,具有如下形式:E=aSbt=cEdE:工作量,单位人月(PM)t:开发时间,单位是月a,b,c,d,是常数(见课本P93表3.7、表3.8)3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型中间CoCoMo模型以基本CoCoMo模型为基础,在工作量估计公式中乘以工作量调节因子EAF。E=aSb×EAFa,b:随开发模式而变化的因子,为常数(见P93表3.9)工作量调节因子与软件产品属性、计算机属性、人员属性、项目属性有关。EAF(工作量调整因子)由成本驱动量计算。即由课本中的表3.10中的15个评分值相乘得到。3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型软件产品属性:软件可靠性、软件复杂性、数据库规模计算机属性:程序执行时间、程序占用内存的大小、软件开发环境的变化、软件开发环境的响应速度。人员属性:分析员的能力、程序员的能力、有关应用领域的经验、开发环境的经验、程序设计语言的经验。项目属性:软件开发方法的能力,软件工具的质量和数量、软件开发的进度要求。中间CoCoMo模型—工作量调节因子相关的属性3.3.3软件项目成本估算模型详细COCOMO模型为了提高估算精度,在中级COCOMO模型基础上引入了详COCOMO模型;工作量和开发时间的计算公式同中级COCOMO模型;原理同COCOMO相同,不同的是成本驱动因素分了不同的层次,且在软件生存周期的不同阶段被赋予不同的值。3.3.3软件项目成本估算模型详细COCOMO模型引入两种特殊功能:(1)阶段敏感的成本驱动因素。根据软件开发的不同阶段受成本驱动因素影响的大小不同将软件开发化为四个阶段:RPD、DD、CUT、IT。(2)三层的产品分级结构模块—子系统—系统模块级处理随各层模块而变化的因素子系统级处理不经常变化的因素系统级处理与软件项目总体规模等相关的问题课本P95/97页表3.11和表3.12分别给出了模块级驱动因素和子系统级驱动因素在四个阶段的取值;表3.13给出了工作量在四个阶段的分布。3.3.3软件项目成本估算模型2.COCOMOII20世纪90年代随着技术的进步,原有的COCOMO模型已经不能适应新的软件成本估算和过程管理的需要,因此Boehm提出了COCOMOII。COCOMOII的主要变化:使用三个螺旋模式的生命周期模型;使用五个规模因子计算项目规模经济性的幂指数;删除成本驱动因素VIRT/TURN/VEXP/LEXP/MODP;新增成本驱动因素DOCU/RUSE/PVOL/PEXP/LTEX/PCON/SITE;改变了原有成本驱动因素的赋值,以适应当前的软件测试技术;3.3.3软件项目成本估算模型三种生命周期模型:(1)应用组合模型总的新对象点数:NOP=总对象点数*(100-a)/100工作量公式:E=NOP/PRODE是以月为单位的工作量;PROD为生产率;a代表项目中有a%的对象是重用以前的。根据表3.14确定屏幕对象和报告对象的复杂度;根据表3.15确定对象点的复杂度权重;根据表3.16确定PROD.3.3.3软件项目成本估算模型(2)早期设计模型用于支持确立软件体系结构的生命周期阶段,使用功能点和五个成本驱动因素。(3)后体系结构模型计算公式:公式中,E、EA的定义同前面;常数A取值为2.55;B的计算公式为:

公式中为规模度量因子,也称为定标因素,其取值表见课本P99表3.17,工作量调整因子EAF根据表3.18计算。3.3.3软件项目成本估算模型3.COCOMOII中关于重用的处理对于模块或者软件重用的工作量的计算:其中AAF为调节因子;3.3.3软件项目成本估算模型AA评估和选择参数,SU软件理解参数,UNFM是对SU的补充4.Putnam模型1978,Putnam提出了大型软件项目(>30persons)估算模型。是采用的是自定向下一种宏观的估算模型;是一种动态多变量模型;该模型假设软件项目的工作量分布类似于Rayleigh曲线。适用于软件开发的各个阶段,以实测数据为基础。3.3.3软件项目成本估算模型下图是一典型的Rayleigh曲线。如图3.5所示:Rayleigh曲线3.3.3软件项目成本估算模型图3.6典型的Rayleigh曲线该曲线把人力表述为时间的函数,图中显示了各个阶段的人力分布情况。3.3.3软件项目成本估算模型图3.7软件项目各阶段的Norden-Rayleigh曲线Putnam模型方程式S:以LOC为单位的源程序代码行数;t:以年为单位的开发时间;E:是以人年为单位的的工作量;C:技术状态常数Putnam包含两个方程:软件方程和人力增加方程软件方程:该方程是求技术因子C,其中S,E,t的含义与软件方程相同3.3.3软件项目成本估算模型

人力增加方程D是一个常数,称为人员配备加速度;E和t与软件方程相同,D的取值如下表所示:由软件方程和人力增加方程得到工作量方程:把人力增加方程带入工作量方程得:3.3.3软件项目成本估算模型软件工具SLIMSLIM即软件生命周期管理软件,是一个以Putnam模型为基础的专用软件费用估算工具。使用范畴:软件预算;软件开发费用,计划和风险的预测;软件开发环境的评价;承包商软件标书的评价。3.3.3软件项目成本估算模型Putnam模型揭示了软件项目的工作量、开发时间和程序代码长度的关系,但没有反映软件产品属性、软件项目属性、软件开发人员的属性、计算机硬件资源属性,等。所以此模型是对软件项目成本的粗糙估算。3.3.3软件项目成本估算模型5.成本模型评价评价准则

Boehm提出了10条评价准则:定义、正确性、客观性、复杂性、构造性、细节、稳定性、范围、易用性、可预期性、节约性现有模型存在的问题主观因素的存在估算模型样本的有限性Norden-Rayleigh曲线估算模型的某些前期假定有悖于软件工程模型之间有矛盾的地方软件项目规模与其工作量的关系问题3.3.3软件项目成本估算模型3.3.4软件项目成本估算步骤Boehm将成本估算分为7个步骤:第一,建立目标第二,规划需要的资源第三,确定软件需求第四,拟定可行的细节第五,运用多种独立的技术和原始资料第六,比较并迭代各个估算值第七,随访跟踪3.3.4软件项目成本估算步骤图3.8软件成本估算的准确度与阶段3.3.5软件项目成本预算制定软件项目成本估算—各工作项—WBS根据项目资源计划和成本估算制定软件项目成本预算注意事项:资源计划的匹配指在资源信息和历史数据的基础上,项目资源计划与WBS等应想对应,以保证预算的的全面性一致性。预算的全面性把所有可能用到的费用均考虑进去。预算的综合性软件项目成本预算是项目资源、项目成本估算和项目预算分解说明的有机结合,不是简单的数据的相加。3.3.6案例:过分乐观的估算MicrosoftWordforWindows1.0的开发,计划1年,实际却花了5年。图3.9项目估算所需的天数导致延期的原因:项目初期制定的开发目标是不可实现的;过紧的进度计划降低了计划的精确度;创新点过多,不适于快速开发。案例带来的启示:估算应该征求所有项目干系人的意见,并采用可靠的模型算法;高层的决定不总是睿智的,需要和专家、项目组成人员共同协商。3.3.6案例:过分乐观的估算3.4软件项目成本监控3.4.1成本管理常见问题3.4.2软件项目成本监控要素3.4.3赢得值分析法3.4.4案例:某项目第4月度成本控制状态报告3.4.1成本管理常见问题项目成本估算不准确预算不详细成本预算变更不及时3.4.2软件项目成本监控要素项目成本监控的目的:确保项目成管理规范得到执行;项目干系人对项目成本目标有共同的理解;使得项目实际成本控制在合理的预算范围。监控要素:资源计划的完备性成本估算的准确性预算计划的有效性成本控制过程的完备性3.4.3赢得值分析法是一种能全面衡量项目成本、进度的整体方法;以资金已经转化为项目成果的量来衡量;是一种完整和有效的项目监控指标和方法;赢得值分析法用三个基本值来表示项目状态,并以此预测项目可能的完工时间和可能的费用。计划投资额(BCWS)完成投资额(BCWP)实际成本额(ACWP)3.4.3赢得值分析法

描述公式作用计划投资额(BCWS)某一时间点应当完成的工作所需要花费的成本的累计值。等于计划工作量与预算单价的乘积之和该值是衡量项目进度和成本费用的一个标尺或基准完成投资额(BCWP)某一时间点已经完成的工作所需投入的资金累计值等于已完工作量与预算单价的乘积之和反映了满足质量标准的工作实际进度和工作绩效,体现了投资额到项目成果地转化实际成本额(ACWP)某一时间点已完成的工作所实际花费成本的总金额等于已完成工作量与实际支付单价的乘积之和3.4.3赢得值分析法通过对以上三个值的对比,可以对项目的实际进展情况作出明确的测定和衡量。图3.10赢得值法示意图使用赢得值法进行成本、进度综合控制必须定期监控以上3个参数。项目开始前,对项目工期内如何和何时使用资金作出计划和预算;项目开始后,监督实际成本和工作绩效以确保成本、进度都在控制范围内。3.4.3赢得值分析法具体的步骤:项目预算和计划制定详细的项目预算,把预算分解到各个包,并为每个工作包建立总预算成本(TBC);将每一个TBC分配到各个工作包的整个周期中。然后将周期中每个区间成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论