




已阅读5页,还剩74页未读, 继续免费阅读
(计算机软件与理论专业论文)面向对象软件度量体系及度量指标的构造.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机技术的e 速发展,各领域内出现的高复杂性的软件系统越来越多。因此, 人们迫切需要能够对软4 1 :开发过程乖俨品进行精确的、可预测的和可重复的控制,软制度 量就是度量软件质量的一种行之有效的手段, 尽管人们目前在软件度量方丽已经做了大量的研究工作,但由于对软件度量本身的认 识和对面恕对象软f i :系统结构的认识郝不够深刻,使得这些在实际使脚中的应坦结果j 实 际结果不尽一致。在某些情况卜其度量值与实际值之间出现较大的偏差,从而失去了度 量的意义,进而限制了其应刚。 在检测软件产品的质量方面,在帮助软件开发人员生产高质量的软件方面,软件度餐 都有重要意义。 面向对象的方法是一种新的软件开发方法,至今缺乏一套合理的度量方案,现有的度 量指标大多是零散的、只针对于某一方面特性的。目前的研究大多集中在内聚度、耦台度 等单个方面。 现有的这种度量知识还不足以帮助软件开发人员和测试人员提高软件质量,快速发现 并定何设计质量方面可能存在的缺陷。为此,本文作了以f 三方面的。【作:经过对丁现 有软件度量体系的分析比较。提山具有规模、封装、内聚、耦台、继承、多态、抽象七个 二二级质量特性的度量体系的摄小完备集:将现有度量指标纳入由这七个特性构成的度艇 体系,进行应用、改进与完善方面的分析,井按各度量指标的特性给出应用建议或补充指 标;给出一直没有被度量的类的“抽象性”特性的度量模型与指标:综合使用程序切片 分析法与信息流分析法,采用与现有度量方法不同的有向图形式给出类属性间的数据依赖 幽;不同于以前将引用图看成一个二二部图的思路,将该图看作一个基本p c t r i 网;在分析该 p e t r i 网并发性的基础上,给山抽象性的度量指标聚合度,得到对丁_ 类抽象性的直掳度 嚣指标;根据已经得到的实验资料,进一步的研究可能给i u 聚台度与软p l :中包龠的错误数 之问的定量关系式,并提供一种度量设计质量、软件的“概念可理解性”的度量指标。 通过分析类中的方法而得到的抽象性度鼍指标不够精细更精细的方法是使用程序切 片,或者使用详细的数据流图。进一步完善之后,这种方法可以在面向对象的设计阶段, 通过建立详细数据流图进行准确的抽象性度量。同时,本文在计算聚台度指标时采用的构 造法,可以直接用于设计阶段进行类概念的捕捉。 关键词:面向对象软件度量体系抽象性度量数据依赖图p e t r i 网聚合度 a b s t r a c t w i t ht h eh i g h d e p v e l o p m e n to f c o m p u t e rt e c h o n o m g y , m o r es o f t w a r es y s t e m so fh i g h c o m p l e x i t ya p p e a r i n gi ne v e r yf i e l d s o ,p ”p t en e e dt oc a r l yo na c c u r a t e ,p r e d i c t a b l ea n d r e p e a t a b l ec o n t r o lt os o f t w a r ed e v o l o p m e n tp h a s e sa n dp r o d u c t su r g e n t l y , s o a r em e t r i ci sa 撕a do f c f i e c t u a lm e a n sc om e , 船u r eq u a l i t yo f t h es o f t w a r e a t p r e s e n t ,t h r o u g hp e o p l e a r e c a r r y i n g o nal a r g ea m o u n to fr e s e a r c hw o r k ,t h e s e m e a s u r i n gr e s u l t sh a v e n tm a t c h e dt oa c t u p lv a l u e sb a c a u s ep e o p l eh a v e n tc o r r e c t l yt o u c h e do n t h ek e r n e lo fs o f t w a r em e t r i ca n do b j e c t - o r i e n t e ds y s t e ma r c h i t e c t u r e i ns o m ec a s e s ,g r e a t d e v i a t i o nb e t w e e nm e a s u r i n ga n dp r a c t i c i n gv a l u e sm a k e sm e t r i cm e a n i n g l e s sa n dt h e nh a s l i r n t e di t sa p p l i c a t i o n 。 o nl h ea s p e c to fm e a s u r i n gt h eq u a l i t yo ft h es o f t w a r ep r o d u c ta n da s s i s t i n gd e v e l o p e rt o p r o d u c eh i g h q u a l i t ys o s t w a r e ,s o f t w a r em e t r i ch a si m p o r t a n tm e a n i n g s a sn e ws o f t w a r ed e v e l o p m e n ta p p r o a c h ,o b j e c t - o r i e n t e dp a r a d i g ml a c kas e to fr a t i o n a l m e t r i cs c h e m e ss of a r , m a n yo f p r e s e n tm e a s u r e m e n t sa r em o s t l ys c a t t e r e da n do n l yi n v o l v e di n t l i ee h a r a e t e r i s t i co fs y s t e mi nac e r t a i nr e s p e c t p r e s e n tr e s e a r c hi sm o s t l yc o n c e n t r a t eo ns u c h i n d i v i d u a lr c s p e c t so f s o f t w a r ec h a r a c t e r i s t i c sa sc o h e s i o i n ,c o u p l i n g ,e t c e x i s t i n gk n o w l e d g eo fm e a s u r i n ga r es t i l l n o te n o u i g ht oh e l pd e v e l o p e r sa n dt e s t e r st o i m p r o v es o f t w a r eq u a l i t y , f i n da n dl o c a t et h ep o s s i b l ed e f e c t s f a s tj n t r o d u c e di n t os o f t w a r ew h e n d e s i g n i n gf o r t h i sr e a s o n ,i nt h i sa r t i c l ew er e s e a r c ht h o s eq u e s t i o n si nt h r e ea s p e c t s :( 1 ) t h r o u g h c o m p a r i n ga n da n a l i z i n ge x i s t i n g m e t r i cs u i t e ,i n t r o d u c e st h em i n i n u mc o m p l e t e dc o l l e c t i o n so f s e v e nf e a t u r e sw h i c hm e a s u r es e c o n dl e v e lq u a f f t ya t t r i b u t e s s u c ha s s c a l e ,e n c a p s u l a t i o n , c o h e s i o n ,c o u p l i n g ,i n h e r e n c e ,p o l y m o p b i s m ,a n d a b s t r a c t i o n ;( 2 ) d i s c u s s e se x i s t i n g m e a s u r e m e n t sa n d a r r a y i n g t h e mi n t oo u rm e t r i cs u i t e b ya n a l i z i n g 1 h e mo n p r a c t i c e 。 i m p r o v e m e n ta n dd e v e l o p m e n t , p r o v i d e sp r a c t i s i n gs u g g e s t i o no ri m p r o v e m e n t o rs u p p l e m e n t a p p r o a c h e sa c c o r d i n gt o c h a r a c t e r i s t i co rw e a kp o i n to fe a c hm e a s u r e ;( 3 ) s u g g e s t i n ga n m e a s u r e m e n tm o d e la n da na p p r o a c ht om e a s u r e “a b s t r a c t n e s s ”w h i c hh a v en o tn e v e rb e c b p r o v i d e d i nf o r m e rr e s e a r c h e sb yf o l l o w i n gm e t h o d :g i v i n gd a t ad e p e n d e n c eg r a p h ( d d g a b r e v e d ) a m o n g ac l a s sa t t r i b u t e su s i n gb o t ho fp r o g r a ms l i c e sa p p r o a c ha n di n f o r m a t i o nf l o w a n a l i z i n gm e n t h o d s ,a d o p t i n gd i r e c t e dg r a p ha p p r o a c h b u tu n - d i r e c t c dg r a p hu s e di nf o r m e r r e s e a r c h e s ;d e a l i n gd d g a sae n - p e t r in e tb u tf o m e ra p p r o a c ho n l y a sa 2 - p a r tg r a p h ; p r o v i d i n gam e a s u r e o fa b s t r a c t i o nd e n o t e db y c o b e s i o n o nt h eb a s i so fa n a l i z i n gc o n c u r r e n c e o ft h e e n p e t r in e t ,w h i c hd i m c t e dm e a s u r e s “a b s t r a c t n e s s ”o fac l a s s ;d e p e n d i n go n t h e e x p e r i m e n tm a t e r i a l sa l r e a d yg a t h e r e d ,f u r t h e rr e s e a r c hm a yp r o v i d et h eq u a n t i t a t i v ee x p r e s s i o n o ft h er e l a t i o nb e t w e e nc o h e r e n c ea n db u m b e to ff a u l t si o c l u d e dw i t hs o f t w a r es y s t e m a n do f f e r a na p p r o a c ht om e a s u r e d e s i g nq u a l i t ya n d g o n g ( :p t su n d e r s t a n d a b i l i t y ”o f as o f t w a r es y t e m , t h e m e a s u r i n gv a l u ec o m ef r o ma n a l i z i n gm e t h o d si nac l a s si s n o te n o u g ha p p r o p r i a t e d , m o r ea c c u r a t e dv a l u ec a nb ew o r k e do u tb yu s i n gp r o g r a ms l i c ea p p r o a c ho rc o n s t r u c t i n gd d g b a s e do nd e t a i l e dd a t af l o wd i a g r a m ,a f t e rf u r t h e ri m p o r v e m e n t ,t h i sa p p r o a c hc a nw o r ki n o b j e c t o r i e n t e dd e s i g n i n g , b yw h i c ha c c u r a t ea b s t r a c t n e s sm e a s u r e m e n tc a nb ed a w nt h r o u g h c o n s t r u c t i n gd e t a i l e dd a t a f l o wd i a g r a m a d d i t i o n a l l y , t h i sm e t h o do fc o n s t r u c t i n gc o b e r e n c e m a y b eu s e di no b j e c t o r i e n t e dd e s i g n i n gt oc a t c hc l a s sc o n c e p t sd i r e c t l y , k e y w o r d s :o b j e c t - o r i e n t e d ,s o f t w a r em e t r i cs u i t e ,a b s t r a c t i o nm e a s u r e , d a t ad e p e n d e n c eg r a p h ,p e t r in e t , c o h e r e n c e 原创性声明 7 3 2 1 1 5 本人郑重声明:本人所呈交的学位论文,是在导师的指导下 独立进行研究所取得的成果。学位论文中凡引用他人已经发表或 未发表的成果、数据、观点等,均已明确注明出处。除文中已经 注明引用的内容外,不包含任何其他个人或集体已经发表或撰写 过的科研成果。对本文的研究成果做出重要贡献的个人和集体, 均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:谨丝f 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产 权归属兰州大学。本人完全了解兰州大学有关保存、使用学位论 文的规定,同意学校保存或向国家有关部门或机构送交论文的纸 质版和电子版,允许论文被查阅和借阅;本人授权兰州大学可以 将本学位论文的全部或部分内容编入有关数据库进行检索,可以 采用任何复制手段保存和汇编本学位论文。本人离校后发表、使 用学位论文或与该论文直接相关的学术论文或成果时,第一署名 单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名: 导师签名:丝数日期:蜘 由向对象软件度量体系发插馨摊度篮指标的构造面向埘象的软件霆越撮述 1 面向对象的软件度量概述 1 1 传统的软件度量学 1 1 1 软件度量学概述 软件度摄学( s o f l w a r em e t r i c s ) 屉早在1 9 6 8 年由r u b e y 年l ih u r t w i c k 提出。1 9 7 0 年 h a i s t e a d 提出了软科学( s o f l w a r es c i e n c e s ) 的概念”j ,他认为任何一门学科要成为科学 必须理论雨7 实践结合,而软f ,f :度蜒学正是反映了这种结合的学科。b o c h m 于1 9 7 6 年提出, 对软什属性不能仪有定性的研究。还必须有定量的研究,软什度蛰学止趄顺应这种趋势而 产生的。其目的是朋软作度量学的方法来科学地评价软仆质量,更有力地对软仲开发过程 进行控制乖f 管理,合理地组织和分配资源,制定切实可行的软件开发计划,以低成本获得 高质鲒软什。 现在软件度量学已成为软件j :程的一个哿 究方向。i e e e 在“软p l :质量度量方法标准” a n s i1 0 6 t 1 9 9 2 中对软件度量学的术语作了明确的定义p i ,对软件度量学的目的作了阐述。 并且给出了一个指导性的软件质鼙度量框架。在此标准中,对于软件质罱的需求分析的建 立、鉴定、实施和度量结果的分析制定了一个方法标准。 i e e e 对度量( m e t r i c s ) 的定义是度量是一个函数,它的输入是软件数据,输出是单 一的数值,能j ;l j 咀解释软件所具有的个给定属性对软件质量影响的程度。 测馘( m e a s u r e ) 是:与一种标准相比较以估价或确定值的方法;运川种皮最方法以得 到确定的值。 量度( m e a s u r e m e n t ) 是:测量的动作或过程;测量所得到的数值、范围、总量。 软件质疑度量( s q m ) 是对影响软件质最的属性所进行的定量测鬣。也就是从整体上 评价软件质量用于软件开发过程中对软什质量进行质量控制,并对最终软件产品进行评 价和验收。 f e n t o n 提出1 9 1 统一软f # 度量框絮包括测量软r i :的“过程、产品,资源”三个方嚼。 软件过程是随着时问的过去伴随软件的任何相关活动。对过程盼测量基丁以f 方荷: 软件产品质量的高低直接反映了软制:过程的成功与否:真接对软件过程的度量反映了软件 过程质量的高低,直接影响软件产品的质量好坏。大粒度的过程测量如c m m ,小粒度的 如评价测试活动的效率等等。对过程的测掇可分为两种:项目内测量利项目级测量,前者 是针对一个项目过烈的并个阶段,反映过程进行情况j 1 斤者则魁根据不同项目疗待况,获 得不同过烈对产,铺质量的影响,为过程改进提供指导和证据。软件供应商是过程测量的主 要推动者。 软件产品是伴随软件开发过程中任何的成品和文档。和其它测量比较,软件产品的测 量是对软仲质量水平的衡量更直接、更简单的方法,所以获得了撮为j “泛的研究和庸朋 对r j h 户米说。他们只荚心产脐的质黼特性如何,井不天心采川哪种开发过剃,对产铺的 测量主要包括:软件质量评估,出错检测可靠性评估,软件设计的复杂度,程序规模 功能点度姑。 使州资源是投入到软件开发过槲中的任何内容。对资源的测譬主要关注人员素质与变 动:环境呙素对产品质量的影响,如环境噪音水平。被打龋的狄数,办公室的空问人小对 面向对象软件度量体系挺抽象性度量指标的构造 埘向对象的软件度量概述 个人生产率的影响,个体不同所实现代码的复; 皮的不同,有经验的软彳f j j = 鼙师与缺乏经 验髓工程师之阔查蔽错误花费时阍差异。以及菲人力资源因素的测量( 预算。日程表, 人力成本估计等) 。 本文只讨论对产晶质量的度量。 软件质量度鬣模型有很多种,其基本点在于将软纠:质量的概念分解为若干层次,对丁二 最低层次的软件质量概念,再引入数量化的指标,从而得到软件质鹫的整体评价。 1 9 7 6 年,b o e h m 等人提出定量评价软件质量的概念给出了6 0 个质量度量公式,表 明怎样用r 评价软件质量,并且首次提出了软件质餐度量的层次模型。b o e h m 等人认为, 软件产品的质蠼基本上可从下列三个方面来考虑:( ”软件的可使圳性;( 2 ) 软仆的可维 护性:( 3 ) 软件的可移植性。b o e h m 等人将软件质遵的概念分解为若干层次,对于最底层 的软件再引入数耀化的指标,从而得到软件质最的耀体评价。例如,从b o e h m 的模型可知, 可维护性能从可测试性、可理解性及可修改性来度量,即高可维护性意味着高可测试性、 高可理解性和高可修改性。 ,9 7 8 年w a i t e r s 和m c c a l l 提出了从软件质量要幕( f a c t o r ) 、准m 1 ( c r i t e r i a ) 到度量( m e t r i c ) 的三层次式的软件质量度量模型”1 。他们将软件质量要素降为11 个,且给出了备要素的关 系。m c c a l l 等人认为,要素是软件质量的反映,而软件属性可用作评价准则,定量化地度 量软件属性,从而反映软件质量的优劣。m c c a l l 定义了1 1 个质量要素,分别为:正确性 ( c o r r e c t n e s s ) 、可靠性( r e l i a b i l i t y ) ,有效性( v a l i d i t y ) 、完整性( i n t e g r i t y ) 、可使用性 ( u s a b i l i t y ) 、可维护性( m a i n t a i n a b i l i t y ) 、可测试性( t e s t a b i l i t y ) 、灵活性( f l e x i b i l i t y ) 、可 移植性( p o r t a b i l i t y ) 、重用性( r e u s a b i l i t y ) 、互操作性( i n t e r o p e r a b i l i t y ) 。同时,m c c a l l 选择的软件质量要素评价准则共2 1 种,它们是:可审查性( a u d i t a b i l i t - y ) 、准确性( a c c u r a c y ) 、 通信通用性( c o m m u n i c a t i o nc o m m o n a l i t y ) 、完全性( c o m p l e t e n e s s ) 、简明性( c o n c i s e n e s s ) 、一 致性( c o n s i s t e n c y ) 、数据通用性( d a t ac o m m o n a t i t y ) 、容错性( e r r o r - t o l e r a n c e ) 、执行效率 ( e x e c u t i o ne f f i c i e n c y ) 、可扩充性( e x p e n d a b i l i t y ) 、通j ; ;i 性( g e n e r a l i t y ) 、硬件独立性( h a r d w a r e i n d e p e n d e n c e ) 、检测性( i n s t r u m e n t a t i o n ) 、模块化( m o d u l a r i t y ) 、可操作性( o p e r a b i l i t y ) 、安全 性( s e c u r i t y ) 、自文档化( s d l f - d o e u m e n l a t i o n ) 、简单性( s i m p l i c i t y ) 、软件系统独立性( s o f t w a r e s y s t e mi n d e p e n d e n c e ) 、可追踪性( r e a e e b i l i t y ) 、易培训性( t r a i n i n g ) 。 s ot - 1 9 8 5 年提出建议( 按照l s o t c 9 7 s c 7 , w g 3 1 9 8 5 | - 3 0 n 3 8 2 ) 软钟:质量度量 模型由三层组成: 高层( t o pl e v e l ) :软件质量需求评价准则( s q r c ) 中层( m i dl e v e l ) :软件质量设计评价准则( s q o c ) 低层( 1 0 wl e v e l ) :软件质量度量评价准则( s q m c ) 其中高层包括8 个要素( 正确性,可靠性,有效性安全性。可用性,可维护性, 灵活性互操作性) ,中层包括2 3 个评价准则( 可追踪性、完全性、一致性、准确性、容 错性、简单性、模块性、通用性、可扩充性、可检测性、自描述性、执行效率、存储效率、 存取控制、存取审查、可操作性、易培训性、通信性、软件系统独立性、硬件独立性、通 信通用性,数据通棚性、简明性) ,高层和低层的关系如表1 所示。 根据i s o 近年来对软件质量的讨论趋势,反映软件质量要索的选用逐渐向面向用户的 观点靠拢,使用户和软件人员方便地确定软件质量需求。 我国上海软件中心根据1 s o t c 9 7 s c 7 的建议,同时参照m c c a l l 模型和b o e i n g 模型, 并结合我国实际情况综合构成了s s c ( s h a n h a is o f t w a r e c e n t e r ) 软秆质攫度量模裂及其度 量方法从而形成s s c 软件质量评价体系”“。 ,2 咖m 州鲠软州瞳砒仆最发抽孽应 i 旨柏、的栅避f i 【f 向对_ 家的轼仆,电_ i 概述 表1i s o 质量要素与评价准则 关 要- 芷可有安可可灵可 确客效 全 用 维 活 互 沁川性 性护 性 操 性作 性 可追踪性 , 完全性 , 致性 ,j , 准确性 容睹性4 简单性 , 梗块性 , , 通用性 , 可扩充性 检嘲性 , 自描述性 , j 执行效率 , 存储效率 , 存取控制 , 存取审查 , 可操作性 易培训性 通信性 软件系统独立性 , 硬牛独立性 通詹通用性 , 数据遵用性 0 简明性 , 1 1 2 软件质量度量体系 目前软件质量度蹙体系一般分三个层次:软f i :质量要素( f a c t o r ) 、准则( c r i t e r i a ) 、度 爨( m e t r i c ) 。质量要素也叫质量特性度量准则通过二级质量特性来建立,二级特性可进 一步分解成些可以直接定量度量的指标。如图l 所示。 圈 面向管理 困臣曼口臣耍口面向控术 圆圆回 定璺度最 翻i 戟件质量度量体系 狮向对象软件虚篮体系及抽象性度量指标的构造面向对象的软件度量概述 参照a n s l i e e es t d 7 2 9 1 9 8 3 ,软仆质“的定义为:“o o 软仆,“f 铺满足蚬定帕和i j 强禽的 需求的能力有关的特征和特性的主体”。在s s c 模型中软件质螭由f 列6 个质量要素( 特 性) 米定义:功能性、可靠性、易j = l 性、效率、可维护性、可移植性。 这6 个质量特性是面向管理的观点,或者是从使用观点引入的。为了引进定量量纲, 必须将这些面向管理的特性转化为与软件育天的观点,绒者是面向技术的观点。这种转化 是通过对每个特性定义一组二二级特性来完成的。 一二级特性又称评价准则它们进一步刻画了软仆质量特性,并且有助于描述荐个软件 质量特性之问的关系,因为一个二级特性可以支持一或多个质量特性。这些二级特性娃软 件产t 怕或软件生,“过程的独立特性。利用这些特性,软件质量可被判定、解释和测龄。 在s s c 模型中,选用了2 2 个评价准则,它们是:可追踪性、完备性、一致性、精确 性、简单性、可操作性、培训性、通信有效性、处理有效性、设备有效性、模块性、软件 系统无关性、硬件系统无关性、白描述性、结构性、消晰性、可扩充性、产品文件完备性、 健牡性、通_ l l j 性、可见性和安全性。 软件质量特性与软件质量二级特性的关系如图2 所示( 以可维护性为例) ; 互习 ,二? 、i 。_ _ j j j,、誓 | _ t ,tl、 、 围圈圈圈圈圈圉圜 1 1 3 度量 酎2 软件质量特性与二缓质量特性 s s c 模型的第三层是度量,每一度量由若干度量问题( 度量元) 组成,根据度量问题 的回答与记分可反映度量的得分,从而反映评价准则与软件质量特性的得分。在s s c 软件 评价体系中提出了两套度量表一套面向软件开发过程,对软件开发的每一个阶段采用相 应的度最问题。在这一套表中,根据软件的需求分析、概要设计、详细设计、实现、组装 测试、确认测试和维护与使用这7 个阶段运用了每一阶段的度量问题,从而实现了软彳,j : 开发过程的质量控制,为获得高质量软件作了保证。另一套是面向产品的,即对已开发好 的软件产品的质量进行度量。 1 2 面向对象范型的度量问题 面向对象软件开发在软件生存周期、系统结构、复h 抱及项目管理等方面同传统的软 件开发有着显著的区别,这些区别很大程度上影响了软f i 渡量。传统的度量不再适用于面 向对象的某些概念,如类、继承、封装和消息传递,也不足以刻划、评估、预示面向对象 系统的质量。 尽管面向对象软件开发与传统的软件开发有相似之处,但是两者之间还是有着显蕲的 区别,主要表现在以卜儿方面: 递归叠代的生存周期; 多重抽象层次的系统结构; 4 嘶们对馨软件发虢体系搜抽豫j 韭量擀枷i 的拗边i l l l l ;i | 对的轼州度 概述 复_ h 的支持: 项臼管理。 丽向对象系统生存周期的再个阶段i r 新无缝的衔接和i 高度的替代。冈而需要更好的生 存周期模型和方法论加以支持,并且更强调复埘莆l 质量保证。从度麓角度召,要求度量的 生存周期的早期可刚:另一方面,由丁备阶段没有明显的界线,要确认度鼙能刚丁i 生存周 期约哪些阶段。 面向对象系统的结构充分反映了面向对象范型所支持的抽象概念,具有多重的抽象层 次包括系统、子系统、类和方法;强调的是对等实体之间的关系而不是传统控制流所决 定的层次分解戈系。虽然有些传统的度量准则能 i j 丁面向对象系统,如对等实体关系可以 川扇入( f a n i n ) 平l l 扇山( r a n o u t ) 米度坩,类的人小可以属性和方法复杂度的干进行度域; 但是另一方面传统度最刚到面向对象系统时有很人的局限性。譬如二r 类人小的度鲐 就很成问题,尤其是涉及到多重继承时。更为重要的是有些面向对象概念,如类之间的 继承结构就无法t l j 现有的度量准则进行度量。 复用能有效地减少项目的开发成本。g r a h a m 指出复用策略能减少2 0 的开发成本”“。 传统方法的复用主要表现在函数库的代码复崩,代码复用的级别较低而且难度较大。面向 对象方法对复用提供了良好的支持,降低了复用的难度并提高了复用的程度。复可用于 面向对象系统生存周期的各个阶段,表现为:分析复用、设计复_ i ;| 、代码复以及测试复 用等等。可复用的构件有多种形态:模式、框架、类树以及类等。面向对象的复埘遵循所 谓的“开放封闭原则”:构件经过测试放入构什库之后,其内部细讧对外封阱,但外部接 口开放,可用继承和参数化等方式进行扩展。面向对象复用引起了成本估算和进度安排的 变化,软件开发不再是从头开始,而是涉及到构件的查找、理解、扩展和组装等新的开发 过程,这些变化都要求有新的度量方法和准则。 面向对象系统的新特点带来了面向对象项目管理的新问题: ( 1 ) 所选用的生存周期模型; r 2 ) 合适的开发组成员结构; ( 3 ) 复用方法的考虑( f o r - r e u s e 平| 1w i t h - r e u s e ) ; ( 4 ) 构件库的组织与管理。 就以上问题,面向对象的项目管理要求新的度量方法和准则,以保证项目进度、软件 质量以及成本估算。 面向对象软件开发的上述不同及其对度量的影响,导致了对新的面向对象度量方法和 准则的需求。 在面向对象软件的度量中无法应用传统度量方法而衡量的最重要的软件特性有: 继承结构的高度和宽度; 系统中类的数目; 协作类的数目; 系统中代码的复_ i = i 比例。 这些面向对象软仆独有的特性需要专门的适合面向对象的度量体系。 1 3 软件度量的活动 b a k e r 和f e n t o n 等人认为度餐涉及以下四项活动4 1 1 7 ,度量理论的研究需要为这些活 动提供理论基础: ( 1 ) 确认所关心的软f ,l :属性; ( 2 ) 建立软f l :属性的经验关系系统: 面岛对象戟, 度盥体系及抽象性度世指标的构造 耐向对孽的软件艘盛概述 ( 3 ) 通过度蟹准则把经验关系系统映射剑形式关系系统: ( 4 ) 评估度量准则。 软p l :属性可分为内部属性和外部属性。内部属性( 如软r l :火小、控制流、耦合度等) 通常描述软件结构上的复杂性,一般有清晰的定义井能进行客观的度量。外部属性( 如复 杂性、可维护性、可读性等) 涉及到人和环境等外部因素。外部属性的度量才能真i e 给出 入们所需的可靠数据并预示软件开发行为。不幸的是,外部属性通常缺乏清晰的定义,也 无法进行直接的客观度量,只能通过内部届性进行推测性的度量。度馘研究的任务之一就 是建立外部属性和内部属性之间的合理联系。 1 4 研究内容 本文立足丁在研究生期间所从事的软什i 程实践经验、理论分析以及实验室以往的研 究成果,以软 , :度量体系_ 手ij 度量指标的构造为研究方向,软件产品的质量度最作为实践内 容,结台度量在软件工程实践中的实际应用,展开研究课题。 主要研究内容有: 1 分析了现有面向对象软件产品度量体系,将现有度量体系归结为封装、内聚、耦 合、继承、多态,提出“规模”、“抽象”两个应该纳入到度量体系中的质量特性; 2 提出关于丽向对象产品度量体系应该覆盖的二级质量特性的最小完备集:规模、 封装、内聚、耦台、继承、多态、抽象七个质量特性,并论述了该特性的完舔性; 3 从以上最小完备集的角度,对c & k 、m o o d 和c h e n l i u 度量体系作了简要的比 较分析; 4 以如上提山的度量体系应该覆盖的质量特性集为提纲,系统化摧理了现有面向对 象软f ;i :产品度量方面的研究成果,将现有的五十多个( 组) 对应于软件内部特性 的度量指标分配到规模、封装、内聚、耦合、继承、多态等前六个质量特性之中; 5 在现有度孱实践的基础上,分析了现有的五十多个( 纽) 度量指标的理论及应刚 意义,并提出应用、改进与完善方面的分析,同时按各度量指标的特性及不足之 处给出应用建议、改进及补充指标: 6 补充和增加了规模、封装、继承等特性方面不够完整的度量指标,调整了部分度 量指标与二:二级特性之阅朐对应关系; 7 以数据流分析法为基础,从信息变换的角度,以p e t r i 网为基本工具,将类的“抽 象性”特性表示成p e t r i 网,命名为“数据依赖圈( d d g ) ”; 8 以数据依赖图中子图的“缩减”运筇来模拟概念体系的抽象过程,得到一个表示 d d g 中概念复杂度的结构树,从而给出一个类概念抽象性的度量模型; 9 在此度量模型的基础上,用构造的方法得到一个“抽象性”特性方碗的度量指标 “聚合度”。 6 曲向对象软件度量体系搜抽象性度量指标的构造曲向对象软件度量体系的 4 造 2 面向对象软件度量体系的构造 2 1 传统的软件复杂性度量方法 软件度丝学已有三十多年f j 历史,扯丽向对象技术i j l 现以前,人们的人多数研究兕基 于面向过程的软件设计方法。在这一时期,对软件复杂性的度量的研究最为活跃,成果也 较多应川最为深入i l i 。软什复杂性度繁( s o f l w a r ec o m p l e x i t ym e a s u r e ) 已成为软1 ,i :度 量学的一个最重要的分支。自1 9 7 0 年h a l s t e a d 提出文本复杂性度量方法以来,已经提出了 许多软件复杂性度是方法这些方法可以人致分为以f4 类。 结构复杂性度最:此类度培方法研究系统各部分的拓扑结构、控制路径以及控制路 径对程序结构产生的影响。 算法复杂性度量:此类度量方法考虑完成算法的相对困难性,即时间复杂性和空问 复杂性。但此类复杂性不是软t i :的直接属性。而是算法的直接属性。 数据结构复杂性度培:此类度锵方法天注数据绱构、数据流对软件的影响。 文本复杂性度量:此类度量方法对源程序进行静态的分析,通过统计程序中的操作 符和操作数,对软件中的崭在错误个数和开发工作量进行估算。 从7 0 年代起人们开始从统计学和心理学的角度研究软什复杂性。m e u r i c eh a l s t e a d 进行了开创性的工作”】,他通过统计羽1 分析程序中出现的操作符( o p e r a t o r ) 个数和操作数 ( o p e r a n d ) 个数来研究软件复杂性。 从文本复杂性角度考虑,h a l s t e a d 认为程序是一个符号序列,设此程序序列包括, 种操作符和m 种操作数,则程序长度可估算为:n = l l 0 9 2 】+ 2 l 0 9 2 n 2 。同时 h a i s t e a d 给出了程序中包含错误数的估计值:曰= ( n 1 + n 2 ) j * l 丽o g 了2 ( n i + n 2 ) 。 这比仅考虑语句行( l o c ) 度量方法进了一步。关丁此f i i i 算式的正确性已经在理论上 和实践中得到验证。 控制结构复杂性度量是对穰序拓扑结构复杂性的度量。此类方法主要有m c c a b e 方法、 w o o d w a r d 方法、h a r r i s o n 方法和e d w a r dc h e n 方法。t h o m a sj m e c a b e 于】9 7 6 年首次提 出了基于程序拓扑结构的软件度量方法l l j 。m c c a b e 认为程序控制图中线性无关的回路数越 多,则软1 ,| = 复杂性越人,测试程序越幽难。因此,可以川环数( c y c i o m a t i cn u m b e r ) 来度 量程序的复杂性乖i 测试的难度。 1 9 8 4 年美国学者k u o c h u n gt a i 住第七崩国际软仆i :张会议上提出了一种在控制幽中 基于数据流的群序复杂性度量。其思想是对一个控制图根据它的“典型”数据流信息定义 一个复杂性计算。 2 2 面向对象度量体系 近年来面向对象技术的兴起,在面向对象分析、设计、面向对象程序殴计语言( o o p l ) 和一具上发展很快,且已得到广泛席用。面向对象技术采_ i j 数据抽象、封装、继承、多态 性、信息隐藏、巫川机制等,为提高软什的可重h 4 性,增强可维护性、可靠性,提高生产 面f 句j 时t t * 戈f 度量体系及抽孽性度量指扔;的均j 毒 面向对象软件度盘休系的掏造 效率等方面提供了可能。这些机制住传统的软f i :开发中是4 ;完善的戏缺少们。t f l f 向对象系 统强调的是对等实体之问的关系而不是传统控制流所决定的层次分解关系。传统的度越有 一定的局限性t 而且对某些面向对象特性根本无法度量。因此需要新的度量来反映。c & k 、 m o o d 等度量方法的提出标志着软件度量学进入了第二个阶段i ”2 1 。 目前,面向对象软件度量体系的研究尚处丁开始阶段。国际上,以c h i d a m b e r 和k e m e r e r 的c k 和b r i t o 和a b r e u 的m o o d 研究摄为著名。 1 9 9 4 年c h i d a m b e r 和k e m e r e r 在i e e et r a n s 。s o f t w a r e 发表的am e t r i cs u i t ef o r o b j e c t - o r i e n t e dd e s i g n ) 标志了面向对象设计中的软件度量学的初步形成i i “。该文阐述了 面向对象设汁中软1 = i :度量学的理论基础、软仆度量方法和意义,这套度量体系通常被称为 c k 。其他研究人员如n e v i l l ei c h u r c h 、m a n l nj s l t e p p e r d 、m a r t i nh i t z 和b e h z a dm o u t a z e r i 等针对c & k 的研究方法做了部分试验和前瞻性的预见1 ”1 - 1 2 7 l 。 c h l d a m b e r 和k e m e r e r 针对类提出了基于继承树的一套面向对象度量方法。在此方法 中主要考虑类的继承、类的方法数、类之间耦合、类的内聚性等。c & k 度量方法是针对具 体的类的度量,对于指导软件殴计中对类的大小、层次、继承关系等设计有一定的指导意 义。c h i d a m b e r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园生活老师职责培训大纲
- 2026届北京市人民大附属中学化学九上期末学业水平测试试题含解析
- 浙江省杭州市萧山区厢片五校2026届九年级化学第一学期期中质量检测模拟试题含解析
- 2025电工技师考试题库及参考答案
- 2025年风力发电运维值班员(技师)职业技能鉴定考试题库(含答案)
- 2026届陕西省安康紫阳县联考化学九年级第一学期期中学业质量监测模拟试题含解析
- 2026届天津市和平区二十中学化学九年级第一学期期中检测试题含解析
- 花卉的秘密课件-2024-2025学年湘美版(2024)初中美术七年级下册
- 2026届海南省临高县美台中学化学九上期中调研试题含解析
- 2026届广东省揭阳揭西县联考九上化学期中考试试题含解析
- Unit 2 单元测试卷-2024-2025学年人教版七年级英语上册
- 2025股权技术入股合同
- 钢桁架桥制作施工方案
- 2025年高中学业水平合格性考试政治模拟试卷试题(含答案解析)
- 2024年食品安全抽检监测技能大比武理论考试题库(含答案)
- 北师大版小学数学五年级上册第一单元《练习一》同步练习带答案
- 球墨铸铁管规格尺寸理论重量表
- 饮食习惯与健康
- 华为人力资源管理纲要2.0
- 第二章 园艺设施的类型、结构、性能及应用
- 银行卡收单外包服务协议范本
评论
0/150
提交评论