您好,欢迎访问三七文档
【1.参数估算法的基本介绍】【2.参数估算法的两种基本模型】【2-1COCOMO模型】【2-1Walston-Felix模型】参数模型估计算法汇报人:卢中华2019011.参数估算法的基本介绍022.参数估算法的两种基本模型033.COCOMO模型Contents目录044.Walston-Felix模型参数估算法的基本介绍01lOgO参数估算法的基本介绍:BasicIntroductionofParameterEstimation参数估算法是一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线。参数估算法的使用情况存在成熟的项目估算模型应该具有良好的数据库数据为基础lOgO参数估算法的特点:Characteristicsofparameterestimationmethod参数估算法特点1.比较简单,而且也比较准确。2.如果模型选择不当或者数据不准,也会导致偏差。lOgO参数估算法的基本单位:BasicunitofparameterestimationLOC(LocofCode)源代码程序长度的测量FP(FunctionPoint)用系统的功能数量来测量人月人天人年参数:xx元/KLOC.xx元/FP,xx元/人天每个任务必须至少有一个统一的规模单位lOgO参数模型估算法分类:Classificationofparametermodelestimates静态单变量模型静态单变量模型是指软件开发的工作量仅仅是软件规模的函数,通常具有如下的形式:E=A+B×S^C其中E是估算的工作量(单位是人月),A、B、C是经验常数,S:主要的输入参数(通常是LOC,FP等)。常用的静态单变量模型有:面向代码行的模型Walston_Felix模型:E=5.2×(KLOC)^0.91Bailey_Basili模型:E=5.5+0.73×(KLOC)^1.16Boehm简单模型:E=3.2×(KLOC)^1.05Doty模型(KLOC9时):E=5.288×(KLOC)^1.047面向功能点的模型Albrecht&Gaffney模型:E=-13.39+0.0545FPMaston,Barnett和Mellichamp模型:E=585.7+15.15FP动态多变量模型动态多变量模型也称为“软件方程式”,它是从4000多个软件项目中搜集的数据推导出的经验公式,在该模型中软件开发的工作量是软件规模、软件复杂度、开发单位的开发能力和项目持续时间等多个变量的函数。具体公式为:E=((LOC×B^0.333)/P)^3×(1/t)^4E:估算的工作量LOC:代码行数B:特殊技术因子,随着软件规模和过程复杂度增加,对于较小的程序(KLOC=5~15),B=0.16;对于超过70KLOC的程序,B=0.39;P:生产率系数,反映开发单位的软件开发能力和软件的复杂程度之间的关系,可从开发单位的历史数据中计算得到,典型值在2000到28000之间;t:项目持续时间从公式可以看出,软件开发的工作量与软件规模的3次幂成正比,与生产率的3次幂成反比,与项目持续时间的4次幂成反比。COCOMO模型02lOgOCOCOMO模型(构造性成本模型):ConstructiveCostmodel它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆(BarryBoehm)于1981年提出。是世界上应用最广泛的参数型软件成本估计模型。下面是cocomo模型的一个通用公式:pm=A×(KLOC)^B×Ⅱ(EM)PM为工作量,通常表示为人月;A为校准因子;KLOC源代码程序长度的测量;B为对工作量呈指数或非线性影响的比例因子;EM为影响软件开发量的工作量乘数lOgOCOCOMO81:模型类别:基本COCOMO中等COCOMO高级COCOMO:项目类型有机:Organic嵌入式:Embedded半有机:SemidetachedlOgOCOCOMO81:通用公式E=aX(KLOC)^b×F其中:E:工作量(人月)KLOC:是交付的代码行a,b:依赖于项目自然属性的系数,具体取决于建模等级和项目等级。F:为调整因子。01基本模型1.在项目相关信息极少的情况下使用。2.静态单变量模型。02中等模型03高级或详细模型lOgOCOCOMO81:模型类别cocomo81有3个等级的模型,级别越高,模型中的参数约束越多。1.在需求确定以后使用。2.基本模型基础上考虑影响因素,调整模型。1.在设计完成后使用。2.中等COCOMO模型基础上考虑各个步骤的影响。有机:Organic项目类型1.各类应用程序,例如数据处理、科学计算等。2.受硬件的约束比较小,程序的规模不是很大。嵌入式:Embedded1.系统程序,例如实时处理、控制程序等。2.紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意。半有机:Semidetached1.各类实用程序,介于上述两种软件之间,例如编译器(程序)。2.规模和复杂度都属于中等或者更高。lOgOCOCOMO81:项目类别lOgOCOCOMO81:基本COCOMO-81E=ax(KLOC)bxFa、b是系数F乘法因子是对公式的校正系数基本COCOMO-81系数表方式ab有机2.41.05半有机3.01.12嵌入式3.61.2注:基本COCOMO-81中F=1Eg:一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:oa=3.0,b=1.12。oE=ax(KLOC)bxF=3.0x33.31.12x1=152pmCOCOMO81:中等COCOMO-81lOgO中等COCOMO-81系数表E=ax(KLOC)bxF方式ab有机2.81.05半有机3.01.12嵌入式3.21.2COCOMO81:中等COCOMO-81工作量调节因子表(F)lOgO乘法因子=F1XF2X……XF15COCOMO81:中等COCOMO-81lOgOEg:一个33.3KLOC的软件开发项目,属于中等规模、半有机型的项目,采用中等COCOMO模型。a=3.0,b=1.12。乘法因子F=0.70x0.85x……x1.15=1.09E=ax(KLOC)bxFE=3.0x33.31.12×1.09=16pm高级(详细)COCOMO1.将项目分解为一系列的子系统或者子模型2.更加精确地调整一个模型的属性适用范围详细COCOMO模型是在中间模型的又一次细化。详细模型针对每一影响因素,按模块层、子系统层、系统层,有三张工作量因素分级表,供不同层次的估算使用,而每一张表中又按开发各个不同阶段给出。COCOMO81:高级COCOMO-81lOgOCOCOMO81:高级COCOMO-81lOgO如软件可靠性在子系统层的工作量因素分级表如下:详细模型过于繁琐,适用于大型复杂项目的估算,我们不做过多解读,其中的参数项太多。COCOMOⅡBoehm重来没有放弃成为一个伟大软件成本估算模型专家的理想,而一直从事如何有效地将COCOMO有效的运用到软件项目成本估算工具当中,他意识到IT界的发展极为迅速,如果没有发展和创新COCOMO终究有一天将会被社会所淘汰,被世人所遗忘。所以到了1996年,Boehm博士根据软件发展情况,终于发布了改进版,将COCOMO升级为COCOMOII,而COCOMOII是对经典COCOMO模型的彻底更新,反映了现代软件过程与构造方法。美军国防部在1999年春季公布的参数模型指导手册中将此模型作为软件评估模型的首选,Boehm终于把COCOMO从浩瀚的同类工具中脱颖而出并推上世界巅峰,期间其著作《软件成本估算:COCOMOn模型方法》和《软件工程经济学》更成为无数IT项目管理人员所景仰的经典之作。终于智慧爆发,惨悟透了老子《道德经》中“大有则无”的思想,发现自己再强也只不过是凡俗人间的一片过眼云烟,所以看破红尘就此归隐。应用组装模型---规划阶段3早期设计模型---设计阶段后体系结构模型---开发阶段COCOMOⅡ:三个螺旋式的生命周期模型lOgO适用于使用现代GUI工具开发的项目。主要用于估算构建原型的工作量,基于对象点,用于项目规划阶段。适用于在软件架构确定之前对软件进行粗略的成本和事件估算,包含了一系列新的成本和进度估算方法。基于功能点或可用代码行以及5个规模指数因子、7个工作量乘数因子,用于体系结构设计阶段。这是COCOMOII中最详细的模型。它使用在在整体软件架构已确定之后。包含最新的成本估算、代码行计算方法。基于源代码行或功能点以及17个工作量乘数因子。COCOMOⅡ:COCOMOII模型中的规模估算lOgO要得到好的模型估算,好的规模估算是很重要的。COCOMOlI模型主要采用源代码行和未调整功能点两种方法来估算规模。(1)源代码行计算。有几种原谅资料可用于估算新代码行,其中最好的就是历史数据。在缺乏历史数据时,可用专家意见推导出可能的、最不可能的、最有可能的规模。代码规模表示为源代码千行数(KLSoC),源代码行一般不包括未交付的支持软件,比如测试驱动程序等。但是,如果这些部分的开发与交付软件的开发一样仔细,需要有自己的评审、文档等,则应把它们计算在内。值得注意的是,定义一行代码是困难的,因为这涉及到不同语言中可执行语句和数据声明概念上的差异。当试图跨越不同编程语言而定义一直的度量标准时就会出现困难,为此COCOMOII模型选择逻辑源语句作为标准的代码行,并且使用美国软件工程研究所对逻辑源语句的定义检查表来度量代码行。(2)未调整功能点计算。功能点成本估算方法基于软件项目中的功能数和一组独立的项目因子,是一种很有用的估算方法,因为它是基于项目生命周期早期就可以得到的信息。在COCOMOII模型中,功能点通过量化与主要外部数据或控制输入、输出或文件类型相联系的信息处理功能来度量软件项目。主要把用户功能类型分为五种:外部输入、外部输出、内部逻辑文件、外部接口文件、外部查询;这些类型的每个实例再按照复杂等级分级;复杂等级确定一组权重,应用到相应的功能数上就确定了未调整功能点数。COCOMOII模型使用未调整功能点进行规模估算,再对规模估算数应用复用因子、成本驱动因子和比例因子进行项目工作量的估算,以说明复用、分布等因素对于工作量的影响。COCOMOⅡ:COCOMOII模型中的规模估算lOgO在得到未调整功能点数之后,我们必须把它们转化为实现语言的源代码行;COCOMOII模型采用向后细化表把未调整功能点转化成等价的SLOC。每种语言都有一个UFP/SLOC的转换率,并且COCOMOII模型还支持五个用户自定义的语言转换率。COCOMOⅡ:工作量及进度计算lOgOCOCOMOIl仍然使用人月来度量软件开发的工作量。人月是指除去节假日之后一个人在一月内所完成的项目工作量。在COCOMO中,人月与项目进度不同,前者是指工作量,并从中计算开发成本,后者则是指完成项目所需的时间。工作量评估的基本模型如下:其中,size是估算的软件功能单元的代码行数(以千行为单位),通过模块功能结构分解和专家法估计,或者使用功能点转化为代码行数。指数B反映了项目的规模经济性,当它大于1时所需工作量(pm)的增加速度大于软件规模(size)的增加速度,体现出规模非经济性:反之,B小于1则表示规模经济性。COCOMO使用5个规模度因子Wi,采用公式(2)计算指数B。常A通常取值为2.94.。COCOMOⅡ:工作量及进度计算lOgO5个规模度因子根据其重要性和价值,在6个级别上取值,从非常低到超高,由表1给出(来源于COCOMOⅡ1999软件包)。COCOMOⅡ:工作量及进度计算lOgO要计算项目的进度,使用公式(3):其中,PM和B同公式(1)(2),SCED反映项目组面临的进度压力,是所要求的完成时间与同类项目标准进度之间的比例。COCOMOⅡ:成本驱动属性lOgOCOCOMO模型的最大特色在于其成本驱动因子对工作量的调整,扩展了基本模型。项目双方需要确定各个驱动属性的级别,从公认的值表中得到成本因子的值EM。所有成本驱动因
本文标题:参数模型估计算法
链接地址:https://www.777doc.com/doc-4300727 .html