面向对象软件度量方法及自动化度量工具研究

来源 :企业技术开发·下半月 | 被引量 : 0次 | 上传用户:glrioa
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:度量技术是保证软件质量的重要手段,它定量地反映了软件某一方面的特征。随着面向对象技术的发展,传统的结构化度量不再适合面向对象的软件,面向对象度量是对象技术不可分割的一部分,基于对象技术的软件度量成为必然的需求,从而面向对象软件设计度量的研究与实现是文章研究的内容。文章在现有度量公式的基础上,利用正则表达式,可以简单度量出Java源代码的复杂度属性。
  关键词:软件度量;面向对象;度量工具
  中图分类号:TP311.5
  文献标识码:A
  文章编号:1006-8937(2009)16-0116-02
  
  1 软件度量的背景和意义
  
  软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量,就不能从软件开发的暗箱中跳将出来。通过软件度量可以改进软件开发过程,促进项目成功,提高软件质量。
  随着面向对象开发方法和面向对象设计语言的广泛使用,用户采用面向对象技术开发的软件系统和产品日益增多,有关面向对象软件度量的研究也受到软件界的重视,面向对象技术采用数据抽象、封装、继承、多态性、信息隐藏、重用机制等。为提高软件的可重用性,增强可维护性、可靠性,提高生产效率等方面提供了可能。
  
  2 面对对象软件度量
  
   2.1 度量的定义


  度量(Metrics)的定义是:“度量是一个函数,它的输入是软件数据,输出是单一的数值,能用以解释软件所具有的一个给定属性对软件质量影响的程度。”软件质量度量是对影响软件质量的属性所进行的定量测量。
  人们已经提出的软件度量包括软件复杂性度量、模块性度量、可修改性度量、可移植性度量、可扩充性度量、可靠性度量、可维护性度量等等。尽管在IEEE的定义中,“软件数据”没明确提出,但如果评测一个软件产品,则这个被评测的产品就是输入的软件数据,这些软件数据均可以形式地予以定义。
  
  2.2 面向对象软件度量模型
  传统的非面向对象的软件度量较多的关心软件复杂度的度量。通过软件复杂性折射软件的质量。面向对象的方法学的出现带来了软件开发的革命,也带来了面向对象软件度量的革命。针对面向对象的软件生命周期和质量保证,F.B.Abem非形式的提出了七条标准:①度量应该形式化定义;②度量应该与系统大小无关;③度量应该选择合适的刻度类型;④度量应该在生命周期的早期就可用;⑤度量应该具有可扩展性;⑥度量应该易于计算;⑦度量应该独立于语言。
  Abreu的七条标准对开发针对面向对象的度量具有一定的意义。近几年来涌现了大量面向对象的软件度量模型,比较有影响的如:C&K度量集,MOOD度量集,MOOD2度量集等。
  
  3 Java软件的度量工具的设计思想与开发
  
  3.1 Java软件度量工具(Metric Tool)的设计


  所谓Java软件的质量度量,就是对Java程序源代码进行分析度量。Java软件的度量工具设计的总体思路将遵从面向对象设计的基本原则,如图1。
  文章设计的软件度量工具是一个基于C&K和MOOD理论的度量工具,该工具可以运行在Windows XP上,其主要功能就是通过对用户Java源程序的扫描,计算出C&K度量指标:方法数、继承类的总数,接口总数,继承树深度(DIT)、孩子数目(NOC)、每个类的加权方法(WMC);MOOD度量指标:方法继承因子(MIF)、多态因子(PF)。通过所该工具得到的度量数据,可以帮助开发人员及时地了解程序的复杂性,估计出程序的稳定性及可维护性,指导测试人员进行有效的测试。
  
  3.2 实现功能模块的简述
  查看度量结果有两个入口,首先是本地工程度量,其次是历史工程查看。
  3.2.1 本地工程度量(XML信息库的创建)
  由于我们设计的度量工具以xml作为信息库,因此度量某工程首先必须把需要度量的信息存入xml信息库中,实现的步骤如下:
  ①选择工程目录,遍历整个工程目录,提取出.java的文件名。②得到的.java的输出流(BufferedReader),将其传人语法分析器中,返回List集合类,该集合存放着XClass对象。由从该XClass对象中可以提取出这个类的继承类、实现的接口、方法个数、方法名称、变量个数及名称、子类的个数、继承数的深度等信息。③将得到的XClass传入XML创建类(XmlFileCreate)中,该类通过传入的信息返回要一定格式的Document,通过idom来构建xml信息库。JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。在使用设计上尽可能地隐藏原来使用XML过程中的复杂性。④将得到的Document写入创建的XML文件中,存放在工程目录xmlfile文件夹下面,该文件默认以工程名称+时间作为文件名,来避免出现相同的文件名,名字规范如下:softmeasure-2008-05-31 18:36:50.xml。⑤历史文件的管理。包括历史文件的修改名称、删除、查看度量结果。
  3.2.2 度量计算器的实现
  度量计算器读取xml信息库的结果,根据度量模型对相关度量指标进行计算。度量计算器只和知识库交换,不受外界环境的影响,这是知识库的隔离变化和分析器的适应变化发挥功效的体现。度量计算器套用C&K和MOOD度量集给出了一些计算公式,来实现软件工程的度量。
  3.2.3 度量结果的展示
  ①窗口视图展现。度量结果的展示由三个窗口视图JInteranlFrame和中间JTabbedPane组成。三个窗口视图分别是项目视图、类视图、信息视图。类视图:以树的形式展现了类的信息,包括继承类、实现接口、方法体及名称;信息视图:以JTable显示有C&K、MOOD套件度量出的信息、以及其他类的信息;项目视图:以树的形式展现了工程目录所有java文件。树的结构按工程目录一>包名称一>类名称,该树添加了一个鼠标事件监听器。②中间区域信息的展现。中间信息区域为一个JTabbedPane面板,有4中的tab页的类型,报表的实现一JFmeChart包来实现,JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,本系统中用到了饼图和柱状图的实现。③XML信息库的读取和存放。对XML信息库的读取同样是用jdom包实现,读取到的信息则将其存在Map集合类中,以key值作为包名,值是一个以类名为key值,TreeNode类为value值的HashMap。④面板工厂管理。由于系统面板比较多,所以采用工厂模式对面板进行管理,使得代码更加清晰易懂。⑤程序截图,如图2所示。
  
  3.3 Java软件度量工具开发平台与工具的介绍
  Eclipse平台:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。Eclipse是一个开发源码项目,可扩展性很好,而且任何人都可以免费得到,并可以在此基础上开发各自的插件,开源插件和商业插件都可以用来扩充Eclipse。因此越来越受人们关注。
  
  4 结语
  
  面向对象软件度量及其自动化的研究具有广阔的应用前景。面向对象软件的度量目前只是处于探讨阶段,尚没有从面向对象软件的特点挖掘出具有理论价值和实用价值的度量方法和准则。以上的度量方法只是对面向对象技术中某一方面特有的内部属性进行了评估,还不能将它们与整个系统的件复杂性对应起来。即使不精确,也有一定的参考价值,因此,我们所设计出的度量工具也正基于这些度量集来实现。
