首页 贝叶斯校正算法在软件估算模型COCOMOⅡ中的应用

贝叶斯校正算法在软件估算模型COCOMOⅡ中的应用

举报
开通vip

贝叶斯校正算法在软件估算模型COCOMOⅡ中的应用 第24卷第1期 2007年 1月 计算机应用与软件 Computer Applications and Software Vo1.24,No.1 Jan.2oo7 贝叶斯校正算法在软件估算模型 COCOMOⅡ中的应用 丁岳伟 马亦舟 (上海理工大学计算机-E程学院 上海 200093) 摘 要 软件估算模型COCOMOⅡ的研究目标在于建立起一个能够适用于当前的软件开发并且每年更新的模型,使之能够估算 软件开发活动中的成本、工作量及时间安排。为了提高COCOMOlI的估算精度,采用归...

贝叶斯校正算法在软件估算模型COCOMOⅡ中的应用
第24卷第1期 2007年 1月 计算机应用与软件 Computer Applications and Software Vo1.24,No.1 Jan.2oo7 贝叶斯校正算法在软件估算模型 COCOMOⅡ中的应用 丁岳伟 马亦舟 (上海理工大学计算机-E程学院 上海 200093) 摘 要 软件估算模型COCOMOⅡ的研究目标在于建立起一个能够适用于当前的软件开发并且每年更新的模型,使之能够估算 软件开发活动中的成本、工作量及时间安排。为了提高COCOMOlI的估算精度,采用归纳性的分析方法——贝叶斯校正算法对其 进行校正,在逻辑一致的基础上根据先验信息和样本信息作出推论,得到的后验结果能够较大幅度提高估算精度,是对COCOMOII 模型的进一步完善。 关键词 软件成本估算 COCOMO II 贝叶斯校正算法 多元回归算法 IMPLEMENTA nON OF BAYESIAN CALIBRATION IN THE SOFTⅥ RE ESTIMATE M0DEL COCOMOⅡ Ding Yuewei Ma Yizhou (College ofComputing Engineering,University ofShanghaifor& and Technology,Shanghai200093,China) Abstract The COCOMO II research effort is concentrated on developing a model well-suited for the contemporary software development and then annually updating it for the forthcoming years,which allows one to estimate the Cost,effort,and schedule when planning a new soft- ware development activity.In order to improve the estimate accuracy of COCOMO II,Bayesian calibration,one generalized analysis method,is adopted to calibrate the mode1.It arrives,on the basis of both prior information and sample information in a logically consistent manner,at the posterior result which can makes the estimate more accurate in big degree and definitely improves the COCOMO II Mode1. Keywords Software estimation COCOMOⅡ Bayesian calibration Multiple regression 1 引 言 在过去的几十年间,出现了许多模型用于软件生命周期早 期阶段的软件成本和进度估箅。这些评估方法的目标就是为了 保证在预算和质量要求的基础上,通过软件开发过程管理,及时 交付软件产品。在少数几种公开发 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的模型中,Barry Boehm教 授在其著作《软件工程经济学》中发表的早期的COCOMO模型 被广泛地接受和使用。 1990年后,软件项目管理和开发技术与工具发生了很大的 变化,出现了快速应用开发模型、软件重用、再工程、CASE、面向 对象方法以及软件过程成熟度模型等一系列软件工程方法和技 术。早期的COCOMO模型已经不再适应新的软件成本估算和过 程管理的需要,因此,Barry Boehm教授根据未来软件市场的发展 趋势,重新研究和调整原有模型,于1994年发表了COCOMOII。 2 COCOMOⅡ模型原理与算法 2.1 COC0MOⅡ模型简介 COCOMOII包含三个子模型:应用构图模型、早期设计模 型、后体系结构模型。后体系结构模型包含了软件产品的实际 开发和维护过程。该模型在软件生命周期的进程中能更好地进 行成本评估,可以验证系统的任务,运作概念和风险,并可从中 建立产品的框架。它使用源代码行数(SLOC)和功能点作为项 目大小的输入,并使用修正因子来表示重用和软件的“破损 率”。该模型具有 17个倍乘成本驱动因子和5个比例指数 因子。 由于后体系结构模型是目前被接受和应用最广泛的模型, 下文将围绕其展开讨论。以下凡提到 COCOMO II模型处,如无 注明,均特指后体系结构子模型。 2.2 COCOMOII算法 在COCOMOII模型中,以人月(PM)作为工作量的计量单 位。工作量计算公式为: 5 l7 Effort=A×[Size] ffi ×(兀EM ) (1) 其中,A——倍乘常数; s ——软件项目大小,用千代码行(KSLOC)来计量; SF (i=1,2,3,4,5)代表了5个比例指数因子,分别为: PREC(Precendentedness,有先例性 );FLEX (Development Flexi· bility,开发灵活性);RESL(Architecture and Risk Resolution,结构 风险解决度);TEAM(Team cohesion,团队合作度);PMAT (Process Maturity,过程成熟度)。 EM;(i=1,2, -,17)代表 17个工作量乘数,而这 17个EM 又可归为4个因素集合,分别为: 收稿 日期:2OO5—02—22。上海市教委发展基金资助项目 (03GKI6)。T岳伟,教授,主研领域:网络应用与信息安全,软件工程 与 CMM。 维普资讯 http://www.cqvip.com 152 计算机应用与软件 2007年 ·产品因素集合 RELY(Required Software Reliability,所 需的软件可靠性);DATA(Data Base Size,数据库大小);CPLX (Product Complexity,产品复杂度);RUSE(Requried Reusability, 所需的重用性);DOCU(Documentation match to life.cycle needs, 生命周期需求匹配文档)。 ·平台因素集合 TIME(Execution Time Constraint,执行时 间的限制);STOR(Main Storage Constraint,主存限制);PVOL (Platform Volatility,平台易变度)。 ·人 员因素集合 ACAP(Analyst Capability,分析员能 力);PCAP(Programmer Capability,程序员的能力);AEXP(A plications Experience,应用经验);PEXP(Platform Experience,平 台使用经验);LTEX(Language and T0ol Experience,编程语言和 编程工具使用经验);PCON(Personnel Continuity,团队一致性)。 ·项目因素集合 TOOL(Use of Software Tools,软件工具 的使用);SITE(Multi-Site Development.多点开发);SCED(Requ. tied Development Schedule,所需的开发进度)。 . 每个sF和EM包含不同级别,从很低到特高,每个级别都 有对应的衡量 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 和取值。 值得注意的是,自Barry Boehm教授于 1994年提出 COCO. MOII模型以来,5个比例因子(sF)和17个工作量乘数(EM)的 各级别的衡量标准和取值随着软件开发技术的进步一直不断做 着修正 。如何实现高效的修正,来适应各个用户的具体情 况,贝叶斯校正算法提供了一个可行的方法 ]。 3 贝叶斯校正算法 3。l 贝叶斯校正算法原理Hl5】 贝叶斯算法提供了一个标准过程,将专家决定作为先验信 息与样本信息(数据)相结合,建立起一个可靠的后验模型: f(pl Y);f—(v ta )f(1~) (2) 其中JB是我们所关心的参数向量,y是联合密度函数f(yI口)的 样本观测向量 JBI y)是JB的后验密度函数,其中综合了有关口 的所有信息 yIJB)表示样本信息,在代数上等于口的可能性函 数 JB)是综合了关于JB的专家决定信息的样本信息。后验分 布均值b一和方差 Var(b一)定义为: =【争 叫~×[}叭 ] ㈩ liar( =【 H ] (4) 其中, 自变量矩阵 s。 、6——样本数据的期望值和方差; H’、b ——先验信息的精度(方差的倒数)和均值。 从式(3)、(4)可以看到为了确定贝叶斯后验均值和方差, 我们首先需要确定先验信息和样本信息的均值和精度。 3.2 先验信息 为确定计算所用到的先验信息,贝叶斯算法的倡导者进行 了一个 DELPHI实验。在第一轮实验中,八位软件估算领域的 专家各自单独给出COCOMO II模型的各项成本驱动因子(sF、 EM)的取值。实验组织者将第一轮结果归纳总结后,送回给各 位专家。进行第二轮的实验。让他们在结合其他专家的结论的 基础上独立修改之前作出的判断,以取得更一致的结果。c0. COMOII模型的22项成本驱动因子的先验均值(b’)和方差 (H )就由第二轮实验的结果计算得到。表 1展示了一个工作 量乘数因子 RELY的先验值集合。 衰1 1IELY先验值集合COCOMOn.1998 I效用范商 低l中等l高 I l 定义 i最大值 最小值l票茬I曩 篓I霎 篓i 翥羹l 篓 I 验值(1998)l1.41/0.74 1.91 l0.74l 0.88 I 1.0 I 1.16 I 1.41 l 3.3 样本信息 样本信息的来源是开始于1994年的数据采集活动,收集的 数据包括作为自变量的实际软件大小,用千源代码行(KSLOC) 计量;作为因变量的实际工作量,用人月(PM)来度量。1998年 收集的数据库中161个数据点的工作量和软件大小的分布如图 1所示: . 图1 工作量和软件大小分布 数据收集完成后,核对两者的分布,以保证对其取对数的操 作可行。并且服从正态分布,然后进行多元回归分析 引。 多元回归模型可以表示为: Y;= +JBI ¨ +⋯ + +s (5) 其中 ⋯Xtk 第 t次观测的自变量值; 岛⋯ ——待估系数; — — 第t次观测的常规误差项; — — 第t次观测的因变量值。 对式(1)等号左右两边取自然对数,使其线性化,得到: in(E~ort)=JB +JBl·1.O1·In(Size)+JB2·SFl·In(Size) +⋯+凤 ‘ 。In(Size)+岛 ·In(EM1)+J98·In(EM2)+⋯ + 2。In(EMl6)+ 3·In(EM17) (6) 因此,JB向_量的计算公式如下: =(X ×x) × ×X (7) 其中卢是JB参数值的列向量,也就是我们所关心的校正因子: 卢 =(廓 JB 岛 ⋯ ,) y是矩阵 =(In(Effoa.)In(Effoa )⋯In(Effog )), fort 是第i个采样数据中的工作量值。 是矩阵: f, 1 ⋯ 、 l In(Size1) In(Size2) ⋯ In(Sizef) l I ,l×ln(S/.ze1)SFI,2×In(S/ze2)⋯SF[. ~ln(S/.re ) I l = f ,I×ln(S/ze1) 。xIn(Size2)⋯ , ~In(Si~e1)f l ln(EMll1) 1n(EMt,2) ⋯ In(EM,. ) l f ln(EM~.1) In(EM2,2) ⋯ In(EM~.。) f l i I In(EMt+.1) In(EMl7 .2) ⋯ In(EM~7.f) 维普资讯 http://www.cqvip.com 第1期 丁岳伟等:贝叶斯校正算法在软件估算模型COCOCM lI中的应用 153 s 是第i个采样数据中的软件大小值,.s ll是第i个采样 数据中的第 个SF的值, , 是第 i个采样数据中的第 个EM 的值。 . 、 样本数据的期望值(6)和方差(s )盼计算公式如下: RSS=(y一举) (y一 ) 2 一 一 n—P b=EMf或5 其中 —— 的行数,即采样数据数; (8) (9) (1O) P ——自由度,当』曼D=0时,P 的取值为 的列数;当ao≠O 时,P 的取值为 的列数十1。 3.4 综合先验信息和样本信息[7] 式(3)和式(4)表明如果先验信息(日 )的精度比样本数据 高,那么后验分布值将更接近于先验分布值。这种情况发生在 收集到的数据分布很散,噪音很大,如图2所示。 图2 高噪数据后验贝叶斯更新(LTEX) 图2显示先验信息的置信度高于样本数据的置信度。于 是,被赋予更高权重的先验信息使得 后验分布均值更接近于先 验分布均值。相反,如果样本信息的精确度高于先验信息,那 么,样本信息将获得较高的权重,引起后验分布均值更接近于样 本数据。最后得到的后验分布精度一定比先验分布和样本数据 的精度都要高。从表2可以清楚地看到采用贝叶斯算法对个体 校正后,COCOM0 II.1997(83个数据点)和 COCOM0 II.1998 (161个数据点)模型的估算精度有了较大的提高。 表 2 COCOMOII.1997和 COCOMOli.1998 贝叶斯校正前后预算精度比较 C0C0M0Ⅱ 预测精确度 个体校正前 个体校正后 误差在 20%以内 46% 49% l997 误差在 25%以内 49% 55% 误差在 30%以内 52% 64% 误差在2O以内 56% 66% l998 误差在 25%以内 65% 74% 误差在 30%以内 71% 76% 4 相关实验及结果 根据 COCOMO II模型及贝叶斯校正算法,开发了一个简单 的软件估算演示程序,对该算法的有效性进行验证。 本演示程序使用 VB.NET及SQL Server2000编写,实现的 主要功能包括: . ·使用 COCOMO II模型,按源代码行数估算软件开发 成本 ; ·更新比例因子(SF)和倍乘因子(EM)各级别的取值; ·更新数据库中的项目案例; ·使用贝叶斯校正算法对估算模型进行校正。 数据流图及程序界面由图3、图4所示。 图3 数据流图 图4 程序界面 使用该演示程序,对从十个企业收集到的实际数据进行处 理,结果发现,采用贝叶斯校正算法能够有效地提高估算精度。 工作量估算误差在30%以内的项目占各个企业总项目数的百 分比在校正前后的分布如图5所示,平均提高了12.9%,说明 该算法确实能够比较有效地提高COCOMO II模型的估算精度。 - - 0--肌叶斯算法拉正前 + 舛叶 斯算法樘 _F后 图5 采用贝叶斯校正算法前后估算精度对比 5 结 论 面对软件工程界最大的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 之一——使用数量较少、不够 完整的数据进行软件估算,贝叶斯校正算法采用有机组合基于 经验的专家决定信息和样本数据信息来保证逻辑一致的方法较 好地解决了这个问题,是对COCOMO II软件估算模型的进一步 完善。 参 考 文 献 [1]Barry W.Boehm,Chris Abts,A.Winsor Brown.Software cost estimation with COCOMO lI,Prentice-Hall,July 2000. (下转第159页) 蚺 {曼 似 耋毫 维普资讯 http://www.cqvip.com 第1期 贺毅朝等:一种适于求解离散问题的二进制粒子群优化算法 159 Do For i= I to PopulationSize Iff(xi)使A是 可满足的(即t(A)=1),tE{0,1}。其中,c :pn Vp口V⋯Vp V1]p∽+I V.p啦+2 V⋯V 称为子句, E M。对于CNF A,如 果每个子句cI中最多只含有3个不同的变元,则称为3-SAT问 题。3-SAT问题是著名的NP难问题。注意到 t(A)=1当且仅 当c ,t(c )=1。如果将 中的p 替换为整型变量 ,]p 替换 为(1一 ), i E}0,1},将^替换成普通加法,V替换成普通乘 法,那么SAT问题是可满足的等价于{0,1} 上的整型多项式 n 函数,( ):丌,(c )=1;是不可满足的等价于,(x);o。其 ..t 中 c )= n+ 十⋯+x陆+(1一 .I+1)+(1一xi.I+2)+⋯ + (1一 . ), 对应于p ,x E{o,t} 。xf(x)=1当且仅当g ^ ( )=∑ =n )=0当且仅当0≤g( )
本文档为【贝叶斯校正算法在软件估算模型COCOMOⅡ中的应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_033710
暂无简介~
格式:pdf
大小:309KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2011-03-31
浏览量:38