(轻工技术与工程专业论文)面向对象软件度量模型的研究.pdf_第1页
(轻工技术与工程专业论文)面向对象软件度量模型的研究.pdf_第2页
(轻工技术与工程专业论文)面向对象软件度量模型的研究.pdf_第3页
(轻工技术与工程专业论文)面向对象软件度量模型的研究.pdf_第4页
(轻工技术与工程专业论文)面向对象软件度量模型的研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 加强软件产品质量控制和提高软件产品生产率的效果,引起了软件管理者和丌发者重 视软件度量的研究工作。由于面向对象开发不同于基于功能分解和数据流程的传统软件, 从而使传统的软件度量不再适用于面向对象软件的关键结构,如类、继承、封装、抽象、 多态和消息传递,也不足以刻画、评估和预测面向对象系统的质量。因而面向对象系统的 度量技术的研究和应用己引起学术界和产业界的广泛重视。论文结合面向对象技术,针对 如何构建0 0 系统的软件度量模型的理论、方法及技术进行了研究。 首先分析了现有的软件度量理论,在0 0 度量评价准则和标出一组0 0 度量套件的方法 的基础上,给出了一组切实可行的o o 度量套件及其形式化描述,使之能精确地应用于o o 的关键概念和结构。分析了现有的软件规模度量特点和应用于0 0 系统时的存在问题,提出 了类点分析法的规模评价模型,用以评估o o 软件产品特性,并应用在0 0 的设计阶段,独 立于软件开发的技术和设计工具。类点分析法中定义了两个相关联的度量c p l 和c p 2 ,其 目标旨在软件的整个开发过程中,当有效的信息被得到时,能不断地精化评估规模模型, 使之精确地预测0 0 系统的开发代价和项目管理。并给出了实施类点分析法的系统规模评 估过程。 软件质量度量模型是软件质量评价体系中的关键技术,一般采用层次结构的度量模 型。通过质量度量模型,就建立了软件内部属性和外部属性问的客观的定量的联系。提出 了改进的面向对象设计质量的层次模型,能应用在软件生命周期早期,以保证软件产品的 分析和设计有令人满意的内部质量属性。此模型用一组面向对象度量套件,评价类和对象 的结构、行为特性、以及它们之间的联系;并将面向对象设计特性和高层质量相关联。此 模型中的关联关系、权值能被容易地修改以适应多种不同的需求。通过质量度量模型,就 建立了软件内部属性和外部属性问的客观的定量的联系。最后,给出了o o 软件度量工具 的设计框架,用以规范化地帮助评测软件产品质量的过程,对于生成0 0 自动度量工具,有 理论上的指导意义。 关键词:面向对象技术,面向对象度量套件,软件规模评价模型,面向对象 设计质量模型,软件度量实现框架,开发代价模型。 江南大学硕士学位论文 f o c u s i n go ns o f t w a r e t h er e s e a r c ho ns o f t w a r e a b s t r a c t p r o d u c t i v i t ya n ds o f t w a r eq u a l i t yc o n t r o lh a ss p u r r e d m e a s u r e m e n tt e c h n o l o g yf o rt h ep r o j e c tp r o g r a 咖e ra n d m a n a g e r o b j e c t o r i e n t e ds o f t w a r ed e v e l o p m e n tr e q u i r e sad i f f e r e n ta p p r o a c hf r o m m o r et r a d i t i o n a lf u n c t i o n a ld e c o m p o s i t i o na n dd a t af l o wd e v e l o p m e n t 。t h i sm a k e s t r a d i t i o n a lm e t r i c si 1 1 一a p p l i c a b l et om e a s u r et h ec r i t i c a lo b j e c t o r i e n t e d s t r u c t u r e ss u c ha sc l a s s ,e n c a p s u l a t i o n , p o l y m o r p h i s m , i n h e r i t a n c e ,a b s t r a c t , p o l y m o r p h i z ma n dd e l i v e r i n gm e s s a g e ,a n dc a nn o tm e a s u r ea n dp r e d i c tt h eo v e r a l l q u a l i t y o fs o f t w a r ep r o d u c t a c c o r d i n g l y t h er e s e a r c ha n da p p l i c a t i o no f o b e c t o r i e n t e dm e a s u r e m e n ta r ei n c r e a s i n gf o c u s e do n t h i sp a p e ra t t e m p t st og i v e s o m es o l u t i o n so nh o wt om o d e ls o f t w a r e 白u a l i t ym e a s u r ec o m b i n e dw i t ho b j e c t e d o r i e n t e dt e c h n o l o g y t h i sp a p e rp r e s e n t sm e t r i ce v a l u a t i o n c r i t e r i aa n dt h ea p p r o a c ht oi d e n t i f y as e to b j e c t e d o r i e n t e dm e t r i c st h a ta r eu s e f u lt om e a s u r et h ec r i t i c a lc o n c e p t s o fo b j e c t e d o r i e n t e ds t r u c t u r e s , a n dg i v e saf o r m a l i s mf o rt h em e a s u r e m e n t t a k i n g i n t oa c c o u n te x i s t i n gs o f t w a r es i z em e a s u r e sa n dt h e i rd e f e c t s ,t h i sp a p e rp r e s e n t s c l a s s p o i n ta n a l y s i sf o re s t i m a t i n gt h es i z eo fo b j e c to r i e n t e ds y s t e m s t w o m e a s u r e sa r ec o r r e l a t i v e l yd e f i n e dt or e f i n ep r e l i m i n a r ys i z ee s t i m a t i o nw h e nm o r e i n f o r m a t i o ni sa v a i l a b l ei nt h ed e v e l o p m e n tp r o c e s s , a sp r e d i c t o ro fd e v e l o p m e n t e f f o r ta n dm a n a g e m e n tp r o j e c t s t h es i z ee s t i m a t i o np r o c e s st h a t1 e dt ot h e d e f i n i t i o no fp r o p o s e dm e a s u r e si s a l s og i v e n i tt u r n so u tt ob es u i t a b l et o c a p t u r es p e c i f i co b j e c t o r i e n t e df e a t u r e s , b a s e do nd e s i g nd o c u m e n t a t i o na n d i n d e 口e n d e n tt e c h n 0 1 0 9 y aq u a l i t ym o d e li sk e yt e c h n o l o g yi ns o f t w a r eq u a l i t ye v a l u a t i n gs y s t e m a h i e r a r c h i c a lm o d e lh a sb e e np r o p o s e dt oe s t a b l i s ht h el i n kb e t w e e ni n t e r n a lp r o d u c t c h a r a c t e r i s t i c sa n de x t e r n a lq u a l i t ya t t r i b u t e si no b j e c t i v ea n dq u a n t i f i a b l ew a y a ni m d r 。v e dh i e r a r c h i c a lm o d e l sf o rt h ea s s e s s m e n to fh i g h l e v e ld e s i g nq u a l i t y a t t r i b u t e si no b j e c t o r i e n t e dd e s i g ni sb r o u g h tf o r w a r d ,w h i c hc a nb ea p p l i e di n t h ee a r l ys t a g e so fd e v e l o p m e n tt oe n s u r et h a t t h ea n a l y s i sa n dd e s i g nh a v e 摘要 f a v o r a b l ei n t e r n a lp r o p e r t i e s i nt h em o d e l ,s t r u c t u r a la n db e h a v i o r a lp r o p e r t i e s o fc l a s s e s , o b j e c t , a n dt h e i rr e l a t i o n s h i p sa r ee v a l u a t e du s i n gas u i t eo f o b j e c t o r i e n t e dd e s i g nm e t r i c s d e s i g np r o p e r t i e s a r el i n k e dt o h i g h l e v e l a t t r i b u t e s t h em o d e lc a nb ee a s i l ym o d i f i e dt oi n c l u d ed i f f e r e n tr e l a t i o n s h i p s a n dw e i g h t sa d a p t a b l et od i f f e r e n tu s e rd e m a n d s a tl a s t ,ai m p l e m e n t i n gf r a m e w o r k f o rt h em e a s u r e m e n tg i v e sas y s t e m a t i cp r e s e n t a t i o no ft h eb a s i ca c t i v it i e si n t h es o f t w a r em e t r i cl i f ec y c l e ,a n dp r o v i d e st h e o r e t i c a lg u i d a n c eo na u t o m a t i c a l l y d e v e l o p i n gm e t r i ct 0 0 1 s k e yw o r d s :o b j e c t o r i e n t e dt e c h n o l o g y t h em o d e lf o rs i z em e a s u r e m e n t as e to fo b j e c t o r i e n t e dm e t r i c s , t h em o d e lf o ro b j e c t o r i e n t e dd e s i g n q u a l i t y , m e t r i ci m p l e m e n t i n gf r a m e w o r k , m o d e l i n gd e v e l o p m e n t e f f o r t 。 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 本人为获得江南大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:丞整坠日期:西年 月f 日 关于论文使用授权的说明 本学位论文作者完全了解江南大学有关保留、使用学位论文的规 定:江南大学有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、 汇编学位论文,并且本人电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 签名:韭农 第一章绪论 1 1 研究背景 第一章绪论 近年来,随着多媒体化、网络化的信息系统的广泛应用,办公自动化设备、 家用电器设备在功能上越来越丰富,而控制这些系统正常工作的核心一软件也 变得规模越大,复杂性越强。这促使管理人员对软件质量控制越来越重视,这种 重视引起了两种效果:( 1 ) 要求新的、更好的软件开发方法和技术:( 2 ) 在软 件开发过程中,进行软件度量。软件度量是对软件开发项目、过程及其产品进行 数据定义、收集以及分析的持续性定量化过程,其目的在于对此加以理解、预测、 评估、控制和改善。通过软件度量可以改进软件开发过程,促进项目成功,开发 高质量的软件产品。而使用良好的软件开发方法和技术,能加快软件开发的周期, 提供软件产品的生产率。 软件度量的必要性和重要性已为软件界所认同,这导致了在软件度量领域的 大量研究工作,尤其是评估和预测软件的质量。英国启动了一个名叫“基于结构 的软件度量”的研究项目”“,是由英国伦敦南湾大学系统和软件工程中心提出来 的,这个项目中的大部分软件度量方法被认为是基于素数分解。欧共体创立了一 个名叫m e t k i t 项目( m e t r i c se d u c a t i o n a lt 0 0 1 k i t ) ”“。m e t k i t 的目的通过 开发面向工程和学术界的教材来唤起相关人员的度量意识和提高软件度量在欧 洲工程界的应用。m e t k i t 项目成果之一是f e n t o n 出了一本关于软件度量领域杰 出的综合评述论著1 。日本也积极开展了软件度量的工作,其中,其一个格外出 色的研究工作是a z u m a 的i s 09 1 2 6 0 ”标准。伴随着这个标准,有超过1 0 0 个软 件度量方法作为软件品质的定量标准被提出。 美国和加拿大是最早进行软件度量活动的国家。自7 0 年代中期以来,美国 建立了各种各样的软件度量组织和活动。目前,许多度量研究活动由美国卡内基 梅隆的软件工程研究所( s e i ) 主办进行,这些活动是促进组织间提高应用软件 度量的舞台。许多大型公司和组织广泛地应用了软件度量,如美国电话电报公司 ( a t t ) ,美舀国家航空和宇宙航行局( n a s a ) ,摩托罗拉公司( m o t o r o l a ) ,惠 普h e w l e t tp a c k a r d 等,马路兰的软件工程实验室( s e l l a b ) 有长达1 5 年的悠 久软件度量历史“。 目前,我国软件度量的研究开始受到重视,但研究工作还处于开始阶段,提 出的度量理论也比较少,大部分都是经验总结,丽不是严谨的理论。有人在理论 研究方面作了些尝试,提出基于一般度量理论的软件度量理论,以及度量方法的 验证理论,但毕竟不完善。 1 江南大学硕士学位论文 软件度量的研究,当前主要集中在三个方面工作: ,寻找新的和更有效的度量指标; 确认已知度量的有效性: 以及度量的形式化。 在寻找新的和更有效的度量指标方面,主要采用面向对象的技术,针对的主 要领域包括:产品的结构度量、产品的质量度量和过程度量。产品结构度量主要 是对软件工程过程中生成的文档例如需求规约、设计规约、源程序等进行结构上 的度量。被度量最多的是源程序。这是因为与其它文档相比,源程序对软件的语 法及语义的形式化表达更完整。产品的质量度量针对的是软件产品的质量特性, 如可靠性、可维护性等。过程度量集中在软件过程的特性上,例如需求工作量、 设计工作量等。 确认已知度量的有效性,最常使用的确认方法是用度量对软件质量特性做预 测。目前使用软件产品度量对质量特性做预测的工作都是使用统计学的方法,如 方差分析( a n a l y s i so fv a r i a n c e ) 和回归( r e g r e s s i o n ) ,是通过对实践数据 ( e m p i r i c a ld a t a ) 进行分析完成的。 度量的形式化研究目前处于在零星的个人探讨阶段,并未形成科研成果。个 别论文出于对度量统一提取的考虑,用集合论的方法对度量的计算进行了描述。 但目前没有对度量领域及度量与设计整体的形式化描述的科研成果。 由于面向对象( o b j e c t e d o r i e n t e d ,o o ) 软件的开发,在软件生命周期、 系统结构、复用以及项目管理等方面,不同于传统软件,从而使传统的软件度量 不再适用于面向对象的关键概念,如类、继承、封装、抽象、多态和消息传递, 也不足以刻画、评估和预测面向对象系统的质量。因而面向对象度量技术的研究 和应用已引起学术界和产业界的广泛重视”1 ,并在产业界具有良好的应用前景。 目前,许多基于0 0 软件度量方法和质量模型,仅能在软件产品完成或接近 完成后评估质量,他们依赖于从从产品实现中提取的信息,并期望用这些信息帮 助产品研制人员改进软件内部质量,但为时已晚了,而因应在产品完成之前。因 此,有必要在软件开发的早期即需求分析和设计阶段,进行质量评价,使开发者 能发现问题,删去与质量标准相违背的内容,消除不必要的复杂性,以确保产品 需求和分析有“令人满意”的内部特性。 毕业课题涉及的研究工作有: 分析和理解软件度量领域的的理论基础,以及国际上已经形成的度量标 准和度量方法; 分析0 0 系统本身的设计特点,并结合j a v a 技术和w e b 技术,研究基于 b e a n 的分布式应用系统的开发方法、技术实现和应用实例,迸一步掌握 o o 系统的关键结构; 第一章绪论 研究o o 度量评价准则和标出一组0 0 度量套件的方法; 给出了一组切实可行的0 0 度量套件及其形式化描述; 研究o o 系统的复杂性和0 0 系统的技术特性,从这两个角度来度量系统 的规模,并建立0 0 系统的软件规模评价模型; 分析0 0 设计质量模型的相关理论和研究方法: 建立0 0 系统的质量模型并进行有效性的验证; 研究0 0 软件度量模型的实现的框架结构。 1 2 论文组织 本文共分为7 个章节,主要内容是对研究软件度量的理论,针对0 0 系统设 计和分布式系统设计特点,讨论如何创建软件度量模型、系统规模评价模型和 o o 设计质量模型,进行模型的有效性的验证,以及软件度量工具的实现框架结 构。 第一章为“绪论”。首先讲述了对软件质量控制的重视,引起了软件度量研 究。介绍了软件度量领域研究的背景、发展状况和存在问题。接着描述了课题的 开展工作和论文的组织情况。 第二章为“软件度量理论和技术综述。介绍了软件度量的相关概念和理论。 提出了0 0 度量评价准则和标出一组0 0 度量套件的方法,在此基础上,给出了 一组切实可行的o o 度量套件及其形式化描述方法。 第三章为“面向对象系统的软件规模评价模型”。分析了现有的软件规模度 量方法的特点和应用于0 0 系统时的存在问题,提出了新的基于类点c p 分析法, 用以评估0 0 软件产品的规模,使之能精确地捕捉0 0 的关键概念和结构,此方法 能够应用在o o 的分析设计阶段。 第四章为“软件度量模型理论和建模方法”。讨论了质量度量模型技术是 软件质量评价体系中的关键技术,一般采用层次结构的度量模型。分析现有的软 件质量模型和不足处,给出了一般的软件质量度量模型的建模方法和确认方法, 第五章为“面向对象设计质量度量模型”。提出了改进o o 设计质量模型。 此模型中给出了一组面向对象度量套件,并将面向对象设计特性和高层质量相关 联的关系和权值。对模型进行了有效性的验证和比较。 第六章为“软件度量实现框架”。介绍了o o 软件度量的实现框架,用以规 范化地帮助建立评测软件产品质量的过程。 第七章“结论与展望”。总结了本文的工作,就系统还没有考虑或做得不完 善的一些问题提出来做了相关的探讨,并对软件度量的发展进行了展望。 3 江南大学硕士学位论文 第二章软件度量的理论 软件开发工业的市场竞争,已丌始重视软件的质量,这导致了在软件度量 领域的大量研究工作,尤其是评估和预测软件的质量。度量的研究可以追溯到 7 0 年代,其时,最为流行的软件开发方法是传统的结构化方法。早期著名的度 量,如m c c a b e 【9 j 的循环计数( c y c l o m 撕cn 眦b e r ) 、h a l s t e a d 【3 7 j 的软件科学和 a l b r e c h t l 2 0 j 的函数点( m n c t i o np o i m ) 等等,也都是针对传统的开发方法。制定 的一些质量标准也是针对传统的结构化的软件,如i s 0 9 0 0 0 3 【3 8 i 。 由于面向对象( o b i e c t e d o r i e m e d ,0 0 ) 软件的开发,在软件生命周期、系 统结构、复用以及项目管理等方面,不同于基于功能分解和数据流程的传统软 件,从而使传统的软件度量不再适用于面向对象的关键概念,如类、继承、封 装、抽象、多态和消息传递,也不足以刻画、评估和预测面向对象系统的质量 f 30 1 。因而面向对象度量技术的研究和应用已引起学术界和产业界的广泛重视, 并在产业界具有良好的应用前景。 为了度量0 0 产品,本节首先分析了o o 度量的产品特性,在此基础上, 提出了o o 度量评价准则和标出组0 0 度量套件的方法,在此基础上,给出 了一组切实可行的0 0 度量套件及其形式化描述方法,使之能精确地应用于0 0 的关键概念和结构。 2 10 0 度量的特性 任何产品的技术度量都取决于产品的特性。o o 软件与使用传统方法开发的 软件的度量方法截然不同,o o 软件拥有的特性。2 1 包括以下五个方面: 1 局域性 局域性( l o c a l i z a t i o n ) 是指信息被集中在一个程序内的方式。 ( 1 ) 传统方法:数据与过程分离,功能分解和功能信息局域化。其典型 的实现形式为过程模块,工作时用数据驱动功能。此时的度量放在功能内部 结构和复杂性上( 如模块规模、聚合度、环路复杂性等) 或放在该功能与其 他功能( 模块) 的耦合方式上。 ( 2 ) o o 方法:局域性基于对象,因为类是0 0 系统的基本单元,对象封 装数据和过程,因此应把类( 对象) 作为一个完整实体来量度。在考虑类协 作中的量度时,必须能适应一对多和多对一的关联。 2 封装性 4 第二章软件度量的理论 封装( e n c a p s u l a t i o n ) 是指一个项集的包装。 ( 1 ) 传统方法:记录、数组,只有数据没有过程,为低层次的封装:过程、 函数、子例程和段,则只有过程没有数据,为中层次的封装。其度量的重点分 别在代码行的数据和环路的复杂性上。 ( 2 ) 0 0 方法:0 0 系统封装包括类的属性、操作和特定的类属性值定义的 对象的状态。其度量和重点不是单一的模块,而是包含数据( 属性) 和过程( 操 作) 的包。 3 信息隐藏 信息隐藏( i n f o 珈a t i o nh i d i n g ) 是指隐藏了程序构件操作的细节,只将访 问该构件所必要的信息提供给访问该构件的其他构件。在这一点上,0 0 方法和 传统方法基本一致。因此,0 0 系统应支持信息隐藏,除提供隐藏等说明的量度 外,还应提供0 0 设计质量指标。 4 继承性 继承性( i n h e r i t a n c e ) 是指一个对象的属性和操作能够传递给其他对象的 机制。继承性的发生贯穿于一个类的所有层次。一般来说,传统软件不支持这 种特性。而对o o 系统来说,继承性是一个关键性的特性。因此,很多0 0 系统 的度量都以此为重点,如子类的数量( 类的直接实例数量) ,父类的数量,以及 类的嵌套层次( 在一个继承层次中,类的深度) 。 5 抽象性 抽象( a b s t r a c t i o n ) ,使设计者只关心一个程序构件的主要细节( 数据和过 程两者) ,而不考虑底层的细节。抽象也是一种相对概念,抽象在o o 和传统开 发方法中都被采用,如处于抽象的较高层次时,我们可忽略更多的细节,只提 供一个关于概念级的一般看法:当处于抽象的较低层次时,可以引入更多的细 节,即提供一个关于概念级的更详细的看法。在o o 中,由于类是一个抽象,它 可以从许多不同的细节层次和用许多不同的方式( 如作为一个操作的列表、一 个状态的序列、一组合作) 来观察。o o 量度可用一个度量项来表示抽象,如 每个应用类的实例化的数量、每个应用类被参数化的数量,以及类被参数化与 未被参数化的比例等。 2 - 2 度量评价准则 基于功能分解和数据分析的传统软件设计方法,其采用的一组度量孤立地 江南大学硕:l 二学位论文 评测软件结构设计和数据结构。而面向对象的一组度量必须强调将函数和数据 结合为一个整体。评价一个度量在定量预测软件质量中的作用,应以要评测的 软件质量属性为基础。因此,o o 度量准则,应能用于评测下面的质量属性“1 : 效率所有的结构是否是有效率地设计? 复杂性结构能有效地减低体系结构的复杂性? 可理解性设计是否增加了心理的复杂性? 复用性设计质量能支持最大的复用? 可测试性维护性结构能支持易于测试和改变? 一个度量,无论是传统的还是新的0 0 度量,必须真实地反映软件实体的内 部属性,进而最终地能有效地评测个或多个质量属性。 2 3 定义0 0 度量套件 研究面向对象软件系统的设计特点,定义一组反映o o 系统实体特性的度量 套件,并独立于所采用的技术或工具。然后,精确地建立这组度量套件和系统 特性之间的关联关系。标识一组0 0 度量套件的方法:标出o o 设计的关键结构, 选取的度量套件应能应用于这些结构。本节提出的一套度量包括:为0 0 环境所 需的3 个传统度量,以及6 个新的0 0 度量【2j 。这套度量评价了o o 的方法、类、 耦合和继承的概念,评估的重点放在对象内部的结构和对象之间的外部的交互, 评测算法的有效性和机器资源的利用,以及程序员建立、理解、修改和维护软 件的心理能力。 1 传统的度量 在0 0 系统中,传统的度量一般应用于评测0 0 开发的复杂性、规模和可理 解性。 度量l :c c ( c y c l o m a t i cc o m p l e x 时) c c 被用于评测方法内个算法的复杂性。c c 定义为一个方法内独立的测 试用例的个数。c c = 边数一结点数+ 2 ,其中边数和结点数分别是方法的算法设计 的流程图上边数和结点个数。图2 一i 给出了计算c c 的实例。 6 第二章软件度量的理论 s e a u e n c e 1 2 + 2 = 1 汁,l h e n : 3 - 3 + 2 = 2 w h ei o o p : un t i ii o o d 3 3 + 2 = 2 3 3 + 2 = j 图2 1c c 计算实例 度量2 :s i z e ( l i ec o u n t s ) s i z e 可被用来评价代码的规模大小,规模的计算方法有多种算法。l o c ( l i n ; 0 fc o d e ) 算法是计算代码的全部行数。n c n b ( n o n c o 咖e n tn o n b a n k ) 算法是 。f 计算剔除注解行和空行的源代码横数。e x e c ( e x e c u t a b l es t a t a m e n t s ) 算法韪 计算源代码中可执行语句的行数。 度量3 :c p ( c o m m e tp e r c e n t a g e ) 注解行包括语句中注解行和独立的注解行数。 c p = 注解行数( 全部行数一空白行数) 。 注解的百分率高,则可理解性和可维护性好。 2 新的0 0 特有的度量 为了能评价o o 的关键概念:方法、类、藕合和继承,下面定义了一组与 0 0 特性相关的0 0 度量,并给出了形式化的描述方法 度量4 :类的方法带权之和w m c ( w e i g h t e dm e t h o d sp e r c i a s s ) 如果类c 定义有n 个方法m 。,m :,【i i | l ,且设c 。,c 。,c 。是这些方法的 复杂度, 则w m c ( c ) 2zc i 。 i :1 w m c 是开发和维护类的时间和精力的指示器。类的w m c 越大,对子类的影响就 越大,其通用性和可复用性就越差。 7 p l o 江南大学硕士学位论文 度量5 :类的响应数目r f c ( r e s p o n s e f o r ac l a 弱) r f c ( c ) = j r sj ,其中r s 是一个类响应集: r s = m u a l l i r i , 其中: 4 ) = 该类的全部方法集合, r i = 被方法m i 调用的方法集合。 一个类响应集是该类的对象收到消息时被调用执行的方法集合( 包括此类 继承的所有方法) ,此集合的基数度量了此类对象的属性。因为它明确地包含了 在此类的外部被调用的方法集,也是此类与其它类潜在通信的一个度量。类的 r f c 越大,类就越复杂,测试和调试就越困难。 度量6 :类方法内聚度的缺乏l c o m ( l a c ko f c o h e s i o no f m e t h o d s ) l c o m 是通过实例变量集,度量一个类的方法集的不相似性“。 设类c 定义了n 个方法m 】,m 2 ,m n , i i ) = 方法m i 所用的实例变量集, p : ( i i ,i j ) li in i j = 中 q = ( i i ,i j ) ii in i j 中) l c o m = ( c ) = i p l i q i ,女口果l p i i q i = 0 ,否则 一个类的内聚度刻画了本地方法和本地属性( 实例变量) 相联系的精密程 度。l c o m 越大,类的封装性就越差,应将此类分成几个子类;l c o m 越小,类的 内聚度越大,类的封装性就越好”1 。 度量7 :类的耦合度c b o ( c p o u l i n gb e t w e e no b j e c tc l a s s e s ) 一个类的c b o 定义为与之耦合的其它类的数目。1 。 设c 表示系统中全部类的集合。 c ,d c ,u s e s ( c ,d ) 表示类c 的方法调用了类d 声明的方法或实例变量, c b o ( c ) = l d c 一 c ) 1u s e s ( c ,d ) v u s e s ( d ,c ) i 由于同一个类的对象具有相同的属性,当在一个类方法中调用了在另个 类中声明的方法或实例变量时,我们就说两个类是祸合的。类的c b 0 太大,有 害于模块化设计和阻碍软件的复用。应使c b o 达到最小,便于在不同应用系统 中的软件复用。 度量8 :继承树的深度d l t ( d e p t ho f i n h e r i t a n c e ) 第二章软件度量的理论 一个类的深度是它在继承树中类结点到树根结点的最大深度。类的深度越 大,其继承的方法数就越多,因而也就是难预见它的行为,但所继承的方法的 可复用性就越强。 d i t ( c ) = fm i n h ( c ) 其中:m i n h ( c ) 为类c 继承的方法集。 度量9 :子类数目n o c ( n u m b e ro f c h i i d r e n ) n o c 定义为该类的直接子类的数目。n o c 是一个类对设计和系统的潜在影响 指示器。n 0 c 越大,表示父类的不合适的抽象可能性就越大,但其可复用性越 大,影响越大,因而需要更多的测试。 0 0 范型的主要方面有封装性、多态性和继承性。从上面的讨论可知,系统 的多态性通过r f c 和删c 被间接地度量,c b o 评测封装性,系统的继承性用d i t 和n o c 评测。 o o 度量是0 0 技术不可分割的一部分,在0 0 软件开发中具有重要的作用。 利用度量能定量理解系统的体系结构和详细设计,利用度量的反馈信息以构造 质量更好的系统:提供0 0 项目开发成本估算和进度预计的良好基础;有助于确 定各种软件开发策略的作用和效果。 9 江南大学硕士学位论文 第三章面向对象系统的软件规模评价模型 3 1 软件规模综述 由于面向对象( o b j e c t e d 一0 r i e n t e d ,0 0 ) 方法在软件开发中的广泛使用, 已促使人们研究0 0 产品的度量,以便在0 0 环境下能够监控、测试和支持软件 的开发与维护。至今,已有一些度量被定义用来评估软件的规模。例如,源代 码行方法( l o c ) 和功能点方法( f p s ) 已经获得广泛的接受,以间接地预测 软件开发的代价、费用和周期。但是,现有的软件规模度量是为面向过程的范 畴而设计的,已不再适用于捕捉0 0 系统的特性,如类、封装、继承、多态和消 息传递等。因而,需要新的适合o o 系统规模的的评价方法。 软件度量包括三个维度,即项目度量、产品度量和过程度量,具体情况如 表l 所示。 表3 1 软件质量三维度 度量维度侧重点具体内容 项目度量理解和控制当前项目的情况和状态;项规模、成本、工作量、进 目度量具有战术性意义。度、商场力、风险、顾客 满意度 产品度量 侧重理解和控制产品的质量状况,用于以质量度量为中心,包括 对产品质量的预测和控制,针对具体的功能性、可靠性、易用性、 项目进行。效率性、可复用性、可维 护性、可移植性等 过程度量理解和控制当前情况和状态:还包括了如成熟度、管理、生命周 对过程的改善和未来过程的能力预测;期、生产率、缺陷分布率 过程度量具有具有战术性意义。在整个 组织范围内进行 根据美国软件工程研究所s e i 开发的核心度量项目( s e ic o r em e t r i c s ) , 软件度量的核心项目包括:规模( s i z e ) 、代价( e f f o r t ) 、进度( s c h e d u l e ) 和缺 0 第三章面向对象系统的软件规模评价模型 陷( d e f e c t ) ,而在这四个核心度量项目中,软件的系统规模度量( s i z e m e a s u r e m e n t ) 又是估算软件项目工作量、编制成本预算、策划合理项目进度的基 础1 。系统规模代表了软件产品人们最感兴趣的一个产品内部特性,被使用在项 目代价费用的估算模型中,以便预算软件设计和实现所需的开销和费用。因此, 一个好的系统规模评价是规划软件项目开发的首要任务之一,也是项目成功的核 心要素,它将有助于软件开发团队准确把握开发时间、费用分布以及缺陷密度等。 至今,现有的软件规模度量是为面向过程的范畴而设计的,已不再适用于捕 捉0 0 系统的特性。因而,需要新的适合o o 系统规模的的评价方法。 为了得到有效的o o 系统规模的评价方法,首先分析了现有的软件规模度量 方法的特点和应用于0 0 系统时的存在问题;接着,提出了新的基于类点c p ( c l a s s p o i n t s ) 分析法,用以评估o o 软件产品的规模,使之能精确地捕捉0 0 的关键概 念和结构,此方法能够应用在o o 的分析设计阶段。类点分析法的核心是定义了 两个度量c p l 和c p 2 。c p l 被用于软件开发过程的初期,完成软件规模的初始评 价;c p 2 被用于开发初期以后的阶段,是对c p l 的精化,用c p 2 评估的软件规模 信息更完善、更精确。c p 方法的目标旨在软件整个开发过程中,当有效的信息 被得到时,能够不断地细化评估规模。 给出了实施类点法的软件规模评估过程模型,它被结构化五个主要步骤: 第一步:分析系统设计规格说明书,识别出系统范围内的所有类的集合,并 按类范畴划分成四种系统组件类型:问题域类型、人机交互类型、数据管理类型 和任务管理类型。 第二步:计算被识别出来的每一个类的复杂度。一个类的复杂度是由类中定 义的方法数目、定义的数据属性数目和此类向其它类请求的服务数目决定。 第三步:计算未调整的类点数。根据计算得到的每个类的复杂度和系统组件 类型,进行复杂度加权因子求和,得到未调整的类点数c p ; 第四步:针对0 0 应用环境。考虑1 8 个系统特性对系统的影响程度,计算技 术复杂度调整因子。 第五步:用调整因子对c p 进行调整,得到调整后的类点数。 本节提出的类点分析法的技术,通过经验证明:能够评估软件规模属性,为 及早地估计0 0 系统的成本、工作量成为可能,为o o 开发过程的管理活动提供了 基础。 3 2 现有的软件规模度量方法 目前在软件度量领域已经存在几种不同的方法,以度量软件产品、软件开发 过程和相关资源的特征。下面将给出些已知的规模度量方法。 江南大学硕:l :学位论文 1 l o c 分析法 一个衡量软件规模最常用的概念是l o c ( l i n e0 fc o d e ) ,l o c 指程序中所 有可执行的源代码行数,它计算简洁、通用性强,l o c 的价值和人均月代码行数 可以体现一个软件生产组织的生产能力。 但l o c 计算仅能在软件产品得到之后,它不能用来预测软件的规模。 2 功能点分析法 软件规模的评估,需要在软件生命周期的早期进行,这推动了软件规模技术 的更进一步地研究,功能点分析法f p a ( f u n c t i o np o i n ta n a l y s i s ) 就是这样的 一种研究技术,它是在需求分析阶段基于系统功能的一种软件规模评估方法,由 i b m 的工程师a 1 b r e c h “”于2 0 世纪7 0 年代提出,用来评估m i s ( m a n a g e m e n t i n f o r m a t i o ns y s t e m s ) 的规模。 f p a 从系统的复杂性和系统的环境特性这两个角度来度量系统的规模,其特 征是:“在外部式样确定的情况下可以度量系统的规模”,“可以从用户角度把握 的系统规模进行度量”。经由i s o 组织已经有多种功能点评估方法成为国际标准, 如: i f p u g 功能点法、m a r ki if p a 功能点法、n e s i a 功能点法、c o s m i c f f p 方法等,这些方法都属于a 1 b r e c h 功能点方法的发展和细化。 1 ) 功能点五要素 功能点分析的初衷之一是让项目组和客户可以使用同一方法定义功能需求。 结果证明,理解客户需求最好的办法是站在客户的角度分析软件系统产生的结 果,从而来确定客户关心的问题。因此,功能点分析的一个主要的目标就是从用 户的角度定义系统的能力。为了达到这个目标,专家们分析了人们对计算机系统 的不同使用方式。从用户的观点来看,系统是从五个基本方面帮助他们进行工作 的:其中两项是最终用户的数据需求,因此称作“数据功能”:另外三项强调客 户对数据的可调用性,称作“交易功能”。 功能点的五个要素如下: 数据功能: 内部逻辑文件 外部界面文件 交易功能: 外部输入 _ 外部输出 一外部查询 数据功能类型属于数据的读取和写入功能,交易功能重点是客户可以调用 第三章面向对象系统的软件规模评价模型 i l f 和e i f 中数据的能力,主要包括:维护、查询、输出数据。 ( 1 ) 内部逻辑文件i l f ( i n t e r n a ll o g i c a lf i l e ) :这是第一项数据功能, 使客户可以使用他们负责维护的数据。例如驾驶员在起飞行前通过显示器输入一 系列航行数据,这些数据保存在一个文件里备用,并可以在执行过程中进行修改。 因此,驾驶员负责维护包含航行信息的文件。数据在系统中的逻辑分组是由最终 用户维护的,我们把它叫做“内部逻辑文件” ( 2 ) 外部接口文件e i f ( e x t e r n a li n t e r f a c ef i l e ) :这是第二项数据功能, 也和数据的逻辑分组有关。在这种情况下,用户不负责维护数据,数据在另一系 统中驻留由其他用户进行维护。该数据只供系统用户参考使用。例如:飞行中, 驾驶员可能需要参考某卫星或地面定位系统的定位数据。驾驶员不负责更新这些 数据但要参考使用。这样,这些只供参考使用的其他系统的数据分组就称为外部 接口面文件。 ( 3

温馨提示

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

评论

0/150

提交评论