对面向对象程序聚类的若干问题探讨

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:a370298894
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文主要从聚类属性的选取和聚类单元粒度的选取两方面去分析对聚类结果,面向对象程序中的三个关键因素,并给出了相应的聚类结果。本文从面向对象程序聚类的基本方法与属性及面向对象程序程序聚类实验分析与讨论进行了探讨。
  关键词:面向对象;程序聚类;克隆代码
  中图分类号:TP311.5
  程序聚类方面的研究工作所采用的聚类对象往往是一些面向过程的程序代码。其他一些针对面向对象程序聚类的研究工作除了将继承、聚类等面向对象程序语法关系作为聚类属性考虑外,并未对面向对象程序聚类的一些特殊问题进行进一步的深入研究。程序聚类是常用而有效的逆向分析和辅助理解技术,通过聚类算法将一个软件系统分解为一系列具有需求或设计含义的小规模系统,聚类属性中的形式化属性主要来源于程序语法结构上的一些信息,得到的聚类单元都是由一些关系密切的代码实体组成。基于非形式化信息的程序聚类在实际应用中往往难以保证正确性,因为很多软件系统的变量命名等非形式化信息的规范性和统一性经常较差,提到的这些例如聚类过程中有诸多因素会影响聚类结果,从而影响构件提取、代码重构等一系列利用代码聚类结果所进行的逆向工程活动,从量化比较和定性分析两个方面初步揭示了这些因素对于面向对象程序聚类结果的影响。
  一、程序聚类的基本方法与属性
  程序聚类的基本方法以及本文所采用的聚类属性,然后对面向对象程序聚类中的多态、代码克隆以及聚类单元粒度的选择进行了介绍。
  (1)程序聚类通过同一个需求或设计元素聚集在一起来辅助程序理解及分析。分为聚类对象的选择﹑聚类属性的选择﹑聚类算法的选择﹑聚类结果分析等几个步骤。聚类对象在程序中可以为代码片段﹑方法/函数﹑文件﹑类等等,聚类属性可以分为形式化与非形式化等,聚类算法可以分为层次化算法与非层次化算法等。
  (2)多态多态也称动态绑定﹑后期绑定或运行时绑定,是面向对象程序的一个基本特性。多态通过抽象类或接口机制实现了接口与实现的分离,多态不但能改善代码的组织结构和可读性,而且还增强了程序的可扩展性,因此在面向对象程序中得到了广泛的应用.面向对象程序中的多态形式上一般都是通过抽象类或接口实现的。如果不采用多态和动态绑定,那么方法通常会通过条件判断语句直接调,以满足不同的情况下的功能要求。并将进一步对聚类结果造成影响,我们希望通过对比实验,分析多态机制的使用对于聚类结果的具体影响,并据此对相应的聚类策略提出建议。代码克隆代码克隆是指源代码文件中多个相同或相似的代码片段,希望通过对比实验分析代码克隆对于聚类结果的影响,并据此对相应的聚类策略提出建议。
  (3)聚类单元的粒度面向对象程序的一个主要特点是类作为属性和操作的统一封装体,面向对象程序聚类一般都采用类作为基本的聚类单元,不良的面向对象设计所带来的超大类内聚性不足的类等设计问题导致以类为基本单位的程序聚类无法较好地反映软件的逻辑结构。此时打破类的边界,以更小粒度的方法作为基本聚类单元可能是一种更加合理的策略。
  二、程序聚类实验分析与讨论
  为了分析面向对象多态机制、代码克隆以及聚类单元粒度选择这三个问题的聚类结果的特点及其在相关场景下的应用,主要包括聚类信息抽取、聚类以及聚类结果对比分析。
  (1)聚类信息主要包括语法信息以及代码克隆信息两方面,通过抽取后这些信息构成了程序聚类的数据集。为了研究多态、代码克隆以及聚类单元粒度对于聚类结果的影响,使用多态与不使用多态的聚类结果,考虑代码克隆与不考虑代码克隆的聚类结果,类级以及方法级聚类结果。这在一定程度上也说明了多态等面向对象设计要素的使用有利于构件的封装和复用。因此,在对面向对象程序聚类时,我们希望用聚类结果来提取系統的构件,把多态作为聚类属性的聚类结果更加构件化,更易于构件的提取。
  (2)为了深入分析克隆属性对于聚类结果的影响,我们进一步考虑了考虑克隆属性后的聚类结果差异模式,这两个方法都是对图形进行绘画操作,只是前者是对图形的某个区域进行填充操作,而后者则是在图形上画一笔.从而更好地反映系统的设计结构。不同粒度聚类结果的差异更多体现在聚类结果的抽象层次上。而设计较差的面向对象程序类级和方法级聚类存在较强的异构性,其聚类结果在关联结构上就存在较大差异。我们发现两种聚类单元的差异程度与设计质量相关。设计质量较好的系统方法级聚类虽与类级聚类存在差异,但主要体现为对类级聚类的进一步精化。因此,对于设计质量较好的系统,类级聚类有利于获得结构清晰、复杂性更低的模块结构,对于体系结构逆向恢复和构件抽取而言都更有利。对于设计质量较差的系统,类级聚类结构往往比较混乱,这与类级质量较差相关,包括类的规模以及类间责任分配等方面设计不当。
  (3)程序聚类是一种常用的软件系统辅助理解和分析方法,被广泛应用于需求模型和体系结构逆向恢复、构件抽取、重构机会识别等软件维护和逆向工程任务中。通过对比实验分析可以看出,多态机制以及聚类层次的选择的聚类结果都在不同的场景中有一定的应用,主要体现使用多态的聚类结果有利于系统模块的解耦合,能较好的帮助我们提取遗留系统构件。对于是否考虑代码克隆我们有如下结果,如果我们的目标是需求模型的恢复以及代码模块重构的识别,那就考虑代码克隆; 反之如果我们的目的只是想恢复系统的原有设计,就不考虑。在面对聚类的对象过程中,如果我们面对的聚类对象在设计质量上相对较好,那么我们就应该选择以类为聚类单元,因为从实验可以得出面对设计质量较好的系统得出的聚类结果在系统层次上较为清晰,有利于构件的提取以及体系结构的恢复,反之面对设计质量较差的系统,它们在类级上的聚类结果在系统层次上较为模糊,而在方法级上的聚类就表现出较为清晰,所以采取方法级的聚类更有利于体系结构恢复等逆向工程活动。对不同的软件维护和逆向工程任务而言,其程序聚类目标和评价标准也有所不同。因此我们必须针对特定的聚类目标评价这些因素对于聚类结果的影响,并确定相应的策略选择。
  三、结 束
  多态机制的使用将使得聚类结果倾向于将与多态相关的功能依赖中的客户端与服务端进行分离,从而有利于我们对遗留构件的提取,特别是有助于客户端与服务端模块的分离,考虑克隆代码信息为聚类提供了更多隐含的相关性,从而有利于通过聚类揭示更加准确的程序逻辑结构,因此可以帮助我们进行设计模型恢复与代码重构识别; 而类级与方法级聚类结果的差异性大小与程序的设计质量相关,一般设计质量较好的面向对象程序两个层次上的聚类体现出了更好的同构性,有助于在我们面对不同系统时应采取何种聚类单元的聚类效果较好提供了指导。面向对象程序聚类中多态机制、代码克隆以及聚类层次的选择。聚类结果及其在不同场景的应用,通过一个基于开源软件的程序聚类实验进行了对比分析。
  参考文献:
  [1]黄素萍. 面向对象程序设计教学改革模式研究[J]. 教育教学论坛,2013,No.8302:264-265.
  [2]杨旺明. 基于工程的面向对象程序设计课程教学的求索与实践[J]. 中国科技信息,2012,No.45821:181-182.
  [3]张红霞. 《面向对象程序设计》课程教学研究与探索[J]. 现代计算机(专业版),2012,No.40622:34-36.
