第八章成本管理Contents软件成本分析1软件资源计划2软件开发成本估算3软件维护成本估算4软件成本预算5软件成本控制61.软件成本分析成本为了获取商品或服务而支付的货币总量。软件成本在整个生命周期内发生的全部支出之和。软件成本特点较高的风险性不确定性资本性支出形成企业资产设计开发成本劳动力成本硬件成本税金成本服务成本管理费用、财务费用成本软件成本构成软件成本影响因素质量工期管理水平人力资源需求不确定性价格质量与成本的关系质量质量保证成本质量故障成本工期与成本的关系2.软件资源计划资源计划指通过分析和识别项目的资源需求,确定出项目需要投入的资源种类(包括人力、设备、材料、资金等等)、项目资源投入的数量和项目资源投入的时间,从而制定出项目资源供应计划的项目成本管理活动。资源计划需要解决如下几个问题:1.项目需要什么资源?2.项目需要多少资源?3.项目需要什么水平的资源?4.项目什么时间需要什么资源?资源计划的主要工作依据方法和工具结果WBS项目进度计划历史资料项目范围说明书项目资源说明、项目组织的管理政策和原则编制方法编制工具资源计划说明书步骤1步骤2步骤3步骤4资源需求分析资源供给分析资源成本比较与资源组合资源分配与计划编制编制步骤编制方法1.专家评估法/德尔菲评估法定义:指成本管理专家根据经验和判断来编制项目资源计划的方法。分类:(1)专家小组法(2)德尔菲法2.头脑风暴法法各抒己见、集思广益3.数学模型法借助一定的数学模型和数学方法编制工具资源矩阵资源数据表资源甘特图资源负荷图资源累计需求曲线资源矩阵资源数据表资源种类需求总量时间安排(不同时间资源需求量)12…T资源1资源2…资源n相关说明资源甘特图资源负荷图时间资源需求资源累计需求曲线时间某资源累计需求总量资源累计需求3.软件开发成本估算估算方法1.代码行(LineOfcode,LOC)法2.功能点(FunctionPointAnalysis,FPA)法3.COCOMOⅡ功能点(FPA)法什么是功能点?功能点是度量软件规模的一个标准度量单元。什么是功能点分析法?功能点分析法是从用户角度度量软件开发的一种标准方法。FPA步骤估算成本第1步估算未调整功能点(UFP)数功能点(FP)类型及数目复杂性等级第2步估算调整后FP数功能点调整系数(FPAF)技术复杂因子(TCF)第3步估算成本FPA步骤FP类型:外部输入(EI)外部输出(EO)外部查询(EQ)内部逻辑文件(ILF)外部接口文件(EIF)第1步估算UFP数FP类型及数目核心是“客户可以理解并识别”,图中灰色的那些“数据”和“操作”,是客户看不到的,不能计算为功能点确定复杂性等级数据元素类型(DET)一个唯一的用户可辨认的、不可递归的域。记录元素类型(RET)一个用户可辨认的ILF或EIF中的数据元素组成的子组。参考文件类型(RFT)指可维护、读取、参考的ILF和可读、参考的EIF的数目。RFT类型数目DET类型数目1~45~15150~1低低中2低中高≥3中高高RET类型数目DET类型数目1~1920~50500~1低低中2~5低中高5中高高EI的复杂性等级EO和EQ的复杂性等级ILF和EIF的复杂性等级RFT类型数目DET类型数目1~56~19190~1低低中2~3低中高3中高高FP类型复杂性权重低中高EI346E0457EQ346ILF71015EIF5710复杂性权重=++每类FP数数量(低)权重(低)数量(中)权重(中)数量(高)权重(高)FP类别低中高UFP数量权重数量权重数量权重EI632436E0747507EQ032446ILF57210315EIF9507210总计数值------第2步估算调整后FP数=FPUFPFPAF调整后技术复杂因子(TCF)因子大类系统复杂度输入和输出复杂度应用软件复杂度因子名称数据通信事务率复杂处理分布式处理在线数据项重用性性能用户使用效率安装难易程度配置项负载在线更新操作难易程度多个地点修改难易程度TCF组成012345没有影响偶有影响轻微影响一般影响较大影响严重影响权重表(Fi的取值)141=0.65+0.01+()iiFPAFF计算FPAF=UFPFPAFFP计算调整后FP第3步估算成本=19FP软件开发成本开发工具的日生产率以人•月(PM)为计量单位若以货币为计量单位,则用PM诚意劳动力月成本。4.维护成本估算非技术因素应用经验、员工稳定性、应用时间、外部环境、支持环境和用户需求等。技术因素软件复杂性、开发人员能力、文档质量、配置管理技术、现代编程规范和数据库规模等。影响维护成本的因素第1步基本维护成本模型软件维护成本估算模型bACM=ACTSDT基本年维护成本开发成成本年变化冲突(软件产品一年中变化部分占总规模的比例)ACT=SDTADTUDT软件年新增加需要的成本软件年修改需要的成本第2步改进维护成本模型判断每个影响成本因素的重要性,选择相应的权重Fi通过每个因素的影响权重来修正成本预测值ACM=ACMubMAF其中,MAF为维护调整系数,其计算公式为:1niiMAFF实例分析一个已完工的软件项目开发成本为135PM,专家估算ACT为18%。影响维护成本因素的影响权重为:应用经验(1.13)、员工稳定性(1.0)、应用时间(1.19)、外部环境(0.86)、支持环境(1.15)、用户需求(0.82)、软件复杂性(0.70)、开发人员能力(1.0)、文档质量(0.93)、配置管理技术(1.10)、现代编程规范(0.91)和数据库规模(1.08)。第1步基本维护成本模型bACM=ACTSDT=0.18135=24.3(PM)第2步改进维护成本模型bACM=ACMuMAF=24.3(1.131.01.08)=18.7(PM)提高软件维护工作量的因素:应用经验(1.13)、应用时间(1.19)、支持环境(1.15)、配置管理技术(1.10)、数据库规模(1.08)。降低软件维护工作量的因素:外部环境(0.86)、用户需求(0.82)、软件复杂性(0.70)、文档质量(0.93)、现代编程规范(0.91)。5.软件成本预算定义成本预算实在成本估算的基础上,更精确地估算项目总成本,并将其分摊到项目的各项具体活动和各个具体阶段上。特征计划性约束性控制性编制原则要与软件开发目标相联系以软件需求为基础要切实可行有一定弹性编制步骤分摊总预算成本累计预算成本6.软件成本控制成本控制流程计划成本与实际成本比较收集实际成本数据项目进展采取控制措施修正的成本估算与预算出现偏差?是否输出开始成本估算与预算成本控制措施组织措施技术措施经济措施