软件项目管理-05.

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

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

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

资源描述

主讲:张鹏(宁夏大学数计学院)pengzhang123@foxmail.com软件项目管理软件项目管理软件项目成本计划本章要点一、软件项目规模成本的概念二、成本估算过程三、成本估算方法四、成本预算成本管理过程资源计划编制:确定项目需要的资源种类和数量成本估算:中心环节编制一个为完成项目各活动所需要的资源成本的近似估算成本预算:项目进度将总成本估算分配到各单项工作活动上成本控制:项目跟踪控制项目预算的变更关于估算估算不是很准确的,有误差的经验(历史)数据非常重要不要太迷信数学模型软件项目规模软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。规模的单位LOC(LinesofCode)源代码程序长度的测量FP(FunctionPoint)用系统的功能数量来测量人月人天人年软件项目成本完成软件规模相应付出的代价。待开发的软件项目需要的资金。人的劳动的消耗所需要的代价是软件产品的主要成本成本的单位货币单位人民币元美元……..软件的规模和成本的关系规模是成本的主要因素,是成本估算的基础有了规模就确定了成本,本章要点一、软件项目规模成本的概念二、成本估算过程三、成本估算方法四、成本预算成本估算过程估算输入估算结果成本估算方法成本估算输入项目需求、WBS历史项目度量资源要求(资源编制计划)资源消耗率:如人员成本:100元/小时进度规划:项目总进度(一般是合同要求)学习曲线资源规划需要的资源种类、数量等024681012JanFebMarAprMayJunJulAugSepOctNovDecJavaprogrammersBusinessanalystsTechnicalwritersManagersAdministrativestaffDatabaseanalystsTestingspecialistsNumberofPeople成本估算直接成本与具体项目相关的成本工资硬件软件其它间接成本不能具体到某个项目中的成本,可以分摊到各个具体项目中的成本,例如:培训房租水电员工福利市场费用管理费其他等等项目估算输出估算文件资源,资源的数量,质量标准,估算成本等信息单位:一般是货币单位BAC(BudgetAtcompletion)估算说明工作范围估算的基础和依据估算的假设估算的误差变动等估算说明预测所需要的总工作量的过程。是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期。本章要点一、软件项目规模成本的概念二、成本估算过程三、成本估算方法四、成本预算估算的基本方法1.代码行、功能点、对象点、用例点2.类比(自顶向下)估算法3.自下而上估算法4.参数法估算法5.专家估算法代码行(LOC)从软件程序量的角度定义项目规模。要求功能分解足够详细的有一定的经验数据(类比和经验方法)与具体的编程语言有关代码行(LOC)缺点1.对代码行没有公认的可接受的标准定义2.代码行数量依赖于所用的编程语言和个人的编程风格.3.在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量.4.代码行强调编码的工作量,只是项目实现阶段的一部分功能点(FP:Functionpoint)用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化功能点的公式FP=UFC*TCFUFC:未调整功能点计数TCF:技术复杂度因子UFC-未调整功能点计数功能计数项:1.外部输入(EI)2.外部输出(EO)3.外部查询(EQ)4.内部逻辑文件(ILF)5.外部接口文件(EIF)UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件71015功能点计算实例-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计13465102UFC301TCF-技术复杂度因子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易于修改技术复杂度因子的取值范围调整系数描述0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响功能点计算实例FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=322功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET6对象点(OP)对象点是基于对象的软件产品规模估算。著名的Probe方法---WattsHumphrey对象规模表(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.66Probe方法的步骤1.基于产品需求构建体系结构和概要设计2.对设计中的每个类(面向对象方法中的Class)的输入和交互,标识所设计的对象属于表中哪类方法并估算其复杂性3.将上述标识的结果构造成一个如上表形式的矩阵,然后将这个矩阵中的值与上表中对应的值相乘4.将上述所有相乘结果相加求和,产生估算结果对象点的估计-举例方法种类很小小中大很大计算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.03估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法类比-定义估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式类比—使用情况有类似的历史项目数据信息不足(要求不是非常精确)的时候在合同期和市场招标时类比—特点简单易行,花费少具有一定的局限性准确性差,可能导致项目出现困难类比——优缺点类比优点•比较直观类比缺点•不能适用于早期规模等数据都不确定的情况•应用一般集中于已有经验的狭窄领域,不能跨领域应用•难以适应新的项目中约束条件、技术、人员等发生重大变化的情况估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法自下而上—定义利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。自下而上—使用情况项目开始以后,WBS的开发阶段需要进行准确估算的时候自下而上—特点这种方法相对比较准确,它的准确度来源于每个任务的估算情况非常费时,估算本身也需要成本支持可能发生虚报现象估算的基本方法代码行、功能点、对象点类比(自顶向下)估算法自下而上估算法参数法估算法专家估算法专家估算法由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。专家估算法-Deiphi组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算专家详细研究软件规格说明后,对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei=(ai+4mi+bi)/6,专家估算法-Deiphi(续)综合结果后:E=E1+E2+…En/n(N:表示N个专家)再组织专家无记名填表格,比较估算差,并查找原因如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程,最终可以获得一个多数专家共识的软件规模专家估算法-举例某多媒体信息查询系统—专家估算专家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(万元)估算方法总结初期类比专家估算计划阶段自下而上参数模型实施阶段(包括变更发生)自下而上参数模型实用软件估算模型是一种自下而上和参数法的结合模型,步骤如下:1.对任务进行分解:1,2,…,i…2.估算每个任务的成本Ei3.直接成本=E1+E2+……+Ei+……+En4.项目总估算成本=直接成本+间接成本5.项目总报价=项目总估算成本+风险利润1.风险利润=利润+风险基金+税估算每个任务的成本直接估算成本Ei先估算规模Qi,然后估算成本Ei=Qi*人力成本参数唯一估计值:Qi=AvgPERT算法:Qi=(Max+4Avg+Min)/6直接成本估算直接成本=规模*人力成本参数直接成本组成开发成本管理成本质量成本例如:人力成本参数=2万/人月,30人月规模的项目的直接成本是60万直接成本估算-简易估算:开发(工作量)规模:Scale(Dev)(单位:人月)管理、质量(工作量)规模:Scale(Mgn)=a*Scale(Dev)[a为比例系数:例如:20%--25%]直接成本=Scale(Dev)+a*Scale(Dev)项目总估算成本估算成本=直接成本+间接成本间接成本估算:1.按照企业模型直接估算:2.简易算法:间接成本=直接成本*间接成本系数间接成本=规模*人力成本参数*间接成本系数例如:间接成本系数=0.3项目总估算成本估算成本=直接成本+间接成本估算成本=直接成本+直接成本*间接成本系数估算成本=直接成本(1+间接成本系数)估算成本=规模*人力成本参数(1+间接成本系数)成本系数=人力成本参数*(1+间接成本系数)简易算法:估算成本=规模*成本系数例如:成本系数=3万/人月项目总报价1.项目总报价=项目总估算成本+风险利润1.项目利润=估算成本*a%2.风险基金=估算成本*b%3.税=估算成本*c%(例如:c为5.5左右)2.项目总报价=(a+b+c)%*项目总估算成本+项目总估算成本估算准确度类型准确度说明量级估算:合同前Orderofmagnitude-25~~+75%概念和启动阶段决策预算估算:合同期Budget-10~~+25%编制初步计划确定性估算:WBS后Definitive-5~~+10%工作分解后的详细计划估算不准确的主要原因基础数据不足。估算对需求是非常敏感的。软件项目存在很多不确定因素。缺乏经验的估算人员。签约前后不连贯和低劣的推测技术也是不准的原因。避免低劣估算1.避免无准备的估算2.留出估算的时间,并做好计划3.使用以前的项目数据4.使用开发人员提供的数据为基础估算5.分类法估算6.详细的较低层次上的估算7.使用软件估算工具8.使用几种不同估算技术,并比较它们的结果估算的表达方式技巧1.加减限定1.6个人月,+3人月,-1人月2.范围5-9人月估算的表达方式技巧3.风险量化:见下例估算:6个人月

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

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

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

×
保存成功