软件项目管理-第三章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第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.1WBSLOC:代码行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估计2/)(baE6/)(ab6/)(;6/)4(iiiiiiiabbmaEniiEE12/112niiE软件期望规模:估算值的标准偏差:第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)动态多变量模型:通过多个变量的相互作用对软件过程做出估算。如:PutnambaLC3.3.2软件项目成本估算方法baLC(5)其它模型(回归分析)3.3.2软件项目成本估算方法其中,A、B、C是由经验估计的常数,X是预测变量,E是工作量,同事有LOC和FP两种表示1981年Boehm提出了“构造性成本模型”(ConstructiveCostModel,CoCoMo).在静态、单变量模型基础上构造出来的。是一个分层次的成本估算模型(基本CoCoMo、中间CoCoMo、详细CoCoMo)自底向上的估算方法3.3.3软件项目成本估算模型1.COCOMO模型COCOMO模型的三个子模型采用相同的工作量计算方式:EAFaSEbE工作量单位:人月S程序规模单位KLOCEAF工作量调整因子,在基本模型中取值为1;a,b是两个随开发模式而变化的因子。软件开发中的三种开发模式:有机式、嵌入式、半分离式3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型基本CoCoMo:用于系统开发的初期,估算整个系统的工作量(包括维护)和软件开发所需要的时间;中间CoCoMo:用于估算各个子系统的工作量和开发时间;详细CoCoMo:用于估算独立的软部件,如系统内部的各个模块。3.3.3软件项目成本估算模型基本CoCoMo模型把工作量作为软件程序规模的函数来计算,具有如下形式:E=aSbt=cEdE:工作量,单位人月(PM)t:开发时间,单位是月a,b,c,d,是常数(见课本P93表3.7、表3.8)3.3.3软件项目成本估算模型3.3.3软件项目成本估算模型中间CoCoMo模型以基本CoCoMo模型为基础,在工作量估计公式中乘以工作量调节因子EAF。E=aSb×EAFa,b:随开发模式而变化的因子,为常数(见P93表3.9)工作量调节因子与软件产品属性、计算机属性、人员属性、项目属性有关。EAF(工作量调整因子)由成本驱动量计算。即由课本中的表3.10中的15个评分值相乘得到。3.3.3软件项目成本估算模型iiFEAF151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和表

1 / 81
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功