资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,第四讲,-,成本估算,第四讲-成本估算,1,估算的目标,生成一个简单的表,描述要完成的任务、要实现的功能、以及完成每一项所需的成本、工作量和时间。,估算的目标 生成一个简单的表,描述要完,2,3,、估算,对估算的观察。,项目策划过程。,软件范围和可行性。,资源。,软件项目估算。,分解技术。,经验估算模型。,面向对象项目估算,特殊的估算技术。,自行开发或购买的决策。,3、估算对估算的观察。,3,3,、估算,-,对估算的观察,估算是对未来的一种预测。有很大的不确定性。,采用实用技术,对时间和工作量进行估算。估算是所有其他活动的基础。好的估算方法和可靠的历史数据提供了好的希望。,估算的风险:取决于对资源、成本及进度的定量估算中存在的不确定性。,采用现代软件工程的方法,可以在一定程度上接受用户需求的变更所带来的风险。,3、估算-对估算的观察估算是对未来的一种预测。有很大的不确定,4,3,、估算,-,项目策划过程,软件项目策划的目标是提供一个能使管理人员对资源、成本及进度做出合理估算的框架。,3、估算-项目策划过程软件项目策划的目标是提供一个能使管理人,5,6,3,、估算,-,软件范围,软件范围描述了将要交给最终用户的功能和特性、输入和输出的数据、使用软件时要呈现给用户的内容,以及界定系统的性能、约束条件、接口和可靠性。,确定软件范围的方法:与所有相关人员交流之后,写出对软件范围的叙述性描述。由最终用户开发的一组用例。,3、估算-软件范围软件范围描述了将要交给最终用户的功能和特性,7,3,、估算,-,软件可行性,四个固定因素:,技术:项目在技术上是可行的吗?它在技术水平范围内吗?能够将缺陷减少到一定程度而满足应用要求吗?,经济:它在经济上可行吗?能以开发组织、客户或市场负担起的成本完成开发吗?,时间:项目投入市场的时间可以击败竞争者吗?,资源:组织拥有取得成功所需要的资源吗?,3、估算-软件可行性四个固定因素:,8,3,、估算,-,资源,人力资源。,可复用软件资源。,环境资源。,3、估算-资源人力资源。,9,项目资源图,项目资源图,10,对每种资源必须描述的特征,1,、资源的描述。,2,、可用性说明。,3,、何时需要该资源。,4,、使用资源的持续时间。,对每种资源必须描述的特征1、资源的描述。,11,3,、估算,-,软件项目估算,软件成本和工作量的估算从来没有成为一门精确的科学。所以,一般是在一定的可接受的风险范围内的估算。,把估算推迟到项目的后期进行。,根据已完成的类似项目进行估算。,使用比较简单的分解技术,生成项目的成本和工作量估算。,使用一个或多个经验模型来进行软件成本和工作量的估算。,3、估算-软件项目估算 软件成本和工作量,12,3,、估算,-,分解技术,软件估算是一种解决问题的形式,在多数情况下,要解决的问题非常复杂,不能作为一个整体考虑。因此,要针对问题进行分解,把它分解成一组小的问题,再定义他们的特性。,软件规模估算。,基于问题的估算。,基于过程的估算。,基于用例的估算。,调和不同的估算方法。,3、估算-分解技术 软件估算是一种解决,13,3,、,估算,-,分解技术,-,基于规模的估算,规模:是指软件项目可量化的结果。直接的方法是代码行技术,间接的方法是功能点技术。,3、估算-分解技术-基于规模的估算 规模:是指软件项目,14,3,、,估算,-,分解技术,-,基于规模的估算,四种不同方法:,1,、模糊逻辑:计划人员先确定应用类型,定性地确定其量级,然后在初始范围内在细化该量级。,2,、功能点法:计划人员对信息域进行估算。,3,、标准构件:项目计划人员估算每个标准构件出现的次数,再根据历史数据来确定每个标准构件交付时的规模。,4,、修改法:计划人员要估算必须完成修改的数量和类型。,3、估算-分解技术-基于规模的估算四种不同方法:,15,3,、,估算,-,分解技术,-,基于规模的估算,采用,LOC,或,FP,方法之后,再采用三点估算法(期望值估算法)进行校正。,S=,(,S,opt,+4S,m,+S,pess,),/6,S,opt,-,乐观值。,S,m,-,可能值。(遵循,概率分布,),S,pess,悲观值。,3、估算-分解技术-基于规模的估算采用LOC或FP方法之后,,16,3,、,估算,-,分解技术,-,基于问题的估算,代码行技术。,任务估算技术。,Delphi,法。,类比法。,功能点估计法。,PERT,估计法。,3、估算-分解技术-基于问题的估算代码行技术。,17,代码行技术,LOC,是指所有的可执行的源代码行数,包括可交付的语句、数据定义、数据类型声明、等价声明、输入,/,输出格式声明等。一代码行(,1LOC,)的价值和人月均代码行数可以体现一个软件生产组织的生产能力,开发组织可以根据对历史项目的审计来核算组织的单行代码价值。,L=(a+4m+b)/6;,代码行技术LOC是指所有的可执行的源代码行数,包括可交付的语,18,任务估算技术,项目计划人员首先给出一个有界的软件范围的叙述,再由此叙述把软件分解成一些小的可分别独立进行估算的子功能。,然后对每一个子功能估算其,FP,(即估算变量)。,生产率度量,(FP,PM,)用做特定的估算变量,导出子功能的成本或工作量。,将子功能的估算进行综合后就能得到整个项目的总估算。,计算公式,:L=(a+4m+b)/6;,任务估算技术,19,Delphi,法,Delphi,法是最流行的专家估算法。是依靠一个或多个专家对项目做出估计,它要求专家具有专门知识和丰富的经验,是一种近似的猜测。,向专家提供项目规格和估计表格。,协调人召开专家讨论。,各专家匿名填写估计表格。,协调人整理估计表格,再将迭代表返回专家。,协调人再次召开专家会,讨论较大的估计差异。,专家重新填写估计表。,重复,4-6,,直到达到一个最低和最高估计的一致。,Delphi法Delphi法是最流行的专家估算法。是依靠一个,20,类比法,将新项目与历史项目比较,估算出各功能的估计值。,等价代码行,=,(重新设计,%+,重新编码,+,重新测试),/3,*,已有代码行,类比法将新项目与历史项目比较,估算出各功能的估计值。,21,3,、,估算,-,分解技术,-,基于过程的估算,最通用的项目估算技术是根据将要采用的过程进行估算。即,将过程分解为一组较小的任务,并估算完成每个任务所需的工作量。,具体方法:先抽取功能,在针对每个功能所必需的一系列框架活动;计算每个功能的持续时间和所需要的人数(不同级别的人的工资不同),就可以计算工作量和成本了。,3、估算-分解技术-基于过程的估算最通用的项目估算技术是根据,22,23,3,、,估算,-,分解技术,-,基于用例的估算,建立基于用例的估算方法的困难:,1,、没有标准形式。,2,、用例表现的是软件的外部视图。,3,、用例没有标识它所描述的功能和特性的复杂性。,4,、用例没有描述出涉及很多功能和特性的复杂行为。,3、估算-分解技术-基于用例的估算建立基于用例的估算方法的困,24,3,、,估算,-,分解技术,-,基于用例的估算,当一个大型系统按层次分解完成后,并要求每个层次由不超过10个用例,每个用例的场景不超过30个时,可以采用如下的经验公式:但是,最终还要落实到LOC或FP上。,3、估算-分解技术-基于用例的估算当一个大型系统按层次分解完,25,基于用例估算的经验公式,LOC,估算,=,N*LOC,avg,+(S,a,/S,h,-1)+(P,a,/P,h,-1)*LOC,adjust,N,:实际用例数。,LOC,avg,在这种类型的子系统中,每个用例包含的平均场景数。,LOC,adjust,校正值。以,LOC,avg,的,n%,来表示。,Sa,:每个用例实际包含的场景数。,Sh,:在这类子系统中,每个用例包含的平均场景数。,Pa,:每个用例的实际页数。,Ph,:在这类系统中,每个用例的平均页数。,基于用例估算的经验公式LOC估算=,26,3,、估算,-,经验模型,IBM,模型。,Putnam,模型,COCOMO,模型,(,COnstructive Cost MOdel,),3、估算-经验模型IBM模型。,27,3,、估算,-,经验模型,-,IBM,模型,1977,年,,IBM,的,Walston,和,Felix,提出。,估算公式:,E,5.2L0.91,L,是源代码行数。以,KLOC,计。,E,是工作量。以,PM,计。,D,4.1L0.36,,,D,是项目持续时间,(,以月计,),。,S,0.54E0.6,,,S,是人员需要量,(,以人计,),。,DOC,49L1.01,。,DOC,是文档数量,(,以页计,),。,在此模型中,一般指一条机器指令为一行源代码。一个软件的源代码行数不包括程序注释、作业命令、调试程序在内。对于非机器指令编写的源程序,如汇编语言或高级语言程序,应转换成机器指令源代码行数来考虑。,3、估算-经验模型-IBM模型1977年,IBM的Wal,28,3,、估算,-,经验模型,-,Putnam,模型,1978,年,Putnam,对从美国军队计算机指挥系统的软件项目中收集到的数据分析而得的估算模型。,Putnam,模型是一个基于,Norden-Rayleigh,曲线的动态模型,在工作量、提交时间和程序规模之间有一个非线性的折中平衡功能。,适用项目规模:,30,人年的项目。,3、估算-经验模型-Putnam模型1978年Put,29,Putnam,模型,td,是开发持续时间(以年计)。,K,是软件开发与维护在内的整个生存期所花费的工作量(以人年计)。,L,是源代码行数(以,LOC,计)。,Ck,是技术状态常数。,Ck,值 开发环境,2000,差,8000,好,11000,优,Putnam模型td是开发持续时间(以年计)。Ck值,30,3,、估算,-,经验模型,-,COCOMO,这是由,TRW,公司开发。,Boehm,提出的结构型成本估算模型,是一种精确、易于使用的成本估算方法。,基本参数:,DSI,(源指令条数),KDSI,1000DSI,。,MM,(度量单位为人月)。,TDEV,(度量单位为月)表示开发进度。,3、估算-经验模型-COCOMO这是由TRW公司开发。,31,Putnam模型中Ck值,Putnam模型中Ck值,32,效益分析案例,一个公司实际项目预算审批流程:,项目经理提出,-,部门经理审核,-,项目管理部审核,-,公司领导批准。,各项控制指标:,软件开发部门可控的费用:,50%,。,与实际发生成本误差控制在,10%,。,公司管理费大约占,20-30%,。,平均利润在,30%,左右。,效益分析案例一个公司实际项目预算审批流程:,33,投入多一点,方法好一点,绩效自然高一点。,11月-24,11月-24,Saturday,November 16,2024,未来的成功属于质量领先者。,11:29:18,11:29:18,11:29,11/16/2024 11:29:18 AM,若要产品好,个人品质要提高。,11月-24,11:29:18,11:29,Nov-24,16-Nov-24,老毛病,要根治。小问题,要重视。,11:29:18,11:29:18,11:29,Saturday,November 16,2024,管理基础打得牢安全大厦层层高。,11月-24,11月-24,11:29:18,11:29:18,November 16,2024,宁愿事前检查,不可事后修改。,2024年11月16日,11:29 上午,11月-24,11月-24,搞好安全有责任,永为国家做贡献。,16 十一月 2024,11:29:18 上午,11:29:18,11月-24,抓好产品质量,必须从我做起。,十一月 24,11:29 上午,11月-24,11:29,November 16,2024,ISO9000-,主客共享乐在其中。,2024/11/16 11:29:18,11:29:18,16
展开阅读全文