(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf_第1页
(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf_第2页
(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf_第3页
(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf_第4页
(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(管理科学与工程专业论文)一种组合算法模型在软件成本估算的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种组合算法模型在软件成本估算的研究与应用 摘要 随着计算机软件业行业的飞速发展,当今软件系统的规模越来越庞大,软 件项目的延期、超支等不成功现象越来越严重,损失也越来越大,随着软件开 发成本估算的迫切需求,许多组织机构纷纷研究并发布了多种估算方法和估算 模型,软件开发成本估算技术日趋成熟。但现有的这些软件开发成本估算技术 还有很多不完善的地方。 针对现有软件成本估算精确度低、估算不灵活,不能有效地辅助项目管理。 本文提出了一种结合算法模型和a h p 群决策的方法。由于算法模型目的明确,具 有客观性、可重复性、高效性,从发展趋势上看,算法模型更具有优势。不同 的算法模型各有优缺点和适用范围,本方法综合各算法模型的优点,弥补了它们各自 的缺点,提高了估算的准确度和灵活性。 本文首先比较研究了当前主要的软件成本估算方法( 专家估算、类比估算、 回归分析、各算法模型) 的优缺点,分析了成本估算模型存在的主要问题。概 括介绍了各算法模型和a h p 群决策,为模型构建奠定了理论基础。 接着本文基于a h p 群决策的思想,以综合估算作为目标层,软件成本影 响因素生产因素、计算机因素、人员因素、项目因素、其它因素作为准则层, 算法模型分类复合模型、表格模型、乘法模型、线性模型作为子准则层,各算 法模型作为方案层建立了阶梯层次结构。利用专家两两判断矩阵导出相对权重, 从高层次到低层次逐次计算各层次因素相对于目标层的权重,最后得到方案层 算法模型相对于目标层的相对权重,再由权重合成法得到估算成本。 最后基于理论模型,本文做了一个简单的实例计算。在实例中本方法和其它算 法模型相比,得到的软件成本数据和实际成本之间的绝对误差和相对误差最小, 验证模型在很大程度上提高了估算准确度。 关键词:软件成本估算,算法模型,a h p 群决策( g a h p ) r e s e a r c ha n da p p l i c a t i o no fac o m b i n a t i o na l g o r i t h m m o d e li ns o f t w a r ec o s te s t i m a t i o n a b s t r a c t 嘞t i cr a p i dd e v e l o p m e n to fc o m p u t e rs o f t w a r ei n d u s t r y , r e c e n ty e a r st h es i z eo f s o f t w a r es y s t e mh a sb e c o m el a r g e ra n dl a r g e r , a n dt h eu n s u c c e s s f u lp h e n o m e n o n , f o r e x a m p l es o f t w a r ep r o j e c td e l a y , c o s to v e r r u n sa n dl o s s ,h a v ea l s ob e c o m e m o r ea n dm o r e s e r i o u s a s 让l eu r g e n tn e e do fs o f t w a r ed e v e l o p m e n tc o s te s t i m a t i o n ,m a n yo r g a n i z a t i o n s h a v es t u d i e da n dp u b l i s h e dav a r i e t yo fe s t i m a t i o nm e t h o d sa n d e s t i m a t i o nm o d e l s ,m a k i n g t h i st e c h n o l o g yg e tm a t u r ed a yb yd a y h o w e v e r , t h e s ee x i s t i n gs o f t w a r ed e v e l o p m e n tc o s t e s t i m a t i o nt e c h n o l o g i e sh a v em a n yi m p e r f e c t i o n s f o re x i s t i n gs o f t w a r ec o s te s t i m a t i o na c c u r a c yi sl o w , e s t i m a t e di n f l e x i b l e ,c a nn o t e f f e c t i v e l ya s s i s tp r o j e c tm a n a g e m e n t t h i sd i s s e r t a t i o np r o p o s e sam e t h o d w h i c hc o m b i n e s a l g o r i t h mm o d e l sa n da h pg r o u pd e c i s i o n a st h ea l g o r i t h mm o d e lo fc l a r i t yo fp u r p o s e , o b j e c t i v i t y , r e p e a t a b i l i t ya n dh i g he f f i c i e n c y , j u d g i n g f r o mt h e d e v e l o p m e n t t r e n d , a l g o r i t h mm o d e l sh a v em o r ea d v a n t a g e s b e c a u s ed i f f e r e n ta l g o r i t h mm o d e l s h a v ed i f f e r e n t s t r o n g p o i n ta n dw e a k n e s sa n da p p l i c a t i o ns c o p e ,t h i sa p p r o a c hi n t e g r a t e st h ea d v a n t a g e so f a l la l g o r i t h mm o d e l s ,m a k e su pt h e i ro w ns h o r t c o m i n g s ,a n di m p r o v e st h e e s t i m a t i o n a c c u r a c ya n df l e x i b i l i t y f i r s t l y , t h ed i s s e r t a t i o nc o m p a r e st h ea d v a n t a g e sa n dd i s a d v a n t a g e so fc u r r e n tm a j o r s o f t w a r ec o s te s t i m a t i o nm e t h o d s ( e x p e r te s t i m a t e s ,a n a l o g ye s t i m a t e s ,r e g r e s s i o na n a l y s i s , e a c ha l g o r i t h mm o d e l ) a n a l y z e st h em a j o rp r o b l e m sw h i c hs o l a r ee s t i m a t i o nm o d e l s e x i s t a no v e r v i e wo fa l g o r i t h mm o d e l sa n da h pg r o u pd e c i s i o n - m a k i n g ,i tl a ya t h e o r e t i c a lf o u n d a t i o nf o rm o d e lc o n s t r u c t i o n t h e nb a s e do na h pg r o u pd e c i s i o nm a k i n g ,t h ed i s s e r t a t i o ne s t a b l i s h e sap r o g r a m l a y e rh i e r a r c h yl a d d e r , i n t e g r a t e de s t i m a t i o na st h et a r g e tl a y e r , s o f t w a r ec o s tf a c t o r so f p r o d u c t i o nf a c t o r s c o m p u t e rf a c t o r s ,h u m a nf a c t o r s ,p r o j e c tf a c t o r sa n do t h e rf a c t o r sa st h e c r i t e r i o nl a y e r ,a l g o r i t h mm o d e l sc l a s s i f i c a t i o nw h i c hi n c l u d ec o m p o s i t em o d e l ,t a b l em o d e l , p r o d u c tm o d e l ,l i n e a rm o d e la ss u b c r i t e r i al a y e r , a l g o r i t h mm o d e l sa sp r o j e c ts e t u s eo f e x p e r tp a i rw i s ec o m p a r i s o nm a t r i xg a i nr e l a t i v ew e i g h t , c a l c u l a t ew e i g h t so f e v e r yl e v e l f a c t o r sr e l a t i v et ot h et a r g e tl a y e rf r o mh i g h - l e v e lt ol o w - l e v e ls u c c e s s i v e l y , a n df i n a l l yg e t r e l a t i v ew e i g h t so ft h ep r o g r a ml e v e l sa l g o r i t h mm o d e l sw h i c h i sr e l a t i v et ot h et a r g e tl e v e l , t h e ng e te s t i m a t e dc o s tb yw e i g h ts y n t h e s i s f i n a l l y , b a s e do nt h e o r e t i c a lm o d e l s ,t h i sd i s s e r t a t i o nm a k e sas i m p l e c a l c u l a t i o n e x a m p l e i nt h ei n s t a n c e ,t h ea b s o l u t ee r r o ra n dr e l a t i v ee r r o rb e t w e e nt h ea c t u a lc o s td a t a a n dt h es o f t w a r ec o s te s t i m a t i o nd a t aw h i c hi so b t a i n e db ya h pg r o u pd e c i s i o n m a k i n g w e i g h t sm e t h o di sl e a s tc o m p a r e dw i mo t h e ra l g o r i t h mm o d e l s i tv e r i f i e st h a tt h em o d e l g r e a t l yi m p r o v e st h ee s t i m a t i o na c c u r a c y k e y w o r d s :s o f t w a r ec o s te s t i m a t i o n ;a l g o r i t h m sm o d e l s ;g r o u pd e c i s i o nm a k i n g b a s e do na h p ( g a f r p ) 插图清单 图1 1 软件成本估算技术关系图一2 图3 1a h p 群决策过程图2 0 图4 1 模型构架流程图2 3 图4 2a h p 模型层次结构示意图2 4 图5 1 迭代a h p 层次结构图3 3 表格清单 表1 1 主要软件成本估算方法比较表4 表1 2 算法模型比较表一6 表2 1d o t y 模型工作量乘数表一1 1 表2 2 基本c o c o m o 系数表1 4 表2 3 中等c o c o m 0 8 1 基本估算公式1 4 表4 1 算法模型公式表2 5 表4 21 9 判断标度表2 6 表5 1 算法模型估算值2 9 表5 2c 级综合重要度3 1 表5 3d 级综合重要度3 2 表5 4 模型估算误差比较3 2 表5 5 综合重要度3 4 表5 - 6 模型估算误差比较3 4 独创性声明 本人声明所早交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据 我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的 研究成果,也不包含为获得金自巴王业盔堂或其他教育机构的学位或证书而使用过的材 料。与我一同l :作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文作者签字:唐小象签字日期:劭i d 年牛月刁日 学位论文版权使用授权书 本学位论文作者完全了解金g 里工些太堂有关保留、使用学位论文的规定,有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权 金月巴王些太堂可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学俯论文在解密后适用本授权辂) 学位论文作者签名虐小巍 导师签名与注弧 签字日期:砷年牛月刁日 签字日期:2 0 i d 年l 卜月叼日 学位论文作者毕业后去向: ,l 作单位: 通讯地址: 电话: 邮编: 致谢 攻读硕士学位的两年半是我人生中最重要的时期之一。生活中的痛苦和欢 乐,在学习中的探索与顿悟,思想上的挫折与成熟,都是人生最美好的回忆。 而在成长的过程中,众多良师益友给予我生活上的关怀和照顾,科研上的指导 和帮助以及思想上的鞭策和鼓舞,都将使我终身难忘。 在这两年半的硕士学习生涯中,我首先要感谢导师马溪骏研究员对我的悉 心教导。在计算机网络系统研究所的两年半期间,马老师在生活、学习上为我 提供了很大的帮助。马老师治学严谨、学识渊博、品德高尚、平易近人,在我 学习期间不仅传授了做学问的秘诀,还传授了做人的准则。这些都将使我终生 受益。无论是在理论学习阶段,还是在论文的选题、资料查询、开题、研究和 撰写的每一个环节,甚至于生活中的点点滴滴,无不得到她的悉心指导和帮助。 在此我向她致以衷心的感谢! 我要特别感谢杨善林老师。在我的论文遭遇瓶颈的时候,是他为我的论文 提供了线索和思路。学生深深敬佩杨老师严谨的治学态度、高深的学术造诣、 敏锐的洞察力、忘我的工作精神、持久的创新能力! 我要感谢阚红星老师,是他带领我入门可信软件的测试与评估课题的。他 为我的论文提供了大量资料和指导意见。 两年半来,在我们这个团结向上、充满凝聚力的集体中,得到了许多师兄、 师姐和同学的关心和帮助。在此向程飞、卢广彦、陈文、廖海波、丁帅、高竟 成、王雄、许元虎、杜运磊、林宗缪、夏维、段辰生、季春志、付磊师兄,陈 蕊、冯南平、高丽、金伟、魏芳娣、王雯雯、王海燕、马盈盈师姐,张玮、徐 草、郭云、黄文焱、董艳、詹同军、邓森文、吕军、王洪祥等同学表示感谢。 感谢已经毕业的诸位同门,你们踏实的工作作风,取得的骄人业绩为我树立了 学习的榜样。 在即将毕业离校之际,感谢合肥工业大学管理学院的2 0 0 7 级硕士生以及 计算机网络系统研究所同学们的帮助和勉励,同窗之谊和手足之情,我将终生 难忘! 最后,我要感谢我的父母和亲人,正是他们对我支持和鼓励,使我得以顺 利地完成学业。 路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以 更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有老师、同学、朋友和 家人。 作者: 年月日 第1 章绪论 目前,虽然有许多软件开发成本估算方法和估算模型,但在实际运用中仍 然不是很理想。在实际中,算法模型是用得最多的方法。但是现有的软件开发 成本估算模型的不足点,主要在于估算精确度低、估算不灵活、估算不能有效 地辅助项目管理。 专家法有其先天性的优点,经验丰富的估算专家能够综合过去的项目经 验、新项目特性、企业特性做出很好的估算,这是其它估算方法或模型难以做 到的。但一方面人都会有缺点,我们不能抛弃那些优秀的估算技术而做很主观 的判断;另一方面,要想提高估算的准确性,又不能全靠这些估算方法和模型, 毕竟它们目前仍具有上述的很多不足点。本文研究的重点,是在概括介绍当前 主要的估算方法和算法模型的基础上,运用a h p 群决策把算法模型法和专家法 结合起来,提高估算的准确性。 1 1 研究背景与意义 随着计算机技术的飞速发展,软件的应用越来越广泛,计算机软件在计算 机系统中所占的比例变得越来越庞大,其复杂程度也相应地日趋增大,但缺乏 有效的管理,开发过程混乱,出现了以大量软件项目进度延期、预算超支和质 量缺陷为典型特征的软件危机。软件危机的出现使得计算机先驱们开始寻求合 理的管理方式来控制软件行业这种混乱的局面。当时人们考虑到项目工程科学 严谨的过程和管理方式,就想把工程管理方式移植到软件开发过程的管理上来, 这样就出现了软件工程的概念。软件工程突出了软件项目的控制和管理。而在 软件项目的控制和管理中,软件开发成本估算是其重要组成部分。 目前,软件项目开发呈现的主要问题是:绝大部分项目成本开销超支过重、 项目延期、项目失败。根据s t a n d i s h 组织1 9 9 5 年公布的c h a o s 报告表明,在来 源于3 5 0 个组织的8 0 0 0 个项目中,仅有1 6 2 是“成功的( s u c c e e d e d ) ,即能在 预算和限期范围内完成项目;3 1 1 是“失败的( f a i l e d ) ,即不能完成或者取 消项目;其余5 2 7 是“被质疑的( c h a l l e n g e d ) ,尽管完成但预算平均超支8 9 。 2 0 0 4 年,该组织统计的项目数累计5 0 0 0 0 多个,结果表明,成功项目的比例提升到 2 9 ,而被质疑的项目比例仍有5 3 。尽管有些研究认为,c h a o s 报告中关于预 算超支8 9 的数据被夸大了,实际情况应该平均在3 0 一4 0 。但人们经常对软 件成本估算不足这一点却取得了共识i l 】。 无论是产业界还是学术界,越来越多的人意识到,做好软件成本估算是减少 软件项目预算超支问题的首要措施之一,它不仅直接有助于做出合理的投资、外 包、竞标等商业决定,还有助于确定一些预算或进度方面的参考里程碑,帮助软 件组织或项目管理者对软件开发过程进行监督,从而更合理地控制和管理软件 质量、人员生产率和产品进度【2 1 。 厂专家估算法 软件成本估算主要技术弋 回归分析法 p 。u 。m t y a 模m 型s l l m 模型 r c a p r i c e s 勰d l i b o e i n g 模型 g r c 模型 图1 - 1 软件成本估算技术关系图 1 、专家估算 专家估算就是一位或者多位专家进行商讨,专家根据自己的经验和对所估计的项 目的理解,得出该项目的成本的估算值。专家判定技术有标准d e l p h i 技术和宽带d e l p h i 技术i 。 成本估算的标准d e l p h i 技术。因为单一专家进行估算可能会存在许多偏见, 所以一般都是多位专家进行估算。多个专家进行估算就会产生多个估计值,因 此要对这些估计值进行合适的处理使其形成接近真实值的单一值。如果对这些 估计值进行简单的取其平均值,估计结果就会受到一些少数的极端值的影响。 另一种方法就是召集这些专家开会讨论,得出一个大家都认可的值:但这样做的 结果就会使某些比较的权威的估计者的观点影响其他专家;如果这些权威者的 观点存在问题,那么结果显然不准确,标准d e l p h i 的出现解决了这个问题。标 准d e l p h i 方法的步骤如下【3 j : 协调者为每个专家提供一份说明书和一张用于记录估算的表格; 专家以匿名方式填写表格。它们可以向协调者提出问题,但互相之间不能讨 论; 协调者准备汇总:专家对请求另外一次估算迭代的表格的回应,以及支持他 们估算的原理; 2 专家重新以匿名方式填写表单,这个过程以适当的循环不断地迭代反复; 在整个过程中,不能进行集体讨论。 成本估算的宽带d e l p h i 技术。宽带d e l p h i 方法是在标准d e l p h i 方法中记录 下来反馈,提供足够的宽带交流信息,满足成员用其他成员的估算结果来校准 自己的估算。宽带d e l p h i 方法的步骤如下【3 j : 协调者给每个专家提供一份说明书和一张估算表格; 协调者召开会议。会议中,专家和协调者或者其他人讨论估算问题; 专家以匿名方式填写表单; 协调者准备和分发迭代表形式的估算总结: 协调者召开会议,特别关注那些专家估算结果相差很大的讨论点上; 专家再次以匿名方式填写表单,并且适当地迭代重复4 _ “步。 2 、类比估算 类比估算这个估算模型是由a h a 提出的。它是把先前类似项目的实际数据 作为估算现在项目的基础,通过与以前的一个或多个项目进行比较来估算。类 比估算主要解决以下三个问题:( 1 ) 如何描述实例特征,即从相似项目特征中选 择出最具代表性的特征;( 2 ) 通过选取适当的相似度相异度表达式,评价相似 程度;( 3 ) 如何根据相似的项目数据得到最终估算值。特征量的选取是决定哪些 信息在实际问题中可用,这通常会征求专家意见来帮助我们确认出最相似实例 的特征。如果选取的特征不够全面,在解决方案时也可使用专家意见。对于相 似度度量研究,目前通常是使用近邻算法。这类算法是目前最广泛应用的,通 常是基于距离测量或最小变量差的平方和。它必须标淮化( 即归一化) 每个变量, 再根据对特性( f e a t u r e ) 的影响附加相应的权值。 删c 1 c 2 尸卜乃而而而面而历 心2d p 是n 个特征的集合,c l 、c 2 是案例,且: ( c 1 厂c 2 ) 2 f e a t u r e d i s s i m i l a r i t y ( c 1 ,c 2f ) = 0 ( 2 2 2 ) 】 2 2 2 式可以分为三种情况:1 数字化的特性;2 分类型的特性,且g ,= c 2 ,; 3 分类型的特性,且c 1 ,g ,。 当找到相似项目后,对于工作量估算值的最后确定,有以下三种不同的方 法:直接取最相似项目的工作量;取几个比较相似项目的工作量平均值; 利用某种标准采用调整策略,如用项目规模作调整参考等。 3 、回归估算 回归分析是一种相当常用与有效的数据驱动方法【4 l 。在对软件项目进行成 本估算时,通常能得到相关软件组织或软件产品的一些历史数据,回归分析就是 充分利用这些历史数据来预测和估算软件成本,它包括o l s ( 普通最小二乘回 归,o r d i n a r yl e a s ts q u a r e sr e g r e s s i o n ) ,o s r ( 最优子集回归,o p t i m i z e d s e t r e d u c t i o n ) ,r r ( 稳健回归,r o b u s tr e g r e s s i o n ) ,c a r t ( 分类回归树,c l a s s i f i c a t i o n a n dr e g r e s s i o nt r e e s ) ,s t e p w i s ea n o v a ( 逐步方差分析,s t e p w i s ea n a l y s i so f v a r i a n c e ) 等。其中,o l s 回归是最传统的回归方法,它是假定将一个依赖变 量与一个或多个独立变量相关联的一个函数形式【5 】。 对于o l s 回归,我们首先要指定一个模型( 以表现依赖变量与独立变量之 间的关联形式) ,然后将数据与这个指定的模型相配合,试图使得方差的总和最 小。使用o l s 方法的回归函数通常可以表示为1 6 1 : y t = 展+ f 1 2 x , 2 + + 成靠+ u t ( 2 3 1 ) 在公式2 3 1 中,五:为第f 次观测值的回归变量,及尾为响应系数, 屈为截距参数,咒为第f 次观测值的响应变量,u i 为随机误差。 令7 ,表示在第f 次观测中实际观测结果值咒与预计结果值以的差值,则n 2 就是平方误差。o l s 方法就是要估算出响应系数和截距参数,使平方误差的总 和达到最小,即m i n ( 窆( 乃一乃) 2 ) 。其中,甩表示观测值的总数。 在软件成本估算中,我们经常会遇到需要回归得到的参数存在于非线性等 式中,在此我们可以先将函数转化为线性形式。 ? 它们的优缺点比较如表1 - 1 所示( 算法模型在第二章介绍) : 表1 1 主要软件成本估算方法比较表 模 优点缺点 型 专1 能够处理在过去项目的经验和未来 1 过分依赖于专家的经验;2 欲在专家 家 项目所包含的新的技术、系统结构或 迅速做出的估算值和彻底的、文档齐全 判应用之间的差异;2 专家还能处理异 的、得到专家组一致同意的估算值之间 定常的人事情况及其互相影响或其它特 进行平衡是十分困难的:3 在处理时可 能受个别极端估算值的影响而产生严重 法 殊的项目情况。 的偏差。 1 它避免了知识启发、知识提取和知 类识系统化等问题:2 基于类比估算的无法弄清以前的项目究竟在多大程度上 比系统只需要处理实际上发生的问题,实际代表了新项目的限制、技术、人事 估通过分析类比数据库掌握类比的可信 和软件所执行的功能。为了找到合适的 算度;3 能够用于自己缺乏理解的领域, 类比对象,需要对以前的很多项目有详 法不需要对相关项目和领域都十分了尽的了解,还需要做大量的调查工作。 解。 4 1 每个观测值对于模型公式有同等的影 回 响,差异过大的极端观测值会对模型产 归方法简单、易用,很多商业统计包都 生不可预计的影响;2 由于所需的历史 分 支持该方法,如m i n i t a b ,s p l u s ,s p s s 数据依赖于回归模型中的参数个数,当 析等。 模型中回归变量数量增多时,需要的历 史数据数量也增多;3 需要满足对于软 法 件工程数据来说比较严格的假设条件 ( 比如说变量相关性问题) 算 法 目的明确、具有客观性,不会受主观 对于质量不高的规模估算输入值和不精 模 因素的影响;可重复性;高效性;能 型 支持一簇估算方法或敏感性分析,而 确的成本驱动因子的等级划分,算法模 且能用以前的经验进行客观的校准。 型也无能为力。 法 由于算法模型突破了专家估算的主观性方面限制,弥补了类比估算无法弄 清以前的项目究竟在多大程度上实际代表了新项目的限制、技术、人事和软件 所执行功能的缺陷,克服了回归模型需要严格假设条件的缺点。算法模型是目 前使用最广泛的软件成本估计方法。 现在,国内有关软件开发成本估算的研究还只处于起步阶段,研究成果非 常少。在国内没有专门的估算辅助工具,也没有专门的组织或机构对它进行研 究。软件规模的大小、开发周期的长短、成本的多少没有底,基本上都是靠经 验来判断,即俗称的“拍脑袋 方式。不同经验的人估算出的数据相差很大, 不同意见的人之间沟通也很困难,且判断没有准确的量化标准来支持,结果最 终往往以经验估算为准。而国内出版的一些软件成本估算书籍、软件项目管理 方面涉及的成本管理,大都是介绍国外的一些成本估算技术。如周杰对c o c o m o 模型的软件开发成本估算研究与实践;吴际对扩展功能点的研究;刘泽星用两 两比较法对软件规模进行评估的研究;甘早斌的软件开发成本估算技术综述等。 国外在软件成本估算技术上比国内要成熟得多,不仅有很多先进方法如专 家估算、类比估算、回归分析、算法模型等,而且形成了专业的辅助工具来进 行估算。这些辅助工具的研究开发是基于大量不同类型项目数据,采用已经很 成熟的估算方法,保证了估算结果的准确性。由于估算是能够量化的,并不是 根据个人经验直接得出结果,在结果的评审上是有据可依的。长期依靠辅助工 具估算成本可以将大量的项目数据和估算结果积累成历史数据库,保存知识成 果便于以后利用。在最近的几年里,国外又相继研究并公开发表了一些软件成 本估算方法,如面向对象的软件成本估算方法、基于w e b 的软件成本估算方法、 神经网络估算模型【7 儿引、组合估算方法等。还有一些是针对某开发阶段的估算 方法,如需求分析阶段的估算【9 j 、设计阶段的估算【lo 】等。 总之,国外的软件成本估算技术起步早、发展快,各种估算模型和技术也 比较成熟,而国内在这方面不仅起步晚、研究人员少,应用也少,几乎没有成 熟的估算成品,整体现状是国外领先于国内,美国领先于其它国家。目前,在 国内系统地研究软件成本估算技术还是一个空白【1 1j 。 算法模型经历了s d c 模型、t r ww o l v e r t o n 模型、p u t n a ms l i m 模型、d o t y 模型、r c ap r i c es 模型、i b m f s d 模型、b o e i n g 模型、g r c 模型、b a i l e y b a s i l i m e t a 模型、c o c o m o 模型、c o c o m oi i 模型。它们的变量情况、模型适用范 围及优缺点如下表卜2 所示: 表1 2 算法模型比较表 模型变量模型适用范围及优缺点 静态多变量( 变量:需求缺乏度;设计稳定性;数 学指令百分比;存储,检索指令百分比;子程序数:在实际情况中,有很多非 s d c 模型编程语言;商业应用;独立程序;是否第一次在计线形情况,模型不能很好 算机上编程;并行硬件开发:使用随机存取设备;应用。 不同主机、目标硬件;人员出差数;军事组织开发) 大型瀑布型软件,适用于 t r w 静态多变量( 变量:相对困难程度;应用新颖性;一类接近实时的政府命令 w o l v e r t o n 模 项目类型)和控制项目,对其它类型 型 的项目没有那么准确。 动态多变量( 它是一个“软件方程”。变量:以年为 考虑了成本和工作量两个 p u t n a m 单位的软件开发时间;包括软件开发和维护在内的 开发约束的线形规划,适 s l i m 模型以人年为单位的生命周期工作量;交付的源指令 用于代码行大于7 0 0 0 0 的 大型项目,也可用于小项 数) 目,中等项目偏差很大。 静态单变量( k d s i 1 0 ) ( 变量:源交付代码千行 数k d s i )静态多变量( k d s i o ;( 2 ) a ,= 1 a , , ( 3 ) q ,= l 。判断矩阵a 称为正 2 1 互反矩阵,根据判断矩阵的互反性,对于一个n 个元素构成的判断矩阵,只需给 出其上( 或下) 三角的n ( n 一1 ) 2 个判断就可以了 2 7 1 1 4 0 j 4 1 1 。 步骤三:判断矩阵一致性检验和集结 在判断矩阵的构造中,由于客观事物的复杂性和人的认识的多样性,并没 有要求判断具有传递性和一致性。然而,判断矩阵既然是计算权重向量的根据, 就要求判断矩阵在大体上保持一致性。前面提到的相对权重计算方法都是一种 近似计算,如果判断矩阵一致性偏离过大时,那些计算方法的可靠程度就值得 怀疑了。因此,需要对判断矩阵进行一致性检验【2 7 1 1 4 0 4 1 1 。当个体判断矩阵满足 一致性条件,再集结不同专家对同一层次的同一问题的判断矩阵,再对集结后 的判断矩阵进行一致性检验。 步骤四:单一准则下相对权重的计算 这一步是根据n 个元素u 1 ”,材。对于上一层某一准则元素的判断矩阵,求出 它们对于准则元素的相对权重,心,。相对权重的向量形式是( w l ,w 2 ,) r 。 相对权重的计算方法主要有和法和特征根法。和法比较简单易行,但特征根法 的理论意义和实际价值在a h p 中更为重要【2 7 l 4 0 d 。 步骤五:各层元素对于目标层的合成权重的计算 这一步是计算同一层次所有因素对于最高层( 总目标) 相对重要性的权重, 这一过程是由高层次到低层次逐层进行的。最底层( 方案层) 得到的相对重要性 权重,就是方案集的重要性权重。a h p 最终得到方案层相对于总目标的权重 2 7 t 4 0 1 4 1 1 。 a h p 群决策正是在传统的层次分析法( a h p ) 基础上发展起来的,群体层 次结构是在层次结构已建立的前提下,请一组专家对同一指标属性同时给出判 断矩阵,再将多个判断矩阵进行适当的数学处理,使得最终的权重反映的是群 组的意愿,有效地避免了受单个专家判断力的影响,由此导出的群体评价结果, 发挥了群体的智慧,消除了由于个人判断偏好产生的判断偏置。 第4 章基于g a h p 和算法模型的软件成本估算模型构建 本软件成本估算模型构建是在分析了软件工程中的专家估算、类比估算、 回归分析、算法模型优缺点的基础上,提出的一种基于a h p 群决策( g a h p ) 和算法模型的新软件成本估算方法。它是将算法模型的复合模型( p u t n a ms l i m 模型、r c ap r i c es 模型、c o c o m o 模型、c o c o m oi i 模型) 、表格模型( b o e i n g 模型、t r ww o l v e r t o n 模型) 、乘法模型( d o t y 模型、i b m f s d 模型、b a i l e yb a s i l i 模型) 、线性模型( s d c 模型) 结合起来,互相取长补短,由群体层次分析法 ( a h p 群决策或g a h p ) 得到各个算法模型的权重,再由权重合成法得到估算 成本。 群体层次分析系统旨在解决结构化的一类决策问题及其子问题。本系统首 先确定决策主要影响因素集,建立阶梯层次结构;其次请各决策者独立就各层 次因素建立判断矩阵( 输入群体a h p 主观数据) ;运用判断矩阵集结方法对各专 家建立的判断矩阵进行集结,并对集结以后的判断矩阵的一致性进行检验( 若不 满足满意的一致性,则进行调整) ;最后通过判断矩阵的一致性程度确定专家的 可信度和准确度,确定各层因素的相对权重,根据各备选方案的实际数据进行 决策。 本模型构架主要工作包括: ( 1 ) 构建群阶梯层次结构; ( 2 ) 算法模型方案集计算; ( 3 ) 各专家对算法模型相对重要性的判断矩阵构造; ( 4 ) 判断矩阵一致性检验; ( 5 ) 根据各专家判断矩阵一致性程度得出专家权重; ( 6 ) 集结个体判断矩阵; ( 7 ) 根据各算法模型方案集和a h p 群决策得到的各算法模型权重得到软 件成本估算的综合评估; 模型构架流程图如图4 1 所示: 图4 1 模型构架流程图 4 1 阶梯层次结构的建立 阶梯层次结构分为三种类型,即完全相关结构,上一层次的所有要素与下 一层的所有要素完全相关;完全独立结构,上一层所有要素都各自有独立的、 完全不同的下一层要素;混合结构是上述两种结构的结合。首先我们先对算法 模型进行分类,分析影响因子,寻找相关指标,构建阶梯层次结构。 应用a h p 分析软件成本估算的问题,首先把估算问题条理化、层次化,根 据上述软件算法模型的分类和影响软件成本的相关因素,构造阶梯层次结构模 型。在这个结构模型下,复杂问题被分解为元素组成部分,元素又按其属性分 成若干组,形成不同层次。同一层次的元素作为准则对下一层次的某些元素起 着支配作用,同时它又受到上一层次元素的支配。 影响软件成本的因素大致可以分为生产因素、计算机因素、人员因素、项 目因素、其它因素,本系统将这5 个因素作为准则层。 下图为软件成本估算a h p 模型层次结构示意图: ( 1 ) 最高层:这一层是目标层,它是对软件成本估算的综合评价; ( 2 ) 中间层:这一层包含了为实现目标所涉及的中间环节,包括所须考虑的 准则、子准则,本文由准则层、子准则层两个层次组成。在这里准则层 为对软件成本估算的评价准则,分解为生产因素、计算机因素、人员因 素、项目因素、其它因素;由于层次中的各元素所支配的元素一般不能 超过九个,过多的支配元素会给两两比较判断带来困难,可能会导致判 断的不准确。也为了便于专家判断,准则层再分为子准则层复合模型、 表格模型、乘法模型、线性模型; ( 3 ) 最底层:表示为实现目标可供选择的各种措施、决策方案等,因此也称 为措施层或方案层。在这里方案层为软件成本估算的各个算法模型。 图4 2a h p 模型层次结构示意图 2 4 4 2 算法模型方案计算 本系统是将算法模型作为方案层,即先由各算法模型粗略估算出软件成 本。算法模型提供了一个或多个数学算法,这些算法产生的软件成本估算是一 系列被认为是主要成本驱动因子变量的函数,根据其函数形式将软件成本估 算算法模型分类为:复合模型、表格模型、分析模型( 略) 、乘法模型、线性 模型、表格模型。算法模型分类及公式如下表: 表4 1 算法模型公式表 模型公式 p u t n a ms l i m 模型 s = e x k l 3 t4 3 r c ap r i c es 模型 无 复合模型 1 5 c o c o m o 模型 p m = a x s 5 丌彤 c o c o m o i i 模型 肼。:彳妇s ! 前e m , - 。l b o e i n g 模型 无 表格模型t r ww o l v e r t o n 无 模型 m m = 5 2 8 8 ( k d s l ) 1 埘,其q b k s d i 1 0 d o t y 模型 1 4 m m = 2 0 6 0 ( k s d i ) ( 丌厂) 乘法模型i b m f s d 模型 e :5 2 c 9 1 7 2 1 b a i l e yb a s i l i 模型 工作量= c + 口( 删 删= 一3 3 6 3 + 9 1 5 ( 缺乏需求) ( o 2 ) + 1 0 7 3 ( 设计稳定性) ( 0 - - 3 ) + 0 5 l ( 数学指令的百 分比) + o 4 6 ( 存储检索指令的百分比) + o 4 0 ( 子程序数) + 7 2 8 ( 编程语言) ( o 1 ) - 2 1 4 5 ( 商业应用) ( o 1 ) + 1 3 5 3 ( 独立程序) ( o 线性模型s d c 模型 1 ) + 1 2 3 5 ( 第一次在计算机上编程) ( o 1 ) + 5 8 8 2 ( 并行硬件开发) ( o 1 ) + 3 0 6 1 ( 使用 随机存取设备) ( o 1 ) + 2 9 5 5 ( 不同主机、 目标硬件) ( 0 1 ) + o 5 4 ( 人员出差数) - 2 5 2 0 ( 军事组织开发) ( 0 1 ) 4 3 用群体层次分析方法得到权重 4 3 1 构造两两比较判断矩阵 由于群决策是一种集中群体成员的智慧、发挥群体优势的决策,它要根据 群体的意见来做决策,因而群成员的挑选就显得特别重要。群成员的挑选满足 如下条件:群成员的代表性;群成员的权威性。群成员本身的各项素质应 是他们所代表的阶层、部分内比较高的,他们必须对欲做决策的问题有相当程 度的了解,在群众中有较高的威望。只有这样,才能保证所做决策的质量; 群成员必须对决策问题感兴趣,对决策产生的后果负有责任;群成员应当公 正、客观、实事求是,不让自己的私心杂念影响决策;群成员的人数要适当。 人数过多,决策所需时间过长,效率不高;人数过少,集体决策的“集体 这 一优势又不明显,必然影响决策质量。 通过问卷调查的方式,请每位专家以上一层次的某一元素指标毋为准则, 对下一层次的元素指标进行两两比较,并根据判断标度确定其相对重要程度, 建立个体判断矩阵。判断矩阵a 中的元素口i i 表示从判断准则巩角度考虑指标4 一r , 对指标彳,的相对重要性,即瓯:形,。 j ! ,nj 对于上图的层次结构,准则层生产因素( b 1 ) 、计算机因素0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论