其他文献
摘要:我国的经济和科技发展日益迅速,两者在发展过程中是相互促进的关系,有了经济基础科技发展才能更有动力,科技又能促进经济的进步。科技在我国已然已经向第一生产力的趋势发展,智能仪器和仪表显示就是科技进步的一个重要体现。我国智能仪器发展历史较短,智能仪器仪表的进展却是非常快的,文章就我国智能仪器仪表的发展做出分析,并且对智能仪器仪表的发展趋势进行展望。  关键字:智能仪器;仪表;进展;展望;科技  中
期刊
【摘 要】二灰碎石基层是公路路面的主要基础,其强度、稳定性等指标受到多方面的影响,本文对二灰碎石基层的原材料、混合料配合比及施工工艺等各个环节进行了深入分析和探讨,提出保证施工质量的措施。  关键词:二灰碎石 原材料 配合比 施工工艺 质量控制  中图分类号:U416.214  1.引言  目前在我国高等级公路的施工中,二灰碎石基层是普遍采用的一種结构形式,它不仅具有良好的力学和整体性能,而且以其
期刊
【摘要】在建筑施工中经常遇到相同的质量问题成为质量通病,本文就主要的工程质量通病进行了说明,并对产生的原因以及防治措施进行了分析。  【关键词】建筑质量通病 防治措施  中图分类号:S146+.2  在建筑工程施工管理中, 具有普遍性的常见质量问题, 我们称之为“质量通病”。它具有很大的危害性,有的影响结构安全,有的影响使用功能,有的影响工程观感。 因此必须对工程质量通病进行认真治理,以达到逐步消
期刊
摘要:核桃病害和虫害是影响核桃正常生长的两害,为了对他们加强防治,必须知道如何对其进行科学的防治,使核桃树得到健康的生长,达到高产,高质的目的。  关键词: 核桃 初春防治 技术  中图分类号:S435  在我国众多经济树种中,核桃树是十分重要的树种之一,是高级食用油树种和绿化造林的优良树种,在它身上,不论是木材、果实,还是枝叶、果壳,都有很高的利用和开发价值,在国防、医药、工业、食品上用途很广,
期刊
【摘 要】本文从电气自动化着手,分析并探讨了电气自动化的节能设计技术,认为电气工程的设计及电气系统中的节能技术两个方面入手,可以使得节能技术能够在电气自动化系统当中发挥出最理想的效果。  【关键词】电气自动化;节能技术;分析  中图分类号:S210.4  对于电气自动化系统而言,必须保证供电的可靠、安全,并且还要为使用此电力系统的工程或是建筑带来良好的社会效益和经济效益。而且由于城市电网的不断扩大
期刊
【摘 要】桥头跳车现象是公路工程中桥梁上存在的质量通病,不仅影响行车的舒适性,而且造成车辆大幅度减速,还会导致车辆失控而发生交通事故。因此本文就高等级公路桥头跳车的产生原因进行了深入分析,提出了相应的防治措施,对工程实践有很好的借鉴意义。  关键词:桥头跳车 产因 防治  中图分类号:U416.1  1.引言  桥头跳车是公路工程中一个比较普遍的现象,在公路上橋梁和涵洞等结构物处经常出现,给行车的
期刊
摘要:海洋工程装备产业是开发利用海洋资源的物质和技术基础,是我国当前  加快培育和发展的战略性新兴产业,是船舶工业调整和振兴的重要方向。本文主要就海工装备的发展现状及发展趋势进行了论述。  关键词:海洋工程;装备;发展分析  中图分类号:F426.4  我国的海洋工程装备产业已发展到一定水平,成功设计出了浮式生产储卸装置(FPSO)、自升式钻井平台、半潜式钻井平台以及多种海洋工程船舶,在基础设施、
期刊
摘 要:乘降所一直存在设施设备落后、人员紧张、安检查危工作难度大等问题,安全隐患尤为突出。为防范和消除乘降所安全风险,保障旅客运输组织平稳有序,成都铁路局提出了“三集中”组织模式,取得了一定成效。而优化列车停站,加强按标停车的执行力度、查危人员的培训以及基础设施的进一步补强将更有利于乘降所客运组织工作的开展。  关键字:乘降所;三集中;客运组织  中图分类号:F426.92  正文:  “三集中”
期刊
摘要:地下铁道是近代新兴的高效交通方式,它的出现方便了人们的出行和出行速度,能够同时快速输送大量的人流。现在的地铁主要动力是电力,这也使地铁成为一种效率高、污染低的交通工具,符合了城市交通的发展大体方向。电力是地下铁道的重要部分,电力系统及供电设备关系着地铁的正常运行。为了使地铁这种交通方式更好的发展,更好的为城市交通轨道做出贡献,要对地铁供电系统自动化进行深入研究,使供电系统为地铁的运行更好的服
期刊
论文摘要:文章对凤尾蕨属6种药用植物抗肿瘤有效部位进行了筛选。  主题词: 凤尾蕨属 抗肿瘤 有效部位  中图分类号:R979.1+4  半边旗药材为来源于凤尾蕨属植物半边旗Pteris semipinnta L.的干燥全草。从中分离到的二萜类化合物5F、6F和A具有抗肿瘤作用,其中5F含量较高,但活性不是很强,6F和A活性很强,但其在原植物中的含量太低而不能开发利用。  一、仪器与材料  1 、
期刊