软件项目工作量估算概述

上传人:苏**** 文档编号:240755127 上传时间:2024-05-05 格式:PPT 页数:75 大小:1.16MB
返回 下载 相关 举报
软件项目工作量估算概述_第1页
第1页 / 共75页
软件项目工作量估算概述_第2页
第2页 / 共75页
软件项目工作量估算概述_第3页
第3页 / 共75页
点击查看更多>>
资源描述
上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室讲座讲座5 软件项目工作量估算软件项目工作量估算上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件工作量估算软件工作量估算 有些估算做得很仔细,而有些却只是凭直觉的有些估算做得很仔细,而有些却只是凭直觉的猜测。大多数项目超过估算进度的猜测。大多数项目超过估算进度的25%25%到到100100,但也有少数一些组织的进度估算精确到了但也有少数一些组织的进度估算精确到了1010以以内,能控制在内,能控制在5 5以内的还没有听说。以内的还没有听说。Jones,1994 Jones,1994上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件工作量估算软件工作量估算“大多数大多数ISIS人士,无论是否为管理者,从来都无权人士,无论是否为管理者,从来都无权控制他们自己的进度计划。进度计划通常由市场控制他们自己的进度计划。进度计划通常由市场部或高层管理部门直接下达,就像飞石从天而降部或高层管理部门直接下达,就像飞石从天而降(也有人称之为鸟粪)(也有人称之为鸟粪)”“就此问题,我曾与就此问题,我曾与ISIS领域中许多人士进行过交流。领域中许多人士进行过交流。大家一致认为当前大家一致认为当前ISIS领域面临的最大难题,既不领域面临的最大难题,既不是掌握快速更新的技术,也不是探求新型的管理是掌握快速更新的技术,也不是探求新型的管理哲学,而是被迫接受根本无法达到的进度计划。哲学,而是被迫接受根本无法达到的进度计划。”(Robert.L.Glass)Robert.L.Glass)上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室一个月的时间造这样一栋房子?没问题太好了,那我们开工吧!你当初计划10万元造的房屋可能最终的实际造价为50万元。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室从造房子中学到的从造房子中学到的w除非你确切知道除非你确切知道“它它”是什么?否则无法说明它是什么?否则无法说明它的确切花费。的确切花费。w盖房子时,可以盖梦想中的房子(不考虑花费),盖房子时,可以盖梦想中的房子(不考虑花费),也可以按估算盖,但是功能必须具有一定的灵活也可以按估算盖,但是功能必须具有一定的灵活性性上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室不确定性问题不确定性问题w客户会要求客户会要求X X功能吗?功能吗?w客户要的是客户要的是X X功能的便宜版本还是昂贵版本呢?同一功能的不同版本功能的便宜版本还是昂贵版本呢?同一功能的不同版本的实施难度至少有的实施难度至少有1010左右的差别。左右的差别。w如果实施了如果实施了X X功能的便宜版本,客户会不会以后又想要昂贵的版本。功能的便宜版本,客户会不会以后又想要昂贵的版本。wX X功能如何设计?同一功能的不同设计,在复杂度方面会有功能如何设计?同一功能的不同设计,在复杂度方面会有1010左右左右的差别。的差别。wX X功能的质量级别是什么?依据实施过程的不同,首次提交的功能的质量级别是什么?依据实施过程的不同,首次提交的X X功能功能的缺陷数量会有的缺陷数量会有1010的差异。的差异。w调试和纠正调试和纠正X X功能实施过程中的错误要花多少时间?研究发现调试和功能实施过程中的错误要花多少时间?研究发现调试和纠正同样的错误,不同程序员所花时间会有纠正同样的错误,不同程序员所花时间会有1010左右的差异。左右的差异。w把把X X功能和其它功能结合起来要花多少时间?功能和其它功能结合起来要花多少时间?w上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件工作量估算的渐进性软件工作量估算的渐进性上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室估算的准确性和精确性估算的准确性和精确性w准确(准确(accuracyaccuracy)是)是结果与目标之间有多近结果与目标之间有多近,用,用3 3代表圆周率比用代表圆周率比用4 4更准确更准确w精确(精确(precisionprecision)是)是结果有多少有意义的位数结果有多少有意义的位数,3.143.14比比3 3代表圆周率更精确代表圆周率更精确w一个结果可以不准确而精确,不精确而准确,一个结果可以不准确而精确,不精确而准确,w软件估算中错误的精确是准确的敌人,软件估算中错误的精确是准确的敌人,40407070个个人月的工作量估算可能是最准确又最精确的估算,人月的工作量估算可能是最准确又最精确的估算,而精确到而精确到5555个人月看起来更精确,但不准确。个人月看起来更精确,但不准确。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件工作量估算困难的原因软件工作量估算困难的原因w估算困难是由于软件的本质带来的,特别是其复杂性和估算困难是由于软件的本质带来的,特别是其复杂性和不可见性。不可见性。w软件开发是人力密集型工作的,因而不能以机械的观点软件开发是人力密集型工作的,因而不能以机械的观点来看待来看待w传统的工程项目经常会议相近的项目做参考,不同的只传统的工程项目经常会议相近的项目做参考,不同的只是客户和地点,而绝大部分软件项目是独一无二的。是客户和地点,而绝大部分软件项目是独一无二的。w新技术的不断出现和应用。新技术的不断出现和应用。w缺少项目经验数据,许多组织无法提供原有项目数据,缺少项目经验数据,许多组织无法提供原有项目数据,而即使提供了这些项目数据,也未必非常有用。而即使提供了这些项目数据,也未必非常有用。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室例子例子w结论:很难用这些数据去估算项目结论:很难用这些数据去估算项目上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室工作量估算的其它困难工作量估算的其它困难w某些人试图建立一个过去项目的全软件业的数据某些人试图建立一个过去项目的全软件业的数据库,但是许多词汇意义的不明确使得这种努力没库,但是许多词汇意义的不明确使得这种努力没有效果,例如有效果,例如“测试测试”阶段究竟包括哪些活动就阶段究竟包括哪些活动就不明确。不明确。w估计的主观性:估计的主观性:人们容易低估小项目的工作量,人们容易低估小项目的工作量,而过分夸大大项目的工作量而过分夸大大项目的工作量w估计的政治因素:估计的政治因素:不同的人有不同的目标,如项不同的人有不同的目标,如项目经理会高估项目工作量,许多机构采用独立的目经理会高估项目工作量,许多机构采用独立的估算小组,但是将项目经理和项目成员吸收进估估算小组,但是将项目经理和项目成员吸收进估算小组,能够增强他们的责任感。算小组,能够增强他们的责任感。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室何时需要度量何时需要度量w策略计划:选择合适的项目策略计划:选择合适的项目w可行性分析可行性分析w系统描述:实现各个需求的工作量需要被衡量系统描述:实现各个需求的工作量需要被衡量w评估供应商的建议评估供应商的建议w项目计划:项目计划:n项目进行过程中,估算越来越准确项目进行过程中,估算越来越准确n在项目开始阶段考虑的是用户需求,不考虑实现,但在项目开始阶段考虑的是用户需求,不考虑实现,但是为了估算,有时需要考虑一些实现方法是为了估算,有时需要考虑一些实现方法上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过高估计和过低估计的问题过高估计和过低估计的问题w过高估计的问题过高估计的问题nParkinsonParkinson法则:给的时间越多,工作花费的时间也越多法则:给的时间越多,工作花费的时间也越多nBrookBrook法则:当人数增加后,项目所需的工作量法则:当人数增加后,项目所需的工作量 将不成比例的增将不成比例的增加。当团队规模变大后,由于管理,协调和通信的增加,将造成加。当团队规模变大后,由于管理,协调和通信的增加,将造成工作量的增加。因而工作量的增加。因而“投入更多的人将使延期的工作更加延期投入更多的人将使延期的工作更加延期”w过低估计的问题过低估计的问题n质量降低质量降低nWeinbergWeinberg的可靠性零法则的可靠性零法则“如果系统不必可靠,那么它可以满足如果系统不必可靠,那么它可以满足任何目标任何目标”。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室工作量估算对职员的影响工作量估算对职员的影响w如果职员能够完成目标,那么他们将受到鼓舞如果职员能够完成目标,那么他们将受到鼓舞w如果他们发现目标根本不能完成,那么他们的激如果他们发现目标根本不能完成,那么他们的激情将受到极大损害情将受到极大损害w因而,估计不是一种简单的预测行为,而是一种因而,估计不是一种简单的预测行为,而是一种管理目标管理目标上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件估算的基础(软件估算的基础(1)w历史数据的需要历史数据的需要n在参考历史数据时需要考虑不同的环境,如编程语言,在参考历史数据时需要考虑不同的环境,如编程语言,软件工具,标准和人员的经验。软件工具,标准和人员的经验。w工作度量工作度量n直接计算真正的成本或时间是不可能的。编写程序的直接计算真正的成本或时间是不可能的。编写程序的时间不同的人将有显著的区别。时间不同的人将有显著的区别。n通常将工作量表达为如源代码的数量(通常将工作量表达为如源代码的数量(source line source line of codeof code,SLOCSLOC),或者千行代码量(),或者千行代码量(KLOCKLOC)上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件估算的基础(软件估算的基础(2)w复杂性复杂性n相同相同KLOCKLOC的两个程序花费的时间将会不同。因而不能的两个程序花费的时间将会不同。因而不能简单地应用简单地应用KLOCKLOC或或SLOCSLOC,而要根据复杂性进行修正,而要根据复杂性进行修正,但是复杂性的度量通常是主观而定的。但是复杂性的度量通常是主观而定的。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室基于承诺的估计基于承诺的估计w一些组织直接从需求出发安排进度而不进行中间一些组织直接从需求出发安排进度而不进行中间的工作量估算。他们要求每个开发者作出进度承的工作量估算。他们要求每个开发者作出进度承诺而非进度估算。诺而非进度估算。w有利于开发者对进度的关注,开发者在接受承诺有利于开发者对进度的关注,开发者在接受承诺后士气高昂,自愿加班加点后士气高昂,自愿加班加点w问题在于开发者的估算比现实要乐观,大约低问题在于开发者的估算比现实要乐观,大约低2020至至3030个百分点(个百分点(Van Genuchten,1991)Van Genuchten,1991)w承诺应该现实可行,以使你的团队会不断成功而承诺应该现实可行,以使你的团队会不断成功而不是不断失败。不是不断失败。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室软件工作量估计技术软件工作量估计技术w自下而上:各个部分的工作量先估算出来,然后自下而上:各个部分的工作量先估算出来,然后进行合成进行合成w自顶向下:首先定义整个项目的工作量,然后分自顶向下:首先定义整个项目的工作量,然后分解到各个部分解到各个部分w专家判断专家判断w对比法对比法w算术模型算术模型wParkinsonParkinson:能够使用的参与该项目的人力:能够使用的参与该项目的人力w赢利价格:赢得合同的价格赢利价格:赢得合同的价格上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室自底向上方法自底向上方法w该方法首先将项目分成部件任务,然后估算每个该方法首先将项目分成部件任务,然后估算每个任务所需的工作量。任务所需的工作量。w在大型的项目中,分解任务的过程是一个叠代的在大型的项目中,分解任务的过程是一个叠代的过程,直到最下面的任务不可分解,产生过程,直到最下面的任务不可分解,产生WBSWBS。w该方法适合于项目规划的后期。如果应用在前期,该方法适合于项目规划的后期。如果应用在前期,那么必须对最终的系统作出一些假设,例如对软那么必须对最终的系统作出一些假设,例如对软件模块的数量和大小进行假设。件模块的数量和大小进行假设。w如果项目是全新的或者没有历史数据,建议用该如果项目是全新的或者没有历史数据,建议用该方法方法上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w工资系统已经被安装在工资系统已经被安装在Brightmouth学院,目学院,目前有一个新的需求,需要在系统中添加一个子系前有一个新的需求,需要在系统中添加一个子系统,该系统分析每节课时老师的成本。每个老师统,该系统分析每节课时老师的成本。每个老师的工资可以从系统中获得,每个老师花在每个课的工资可以从系统中获得,每个老师花在每个课程上的时间也可以从系统中获得。为了实现该系程上的时间也可以从系统中获得。为了实现该系统,需要哪些任务,哪些任务的工作量比较难计统,需要哪些任务,哪些任务的工作量比较难计算。算。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习n答案答案w获取用户需求获取用户需求w分析系统中已有数据分析系统中已有数据w设计报表和编写用户建议设计报表和编写用户建议w编写测试计划编写测试计划w编写技术描述编写技术描述w设计软件设计软件w写软件写软件w测试软件测试软件w写说明书写说明书w执行接受测试执行接受测试n设计,写,测试软件将最难估算工作量设计,写,测试软件将最难估算工作量上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室自顶向下方法自顶向下方法w自顶向下的方法和参数化模型自顶向下的方法和参数化模型w一般采用对比方法确定总的工作量一般采用对比方法确定总的工作量w对比是建立在一系列参数的基础上的,通过这些对比是建立在一系列参数的基础上的,通过这些参数可以计算出新系统的工作量参数可以计算出新系统的工作量w形式:形式:weffort=(系统规模)(系统规模)*(生产率)(生产率)n例如系统规模可以用例如系统规模可以用KLOC来计算,生产率以来计算,生产率以40天天/KLOCn预测软件开发工作量的模型有两个部分,第一部分为估算软件大预测软件开发工作量的模型有两个部分,第一部分为估算软件大小,第二部分为估算工作效率小,第二部分为估算工作效率上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w学生要求每学期写一篇有关学生要求每学期写一篇有关ITIT的报告,如果你想的报告,如果你想建立一个估算学生完成这样一份报告的模型,你建立一个估算学生完成这样一份报告的模型,你用什么来衡量报告的大小,什么因素会影响学生用什么来衡量报告的大小,什么因素会影响学生完成报告的难度?完成报告的难度?n字数字数n材料能否获取材料能否获取n对主题的熟悉程度对主题的熟悉程度n宽度宽度/深度深度n技术难度技术难度上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室专家判断专家判断w具有应用领域或者开发环境知识的人员对任务的具有应用领域或者开发环境知识的人员对任务的评估评估w该方法特别是在对原有系统进行替换时有用,评该方法特别是在对原有系统进行替换时有用,评估者对影响的代码的比例进行分析,从而得到工估者对影响的代码的比例进行分析,从而得到工作量评估。作量评估。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室类比估计类比估计w类比方法又被称为基于案例的推理(类比方法又被称为基于案例的推理(Case-based Case-based reasoningreasoning)w评估者寻找已经完成的项目,这些项目与需要开评估者寻找已经完成的项目,这些项目与需要开发的新项目在许多特征上必须是类似的。发的新项目在许多特征上必须是类似的。w如何选择与待预测的项目相近的项目?如何选择与待预测的项目相近的项目?n欧几里的距离(欧几里的距离(Euclidean DistanceEuclidean Distance)公式)公式ndistance=distance=(目标系统参数(目标系统参数1-1-原系统参数原系统参数1 1)2 2+(目(目标系统参数标系统参数2-2-原系统参数原系统参数2 2)2 2+)的平方根)的平方根上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w假定将要构造的系统有假定将要构造的系统有7 7个输入,个输入,1515个输出,过个输出,过去有一个项目有去有一个项目有8 8个输入,个输入,1717个输出,这两个项个输出,这两个项目的欧几里的距离是多少?目的欧几里的距离是多少?w答案:答案:2.242.24上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室Albrecht功能点分析功能点分析w该方法是由该方法是由Allan AlbrechtAllan Albrecht在在IBMIBM工作时发明的工作时发明的自顶向下方法。自顶向下方法。w功能点法(功能点法(Function PointsFunction Points)的基本点是计算)的基本点是计算机信息系统包括五个主要部件或者外部用户类型,机信息系统包括五个主要部件或者外部用户类型,它们是:它们是:n外部输入:应用数据外部输入:应用数据n外部输出:提供给用户的面向应用的信息外部输出:提供给用户的面向应用的信息n内部逻辑文件:逻辑主文件内部逻辑文件:逻辑主文件n外部接口文件:与其它系统交换信息外部接口文件:与其它系统交换信息n外部查询:在线的输入以获得立即的结果外部查询:在线的输入以获得立即的结果上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点方法功能点方法w加权因子的确定加权因子的确定上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w在学院工资系统项目中需要开发一个程序,该程在学院工资系统项目中需要开发一个程序,该程序将从会计系统中提取每年的工资额,并从两个序将从会计系统中提取每年的工资额,并从两个文件中分别提取课程情况和每个老师教的每一门文件中分别提取课程情况和每个老师教的每一门课的时间,该程序将计算每一门课的老师的成本课的时间,该程序将计算每一门课的老师的成本并将结果存成一个文件,该文件可以输出给会计并将结果存成一个文件,该文件可以输出给会计系统,同时该程序也将产生一个报表,以显示对系统,同时该程序也将产生一个报表,以显示对于每一门课,每个老师教学的时间和这些工时的于每一门课,每个老师教学的时间和这些工时的成本。成本。w假定报表是具有高度复杂性的,其它具有一般复假定报表是具有高度复杂性的,其它具有一般复杂性杂性上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习n外部输入:无外部输入:无n外部输出:报告,外部输出:报告,1n内部逻辑文件:财务输入文件,内部逻辑文件:财务输入文件,1n外部接口文件:工资文件,人员文件,课程文件,财外部接口文件:工资文件,人员文件,课程文件,财务输入文件,务输入文件,4n外部查询:无外部查询:无w考虑加权:考虑加权:n外部输入:无;外部输出:外部输入:无;外部输出:177;内部逻辑文件:;内部逻辑文件:11010;外部接口文件:;外部接口文件:4728;外部查询:;外部查询:无;共:无;共:45上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点方法:复杂性判定功能点方法:复杂性判定w如何判定功能的复杂性?如何判定功能的复杂性?w国际功能点用户小组(国际功能点用户小组(IFPUG)IFPUG)n内部逻辑文件、外部接口文件内部逻辑文件、外部接口文件n外部输入文件外部输入文件上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点方法:复杂性判定功能点方法:复杂性判定n外部输出文件外部输出文件w如何确定记录个数和数据个数如何确定记录个数和数据个数n如某系统内部逻辑文件:订单文件,包含订单信息如某系统内部逻辑文件:订单文件,包含订单信息(包括订单号,供应商名称,订单日期)和订单项(包括订单号,供应商名称,订单日期)和订单项(包括商品号,价格和数目),则记录个数为(包括商品号,价格和数目),则记录个数为2 2,数,数据个数为据个数为6 6,在表中可以确定该功能点复杂性为低。,在表中可以确定该功能点复杂性为低。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点方法:转换为代码行功能点方法:转换为代码行w通过定义各个功能点对应各种语言的代码行数,通过定义各个功能点对应各种语言的代码行数,则功能点可以转化为代码行则功能点可以转化为代码行w一些数据:一些数据:nCobol:91Cobol:91nC:128C:128nQuick Basic:64Quick Basic:64nObject Oriented Languages:30Object Oriented Languages:30上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室MarkII功能点功能点w该方法被作为英国政府项目实施中采用的标准该方法被作为英国政府项目实施中采用的标准w基本原理:对于一个处理事务基本原理:对于一个处理事务w计算方法:计算方法:wiwi输入数据元素输入数据元素wewe实体实体wowo输出数据元素输出数据元素w系数总和为系数总和为2.52.5,标准设置为,标准设置为0.58,1.66,0.260.58,1.66,0.26上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室MarkII功能点功能点w系数调整,考虑因素:系数调整,考虑因素:n与其它应用的接口与其它应用的接口n特殊的安全特征特殊的安全特征n与第三方的直接交互与第三方的直接交互n用户训练特征用户训练特征n文档需求文档需求上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点的其它扩展功能点的其它扩展w功能点方法起源于业务信息系统应用,因而强调功能点方法起源于业务信息系统应用,因而强调了数据方面的因素而没有考虑功能和行为(控制)了数据方面的因素而没有考虑功能和行为(控制)方面的因素。方面的因素。w特征点(特征点(Feature Points):Feature Points):除了考虑普通功能点除了考虑普通功能点的内容外,还考虑了算法的特征(矩阵转换,字的内容外,还考虑了算法的特征(矩阵转换,字符串解析,处理中断等都是算法的例子)符串解析,处理中断等都是算法的例子)wBoeingBoeing提出了一个三维功能点方法(提出了一个三维功能点方法(3D3D)其中三)其中三维为数据维,功能维(输入转化为输出的步骤)维为数据维,功能维(输入转化为输出的步骤)和控制维(状态之间的转换数)。和控制维(状态之间的转换数)。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室功能点转化为工作量功能点转化为工作量w对于原来的项目,计算生产率:对于原来的项目,计算生产率:n生产率功能点数目生产率功能点数目/工作量(人日)工作量(人日)n则,对于新项目,功能点计算出来后,工作量为:则,对于新项目,功能点计算出来后,工作量为:n工作量功能点数目工作量功能点数目/生产率生产率w更复杂的方法:最小二乘法更复杂的方法:最小二乘法w即工作量系数即工作量系数1 1功能点数功能点数系数系数2 2上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室对象点对象点wObject PointsObject Points起源于纽约大学的起源于纽约大学的Leonard Leonard N.SternN.Stern商学院,它类似于功能点方法,但是更商学院,它类似于功能点方法,但是更容易计算。容易计算。w对象点方法与面向对象方法并无直接联系。对象点方法与面向对象方法并无直接联系。w该方法计算应用所需要处理的屏幕,报告和部件,该方法计算应用所需要处理的屏幕,报告和部件,这些都被称为对象。每一对象需要被确定为简单这些都被称为对象。每一对象需要被确定为简单的,中等的,困难的三个层次。的,中等的,困难的三个层次。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室对象点方法对象点方法上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室对象点转换为工作量对象点转换为工作量w首先考虑已经存在的对象应该排除在工作量计算内。即首先考虑已经存在的对象应该排除在工作量计算内。即计算新的对象点(计算新的对象点(NOPNOP)w根据原来从事过的项目计算在不同情况下的项目的生产根据原来从事过的项目计算在不同情况下的项目的生产率,例如下表:率,例如下表:w假定有假定有672672个对象点要开发,开发者的经验和工具使用都个对象点要开发,开发者的经验和工具使用都是一般性的,则需要是一般性的,则需要672/13672/135252个月个月上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMO:参数化模型参数化模型wCOCOMOCOCOMO:Constructive Cost ModelConstructive Cost ModelwBoehmBoehm在二十世纪在二十世纪7070年代采用他的模型对年代采用他的模型对6363个项个项目进行了研究,由于其中只有目进行了研究,由于其中只有7 7个是商务系统,个是商务系统,因而它们不仅仅能被用于信息系统。因而它们不仅仅能被用于信息系统。w基本的公式为:基本的公式为:wEffort=csizeEffort=csizek kn其中其中efforteffort采用采用“人月人月(152(152个工作小时)个工作小时)”pm”pm来度量,来度量,sizesize采用采用kdsikdsi即千行交付源代码指令即千行交付源代码指令(thousands of(thousands of delivered source code instructions)delivered source code instructions)上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMO系数系数wC,kC,k的取值根据系统的分类而定:的取值根据系统的分类而定:n根据系统的技术特性和开发环境可以分为:根据系统的技术特性和开发环境可以分为:n有机模式(有机模式(organic mode):organic mode):相对小的团队在一个高相对小的团队在一个高度熟悉的内部环境中开发规模较小,接口需求较灵活度熟悉的内部环境中开发规模较小,接口需求较灵活的系统。的系统。n嵌入式模式(嵌入式模式(Embedded Mode)Embedded Mode)开发的产品在高度约束开发的产品在高度约束的条件下进行,对系统改变的成本很高。的条件下进行,对系统改变的成本很高。n半分离模式(半分离模式(Semi-detached Mode)Semi-detached Mode)两者之间两者之间n信息系统是有机模式,而实时系统是嵌入式模式。信息系统是有机模式,而实时系统是嵌入式模式。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMO系数系数w系数表:系数表:wK K的值反映了项目越大,则工作量成指数增加,的值反映了项目越大,则工作量成指数增加,因为大项目需要更多的协调和安排。因为大项目需要更多的协调和安排。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMO修正修正w事实上,基本事实上,基本COCOMOCOCOMO模型对工作量的衡量不稳定,模型对工作量的衡量不稳定,BoehmBoehm本人也发现了此问题,因而提出名义成本本人也发现了此问题,因而提出名义成本估算的概念。估算的概念。w首先从基本模型得到名义成本,然后采用开发成首先从基本模型得到名义成本,然后采用开发成本乘法算子(本乘法算子(development effort development effort multiplier,dem)multiplier,dem)进行修正,即:进行修正,即:nPm=PmPm=Pmnomnomdemdem上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMO成本因素成本因素wdem的计算的计算上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w在某企业中,绝大多数系统技术上,产品,计算在某企业中,绝大多数系统技术上,产品,计算机和项目等属性都是类似的。只有人员的属性有机和项目等属性都是类似的。只有人员的属性有所差异。该企业制定了下表:所差异。该企业制定了下表:w分析员非常优秀,编程人员也很优秀但是对该项分析员非常优秀,编程人员也很优秀但是对该项目面向的领域不熟悉并准备用新的编程语言。他目面向的领域不熟悉并准备用新的编程语言。他们对操作系统很熟悉。请计算们对操作系统很熟悉。请计算demdem。如果名义工。如果名义工作量是作量是4 4人月,则估算的工作量是多少?人月,则估算的工作量是多少?上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMOiiw针对针对COCOMOCOCOMO的不足,的不足,BoehmBoehm开始和其合作者发展开始和其合作者发展了新的模型。该方法利用多种乘法算子和指数。了新的模型。该方法利用多种乘法算子和指数。w一个明显的特点是该模型适应了项目在执行过程一个明显的特点是该模型适应了项目在执行过程中变得越来越确定的状态,因而是一种渐进性评中变得越来越确定的状态,因而是一种渐进性评估。估。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMOIIwCOCOMOIICOCOMOII被分为三个阶段性模型:被分为三个阶段性模型:n应用构成阶段(应用构成阶段(Application Composition)Application Composition):系统的:系统的外部特征被设计。在该阶段经常可以采用原型。外部特征被设计。在该阶段经常可以采用原型。n早期设计(早期设计(Early Design):Early Design):基本的软件结构被设计。基本的软件结构被设计。n构造阶段(构造阶段(Post architecture):Post architecture):构造满足要求的系构造满足要求的系统。统。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMOIIw在应用构成阶段,采用对象点计算的方法在应用构成阶段,采用对象点计算的方法w在早期设计阶段,采用功能点计算的方法。功能在早期设计阶段,采用功能点计算的方法。功能点可以转换为点可以转换为SLOCSLOC。wPm=AsizePm=Asizesfsfemem1 1emem2 2ememn nwPmPm为为“人月人月”工作量,工作量,A A是一个常数,是一个常数,sizesize以以SLOCSLOC为单位,为单位,sfsf是规模指数。是规模指数。wSfSf1.01+0.011.01+0.01因素指数的和因素指数的和上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMOIIw计算规模因素的质量:计算规模因素的质量:w先前经验(先前经验(Precedentedness):Precedentedness):是否有先前的经是否有先前的经验验w开发的灵活性(开发的灵活性(Development Flexibility):Development Flexibility):是是否需求能够以多种方式来满足;否需求能够以多种方式来满足;w体系结构体系结构/风险解决风险解决(Architecture/Risk(Architecture/Risk Resolution)Resolution):是否方案已经被确定和解决的程:是否方案已经被确定和解决的程度度w团队的凝聚性(团队的凝聚性(Team cohesion)Team cohesion)w过程的成熟性(过程的成熟性(Process Maturity)Process Maturity)上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室练习练习w对于某一个软件企业,一个新的项目的新颖性一对于某一个软件企业,一个新的项目的新颖性一般,因而在先前经验方面给般,因而在先前经验方面给3分,开发灵活性方分,开发灵活性方面很低,因而给以面很低,因而给以0分,但是需求可能会变化得分,但是需求可能会变化得比较厉害,因而风险解决指数给比较厉害,因而风险解决指数给4分,团队很融分,团队很融洽,给洽,给1分,但是过程不标准,因而过程成熟性分,但是过程不标准,因而过程成熟性给给4分,请计算规模因素分,请计算规模因素sf:上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室COCOMOIIw计算工作量乘法算子计算工作量乘法算子ememw类似于类似于demdem的计算的计算w在不同的阶段有不同的在不同的阶段有不同的ememw如果每一项对于项目而言无特别影响,则取如果每一项对于项目而言无特别影响,则取1 1上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室大致进度估算方法大致进度估算方法w大致的(大致的(BullparkBullpark)进度估算)进度估算n软件估算方程和系数一定程度上比较难掌握软件估算方程和系数一定程度上比较难掌握n软件工作量估算软件比较昂贵软件工作量估算软件比较昂贵n大致的估算简单宜行大致的估算简单宜行w三个进度表三个进度表n可能的最短进度可能的最短进度n有效的进度有效的进度n普通进度普通进度上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室可能的最短进度可能的最短进度w非常乐观的假设(员工非常乐观的假设(员工1010顶尖人才,管理,工具,方顶尖人才,管理,工具,方法)法)w两个事实:两个事实:n存在一个最短的进度,而且不可能突破存在一个最短的进度,而且不可能突破w一个人一个人5 5天内能写出天内能写出10001000行程序,行程序,5 5个人一天内能完成吗?个人一天内能完成吗?4040个人个人1 1小时内能完成吗?小时内能完成吗?n当你把进度缩短得比普通进度短时,费用将迅速上涨当你把进度缩短得比普通进度短时,费用将迅速上涨。有效进度可能得最短进度费用交付时间上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有效进度与普通进度有效进度与普通进度w有效进度有效进度n假定假定w人才:顶尖的前人才:顶尖的前2525的人才的人才w人员调整每年小于人员调整每年小于6 6n可能的最短进度与有效进度的关系可能的最短进度与有效进度的关系w进度变长了,但是工作量也许减少了进度变长了,但是工作量也许减少了w压缩进度是要付出代价的压缩进度是要付出代价的w普通进度普通进度w(具体表格参考快速软件开发一书)(具体表格参考快速软件开发一书)上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室估算修正估算修正w经理和客户常问的一个问题经理和客户常问的一个问题“如果我给你额外一如果我给你额外一个星期做估算,你能修正它以减少不确定性吗?个星期做估算,你能修正它以减少不确定性吗?”w答应这种要求最后将给自己带来麻烦,因为减少答应这种要求最后将给自己带来麻烦,因为减少不确定性必须在软件开发过程本身中进行。不确定性必须在软件开发过程本身中进行。w许多项目中要求给出单点估计,这种方法的结果许多项目中要求给出单点估计,这种方法的结果是估算永远不准确是估算永远不准确w理智的方法是先给出大的区间,逐步缩小区间。理智的方法是先给出大的区间,逐步缩小区间。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室估算的再修正估算的再修正w假定有一个假定有一个6 6个月的进度计划,计划个月的进度计划,计划4 4周内达到第周内达到第一个里程碑,而实际上花了一个里程碑,而实际上花了5 5周,如何修正进度:周,如何修正进度:n在后续进度中弥补损失的一周在后续进度中弥补损失的一周n把这一周加到进度中把这一周加到进度中n整个进度乘以拖延的数量,本例乘以整个进度乘以拖延的数量,本例乘以2525上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室估算的再修正估算的再修正w19911991年对年对300300多个项目的调查表明,项目几乎不多个项目的调查表明,项目几乎不能弥补损失的时间(能弥补损失的时间(Van Genuchten,1991)Van Genuchten,1991)w第一阶段估算不准确的原因一般会分布再整个项第一阶段估算不准确的原因一般会分布再整个项目中目中上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室估算的技巧估算的技巧w避免无准备的估算避免无准备的估算n不要随口说出一个估算不要随口说出一个估算w留出估算的时间,并做好计划留出估算的时间,并做好计划n估算本身也是一个项目估算本身也是一个项目w开发人员参与估算开发人员参与估算w不要忽略普通任务不要忽略普通任务w使用几种不同的估算技术,并比较它们的结果使用几种不同的估算技术,并比较它们的结果w估算的群体讨论估算的群体讨论上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过于乐观的进度计划过于乐观的进度计划wMicrosoft Word for Windows 1.0Microsoft Word for Windows 1.0开发开发w包含包含249249,000000行代码,投入行代码,投入660660人月,前后历时人月,前后历时5 5年,实际花费时间为预期时间的年,实际花费时间为预期时间的5 5倍倍上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过于乐观的进度计划过于乐观的进度计划w导致导致WinWord1.0WinWord1.0开发延迟的几个主要因素:开发延迟的几个主要因素:n项目初期制定的开发目标是不可实现的。盖茨下达的指示是用最项目初期制定的开发目标是不可实现的。盖茨下达的指示是用最快的速度开发最好的字处理软件,争取在快的速度开发最好的字处理软件,争取在1212月内完成。实现这两月内完成。实现这两个目标中的任何一个都是困难的,同时达到则是不可能的。个目标中的任何一个都是困难的,同时达到则是不可能的。n过紧的进度计划降低了计划的精确度。过紧的进度计划降低了计划的精确度。n开发过程中频繁换人。开发过程中频繁换人。5 5年中共换了年中共换了4 4个组长,其中有个组长,其中有2 2人因进度人因进度压力离职,压力离职,1 1人是出于健康的原因而离职。人是出于健康的原因而离职。n迫于进度压力,开发人员匆忙写出一些低质量的和不完整的代码,迫于进度压力,开发人员匆忙写出一些低质量的和不完整的代码,然后宣称已实现某些性能。这造成了然后宣称已实现某些性能。这造成了WinWordWinWord不得不将用于提高不得不将用于提高软件稳定性的时间由预计的软件稳定性的时间由预计的3 3个月增加到个月增加到1212个月。个月。w由于该项目中,创新比速度更重要,因而试图缩短开发由于该项目中,创新比速度更重要,因而试图缩短开发周期,反而使周期变长周期,反而使周期变长上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室产生过于乐观的进度计划的根源产生过于乐观的进度计划的根源w为了赶在某些特定时间前展示或出售产品。如计算机交为了赶在某些特定时间前展示或出售产品。如计算机交易展示会。易展示会。w管理人员和客户拒绝接受仅给出范围的估算,而是按照管理人员和客户拒绝接受仅给出范围的估算,而是按照他们认为的他们认为的“最佳最佳”估算来制定进度计划。估算来制定进度计划。w项目管理人员和开发人员为了享受挑战的乐趣或在压力项目管理人员和开发人员为了享受挑战的乐趣或在压力下工作的刺激,而故意缩短进度计划。下工作的刺激,而故意缩短进度计划。w管理部门和市场部门为了迎合客户而缩短进度计划。管理部门和市场部门为了迎合客户而缩短进度计划。w项目管理人员认为较紧的进度计划能够使员工勤奋工作。项目管理人员认为较紧的进度计划能够使员工勤奋工作。w原先的估计是合理的,但是在项目进行过程中又加进了原先的估计是合理的,但是在项目进行过程中又加进了很多新特性,从而变成了过于乐观的进度。很多新特性,从而变成了过于乐观的进度。w上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过于乐观的进度计划的后果过于乐观的进度计划的后果w进度计划准确性进度计划准确性进度完成日期按期完成概率开发人员一般开发人员一般采用的较乐观采用的较乐观的进度计划的进度计划典型的过分乐观的进度计划上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过于乐观的进度计划的后果过于乐观的进度计划的后果w计划的质量:错误的假设必将导致无效的项目规计划的质量:错误的假设必将导致无效的项目规划。划。w抛弃计划:当面临进度压力时,大多数开发组织抛弃计划:当面临进度压力时,大多数开发组织会抛弃原有规划,而走入盲目开发的歧途。会抛弃原有规划,而走入盲目开发的歧途。w如果试图在关键阶段节省时间,必将在后续阶段如果试图在关键阶段节省时间,必将在后续阶段加倍补偿。加倍补偿。w分散了管理者的注意力:管理者将分散经历在不分散了管理者的注意力:管理者将分散经历在不断调整计划上。断调整计划上。w客户关系:项目一拖再拖,客户将失去耐心。客户关系:项目一拖再拖,客户将失去耐心。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室过于乐观的进度计划的后果过于乐观的进度计划的后果w仓卒收尾仓卒收尾n要排错只能将系统拆分后再进行,一个小的变动要花要排错只能将系统拆分后再进行,一个小的变动要花很长时间。很长时间。n开发人员清楚地知道系统中存在一些应作修改却未做开发人员清楚地知道系统中存在一些应作修改却未做的地方。的地方。n测试人员发现错误的速度大于开发人员排错的速度。测试人员发现错误的速度大于开发人员排错的速度。n排除已发现错误的同时,产生了大量新的错误。排除已发现错误的同时,产生了大量新的错误。n由于软件变化频繁,难以保证用户文档的同步更新。由于软件变化频繁,难以保证用户文档的同步更新。n项目估算多次调整,软件交付日期一拖再拖。项目估算多次调整,软件交付日期一拖再拖。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室超负荷的进度压力超负荷的进度压力w产品质量的降低产品质量的降低w赌博心理导致风险管理的忽略赌博心理导致风险管理的忽略w激励效应不再起作用激励效应不再起作用w创造性思维受损创造性思维受损w精疲力竭:在后面的项目中难以提起热情精疲力竭:在后面的项目中难以提起热情w中途退出:这些人通常是有能力的人中途退出:这些人通常是有能力的人w长期地进行快速开发:难以补充新知识长期地进行快速开发:难以补充新知识w开发人员与管理人员的关系:不切实际的进度压开发人员与管理人员的关系:不切实际的进度压力会使开发人员丧失对管理人员的尊重力会使开发人员丧失对管理人员的尊重。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有原则的谈判有原则的谈判w该谈判的策略的中心是致力于探求一种双赢的解该谈判的策略的中心是致力于探求一种双赢的解决方案。决方案。w将人从困境中解脱将人从困境中解脱n站在他人的立场上加以考虑(各人有各人的烦恼)站在他人的立场上加以考虑(各人有各人的烦恼)n以合作的态度来努力改善与管理人员和客户的关系,以合作的态度来努力改善与管理人员和客户的关系,制定比较现实的进度估算,尽量使各方都能理解进度制定比较现实的进度估算,尽量使各方都能理解进度估算的意义。估算的意义。n不要针锋相对不要针锋相对上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有原则的谈判有原则的谈判w关注共同利益,不要过分坚持立场关注共同利益,不要过分坚持立场n有时候必须作出让步有时候必须作出让步n可以从下列几个方面加以说服:可以从下列几个方面加以说服:w真正提高开发速度真正提高开发速度w增加成功的机会增加成功的机会w引用以前类似项目的失败教训引用以前类似项目的失败教训上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有原则的谈判有原则的谈判w提出多种备选方案提出多种备选方案n1 1、与产品有关的灵活变通:、与产品有关的灵活变通:w将一些设计功能放到下一版本实现,大多数人在提出需求时,将一些设计功能放到下一版本实现,大多数人在提出需求时,并不清楚这些需求是否必须全部在当前版本被满足。并不清楚这些需求是否必须全部在当前版本被满足。w分阶段交付产品。如版本分阶段交付产品。如版本0.7.0.8,0.9,1.00.7.0.8,0.9,1.0,每版实现最迫,每版实现最迫切的功能。切的功能。w砍去某些实现起来费时或者需要谈判后才能确定的特性,包砍去某些实现起来费时或者需要谈判后才能确定的特性,包括与其它系统的整合能力。与旧版本兼容的能力,以及产品括与其它系统的整合能力。与旧版本兼容的能力,以及产品性能等。性能等。w对某些特性不必精雕细琢,只需实现到某种程度即可。对某些特性不必精雕细琢,只需实现到某种程度即可。w尽量轻松地实现各特性地详细功能需求。可以通过一些商业尽量轻松地实现各特性地详细功能需求。可以通过一些商业组件来实现。组件来实现。上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有原则的谈判有原则的谈判n2.与项目资源有关的灵活变通与项目资源有关的灵活变通w如果处于项目初期,则增加更多的开发人员如果处于项目初期,则增加更多的开发人员w增加高层次的开放人员(如领域专家)增加高层次的开放人员(如领域专家)w增加更多的测试人员增加更多的测试人员w在管理方面给予更多的支持在管理方面给予更多的支持w提高开发的支持力度,如更安静,更独立的工作间,速度更提高开发的支持力度,如更安静,更独立的工作间,速度更快的计算机,技术人员随时维护环境快的计算机,技术人员随时维护环境w提高最终用户的参与度,最好在项目组中配备一个能够对特提高最终用户的参与度,最好在项目组中配备一个能够对特性设置最终拍板的用户性设置最终拍板的用户w提高主管人员的参与度提高主管人员的参与度上海交通大学计算机集成技术开放实验室上海交通大学计算机集成技术开放实验室有原则的谈判有原则的谈判n3.3.与进度计划有关的灵活变通与进度计划有关的灵活变通w在详细设计,产品设计,或至少是需求分析完成之前,只提在详细设计,产品设计,或至少是需求分析完成之前,只提出一个进度目标,但不设定一个确切期限出一个进度目标,但不设定一个确切期限w如果是在项目初期,则在提炼产品概念,功能要求合详细设如果是在项目初期,则在提炼产品概念,功能要求合详细设计时,可以探求缩短开发时间的方法计时,可以探求缩短开发时间的方法w先给出进度估算范围或大概的进度估算值,然后随着项目的先给出进度估算范围或大概的进度估算值,然后随着项目的进展逐步精确进展逐步精确n4.4.其他其他w为开发人员提供额外的支持,以保证他们能集中精力于项目为开发人员提供额外的支持,以保证他们能集中精力于项目的开发,例如购物服务,供餐,洗衣,清洗
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 金融资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!