准确、高效地识别代码存在的 CodeРSmell,是更好实现重构的关键。Р Martin Fowler 等在 1999 年提出了 22 种面向对象设计中存在的 Code Smell[3],本文Р称之为代码坏味。设计并编写高质量的代码一直都是软件开发所追求的目标之一,代码Р坏味是代码中的潜在警示号,它不会立马凸显问题,而是随着代码的演化,问题会越来Р越明显。既然不会立马凸显问题,代码坏味是否就可以忽略不予处理呢?研究者РРAlexander 认为代码中存在坏味会降低软件的开发效率,阻碍软件系统的进一步设计和Р演化[4]。研究者 Hamaz 认为代码坏味会使代码的质量下降,同时,增加了软件开发和维Р护的成本[5]。因此,一旦代码中发现坏味,为了保证软件代码的可靠性,也极力促使代Р码更容易被理解和阅读,就应当对相关坏味进行重构[6],从而消除现有的坏味,降低其Р他坏味存在的可能性,以保证软件开发的质量,提升软件的可维护性。Р 代码坏味是代码中存在问题的暗示,开发者可以通过坏味在代码中追捕问题。然而,Р并不是所有的坏味均指示代码中的问题需要被即刻解决,它只是一种提示,但是对于大Р多数的坏味,开发者均有必要加以查看,并对认为存在潜在问题的坏味进行相应的重构。Р目前,针对代码坏味的研究主要关注于以下几方面:代码坏味的检测、代码坏味检测工Р具的设计、代码坏味的重构及重构顺序。其中,绝大多数的研究更关注代码坏味的检测,Р并寻求更优秀的代码坏味检测方法。然而,目前已有的代码坏味检测方法存在如下几个Р问题:РР 1) 首先,大多数方法考虑的是代码间的结构信息[7]如方法的调用和属性的使用,而РРР 1