《软件生产率和工作量度量.ppt》由会员分享,可在线阅读,更多相关《软件生产率和工作量度量.ppt(37页珍藏版)》请在三一办公上搜索。
1、软件工程,主讲人:段贵多,第五章 软件生产率和工作量度量,本章学习目标,2,3,理解算法代价估计的原则,掌握生产率度量和项目工作量度量的方法,了解软件生产率和项目工作量度量的含义,软件生产率和项目工作量估算简介,应用场景项目经理评估各软件工程师的生产率 根据客户需求和公司现有资源来估计项目的工作量和成本 目标问题如何为某个项目分配合理的人力、时间和相关资源 要完成该项目需要多少工作量(人力)?要完成一个项目或任务需要多长有效时间?项目或任务的总成本是多少?,软件产品的度量,度量一种量化衡量方法,使得人们可以理解和把握软件项目的(生产)效率(或者所需要的劳动量)。,软件产品的度量,原因描述(项目
2、和过程)评估(状态和质量)预测(为计划)改进(产品质量和过程性能),软件质量和组织绩效的决定因素,关键因素:过程、人、产品、技术过程处于三角的中心,连接其它三个因素,四个软件项目中缺陷产生的原因,软件生产率估计,软件生产率测量可以分为两大类:直接测量间接测量,软件生产率估计,软件生产率测量直接测量:一定时间产生的代码行数(LOC)执行速度文件页数错误和缺陷数花费成本,软件生产率估计,软件生产率测量间接测量:如一个给定时间内生产出的功能点和目标点 功能性可靠性可维护性复杂性效率其它质量指标,基于规模的度量直接测量,基于规模的度量讲某项目的源代码作为项目工作量的度量标准。这些测量都是根据开发过的软
3、件的规模得到的。一个基于规模的度量的例子,面向规模的度量,以LOC为标准,可得其他面向规模的度量标准:每KLOC(千行代码)的错误数,即总错误数除以总KLOC每KLOC(千行代码)的缺陷数,即总缺陷数除以总KLOC每KLOC(千行代码)的文档页数,即总文档页数除以总KLOC 此外每人月的错误数,即总错误数除以总人月每人月的代码行数,即总代码行数除以总人月,基于代码行数的度量方法的优缺点,LOC、KLOC和相关度量容易计算许多现有的软件估算模型都使用LOC和KLOC作为一项重要输入有大量的关于LOC的文献和数据,优点,基于代码行数的度量方法的优缺点,LOC依赖于使用的语言,这对短小精悍的程序不利
4、不太适用于非过程化语言LOC估算较难,缺点,功能点度量间接测量,面向功能的度量:功能点(FP)度量功能点度量依据软件信息域特性和软件复杂性的评估结果进行估算,功能点度量间接测量,五个信息域值用户输入的数量(Inp)用户输出的数量(Out)用户查询的数目(Inq)文件数量(Maf)外部接口的数量(Inf),功能点度量间接测量,计算功能点(FP)的公式其中,total_counts 是FP 的总数或从表52 获得的小计Fi(i 从1 到14)是“复杂性调整值”,Fi 的值和以下问题的答案有关:,total_counts计算,total_counts=其中,ai(1=i=5)是信息域特性系数,其值由
5、相应的特性复杂级别决定,如下表:,复杂性调整值(Arthur1985),系统需要可靠的备份和恢复么?需要进行数据通信么?有分布式处理功能么?性能重要么?将该系统运行在一个现有的操纵系统中么?系统要求在线输入数据么?在线输入数据要求在多个屏幕和操作之间建立输入事务么主文件是否在线更新?输入、输出、文件或查询是否复杂?内部处理是否复杂?代码是可重用的么?设计中包括数据(流程)转换或安装么?系统要为不同的机构设计不同的安装方法么?应用程序便于变更么?易于用户使用么?,功能点度量间接测量,一个功能点度量的例子,功能点度量间接测量,以功能点为基础,得出下面相关度量方法:每FP的错误数,即总的错误数除以总
6、的FP数。每FP的缺陷数,即总的缺陷数除以总的FP数。每FP的文档页数,即总的文档页数除以总的FP数。每人月的FP数,即总的FP数除以总的人月数,基于LOC度量和基于FP度量的关系,代码行数和功能点之间的关系依赖于编程语言,如何利用度量方法进行生产率估计,问题 某个小组的LOC/人月(或FP/人月)的数据应该和另一个组的相比么?项目经理应该使用这些度量方法来评价个人表现么?对策谨慎使用生产率度量,因为有很多因素可能影响生产率,项目工作量度量,算法成本模型基于经验的度量 软件成本的算法成本模型 其中A是一个常量,由组织的实践和软件的类型决定。Size可以是软件代码规模的估算,也可以是功能点或目标
7、点。B的取值范围为1,15。M是反应产品、过程和人力属性的乘数。,算法成本估算的例子,不同软件开发阶段的估算的不确定性,COCOMO 模型,COCOMO(构造性成本模型)是一个经验模型,通过收集大量的软件项目的数据而获得 好处 它已得到广泛的证明。可用于公共领域并且很多公共和商业工具都支持它。它应用广泛,并得到了不同组织的评价。它有较长的历史,于1981年第一次实例化Boehm,1981,为了适用于Ada进行了一次改进Boehm and Royce,1989,最新版本COCOMO II发布于2000年Boehm et al.,2000。,基本的COCOMO模型,基本的COCOMO II模型,目
8、标点生产率,估算项目开发时间,估算开发软件所需要的时间使用COCOMO模型估算日历时间 PM是之前计算的项目工作量,B是中提到的指数,估算项目开发时间,估算开发软件所需要的时间使用COCOMO II 模型计算增加或减少的时间 SCEDPercentage是在原定时间表上增加或减少的百分比。如果预测结果显示和原定计划表差别很大,则表明想要按计划交付软件有很大风险。,项目工作量度量,通过任务分解度量项目工作量,项目工作量度量,通过目前可用的资源估算项目工作量特点方法简单只考虑项目现有的可用资源(时间和人力)而忽略了其它因素 实例一个项目需要12个月和5个人(其他人忙于别的项目),则项目总的工作量是60人月,总结,介绍了软件生产率和工作量度量的背景知识 讨论了几种度量方法的优缺点 介绍了项目计划的工作量的度量方法,作业,衡量软件工程的过程和软件产品为什么重要?直接测量和间接测量有什么不同?基于功能的、基于规模的、和算法代价建模三种方法各有什么优缺点?阐述基于LOC和基于FP的度量之间的关系。使用COCOMO模型有哪些好处?,