其他文献
摘要:文章从工程的实施背景、工程实施效益等方面,结合环境法相关知识对“母亲水窖”工程的实施情况进行浅显的分析和探讨。  关键词:母亲水窖;集雨技术;水质保证  中图分类号:TV697.1文献标识码:A文章编号:1006-8937(2009)18-0146-01    在中国西北黄土高原部分地区,严重缺水的恶劣状况,导致当地农民生活艰难。为了帮助那里的人们特别是妇女迅速摆脱因严重缺水带来的贫困和落后
期刊
摘要:工程监控量测是科学施工的重要组成部分,确定和研究合理的监测措施对安全施工具有十分重要的意义。文章结合某实际工程的施工措施,探讨了其监测措施。  关键词:工程段;监测措施;探讨  中图分类号:TB22文献标识码:A文章编号:1006-8937(2009)18-0153-01    场地范围内自上而下地层有:人工填土层、淤泥质土层、泥质粉砂、淤泥质细砂、冲积-洪积细砂层、冲积-洪积中粗砂层、冲积
期刊
摘要:文章采用实地调查的方法,从旅游对消除贫困贡献的角度,以广东省梅州市为例调查分析旅游扶贫的情况,并提出改进建议,为当地的旅游扶贫发展、促进当地构建社会主义和谐社会提供参考。  关键词:贫困;旅游扶贫;梅州市  中图分类号:F590  文献标识码:A  文章编号:1006-8937(2009)16-0034-02    贫困问题是全球关注的焦点。作为世界上最大的发展中国家,消除贫困也始终是中国社
期刊
摘要:文章基于牙根水电站项目的实证研究,运用投入产出法对该电站对区域经济的影响进行了评价,为企业进行项目经济评价提供参考。  关键词:区域经济影响;牙根水电站;投入产出法;经济评价  中图分类号:F061.5  文献标识码:A  文章编号:1006-8937(2009)16-0046-01    牙根水电站位于四川省甘孜州雅江县境内的雅砻江干流上。坝址地质条件良好,最大坝高为158 m,电站装机容
期刊
摘要:基于关系型融资技术可以有效的解决中小企业融资解决信息不对称的问题。文章在分析中小企业融资困境的同时,综合许多专家的分析归纳几种有实用意义的决策支持方法。  关键词:中小企业融资;中小银行;关系型融资  中图分类号:F279.24  文献标识码:A  文章编号:1006-8937(2009)16-0050-02    截至2008年底,我国银行业金融机构包括大型商业银行5家,股份制商业银行12
期刊
摘要:美国次贷危机爆发至今,已给美国以及全球金融市场带来了巨大的冲击,次贷危机中显露出金融衍生品的“双刃剑”作用,给世界各国敲响了警钟。我国金融衍生品市场尚处在初级发展阶段,如何加强金融创新各环节的监管对于衍生品市场的成长和完善至关重要。文章拟通过对美国次贷危机爆发过程中政府“缺位”的分析,对我国金融衍生品市场的成长和完善提出有益的建议。  关键词:金融衍生品;金融衍生品市场;政府监管;次贷危机 
期刊
摘要:证券公司作为资本市场的中介机构,证券公司公司制度的规范程度,证券公司业务的发展,经营中的风险状况及对经济、金融发展的影响,对我国金融市场逐步走向成熟的过程中起着举足轻重的作用。在金融活动中,一些证券公司投资银行的倒闭,证券公司的问题也越来越突出,因此有效的监管机制对减少证券公司内部员工违规操作或过度投机。保护投资者合法权益,提高投资者对证券市场的信心至关重要。遵循证券监管机构的监管原则,文章
期刊
摘要:为了了解旅游区的发展对资源、环境、经济和社会所产生的影响,并客观公正地评价旅游区的发展状况,需要采用科学的评价指标体系与技术方法来进行判断。文章结合三峡晓峰旅游片区的实际情况,提出旅游区评价指标体系构建的原则和方法,定性与定量相结合,建立了涵盖经济效益、社会效益与生态环境效益三方面内容的旅游区综合效益评价指标体系,运用量化的评价指标体系和层次分析评价法,从经济、社会、环境三大方面对旅游区的发
期刊
摘要:施工单位在施工的过程中经常因为一些不可抗力因素而导致各分部分项工程实际工期的拖延,进而导致整个施工过程实际工期的拖延。这样会严重影响施工企业的进度控制、成本使用、质量控制等,直接关系到施工企业的经济利益和信誉。施工企业千方百计缩短工期,因此工期优化显得尤为重要,文章选取工程项目中常用的网络图优化中的工程压缩优化法,来说明施工企业如何运用技术方法对工期进行优化。  关键词:网络图;关键路线;工
期刊
摘要:从股票分拆的定义来看,这类事件本身并不改变公司的总价值和股东的权益比例。然而,这类事件在全球股票市场中非常普遍,尽管公司执行这类事件要花很高的成本。迄今为止,公司管理层决定对公司股票分拆或合并的动机还不是特别清楚。这类事件对市场宽度进而对市场流动性的影响一直迷惑着投资者。  关键词:股票分拆;流动性;交易成本;买卖价差  中图分类号:F830.91  文献标识码:A  文章编号:1006-8
期刊