收藏 分享(赏)

软件项目管理-成本计划.ppt

上传人:dzzj200808 文档编号:3364403 上传时间:2018-10-18 格式:PPT 页数:127 大小:4.52MB
下载 相关 举报
软件项目管理-成本计划.ppt_第1页
第1页 / 共127页
软件项目管理-成本计划.ppt_第2页
第2页 / 共127页
软件项目管理-成本计划.ppt_第3页
第3页 / 共127页
软件项目管理-成本计划.ppt_第4页
第4页 / 共127页
软件项目管理-成本计划.ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

1、chapter_6,0,软件项目管理,北京邮电大学软件学院 韩万江,chapter_6,1,情景引入,多少工作量?多少成本?,chapter_6,2,成本规划,chapter_6,3,软件项目管理,第 二 篇第 6 章软件项目成本计划,chapter_6,4,本章要点,一、估算过程概念 二、估算方法 三、成本预算 四、案例分析 五、课程实践,chapter_6,5,关于估算,估算不是很准确,有误差 项目经验数据非常重要 不要太迷信某些数学模型,chapter_6,6,软件项目规模,软件项目规模即工作量 例如:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。,chapter_6

2、,7,软件规模单位,LOC(Loc of Code) 源代码长度的测量 FP(Function Point) 用系统的功能数量来测量 人月 人天 人年,chapter_6,8,软件项目成本,完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动的消耗所需要的代价是软件产品的主要成本,chapter_6,9,成本的单位,货币单位 人民币元 美元 ,chapter_6,10,软件规模和软件成本的关系,规模是成本的主要因素,是成本估算的基础 有了规模就确定了成本,chapter_6,11,成本估算结果,直接成本 间接成本,chapter_6,12,直接成本,与具体项目相关的成本, 例如

3、:参与项目的人员成本,chapter_6,13,间接成本,可以分摊到各个具体项目中的成本,例如: 培训 房租水电 员工福利 市场费用 管理费 其他等等,chapter_6,14,本章要点,一、估算过程概念 二、估算方法 三、成本预算 四、案例分析 五、课程实践,chapter_6,15,估算基本方法,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_6,16,代码行估算法,从软件程序量的角度定义项目规模。 与具体的编程语言有关 分解足够详细 有一定的经验数据(类比和经验方法),chapter_6,17,代码行技术的主要优

4、点,代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。,chapter_6,18,代码行估算的缺点,对代码行没有公认的可接受的标准定义 代码行数量依赖于所用的编程语言和个人的编程风格. 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量. 代码行强调编码的工作量,只是项目实现阶段的一部分,chapter_6,19,估算的基本方法,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_6,20,功能点估算,与实现的语言和技术没有关系 用系统的功能数量来测量其规模 通过评估、加权、量化得出功能

5、点,chapter_6,21,功能点公式,FP =UFC*TCF UFC:未调整功能点计数 TCF:技术复杂度因子,chapter_6,22,UFC-未调整功能点计数,功能计数项:(从处理逻辑的角度) 外部输入 外部输出 外部查询 外部接口文件 内部逻辑文件,chapter_3,23,外部输入(External Inputs: EI),给软件提供面向应用的数据的项(如屏幕、表单、对话框、控件,文件等);在这个过程中,数据穿越外部边界进入到系统内部。,chapter_6,24,外部输出(External Outputs EO),向用户提供(经过处理的)面向应用的信息,例如,报表和出错信息等。,c

6、hapter_6,25,外部查询(External Inquiry EQ),外部查询是一个输入引出一个即时的简单输出。没有处理过程。,chapter_6,26,外部接口文件(External Interface Files EIFs),外部接口文件是用户可以识别的一组逻辑相关数据,这组数据只能被引用。用这些接口把信息传送给另一个系统。,chapter_6,27,内部逻辑文件(Internal Logical Files: ILFS),用户可以识别的一组逻辑相关的数据,而且完全存在于应用的边界之内,并且通过外部输入维护,是逻辑主文件的数目。,28,UFC-未调整功能点计数,功能计数项的复杂度等级

