您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件项目工作量估算COCOMO和SLIM模型的应用研究
2007级软件项目管理研究性学习期末论文软件项目工作量估算COCOMO和SLIM模型的应用研究赵燕君(浙江师范大学数理与信息工程学院,浙江金华,321004)摘要:工作量估算对于软件项目计划制订、项目进度管理、人力资源调配、项目成本控制有着重要意义。文章重点介绍了COCOMO模型和SLIM模型方法,再对这两个不同模型估算方法进行综合分析比较,总结出比较准确的估算方法。关键词:工作量估算;COCOMO模型;SLIM模型0引言项目经理把工作量分配给具体的工程师,把工作量分布在详细的项目计划中,这就是依据工作量所进行的项目管理[1]。工作量的估算是软件项目计划的关键环节。很多组织更愿意使用分解或建模方法而不愿听取专家建议或使用类推分析方法。通过构造对工作量或成本起关键作用的参数模型(如普遍使用的建模),当软件工程师将估计值与实际值比较时,他们就拥有可以用来检验的东西。通过在过程中合成一个模型,估计师检查模型和准确性之间的关系,以便能够调整模型,提高未来预测的准确性。有两种类型的模型已经用来进行工作量的估计:成本模型(cost)和约束模型(constraint)。成本模型提高了工作量或持续时间的直接估计,如COCOMO模型就是一个经验成本模型。相反,约束模型显示了随着时间的流逝两个或多个参数之间的关系,这些参数是工作量、持续时间或人员水平等。Rayleigh曲线在几个商业产品(包括Putnam)中作为约束模型被使用[2]。文章主要是对两个正确率较高的典型模型:COCOMO和SLIM模型进行介绍,并将两者分析比较,提出了综合运用这两种模型计算工作量的方法。1COCOMO模型估算法在20世纪70年代,BarryBoehm研究了从加利福尼亚TRW咨询公司的大量项目中收集了数据。使用这些数据,他道出了构造性成本模型(COnstructiveCOstMOdel,COCOMO)。后来他和他的同事提出了升级版COCOMO2.0,是对原始版的彻底更新。1.1原始的COCOMO模型原始的COCOMO模型按其详细程度分为3级[3]:(1)基本COCOMO模型,静态单变量模型,用已估算出来的源代码行数(LOC)为自2007级软件项目管理研究性学习期末论文变量的函数来计算软件开发工作量。(2)中间COCOMO模型,在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。(3)详细COCOMO模型,包括中间COCOMO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。当对项目了解很少时,使用基本模型;明确需求以后,使用中级模型;当设计完成时,使用高级模型。这三个模型具有相同的形式,FaSEb。其中E是按人月计算的工作量,S是按千行交付源指令(KDSI)测量的规模,F是调整因子(在基本模型里等于1)。a和b的值见表1-1,与开发方式有关,而开发方式取决于所构造的软件类型(有机系统、嵌入式系统和半分利系统)[2]。通过选择一种开发方式和使用恰当的工作量公式,COCOMO生成了对工作量的初步估计。当知道项目的更多情况时,估计师可以应用COCOMO的中级模型。Boehm假设了15中相互独立的成本驱动因素,每个成本驱动器按照最多6点的序数标度分等级:非常低、低、正常、高、很高、极高,每个点对应一个调整因子(EAF)值,见表1-2。工作量的最后估计值是乘以15个成本驱动器的值。每个成本驱动器的调整因子是Boehm从TRW的开发环境中推导出来的。因此模型必须按照你自己的开发环境进行校准。表1-1三个COCOMO模型的工作量参数方式ab有机式2.41.05半分离式3.01.12嵌入式3.61.20表1-2各种影响EAF的值成本驱动因素级别很低低正常高很高极高产品因素软件可靠性0.750.881.001.151.402007级软件项目管理研究性学习期末论文数据库规模0.941.001.081.16产品复杂性0.700.851.001.151.301.65硬件因素执行时间限制1.001.111.301.66存储限制1.001.061.211.56虚拟机易变性0.871.001.151.30环境周转时间0.871.001.071.15人的因素分析员能力1.461.191.000.860.71应用领域实际经验1.291.131.000.910.82程序员能力1.421.171.000.860.70虚拟机使用经验1.211.101.000.90程序语言使用经验1.141.071.000.95项目因素现代程序设计技术1.241.101.000.910.82软件工具的使用1.241.101.000.910.83开发进度限制1.231.081.001.041.101.2COCOMO2.0[2]模型COCOMO2.0模型广泛适用于新技术新工艺的应用。在阶段1,项目通常通过构造原型来解决具有高风险的问题:包括用户界面、软件和系统的交互、性能或技术成熟度。因此,COCOMO2.0用对象点来估计规模。为了计算对象点,首先需要对应用涉及到的屏数、报告数、第三代语言的组件数进行计算,来生成一个初始的规模度量。表1-3展示了将所有对象分成简单、适中和复杂的分类指导。表1-4的权值所反映的是实现该复杂性等级的某个实例所需要的相对工作量。与功能点相似,需要把经过加权的实例相加,以产生一个单一的对象点数。接下来是一个不同于功能点的规程,其中考虑用到了重用的情况,因为我们要把对象点拥有工作量的估计。假定r%的对象是从以前的项目中重用的,新对象点数的计算公式为:100/100)((对象点)新对象点r表1-3对象点复杂性等级2007级软件项目管理研究性学习期末论文屏幕包含的视图数数据表的数量和来源总数4(2服务器,2客户机)总数8(2~3服务器,3~5客户机)总数8+(3服务器,5客户机)3简单简单适中3~7简单适中复杂8+适中复杂复杂报告包含的视图数数据表的数量和来源总数4(2服务器,2客户机)总数8(2~3服务器,3~5客户机)总数8+(3服务器,5客户机)3简单简单适中3~7简单适中复杂8+适中复杂复杂表1-4对象点的复杂性权值对象类型简单适中复杂屏幕123报告2583GL组件--10在第2阶段,COCOMO2.0使用功能点作为工作量的度量。在进行功能点计算时,首先需要计算未调整的功能点数(UFC)。计算公式如下:))i((UFC151ii权值类项数第表1-5功能点复杂性权值项简单加权系数适中复杂外部输入346外部输出4572007级软件项目管理研究性学习期末论文外部查询346外部文件71015内部文件5710功能点计算的最后一个步骤是,计算调整功能点数(FP),即用UFC乘以技术复杂因子TCF(这个因子涉及到表1-6所列的14个起作用的因素)。运用下面的公式,我们可以将这14个评级的结构合并成一个最终技术复杂性因子:141010650iiF..TCF其中Fi的值可从表1-7中查询出。功能点的最终计算结果等于,用未调整功能点乘以技术复杂性因子:TCFUFCFP表1-7权重表(Fi的取值)012345没有影响偶有影响轻微影响一般影响较大影响严重影响表1-6技术复杂性系数的组成部分F1可靠的备份与恢复F2数据通信F3分布式的功能F4性能F5大量使用的配置F6在线数据入口F7易操作性F8在线更新F9复杂接口F10复杂处理F11可重用性F12易安装性F13多场所F14容易变更在第3阶段,程序规模可以用代码行数来估算。标准进度工作量PM估算公式为:161iiENSEM(Size)APM(1)调整进度工作量PM估算公式为:SCEDPMPMNSAS(2)2007级软件项目管理研究性学习期末论文其中式(1)中,A=2.94,是常数。EM为工作量乘数,计算方法可以参考原始COCOMO模型。Size为规模估算的源代码千行数,指数E体现了五个比例因子SF的作用。指数E的计算公式为:51010jjSF.BE(3)式(3)中B=0.91,是常数。每个比例因子SF都有一个等级变动范围,见表1-7。表1-7比例因子SFj值[4]比例因子很低低标称高很高极高先例性6.204.963.722.481.240.00开发灵活性5.074.03.042.031.010.00体系结构/风险化解7.075.654.242.831.410.00团队凝聚力5.484.383.292.191.100.00过程成熟度7.806.244.683.121.560.002SLIM模型估算法[2]在1978年,为了满足美国陆军用来估算大型项目的总工作量和交付时间的需要,Putnam开发了一个约束模型,称为SLIM,应用于代码行数大于70000的项目。基本的SLIM公式能够被调整以适用小项目。Putnam模型假设软件开发工作量的分布符合Rayleigh曲线,每个点对应一个主要的开发活动,见图2-1。Putnam使用关于生产率级别的经验观察值,从基本Rayleigh曲线公式导出他的“软件等式”。这个等式与规模(代码行测量)的几个变量有关:技术因子C,按人年计算的项目总工作量K(包含维护工作量),按年为计算单位的交付前剩余时间td,其关系表达式:tdCKSize3431在理论上,td是Rayleigh曲线上达到的最大点。2007级软件项目管理研究性学习期末论文图2-1SLIM模型的Rayleigh曲线集合技术因子C,反映了软件开发的技术影响程度,它随着对软件技术需求的增长而增大。为了简化估算过程,并将该模型表示成更为通用的形式,Putnam和Mayers又提出了一组方程式,它们均从上述估算模型导出。最小开发时间定于如下:43.14.8OmPBLOCt,对于tm6个月的情况,其中tm以月表示。3180yBtE,以人月表示,对于E=20的情况,其中ty以年表示3分析比较两种模型估算方法对运用COCOMO模型估算所得工作量PMC和运用SLIM模型所得工作量PMS进行比较、分析,主要计算两种估算方法的差异系数δ来检查两种方法所得结果差异的大小。100%PMPMPM-PMSCSC然后分析δ,如果技术所得δ10%,就说明两种方法所得结果偏差过大,很可能估算过程中存在较严重的问题,就需要从多方面对两种估算方法进行检查、分析,再次计算差异系数δ,可以进行多次循环检查,不断完善。另外,得出的估算结果还应与期望工作量作比较。软件期望工作量指根据项目开发经验对项目最可能工作量进行估算的值PMQ,观察差异系数δ',若δ'20%,在很可能估算过程有问题,需重新检查。QSCPMPMPM2'对于这两种估算方法的有效性进行比较分析,可以从以下几个方面来看:需求规格说明阶段时间管理阶段维护阶段确认和测试阶段项目设计和编码阶段人员级别(人数)td2007级软件项目管理研究性学习期末论文1.两种估算方法的估算范围。由于两种模型解决问题的角度不同,所以经常出现而这的内容范围不一致,这也是两种估算结果相差较大的主要原因。只有对估算范围进行合理取舍,仔细分析,才能保证估算结果保持在合理范围内。2.两种模型的假设前提。两种模型都有自己的假设前提,必须在项目中得到满足。特别是COCOMO2.0模型假设前提比较多,应该仔细从管理方式、项目规模、开发流程等方面进行分析。如果实际项目某些方面不符合模型的某些假设,就应进行必要的修改,以保证模型估算应用的有效性。3.两种模型所需数据来源的有效性。要保证估算的正确性,必须保证数据来源的真实性、一致性。以客观数据位基础,忠于事实。经过多次分析和模型修改后,对新故事所得工作量重新计算δ和δ'。通常情况下,δ和δ'的范围控制在5%以内,也可以根据实际情况自己修改范围。最后,利用如下公式可以取得项目的最终工作量:CSPMPMPM214结束语软件项目的工作量估算方法有很多种,一般可以根据历史数据和软件规模估算的结果进行估算。原始的C
本文标题:软件项目工作量估算COCOMO和SLIM模型的应用研究
链接地址:https://www.777doc.com/doc-794206 .html