
成本佑算是软件项目管理的主要内容之一,文中分析了目前软件项目成本估算的主要方法和存在的问题并详细讨论了中级COCOMO模型算法,根据各种算法的优缺点设计出权重合成的软件项目成本估算方法.
0引言
软件因其复杂性和难以度量,使软件项目管理较之其他项目管理而言有其特殊性.软件研发项目管理最早源自于20世纪年代中期.当时美国国防部曾立题专门研究软件项目做不好的原因,发现的项目是因为管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部.软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动.据美国软件工程实施现状的调查,软件研发的情况很难预测,大约只有10%的项目能够在预定的费用和进度下交付.软件成本估算技术为好的软件管理提供了必要的基础.没有合理而准确的成本估算能力,软件项目往往会出现以下问题:①对软件开发做出过分乐观的估计,在竞争性的软件合同投标中虚报低价,最终导致超出限度及性能的损害;②软件分析员没有可靠的数据,在分析设计阶段做出不合理的硬件一软件权衡分析,使软件的成本大大升高;③项目经理不能合理确定各个软件阶段的时间和工作量的分配,导致软件项目无法按进度进行.
1常用的软件成本估算方法
常用的软件成本估算方法可以分为以下几种:
(1)算法模型.提供一个或多个数学算法,这些算法产生的软件成本估算为一系列变量的函数,变量称为主要成本驱动因子.典型的有算法模线性模型、乘法模型、分析模型和COCOMO模型等.
(2)专家判断、依靠该领域专家的经验、直觉以及对所测算软件项目的理解给出成本测算值的测算方法、典型的专家判断法有Delphi法、宽带Delphi法等、Delphi法是1948年由美国Rand公司推出的一种专家意见定性预测方法,它通过给专家发判定表,无记名填表、统计综合,向专家反馈结果并进行下一轮填表等步骤的多次反复,逐步使专家的结论趋于一致而作为测算结果.Delphi法的主要优点是能够充分利用专家的经验并能处理一些特定的环境影响,不足是对专家可能具有的偏见无法处理,同时该方法非常费时.
(3)类比估算法、类比法是将新的软件项目与已完成的相似的项目进行类比,用已完成项目的实际成本经适当调整作为新项目的成本测算值,具体测算时可由个别专家单独做出,也可由多位专家共同讨论做出.类比法的主要优点是充分利用了以往的经验,测算快速且廉价,其缺点是误差较大,通常只能为数量级一级的测算提供初步的近似值、
(4)任务分解法.按分解先后时序可分为“自下向上”和“自上向下”两种方法.前者把整个系统分成许多基本的模块和相应的任务,分别测算其成本,然后累计得出整个系统的成本.后者则先从系统的总体特征中推算开发成本,例如在系统开发初期,通过初步调研和用户需求分析,大致确定系统的结构,给出系统规模、边界和基本功能要求,再利用经验或类比法测算出总成本的估计值,然后将总成本在各子系统或模块中分配.“自下向上”测算可由有关的开发人员直接参加,由于他们对模块的理解较详细,故测算结果误差较小,往往在10%左右、“自下向上”方法的主要缺陷是测算本身的成本较高,并且对于系统级(例如系统联调、项目管理等)成本,往往容易忽视或不易测算准确.由于“自上向下”与“自下向上”方法的互补性,所以“自上向下”测算方法的优、缺点与“自下向上”方法相反、
2主要算法模型和COCOMO模型
算法模型是提供了一个或多个数学函数,这些算法产生的软件成本估算是一系列被认为是主要成本驱动因子变量的函数.用于软件成本估算的主要算法形式有问:
2.1线形模型
线形模型具有以下形式:
工作量=ao+a,x,+’二+arrn
这里x,,"" ,x。是成本驱动因子变量ao ",a。是一组最匹配观察数据点集的系数.
2.2乘法模型
这里。还是成本驱动因子变量;嘶.。是一组最匹配观察数据点集的系数.以上2种算法模型的主要优点是能较好利用以前的经验,测算效率高,受测算人员的主观影响比较小,便于灵敏度分析和风险分析.主要缺点是模型软件规模的估计值以及一些成本影响因子的值判断较难,自变量的精确性很大程度决定了测算结果的准确度.
2.3 COCOMO模型
COCOMO模型是世界上应用最广泛的一个软件成本测算模型,其原意是“结构化成本模型"( Con-structive Cost Model ).COCOMO模型是一个“自下而上”进行测算的杰出典范,而其基本思想是以一系列输入量为基础(如与软件的规模相联系或影响生产率的其它一些成本驱动因素),来导出软件开发所需的人力费用.其子模型有3个:基本模型(the Basic Model )、中级模型( the Intermediate Model )、以及详细模型( theDetailed Model ),分别对应着不同的精确度.
同时出于对环境因素的考虑,COCOMO模型将软件的开发方式也划分为有机整体型( Organic Mode ) ,嵌入型(Embedded Mode)和半独立型( Semidetached Mode )3种实际应用中,中级模型具有较好的可操作性以下详细讨论中级模型.
2.4中级模型
(1)名义费用公式.中级模型的标称工作量公式为:
有机整体型:MM=3.2(KLOC)'0};半独立型:MM二3.0( KLOC )'''z
嵌入型:MM二2.8 (KLOC)'w
其中MM是以人月为单位的人力费用(这里一个“人月”包含巧2个工时,它是按每位软件开发人员每天工作Sh,每月有效工作天数19d计的),KLOC是以千源程序行为单位表示的程序量.上述公式中各系数及指数值是通过对一定容量的样本进行统计而确定的,所以从某种意义上说它们只是经验值.随时间的变化,这些值具体的数值在今天已没有意义.笔者之所以要介绍此模型,一方面是因为COCOMO系列模型的确是当今最流行的评估模型,更为重要的是,波姆对软件成本驱动因素的归类、分析对我们非常有启发作用.
( 2)成本驱动因素.中级模型采用了成本驱动因素(Cost Drivers)来反映项目环境对开发费用的影响.通过对上百个影响开发费用的因素进行广泛的统计分析,波姆保留了其中15个(见表1),并将其分为4类.
第1类,产品属性(Product Attributes ).包括:①软件可靠性(Required Software Reliability,简作RELY)软件产品所必须在一段时期内满足用户需求的程度.②数据库规模((Data Base Size,简作DATA)与程序相关的数据库的规模大小.③软件产品复杂性(So$ware Product Complexity,简作CPLX)软件的组合复杂性程度.
第2类,计算机属性(Computer Attributes ).包括:①执行时17约束(Execution Time Constraint,简作TIME )赋予软件产品的执行限制性程度.②主存储器约束(Main Storage Constraint,简作STOR )赋予软件产品的主存限制性程度.③虚拟机易变性(Virtual Machine Volatility,简作VIRT)在软件开发期间,开发程序的机器所做出变动的程度.④计算机执行时间(Computer Turnaround Time,简作TURN)计算机对程序员的响应时间评价.
第3类,人员属性(Personnel Attributes ).包括:①分析员能力(Analyst Capacity,简作ACAP )从事本软件开发的系统分析员小组的能力评价.②应用经验( Applications Experience,简作AEXP)项目组对类似项目的应用经验丰富与否.③程序员的能力(Programmer Capability,简作PCAP)与ACAP级别相似,这里主要指程序员们的自身能力.④虚拟机经验(Virtual Machine Experience,简作VEXP)与VIRT级别相似.指编程组对宿主机经验丰富与否.⑤编程语言经验(Programming Language Experience,简作LEXP )开发项目的小组对特定编程语言的熟悉程度.
第4类,项目属性(Project Attributes ).包括:①现代编程实践(Use of Modern Programming Practices,简作MODP )某小组所使用之现代编程实践对开发费用产生的影响②软件工具使用(Use of Software Tools,简作TOOL )用以刻画项目开发过程中软件工具(从基本的到专业的)的应用程度.③进度表约束(Schedule Con-straint,简作SCED)如上所述,名义开发时间是以最少人力所耗费的进度表确定,任何加快或延续均需要更多的人力.
上述的15个成本驱动因素或者也可称为费用乘数(Effort Multiplier ).对于任何一个软件开发项目,我们都可以具体确定出这15个费用乘数的相应取值,然后将它们连乘,就得到了一个费用调整因子(EffortAdjustment Factor,简作EAF)波姆由统计方法得出了这15个费用乘数取值的大致范围,表1为15个成本驱动因子的取值范围.调整因子为:
最终的标称工作量公式可以写为:MM二15EAF=nf二1C* ( KGOC )"*EAF
3改进的软件成本估算模型
软件开发是一个极其复杂的过程,各种不可预知的因素都会对成本产生影响,人为因素又在其中占有极大的比重,难免会造成不少波动.每种估算模型都有其特长与不足,势必在某些领域碰到难以解释、分析的问题.例如,当一个软件仅有少数几个人在开发,这时,个人的能力因素就占到了首要地位,个人的技术、工作表现会对整个软件的开发产生极大的影响.
分析已有的各种软件成本估算方法的优缺点,选取 COCOMO算法、Delphi法、类比估算法,将各方法结合起来,互相取长补短.把以往的软件开发成本与用各种模型所取得的各种数值作为参考数据,由层次分析法、经验法或专家判断法得到各种估算法的权重,再由权重合成法得到估算成本.以此提高软件成本估算的精确度.
定义设MM, , MMZ, MMm为m个不同模型所得的估算值,w;(1 = 1,Z,w,m)为第1个模型的权重,则MM=艺w;*MM;且艺、=即为组合估算模型.
例如:COCOMO模型估算成本为MM,,用Delphi技术估算成本为MMZ,用类比估算法估算成本为MM3,则由权重组合估算可得:
MM=w,*MM,+w2*MMZ+w3*MM3
其中,、权重的选取可以根据历史数据中各软件成本估算方法在估算中最接近实际成本的统计平均值.例如选取100个已完成软件项目,采用COCOMO算法、Delphi法、类比估算法3种不同估算方法,其中最为接近实际成本的统计值分别为t,,tZ,t3,则组合算法的权重为:了100/t了100/t了100.
根据不同的软件项目可以选取不同的成本估算方法进行权重组合来进行软件项目成本估算.
目前课程改革激活了青年教师教学思维,课堂注重了“新理念,新形式,新的设计,新行为”,这是可喜的,但青年教师在学习和教学中,如果只追求“形”的东西,不研究“质”的内容,就会严重制约青年教师教学能力的提高。作为教师,在教学过程中,应努力地把教学中合作理念与教学对象和教学内容结合起来,充分发挥自己的教学潜能,充分利用教学资源,最大化...
言语交际是人们沟通思想、传递信息的重要方式。它实际上是在特定的语境中具体运用语言的过程。本文根据关联理论,用实例试分析影响会话含意理解的各种因素,以便日常交际顺利进行。 1.概述 在社会中生活的人为了表达思想、传递信息是离不开与人沟通的,这就是交际。而具体的交际过程总是在一定的时间、场合及社会文化背景下进行的。与书面语相比,口语话语具有省略、简化、时效性强等特征,因而对语境的依赖性比书面语更大...
德育教育是全体教师的共同职责,本文从课堂德育教育缺失的原因分析出发,紧紧抓住课堂德育渗透这一重要渠道,阐述了德育渗透的重要性,并结合实际提出了课堂教学中德育渗透的基本途径。 德育是高等院校的首要工作,为实现学校德育工作的首要地位,进一步加强和改进德育工作,每个学校都做了大量的研究与实践,取得了喜人的成绩。但在社会主义市场经济新形势下,高校德育工作也面临着新的挑战,《中国教育改革和发展纲要》指出,...
根据煤矿矿区水资源贫乏及水资源种类的特殊性,进行分析评价,归纳共性,打破常规水资源规划范围与内容,重点规划利用好矿区有限的清水与污水及其资源化,结合污水处理工艺及工程技术,提出合理开发、有效治理、循环利用、污水零排放、节水和保护水资源并举的矿区水资源综合规划。 1矿区水资源综合规划的必要性 我国86个重点矿区有71%缺水,其中40%严重缺水。近几年由于煤炭生产规模及配套工业的快速崛起,加剧了水...
教育信息化对教9币的能力提出了新的挑战。本文从信息化环境下高校教师教育技术能力要末出发,分析了目前高校教师教育技术能力的现状,提出了加强高校教师教育技术能力建设的思路。 社会的全面信息化已成为21世纪各国发展的目标,教育信息化是国家信息化的重要组成部分,其发展进程正在不断加快。信息技术的发展引起了教育理念、教学模式、学习方式等方面的变化,使教育技术能力成为高校教师专业能力的重要组成部分,要求高校...
随着高等职业教育的快速发展,高职院校毕业生就业形势日趋严峻,构建和完善一个适应高职院校毕业生就业的市场体系势在必行。在分析开发和培育毕业生有形就业市场和无形就业市场利弊的基础上,提出高职院校毕业生就业市场体系建设的构想。 论文关键词:高职院校;毕业生;就业市场;体系建设 目前,高职院校毕业生的就业形势不容乐观,为此,高职院校要实现毕业生的充分就业和自身可持续发展,必须积极培育和开发毕业生有形就...
护理模式的转变要求护士不仅要有丰富的知识还要有良好的素质,加强在校护生的素质教育显得尤为重要。《基础护理学》课程是护理专业的主干专业基础课程,而实验教学比例又占5O%,实验教学质量对护士素质教育有重要影响。通过在实验教学中丰富素质培养内容、加强护生思想道德教育和多方面的能力培养、完善实验室管理制度、提高教师自身素质以及建立素质评价体系等措施可以有效地进行护士素质教育。 护士素质是护士应具备的职业...
根据当前教学实际,本人在30余年的小学数学教学中深刻体会到,要减轻孩子学习压力,培养其自学能力,并收到较好的效果,唯一的办法就是向课堂要质量。每天要求孩子家庭作业不超过15分钟完成,此规定的效果颇佳。教师主要是在课堂教学中,观念要更新,教学思维要改变。发挥教师在课堂教学中的组织作用,符合孩子的学习习惯,让孩子能在一个愉快而又和谐的环境中学习和生活。一、教师的组织教学能力教育教学是双边活动。教育是由...
近年来。在教育技术领域乃至整个教育领域,建构主义学习理论和混合式学习引起了人们的广泛关注并逐步成为研究热点。阐述了建构主义学习理论、混合式学习产生的背景及其内涵,并对建构主义学习理论和混合式学习之间的关系进行了探讨。 论文关键词:学习理论:建构主义;混合式学习 1建构主义学习理论 建构主义作为一种学习理论.来源于儿童的认知发展理论,其最早提出者是瑞士的皮亚杰。个体的认知发展与学习过程切密相关...
解决高校毕业生就业问题,是建设人力资源强国的必然要求。高校毕业生就业市场主要由校园市场、公益市场、社会市场和网络市场四种基本模式组成。每一种模式都有各自的特点、优势和不足,校园市场、公益市场和社会市场属于有形市场模式,而网络市场属于无形市场模式。高校毕业生就业市场是随着我国社会主义市场经济体制的不断完善,逐步建立和发展起来的。党中央、国务院十分重视高校毕业就业市场建设,强调要培育和建设更加完善的毕...
影响因子:1.320
影响因子:11.274
影响因子:0.580
影响因子:2.950
影响因子:1.514
影响因子:4.285
影响因子:2.716
影响因子:0.000