7、,chapter_3,29,FP估算方法举例,30,功能点计算实例-UFC,根据上面的外贸订单项目的需求评估: 外部输入:3项;外部输出:1项;外部查询:1项; 外部接口文件:1项;内部逻辑文件:2项,31,TCF-技术复杂度因子,TCF=0.65+0.01(sum(Fi): Fi:0-5,TCF:0.65-1.35,chapter_3,32,技术复杂度因子的取值范围,chapter_6,33,外贸订单项目:功能点计算实例,FP=UFC*TCF UFC=45 TCF=0.65+0.01(14*3)=1.07 FP=45*1.07=48如果:PE=15工时/功能点 则:Effort=48*15=

8、720工时,chapter_6,34,功能点与代码行的转换,chapter_6,35,估算的基本方法,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,用例模型,chapter_3,36,用例点估算模型,chapter_3,37,用例点估算方法的基本步骤,计算未调整的角色的权值UAW; 计算未调整的用例的权值UUCW ; 计算未调整的用例点UUCP; 计算技术和环境因子TEF; 计算调整的用例点UCP ; 计算工作量( manhours) 。,chapter_6,38,1、计算未调整的角色的权值UAW,UAW=,chapter_6,39

9、,2、计算未调整的用例的权值UUCW,UUCW=,chapter_6,40,3、计算未调整的用例点UUCP,UUCP =UAW+UUCW : 例如,chapter_3,41,4、计算技术因子TCF,chapter_6,42,4、 计算环境因子ECF,chapter_3,43,5、计算调整的用例点UCP,chapter_6,44,UCP =UUCPTCFECF = 1101.020.785 = 88,6、计算工作量,如果:PF = 20工时/用例点则:Effort =UCPPF = 8820 = 1760h=220人天,chapter_6,45,chapter_6,46,估算的基本方法,代码行估

10、算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_6,47,类比估算-定义,估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中 是一种自上而下的估算形式,chapter_6,48,类比估算使用情况,有类似的历史项目数据 信息不足(例如市场招标)的时候 要求不是非常精确估算的时候,chapter_3,49,类比估算理论举例,chapter_6,50,类比估算主观判断举例,证券交易网站 需求类似 历史数据:10万 类比估算:10万,chapter

11、_6,51,估算的基本方法,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_3,52,自下而上估算-定义,利用任务分解图(WBS),对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。,估算结果,chapter_6,53,自下而上估算-特点,相对比较准确,它的准确度来源于每个任务的估算情况 花费时间,chapter_3,54,自下而上估算举例,chapter_6,55,软件项目管理,第 二 篇第 6 章软件项目成本计划,进入,chapter_6,56,估算的基本方法,代码行估算法 功能点估算法 用例点

12、估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_6,57,参数估算法定义,通过项目数据,进行回归分析,得出回归模型 通过参数模型估算(规模)成本的方法。,chapter_6,58,参数估算法使用条件,具有良好的项目数据为基础 存在成熟的项目估算模型,chapter_6,59,参数估算法特点,比较简单,而且也比较准确 如果模型选择不当或者数据不准,也会导致偏差,chapter_6,60,参数模型:规模(成本)模型,面向LOC驱动的 Walston-Felix(IBM) E= 5.2*(KLOC)0.91 Balley-Basili E=5.5+0.73*

13、(KLOC)1.16 .COCOMO E=3.2*(KLOC)1.05 Doty E=5.288*(KLOC)1.047,chapter_6,61,参数模型:规模(成本)模型,面向FP驱动的 Albrecht and Gaffney E=-12.39+0.0545FP Matson,Barnett E=585.7+15.12FP,chapter_6,62,参数模型:规模(成本)模型,整体公式:E=a+b*SC E:以人月表示的工作量 a,b,c:经验导出的系数 S:主要的输入参数(通常是LOC,FP等),chapter_6,63,建议掌握模型,Walston-Felix模型 COCOMO模型,

14、chapter_6,64,Walston-Felix模型,1977年,IBM的Walston和Felix提出了如下的估算公式E 5.2(KLOC)0.91, KLOC是源代码行数,E是工作量(以PM计) D 4.1(KLOC)0.36,D是项目持续时间(以月计) S 0.54E 0.6,S是人员需要量(以人计) DOC 49(KLOC)1.01 ,DOC是文档数量(以页计),chapter_6,65,Walston-Felix举例,采用java 完成项目,估计有366功能点,则L = 36646 = 16386行 = 16.386KLOC E 5.2(KLOC)0.91 5.216.386 0

15、.91 66人月 DOC =49 (KLOC)1.01 4916.386 1.01 826页,chapter_6,66,COCOMO(Constructive Cost model),结构化成本模型 是目前应用最广泛的参数型软件成本估计模型 由Barry Boehm团队开发的,chapter_6,67,COCOMO模型发展,COCOMO 81 COCOMO II 模型系列,chapter_6,68,COCOMO基本原理,将开发所需要的工作量表示为KLOC软件规模和一系列成本因子的函数,基本估算公式:A:可以校准的常量; S为KLOC软件规模; E为规模的指数,说明不同规模软件具有的相对规模经济

16、和不经济性;EM为工作量乘数,反映某个项目特征对完成项目开发所需工作量的影响程度;n为描述软件项目特征的成本驱动因子的个数,chapter_6,69,COCOMO 81,项目类型: 有机: Organic 嵌入式: Embedded 半有机: Semidetached,模型级别: 基本COCOMO 中等COCOMO 高级COCOMO,chapter_6,70,COCOMO 81模型的级别,基本COCOMO 静态单变量模型 中等COCOMO 基本模型基础上考虑影响因素,调整模型 高级COCOMO 中等COCOMO模型基础上考虑各个步骤的影响,71,COCOMO 81项目类型,有机: Organi

17、c, 各类应用程序,例如数据处理、科学计算 等 受硬件的约束比较小,程序的规模不是很大 嵌入式: Embedded 系统程序,例如实时处理、控制程序等 紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意 半有机: Semidetached 各类实用程序,介于上述两种软件之间,例如编译器(程序) 规模和复杂度都属于中等或者更高,chapter_6,72,基本COCOMO-81,E= a X(KLOC)b 其中: E:工作量(人月) KLOC:是交付的代码行 a , b:依赖于项目自然属性的系数,chapter_6,73,基本COCOMO-81系数表,chapter_6,74,举例,一个33

18、.3 KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:a=3.0,b=1.12。 E = 3.0L 1.12 = 3.033.3 1.12 = 152 PM,chapter_6,75,中等COCOMO-81,E= a*(KLOC)b*乘法因子 a、b是系数 乘法因子是对公式的校正系数,chapter_6,76,乘法因子的成本驱动属性,产品属性 平台属性 人员属性 过程属性,乘法因子,乘法因子F1XF2 X 。X F15,chapter_3,77,78,举例(续),一个33.3 KLOC的软件开发项目,属于中等规模、半有机型的项目,采用中等COCOMO模型 a=3.0

19、,b=1.12。 乘法因子0.70*0.85*1*1.15=1.09 E = 3.0L 1.12 乘法因子= 3.033.3 1.12 PM,chapter_6,79,高级(详细)COCOMO,将项目分解为一系列的子系统或者子模型 更加精确地调整一个模型的属性,chapter_6,80,高级(详细)COCOMO,chapter_6,81,COCOMO II,应用组装模型-规划阶段 早期设计模型-设计阶段 后体系结构模型-开发阶段,82,COCOMO II-后体系结构模型,A,可以校准 ,目前设定A=2.94 B,可以校准 ,目前设定B=0.91,chapter_6,83,模型研究例子项目数据,

20、步骤: xx=41 132 144 194 194 291 255 378 591; 时间:yy=6,10,11,16,22,32,30,35,42;,chapter_6,84,模型研究例子项目数据图式,chapter_6,85,模型研究例子-拟合算法,算法: function n = cocomo(m)xx=41 132 144 194 194 291 255 378 591;yy=6,10,11,16,22,32,30,35,42;fun=(c,x)c(1) * x.c(2);abc0=1 1;c= lsqcurvefit(fun,abc0,xx,yy);n=fun(c,m); end,c

21、hapter_3,86,模型研究例子-结果输出,模型输出图形输出,chapter_3,87,模型研究例子-模型应用,chapter_6,88,估算的基本方法,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法,chapter_6,89,专家估算法,由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。,chapter_6,90,专家估算法-Deiphi,组织者确定专家,这些专家互相不见面 组织者发给每位专家一份软件规格说明 专家以无记名对该软件给出3个规模的估算值 最小ai 最可能的m

22、i 最大bi 组织者计算每位专家的Ei=(ai+4mi+bi)/6 如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程 最终可以获得一个多数专家共识的软件规模:E=E1+E2+En/n(N:表示N 个专家),chapter_6,91,Deiphi专家估算法-举例,某多媒体信息查询系统专家估算 专家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 (万元),chapter_6,92,估算方法总结,代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下

23、而上估算法 参数估算法 专家估算法,chapter_6,93,实用软件估算步骤,是一种自下而上和参数法的结合模型,步骤如下: 对任务进行分解:1,2,I,n 估算每个工作包的成本Ei 直接成本=E1+E2+ Ei+ En 间接成本估算 项目总估算成本= 直接成本+间接成本,chapter_6,94,估算每个任务的成本,直接估算成本Ei 先估算规模Qi,然后估算成本Ei= Qi *人力成本参数,退出,chapter_6,95,直接成本估算,直接成本组成 开发成本 管理成本 质量成本例如:人力成本参数=5万/人月,30人月(包括开发管理质量)规模的项目的直接成本是 150万,chapter_6,9

24、6,直接成本估算简易估算:,开发(工作量)规模: Scale(Dev) (单位:人月) 管理、质量(工作量)规模: Scale(Mgn)=a* Scale(Dev) a为比例系数:例如:20%-25%直接成本 Scale(Dev) a* Scale(Dev),退出,chapter_6,97,间接成本,间接成本估算: 按照企业模型直接估算: 简易算法:间接成本=直接成本*间接成本系数 例如:间接成本系数=0.3,退出,chapter_6,98,项目总估算成本,估算成本=直接成本+间接成本 估算成本=直接成本+直接成本*间接成本系数 估算成本=直接成本(1+间接成本系数) 估算成本=规模*人力成本

25、参数(1+间接成本系数) 成本系数=人力成本参数* (1+间接成本系数) 简易算法: 估算成本=规模*成本系数 例如:成本系数= 8万/人月,退出,chapter_6,99,总估算成本(BAC),费用,BAC,时间,?,chapter_6,100,本章要点,一、估算过程概念 二、估算方法 三、成本预算 四、案例分析 五、课程实践,chapter_6,101,成本预算,成本预算是将项目的总成本按照项目的进度分摊到各个工作单元中去 成本预算的目的是产生成本基线,chapter_6,102,项目成本预算,分配项目成本预算包括三种情况: 给任务分配资源成本 给任务分配固定资源成本 给任务分配固定成本,

26、chapter_6,103,给任务分配资源成本,与资源的基本费率紧密相连 设置资源费率 标准费率 加班费率 每次使用费率 。,chapter_6,104,分配固定资源成本,当一个项目的资源需要固定数量的资金时,可以向任务分配固定资源成本。 例如:项目中的一个兼职人员成本,chapter_6,105,分配固定成本,有些任务是固定成本的类型的任务,也就是说,管理者知道某项任务的成本不变,不管任务的工期有多长,或不管任务使用了那些资源。在这种情况下,管理者向任务直接分配成本。 例如:某外包任务、培训任务,chapter_6,106,成本基线,chapter_6,107,本章要点,一、估算过程概念 二

27、、估算方法 三、成本预算 四、案例分析 五、课程实践,医疗信息商务平台成本估算,MED的2个估算方法: 自下而上的估算 用例点估算,chapter_6,108,MED自下而上的估算,chapter_3,109,计算开发成本,通过自下而上的计算,得知项目开发规模是396人天,开发人员成本参数=1000元/天,则内部的开发成本=1000元/天*396天=39.6万元 加上外包部分软件成本2.4万元,则开发成=39.6万+2.4万=42万元,chapter_6,110,计算管理成本,针对本项目,管理成本=开发成本*10%。 所以,管理成本为=42万元*10%=4.2万元。,chapter_6,111

28、,计算直接成本,因为,直接成本=开发成本+管理成本 所以,直接成本=42万元+4.2=46.2万元,,chapter_6,112,计算间接成本,因为,间接成本=直接成本*20% 所以,间接成本=46.2万元*20%=9.24万元,chapter_6,113,计算总估算成本,项目总估算成本=直接成本+间接成本= 46.2万元+9.24万元=55.44万元。,chapter_6,114,MED用例点估算,chapter_3,115,角色:User,chapter_3,116,计算未调整的角色的权值:UAW,UAW=18,chapter_6,117,计算未调整的用例权值:UUCW,UUCW=240,

29、chapter_6,118,计算未调整的用例点:UUCP,UUCP=UAW+UUCW=18+240=258,chapter_6,119,技术复杂度因子TCF,chapter_3,120,环境因子ECF,chapter_3,121,计算用例点UCP,UCP =UUCPTCFECF =2581.080.785 =218.7,chapter_6,122,规模: Effort,如果:PF=20工时/用例点 则:Effort =UCPPF = 218.720 =4374工时。 因为1人天=8工时,则项目规模:4374/8 =547人天如果1000元/人天,则成本54.7万,chapter_6,123,chapter_6,124,本章要点,一、估算过程概念 二、估算方法 三、成本预算 四、案例分析 五、课程实践,课程实践五:项目成本估算,实践目的:掌握软件项目规模成本估算方法 实践要求: 复习软件成本估算方法 采用用例点方法估算SPM项目 采用自下而上方法估算SPM项目 选择1个团队课堂上讲述SPM项目的两个估算结果,chapter_6,125,chapter_6,126,小结,成本估算 代码行估算法 功能点估算法 用例点估算法 类比 (自顶向下)估算法 自下而上估算法 参数估算法 专家估算法 成本预算,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报