抽取方法模式-数控滚圆机滚弧机折弯机张家港倒角机液压倒角机数
作者:lujianjun | 来源:泰宇机械 | 发布时间:2019-06-14 13:54 | 浏览次数:

在现代软件开发和维护中重构是提高软件可维护性和软件质量的常用手段。而大量重构模式掺杂在日常的bug修复、功能增加等代码变更中,使得变更理解变得非常复杂。因此,提出一种对常见的抽取方法和抽取类重构模式的识别算法。研究基于工具Change Distiller和JDiff分别获取变更类型和抽取代码块,通过判断移动后的代码块与原文件变更代码的关系,识别采取的重构模式抽取方法模式-数控滚圆机滚弧机折弯机张家港倒角机液压倒角机数控滚圆机滚弧机。该算法在4个开源项目中进行实验,其平均准确率在80%左右。 则在V2相对于V1删除代码的位置有对方法printDetails进行调用。抽取方法的表现形式有3种,分别是:没有局部变量的代码块移动、有局部变量的代码块移动、对局部变量再赋值。图1中的抽取方法重构是有局部变量代码块移动模式。图1抽取方法模式示例Fig.rn抽取类(ExtractClass)[7]重构模式,一般用于处理过长的类本文由公司网站滚圆机网站采集转载中国知网资源整理!www.gunyuanji.name。一个类如果包含过多的功能及属性,会导致这个类过于臃肿。为了提高类的高内聚,低耦合,就会将一些不必要的或不常用的方法提炼到另一个类中,来为这个类服务。如图2是一个抽取类模式的示例,用类图形式展示。类Person中过多的属性offi及功能代码getTelephoneNumber()被抽取到了一个新类TelephoneNumber中,且在移动代码的地方增加对新类的引用。图2抽取类模式示例Fi2识别方法1.2.1抽取方法模式识别根据上述抽取方法和抽取类模式的例子,不难发现,属于抽取方法和抽取类两种模式的代码变更具备如下3个特性:(1)文件中有新增方法或提交的revision_id中含有新增类文件。(2)抽取代码块移动到某个方法中。(3)在删除代码的位置有对该方法的引用。为了识别这3个特性,研究借用/)工具获得一个文件变更前后所有的代码变更类型。这是Fluri[8]等人编写的一个Treediffer算法,对变更前后抽象语法树进行对比,获取分类的变更。同时,也可以区别多种抽取方法模式-数控滚圆机滚弧机折弯机张家港倒角机液压倒角机数控滚圆机滚弧机本文由公司网站滚圆机网站采集转载中国知网资源整理!www.gunyuanji.name