<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992018000400013</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Código con ”mal olor”: un mapeo sistemático]]></article-title>
<article-title xml:lang="en"><![CDATA[Bad smell code: a systematic mapping]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ancán]]></surname>
<given-names><![CDATA[Oscar]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cares]]></surname>
<given-names><![CDATA[Carlos]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cravero]]></surname>
<given-names><![CDATA[Ania]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de La Frontera Depto. de Ciencias de Computación e Informática ]]></institution>
<addr-line><![CDATA[ Temuco]]></addr-line>
<country>Chile</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2018</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2018</year>
</pub-date>
<volume>12</volume>
<numero>4</numero>
<fpage>156</fpage>
<lpage>176</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992018000400013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992018000400013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992018000400013&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[El concepto de código con mal olor (code smells ) fue introducido a fines de los años 90 y es una manera de referirse a ciertas características subjetivas en el código fuente que podrían repercutir en problemas de operación y mantención. Para corregir estos problemas se ha desarrollado, dentro de la Ingeniería de Software, toda un área de estudio denominada reconstrucción (refactoring), centrada principalmente en estrategias de corrección de código anómalo. El objetivo de este artículo es develar el estado actual de los estudios relacionados con los malos olores en el código fuente, considerando principalmente su detección. Se realizó una revisión basada en el protocolo de mapeo sistemático. Las estrategias de búsqueda recuperaron un conjunto de 215 documentos, de los cuales 30 fueron seleccionados para su análisis. Se definieron cuatro categorías de clasificación: método de detección, tipo de aporte, lenguaje estudiado y tipo de olor. Los resultados de la revisión indican un predominio de estudios que detectaban malos olores sobre código escrito en Java. Se pudo constatar que la literatura analizada carece de estudios que reporten métodos, herramientas y estrategias de detección en las categorías ”abusadores de la orientación a objetos” e ”inhibidores”, mientras que la mayor concentración de artículos están en las categoría de olor denominada ”hipertrofias” y ”prescindibles”, cuyos principales métodos de detección corresponden a métricas y análisis de logs.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[The concept of code smell was introduced in the late 90’s and is a way of referring to certain subjective characteristics in the source code that could have repercussions on operation and maintenance. In order to correct these problems, a whole study area called refactoring has been developed within Software Engineering, which focuses mainly on strategies for correcting this type of anomalous code. The objective of this article is to unveil the current status of studies related to code smells, considering mainly their detection. A review was conducted based on the systematic mapping protocol. The search strategies retrieved a set of 215 documents, of which 30 were selected for analysis. Four categories of classification were defined: detection method, contribution type, programming language and code smell category. The results of the review indicate a predominance of studies that detected code smells in Java. It was found that the literature analyzed lacks studies that report methods, tools and detection strategies in the categories ”object-oriented abusers” and ”change preventers”, while the highest concentration of articles are in the code smells categories called ”bloaters” and ”dispensable”, whose main detection methods correspond to metrics and log analysis.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Código Anómalo]]></kwd>
<kwd lng="es"><![CDATA[Mantenibilidad]]></kwd>
<kwd lng="es"><![CDATA[Mapeo Sistemático]]></kwd>
<kwd lng="es"><![CDATA[Reconstrucción]]></kwd>
<kwd lng="en"><![CDATA[Code Smell]]></kwd>
<kwd lng="en"><![CDATA[Maintainability]]></kwd>
<kwd lng="en"><![CDATA[Refactoring]]></kwd>
<kwd lng="en"><![CDATA[Systematic Mapping]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO    DE REVISI&Oacute;N </B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">C&oacute;digo con &rdquo;mal olor&rdquo;: un mapeo sistem&aacute;tico</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Bad smell code: a systematic mapping</font></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Oscar Anc&aacute;n<sup>1*</sup>, Carlos Cares<sup>1</sup>, Ania Cravero<sup>1</sup></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1 </sup>Depto. de Ciencias de Computaci&oacute;n e Inform&aacute;tica, Universidad de La Frontera, Temuco, Chile    <br> </font></p>     ]]></body>
<body><![CDATA[<P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia:<a href="mailto:oscar.ancan@ufrontera.cl">oscar.ancan@ufrontera.cl</a></font></span> </font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El concepto de c&oacute;digo con mal olor (<em>code smells </em>)  fue introducido a fines de los a&ntilde;os 90 y es una manera  de referirse a ciertas caracter&iacute;sticas subjetivas en el c&oacute;digo fuente que podr&iacute;an repercutir  en problemas de operaci&oacute;n y mantenci&oacute;n. Para corregir estos problemas &nbsp;se ha desarrollado, dentro de la Ingenier&iacute;a de Software, toda un &aacute;rea de estudio  denominada reconstrucci&oacute;n (<em>refactoring</em>), centrada principalmente en estrategias de correcci&oacute;n de c&oacute;digo an&oacute;malo. El objetivo de este art&iacute;culo es develar &nbsp;el estado actual de los estudios relacionados con los malos olores en el c&oacute;digo fuente, considerando principalmente su detecci&oacute;n. Se realiz&oacute; una revisi&oacute;n basada en el protocolo de mapeo sistem&aacute;tico. Las estrategias de  b&uacute;squeda recuperaron un conjunto de 215 documentos, de los cuales 30  fueron seleccionados para su an&aacute;lisis. Se definieron cuatro categor&iacute;as de clasificaci&oacute;n: m&eacute;todo de detecci&oacute;n, &nbsp;tipo  &nbsp;de aporte, lenguaje estudiado y tipo &nbsp;de olor. Los resultados de la revisi&oacute;n &nbsp;indican un predominio de estudios que detectaban malos olores sobre c&oacute;digo escrito  en <em>Java</em>. Se pudo constatar  que la literatura analizada &nbsp;carece  de estudios que reporten m&eacute;todos, herramientas y estrategias de detecci&oacute;n en las categor&iacute;as &rdquo;abusadores de la orientaci&oacute;n a objetos&rdquo; e &rdquo;inhibidores&rdquo;, mientras que la mayor concentraci&oacute;n de art&iacute;culos est&aacute;n en las categor&iacute;a de olor denominada &rdquo;hipertrofias&rdquo;&nbsp; y &rdquo;prescindibles&rdquo;, cuyos principales m&eacute;todos de detecci&oacute;n corresponden a  m&eacute;tricas y an&aacute;lisis de logs. </font></p>     <p>  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave: </span></b>C&oacute;digo An&oacute;malo, Mantenibilidad, Mapeo Sistem&aacute;tico, Reconstrucci&oacute;n</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The concept of code smell was introduced in &nbsp;the late 90&rsquo;s and is a way of referring  to certain subjective characteristics in the source code that could have repercussions &nbsp;on operation and maintenance. In order to correct &nbsp;these  problems, a whole study area called refactoring has been developed within Software Engineering, which focuses mainly on strategies for correcting this type of anomalous code. The objective of this article is to unveil the current status of studies related to code smells, considering  &nbsp;mainly their detection.  A review was conducted &nbsp;based on the systematic mapping protocol. The search strategies retrieved a set of 215 documents,  of which 30 were selected for analysis.  Four categories of  classification were defined: detection method, contribution type, programming  language and code smell category. The results of the review indicate a predominance of studies that detected code smells in Java. It was  found that the literature &nbsp;analyzed lacks studies  that report methods, tools and detection strategies in the categories &rdquo;object-oriented  abusers&rdquo; and &rdquo;change preventers&rdquo;, while the highest concentration of articles are in the code smells categories called &rdquo;bloaters&rdquo; and &rdquo;dispensable&rdquo;, whose main detection methods correspond to metrics and log analysis.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>Code Smell, Maintainability, &nbsp;Refactoring, Systematic Mapping</font></p> <hr>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Disponer de c&oacute;digo fuente de mala calidad  en proyectos de software implica problemas en su compresi&oacute;n (Abbes et al., 2011) y propensi&oacute;n a fallos frente a eventuales cambios (Khomh et al., 2012). A nivel de costos, diversos  estudios revelan evidencia de c&oacute;mo el c&oacute;digo dif&iacute;cil de comprender, y  eventualmente defectuoso, impacta en los  costos de mantenci&oacute;n. Uno de los primeros estudios en  el &aacute;rea indican que alrededor del 80 % del presupuesto es gastado &nbsp;en mantenci&oacute;n (Lientz et al., 1978). Estudios  posteriores mantienen esta cifra (Banker et al., 1993; Pigoski, 1996) y otros incluso la suben a un 90 % (Erlikh, 2000). Un estudio relativamente reciente, ha mostrado la tendencia de estos  costos mostrando &nbsp;adem&aacute;s que, con  el pasar de los a&ntilde;os, es ascendente  &nbsp;(Engelbertink and Vogt, 2010). Estos hechos han motivado un inter&eacute;s relacionado con el an&aacute;lisis del c&oacute;digo fuente y c&oacute;mo dicho  an&aacute;lisis podr&iacute;a, en cierta medida, adelantarse a  potenciales fallos del software (Fowler et al., 1999; M&uml;antyl&uml;a and Lassenius, 2006).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La reconstrucci&oacute;n, o <em>refactoring</em>, surge como una  t&eacute;cnica para mitigar  y/o corregir problemas relacionados con el c&oacute;digo fuente de mala calidad y que impactan directamente en la capacidad de ser corregido  ante eventuales  fallas o extendido  debido a nuevos requerimientos &nbsp;(International Organization for Standardization, 2014). Si bien una refactorizaci&oacute;n puntual no impacta en gran medida en la mantenibilidad del software si lo hace un  proceso de refactorizaci&oacute;n que involucre todo el software (Sz&#733;oke et al., 2017), por lo que un gran n&uacute;mero de  estudios de reconstrucci&oacute;n de software &nbsp;se relacionan  &nbsp;estrechamente  &nbsp;con la calidad del c&oacute;digo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este art&iacute;culo, se realiza una revisi&oacute;n de los potenciales s&iacute;ntomas de c&oacute;digo defectuoso u &rdquo;olores&rdquo;,  descritos inicialmente en (Fowler et al., 1999), con el prop&oacute;sito de indagar el estado actual de este t&oacute;pico, espec&iacute;ficamente en mecanismos de an&aacute;lisis de c&oacute;digo, que permitan anticiparse a  problemas m&aacute;s profundos a nivel estructural, focaliz&aacute;ndose en su detecci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El m&eacute;todo utilizado  para la recopilaci&oacute;n y selecci&oacute;n de art&iacute;culos es el mapeo sistem&aacute;tico, si bien este protocolo se  genera &nbsp;en las ciencias de la salud, ha sido adaptado para estudios en  Ingenier&iacute;a de Software (Petersen et al., 2007). El proceso cuenta b&aacute;sicamente de cinco pasos, cuatro productos intermedios y un producto final, que  es el mapa  del estado del arte en el t&oacute;pico deseado. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este estudio se estructura de acuerdo a las siguientes secciones. La secci&oacute;n 2 expone antecedentes y conceptos b&aacute;sicos considerados en esta investigaci&oacute;n. En la secci&oacute;n 3 se describen &nbsp;los resultados obtenidos  en cada una  de las fases del procedimiento utilizado. En el  apartado 4 se analizan los art&iacute;culos seleccionados y finalmente  en la secci&oacute;n 5 se explican la conclusiones del estudio. </font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">DESARRO</font></strong></font><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">LLO</font></strong></font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Conceptos B&aacute;sicos</font></strong> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las anomal&iacute;as en el c&oacute;digo fuente son un s&iacute;ntoma que puede dar indicios de problemas m&aacute;s profundos en la  mantenibilidad del software. As&iacute; lo exponen diversos estudios  que hablan del impacto de una  mala codificaci&oacute;n en la evoluci&oacute;n &nbsp;del software a trav&eacute;s &nbsp;del tiempo, en t&eacute;rminos &nbsp;de la comprensi&oacute;n &nbsp;y la trazabilidad de &eacute;ste (Fontana et al., 2013; Stolee and Elbaum, 2013). Dichas anomal&iacute;as &nbsp;han sido denominadas &rdquo;malos olores&rdquo; aludiendo de esta  manera a una evaluaci&oacute;n de la  estructura y su eventual impacto en errores y/o en problemas de mantenci&oacute;n. &nbsp;Estos &rdquo;olores&rdquo; &nbsp;fueron  planteadas inicialmente por Fowler y Beck (Fowler et al., 1999) y, posteriormente, su marco conceptual &nbsp;se complement&oacute; con anomal&iacute;as o malos &rdquo;s&iacute;ntomas&rdquo; a nivel de dise&ntilde;o de software (Martin, &nbsp;2008).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si bien Fowler et al. (1999) plantea una clasificaci&oacute;n &nbsp;de alto nivel, &nbsp;otros  autores han planteado dudas res-  pecto  a la real clasificaci&oacute;n de los &rdquo;olores&rdquo; proponiendo  enfoques alternativos &nbsp;para establecer una taxonom&iacute;a (M&uml;antyl&uml;a and Lassenius, 2006; Mantyla et al., 2003; Moha et al., 2010). Por ejemplo  en (Moha et al., 2010) se propone  &nbsp;una  clasificaci&oacute;n basada en la divisi&oacute;n de &rdquo;olores&rdquo; que ocurren dentro de las clases y entre clases y, a su vez, considera los niveles estructurales y l&eacute;xicos, &nbsp;para  cada uno de los niveles superiores.  El princi- pal  problema con dicha clasificaci&oacute;n es que omite algunos &rdquo;olores&rdquo; inicialmente planteados en  Fowler (Fowler et al., 1999) como <em>Clases Alternativas con Diferentes  Interfaces (Alternative Classes with different Interfaces) </em>o <em>Intermediario  (Middle Man)</em>. Por otro lado en (M&uml;antyl&uml;a and Lassenius, 2006) se expone  &nbsp;una clasificaci&oacute;n de 6 niveles: <strong>Hipertrofia </strong>(<em>Bloater </em>), <strong>Prescindibles </strong>(<em>Dispensable </em>), <strong>Abuso  de la Orientacion &nbsp;a Objetos </strong>(<em>Object-Oriented Abusers </em>), <strong>Acopladores </strong>(<em>Couplers </em>), <strong>Inhibidores &nbsp;de Cambios </strong>(<em>Change Preventers </em>) y finalmente la categor&iacute;a <strong>Otros </strong>(<a href="/img/revistas/rcci/v12n4/t0113418.jpg" target="_blank">ver Tabla 1</a>). En el resto del estudio se utilizar&aacute; &eacute;sta taxonom&iacute;a debido a que  su aplicaci&oacute;n &nbsp;en el mapeo sistem&aacute;tico &nbsp;resulta m&aacute;s simple de implementar que la clasificaci&oacute;n &nbsp;propuesta en (Fowler et al., 1999).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>M&eacute;tricas</strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Fowler et al. (1999) plantea 22 &rdquo;olores&rdquo; en el contexto de Programaci&oacute;n Orientada a Objetos como una gu&iacute;a para los desarrolladores de software. No obstante, dichos &rdquo;olores&rdquo; carecen de  una m&eacute;trica y una especificaci&oacute;n formal de detecci&oacute;n (Singh and Kahlon, 2011). Por otra parte, las m&eacute;tricas tradicionales, como la complejidad ciclom&aacute;tica (CYCLO) (McCabe, 1976) o la cantidad de l&iacute;neas de c&oacute;digo (LoC) han demostrado &nbsp;ser incapaces de representar la  calidad interna del software y la necesidad de ser reconstruido. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por lo tanto una m&eacute;trica de manera aislada no entregar&aacute; pistas relevantes que indiquen  al ingeniero de software  la causa del problema,  de hecho s&oacute;lo indicar&aacute; que existe una anomal&iacute;a (Marinescu, 2004). De manera complementaria,  otros autores han estudiado las posibles correlaciones existentes entre &rdquo;olores&rdquo;  y un grupo </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">de m&eacute;tricas de calidad interna (LoC, n&uacute;mero de m&eacute;todos, clases, paquetes,  CYCLO entre otras) dando pie a posibles mecanismos que faciliten la mantenci&oacute;n del  software, considerando por ejemplo la frecuencia en que aparece un determinado &rdquo;olor&rdquo;&nbsp;y su v&iacute;nculo con la m&eacute;trica de calidad de software respectiva (Fontana et al., 2013; Yamashita and Counsell, 2013).</font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Herramientas &nbsp;de Detecci&oacute;n</font></strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Gran parte de las herramientas de detecci&oacute;n de &rdquo;olores&rdquo;  funcionan en base a  m&eacute;tricas y su respectivo umbral de acci&oacute;n (Munro, 2005). Dichos umbrales  han sido estudiados ampliamente y  consideran valores l&iacute;mite que se deben  &nbsp;establecer  &nbsp;de manera  previa a la detecci&oacute;n. De este modo, los resultados obtenidos de un an&aacute;lisis resultan subjetivos al  depender de  los umbrales de detecci&oacute;n, arrojando resultados diferentes dependiendo  de las reglas que se utilicen. Por lo tanto, la determinaci&oacute;n de, si  alguna pieza de c&oacute;digo contiene un  &rdquo;olor&rdquo;, &nbsp;a&uacute;n es algo arbitrario y, hasta ahora  no est&aacute; del todo normado (Fontana et al., 2015).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Pese a lo anterior,  existe &nbsp;un gran n&uacute;mero &nbsp;de herramientas de software desarrolladas para la detecci&oacute;n &nbsp;au- tom&aacute;tica de &rdquo;olores&rdquo;, sin embargo, todas ellas difieren  en la cantidad de &rdquo;olores&rdquo; que detectan, su capacidades  de procesamiento y enfoque (Hamid et al., 2013; Tomas  et al., 2013; Fontana et al., 2011). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Actualmente, en el mercado, existe una gran variedad de herramientas que permiten analizar diferentes ca-  racter&iacute;sticas internas de un software; basta indagar en extensas revisiones como las planteadas en  (Garousi Yusifolu et al., 2015) y en (Tomas et al., 2013) para notar la cantidad de herramientas disponibles.  Estu- dios como los anteriores  no indican sobre cu&aacute;l &rdquo;olor&rdquo;  &nbsp;actu&aacute; la herramienta y se limitan a indicar, de manera  muy  resumida, sus funcionalidades, como por ejemplo:  JDeodorant, &nbsp;PMD, Checkstyle, Decor, STENCH BLOSSOM, SonarQube, ConcernMeBS&nbsp;y FindBug. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>M&eacute;todo</strong> <strong>de investigaci&oacute;n</strong> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La construcci&oacute;n del mapa del  Estado del Arte se ha realizado siguiendo  el protocolo de b&uacute;squeda bibliogr&aacute;fica refinado por Petersen (Petersen et al., 2007). En la <a href="/img/revistas/rcci/v12n4/f0113418.jpg" target="_blank">Figura 1</a> se muestra un esquema de este protocolo. En la parte  superior de la figura  se exponen &nbsp;los pasos y en la  parte inferior los productos. El  proceso comienza  con la definici&oacute;n de las preguntas de investigaci&oacute;n, lo que resulta en el alcance de  la investigaci&oacute;n. Esto b&aacute;sicamente incluye &nbsp;los a&ntilde;os a estudiar y la amplitud  del marco conceptual as&iacute; &nbsp;como el tipo de fuente bibliogr&aacute;fica. &nbsp;El segundo paso considera  la ejecuci&oacute;n de la b&uacute;squeda, lo que produce un  conjunto de art&iacute;culos. El tercer  paso, es b&aacute;sicamente la revisi&oacute;n y aplicaci&oacute;n de los criterios de inclusi&oacute;n/exclusi&oacute;n definidos en el alcance. El cuarto paso se alimenta de manera del  alcance y las preguntas de investigaci&oacute;n lo que se cruza con las palabras claves y res&uacute;menes de los trabajos para dar paso a un conjunto de categor&iacute;as de clasificaci&oacute;n para los art&iacute;culos encon- trados. Finalmente, el quinto paso, corresponde a la clasificaci&oacute;n de los art&iacute;culos en las categor&iacute;as previamente identificadas, produciendo el  mapa objetivo del estudio. </font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Definici</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong>&oacute;n</strong> <strong>de las  preguntas de investigaci&oacute;n y alcance</strong> </font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las preguntas de  investigaci&oacute;n formuladas tienen un enfoque pragm&aacute;tico en el sentido de  reflejar los modelos,  m&eacute;todos y herramientas orientados a mejorar  o facilitar el proceso de  mantenci&oacute;n de un producto de software. Las  preguntas formuladas fueron:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PI1 &iquest;Cu&aacute;l es el m&eacute;todo de detecci&oacute;n de &rdquo;olores&rdquo; m&aacute;s utilizado en los trabajos seleccionados?</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PI2 &iquest;Cu&aacute;l es el  tipo de aporte de los estudios seleccionados, en t&eacute;rminos de modelo, estrategia y  herramienta?</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> PI3 &iquest;Qu&eacute; lenguajes de programaci&oacute;n son predominantes &nbsp;como  foco de estudio de &rdquo;olores&rdquo;  en el c&oacute;digo?</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PI4 &iquest;Cu&aacute;l es la  categor&iacute;a de &rdquo;olores&rdquo; menos estudiada?  por ejemplo  Hipertrofia, Prescindibles, Abuso de la Orientaci&oacute;n a Objetos, Acopladores etc.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En t&eacute;rminos  &nbsp;de alcance, &nbsp;se considera &nbsp;revisar estudios  experimentales y tambi&eacute;n &nbsp;no experimentales &nbsp;de tipo transversal.  Para estos &uacute;ltimos se consideran los  trabajos de tipo exploratorios, descriptivos y correlacionales.  Se consideran  &nbsp;estudios  &nbsp;que arrojen resultados&nbsp; sobre nuevas m&eacute;tricas asociadas  a alguna dimensi&oacute;n espec&iacute;fica de an&aacute;lisis de c&oacute;digo. Tambi&eacute;n se incluir&aacute;n reportes que entreguen indicios sobre el v&iacute;nculo entre &rdquo;olores&rdquo;  y m&eacute;tricas. Finalmente y de manera complementaria,  se abordan resultados de experimentos con herramientas de  automatizaci&oacute;n de m&eacute;tricas. Tambi&eacute;n en (Petersen et al., 2007) se plantea que el  alcance implica la poblaci&oacute;n de art&iacute;culos a revisar,  para este caso corresponder&aacute; a los estudios que aborden la tem&aacute;tica de &rdquo;olores&rdquo; y su  detecci&oacute;n. </font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Ejecuci&oacute;n de la b&uacute;squeda</font></strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La b&uacute;squeda&nbsp;se&nbsp;llev&oacute;&nbsp;a cabo mediante la integraci&oacute;n &nbsp;de las siguientes palabras claves extra&iacute;das &nbsp;en base a  las preguntas de investigaci&oacute;n: <em>code smell</em>, <em>detection</em>, <em>metrics</em>, <em>refactoring</em>, <em>maintainability</em>. Luego de ajustar algunos criterios la cadena de b&uacute;squeda result&oacute; ser la  siguiente:</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(&rdquo;<em>codesmells</em>&rdquo; <em>OR&nbsp; &nbsp;</em>&rdquo;<em>badsmells</em>&rdquo; <em>OR&nbsp; &nbsp;</em>&rdquo;<em>badcode smells</em>&rdquo;<em>OR</em>&rdquo;<em>badsmells in code </em>&rdquo;) <em>AND &nbsp;</em>&rdquo;<em>detection</em>&rdquo;<em>AND</em> (<em>metrics OR measure </em>) <em>AND refactoring AND maintainability</em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De manera complementaria, &nbsp;las fuentes de recolecci&oacute;n de art&iacute;culos fueron  las siguientes: Elsevier,  IEEE Digital Library, ACM, Springer. Adicionalmente, se ejecut&oacute; una b&uacute;squeda en Google Scholar, debido a que tambi&eacute;n se deseaba &nbsp;incorporar un espectro m&aacute;s amplio de fuentes. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Revisi&oacute;n</strong> <strong>de los art&iacute;culos</strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proceso de revisi&oacute;n de los art&iacute;culos consider&oacute; tres etapas, donde cada etapa ten&iacute;a por prop&oacute;sito refinar los  resultados inicialmente obtenidos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En primer  lugar se revis&oacute; el total de art&iacute;culos obtenidos luego de ejecutar  la cadena de b&uacute;squeda en los distintos buscadores, adem&aacute;s de eliminar repetidos. Dicha b&uacute;squeda  ten&iacute;a por objeto recopilar  el mayor n&uacute;mero &nbsp;de art&iacute;culos relacionados con &rdquo;olores&rdquo;  mediante el  an&aacute;lisis sobre el  t&iacute;tulo, resumen y  palabras claves. Este primer apartado, consider&oacute; incluir s&oacute;lo art&iacute;culos, publicaciones en revistas y congresos que aborden la tem&aacute;tica de &rdquo;olores&rdquo; y mecanismos de  detecci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En segundo lugar, se centr&oacute; la b&uacute;squeda en el  resumen y las conclusiones con el fin de seleccionar aquellos aspectos relacionados &nbsp;con los objetivos inicialmente planteados. De  acuerdo a lo anterior, se excluyeron los siguientes art&iacute;culos: (1) Art&iacute;culos que hablan de &rdquo;olores&rdquo; pero que consideran  s&oacute;lo un &rdquo;olor&rdquo;  (2) Trabajos que  hablan sobre t&eacute;cnicas de detecci&oacute;n vinculadas a  reconstrucci&oacute;n en general.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proceso final de selecci&oacute;n se realiz&oacute; en base a la cantidad de citas de cada art&iacute;culo, donde un mayor &iacute;ndice H consider&oacute; su inclusi&oacute;n. A modo de resumen,&nbsp;se incluye la <a href="#t02">Tabla 2</a> que presenta los resultados  de la b&uacute;squeda  y selecci&oacute;n de acuerdo a todas las iteraciones antes descritas. </font></p>     <p align="center"><img src="/img/revistas/rcci/v12n4/t0213418.jpg" alt="t02" width="564" height="121"><a name="t02"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De la selecci&oacute;n final, 4 art&iacute;culos pertenecen a revistas y/o congresos indexados por Google Scholar. De manera completar&iacute;a, en la <a href="/img/revistas/rcci/v12n4/t0313418.jpg" target="_blank">Tabla 3</a> se adjunta el listado con los 30 art&iacute;culos seleccionados de los cuales alrededor del 37 % fueron  publicados en el a&ntilde;os 2015 y un porcentaje menor en el a&ntilde;o 2014 (17 %) y 2016 (13 %) (<a href="/img/revistas/rcci/v12n4/f0213418.jpg" target="_blank">Figura 2</a>).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Esquema de Clasificaci&oacute;n</strong> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Luego del proceso de filtrado de art&iacute;culos, se procedi&oacute; a establecer una clasificaci&oacute;n en base a cuatros elementos  centrales. Dichos elementos se desprendieron  &nbsp;de los objetivos espec&iacute;ficos del estudio  (<a href="#f03">ver Figura 3</a>).</font></p>     <p align="center"><img src="/img/revistas/rcci/v12n4/f0313418.jpg" alt="f03" width="399" height="282"><a name="f03"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>M&eacute;todo de Detecci&oacute;n </em>: corresponde a  los m&eacute;todos con los que es posible &nbsp;detectar un &rdquo;olor&rdquo;. &nbsp;Para este caso de han considerado cuatro m&eacute;todos: &nbsp;<em>an&aacute;lisis &nbsp;de logs</em>, <em>basado en visualizaci&oacute;n</em>,  Valor l&iacute;mite &nbsp;o umbral de acci&oacute;n de la <em>m&eacute;trica &nbsp;</em>y  finalmente basados en <em>estad&iacute;stica y/o probabilidad</em>. El an&aacute;lisis de <em>logs </em>contempla la detecci&oacute;n   de &rdquo;olores&rdquo; &nbsp;mediante la revisi&oacute;n &nbsp;de &nbsp;los <em>logs &nbsp;</em>de cambios de un repositorio de software como SVN o Git. Los umbrales de funcionamiento de m&eacute;tricas corresponden a  valores de ajuste con los cuales una m&eacute;trica es capaz de detectar  la presencia de un s&iacute;ntoma de fallo.  Basado  en estad&iacute;stica y/o probabilidad significa  que se  considera la aplicaci&oacute;n de funciones estad&iacute;sticas para procesar determinados comportamientos en el software.  Esta &uacute;ltimo tambi&eacute;n incluye algoritmos de <em>machine learning </em>basados en an&aacute;lisis probabil&iacute;stico. Finalmente,  la detecci&oacute;n mediante visualizaci&oacute;n corresponde al  despliegue de un diagrama, principalmente de grafos, para realizar seguimiento a secciones del c&oacute;digo susceptibles  a problemas. </font></p>     <p><font size="2"><em><font face="Verdana, Arial, Helvetica, sans-serif">Tipo de Aporte </font></em><font face="Verdana, Arial, Helvetica, sans-serif">: corresponde la contribuci&oacute;n que realiza el estudio al sector de  investigaci&oacute;n. En particular, se consideran 4 tipos de aporte: <em>modelo</em>, <em>estrategias</em>, <em>herramientas </em>y <em>otros</em>.  Modelo corresponde a una representaci&oacute;n te&oacute;rica de un sistema o  una interacci&oacute;n compleja entre piezas an&oacute;malas de software. Estrategia, incluye descripciones y procedimientos para llevar a cabo el  proceso de  detecci&oacute;n o aplicaci&oacute;n de determinada m&eacute;trica de software. Herramienta, indica si el art&iacute;culo en cuesti&oacute;n utiliz&oacute; para su estudio alg&uacute;n software o biblioteca de tipo comercial o  libre en la generaci&oacute;n de los resultados del estudio.  La categor&iacute;a &rdquo;otro&rdquo; considera algunas  ramas de la computaci&oacute;n como optimizaci&oacute;n, agentes, herramientas &nbsp;de inteligencia de negocios y  similares.</font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Lenguaje Estudiado</em>:  son los tipos de lenguaje de programaci&oacute;n utilizados, tanto para detectar ciertos &rdquo;olores&rdquo; o bien como foco de  an&aacute;lisis del c&oacute;digo fuente. Se considera &nbsp;<em>Java </em>y <em>C++</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Tipo de &rdquo;Olor&rdquo; </em>: agrupa los olores seg&uacute;n &nbsp;la taxonom&iacute;a &nbsp;presentada en (M&uml;antyl&uml;a &nbsp;and Lassenius, 2006). <a href="/img/revistas/rcci/v12n4/t0113418.jpg" target="_blank">ver Tabla 1</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Mapa &nbsp;Sistem&aacute;tico</strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mediante la extracci&oacute;n de los datos se procedi&oacute; a generar los mapas en base a tablas  desglosadas que contabilizan la cantidad de estudios de  acuerdo al esquema de clasificaci&oacute;n. Se debe mencionar &nbsp;que,  durante el proceso de conteo, algunos  art&iacute;culos ingresaron a  varias categor&iacute;as al mismo tiempo, por lo que al sumar de manera  directa las cantidades, el resultado superar&aacute; los 30 estudios seleccionados.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Todos los mapas presentan el  cruce respecto a las categor&iacute;as &nbsp;de &rdquo;olores&rdquo; mediante un gr&aacute;fico &nbsp;de burbujas, permitiendo cuantificar  de manera directa las cantidades de estudios relacionadas con cada objetivo. El gr&aacute;fico de burbujas expone, mediante el tama&ntilde;o &nbsp;de su circunferencia, el &nbsp;n&uacute;mero  &nbsp;de art&iacute;culos &nbsp;vinculados a una determinada categor&iacute;a.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por ejemplo, si tomamos el cruce de lenguaje de programaci&oacute;n y la categorizaci&oacute;n de &rdquo;olor&rdquo; (<a href="#f04">Figura 4</a>) podemos observar que 25 art&iacute;culos incorporan <em>Java </em>para  estudiar alg&uacute;n &rdquo;olor&rdquo; &nbsp;de la categor&iacute;a <strong>hipertrofia</strong>,  &nbsp;mientras que para el mismo tipo de &rdquo;olor&rdquo;  &nbsp;existen s&oacute;lo tres estudios que lo  hicieron con lenguaje <em>C++</em>.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En relaci&oacute;n a los m&eacute;todos de detecci&oacute;n de &rdquo;olores&rdquo; (<a href="/img/revistas/rcci/v12n4/f0513418.jpg" target="_blank">Figura 5</a>) las categor&iacute;as menos estudiadas fueron las de <em>visualizaci&oacute;n </em>(10  art&iacute;culos) y las de <em>an&aacute;lisis  de logs </em>(11 art&iacute;culos). Del mismo modo las categor&iacute;as m&aacute;s estudiadas corresponden a <strong>hipertrofia &nbsp;</strong>con umbrales  de <em>m&eacute;tricas</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Respecto a los tipos de aportes de los diversos estudios  seleccionados (<a href="/img/revistas/rcci/v12n4/f0613418.jpg" target="_blank">Figura 6</a>), 13 art&iacute;culos proponen <em>estra- tegias </em>para  detectar &rdquo;olores&rdquo;  y nuevamente lo realizan sobre la misma categor&iacute;a de <strong>hipertrofia</strong>.  S&oacute;lo existe dos estudios  relacionado con <strong>abuso  de orientaci&oacute;n a objetos </strong>y corresponde a <em>modelos</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Finalmente, en la <a href="#f07">Figura 7</a> se presenta &nbsp;el cruce de todas las categor&iacute;as antes expuestas: <em>M&eacute;todo de detecci&oacute;n</em>, <em>Tipo de aporte </em>y <em>Lenguaje Estudiado</em>, con los tipos de  &rdquo;olores&rdquo;. Un n&uacute;mero considerable de estudios se enfocaron en la categor&iacute;a de <em>aporte </em>y en <em>detecci&oacute;n</em>, principalmente sobre la categor&iacute;a de <strong>hipertrofia</strong>, &nbsp;29 y 33 respectivamente. Las categor&iacute;a que menos estudio  registr&oacute; fue <strong>abuso de orientaci&oacute;n a objetos</strong>,  con escasos 2 art&iacute;culos para la categor&iacute;a de <em>lenguaje </em>y <em>aporte</em>.</font></p>     <p align="center"><img src="/img/revistas/rcci/v12n4/f0413418.jpg" alt="f04" width="479" height="334"><a name="f04"></a></p>     <p align="center"><img src="/img/revistas/rcci/v12n4/f0713418.jpg" alt="f07" width="540" height="379"><a name="f07"></a></p>     <p>&nbsp;</p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif"></font></strong></font><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif">RESULTADOS Y AN&Aacute;LISIS </font></strong></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El siguiente apartado busca dar respuesta a las preguntas de  investigaci&oacute;n planteadas inicialmente mediante los resultados arrojados por los diversos mapas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>PI1: &iquest;Cu&aacute;l es el m&eacute;todo de detecci&oacute;n de &rdquo;olores&rdquo; m&aacute;s utilizado  en los trabajos seleccionados?</em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Luego de cuantificar los resultados,&nbsp; es posible establecer que existe un gran n&uacute;mero de trabajos que han abor-  dado el an&aacute;lisis  &nbsp;de &rdquo;olores&rdquo;  pertenecientes a  la categor&iacute;a &nbsp;de <strong>hipertrofias</strong>.  &nbsp;De manera complementaria, los m&eacute;todos de detecci&oacute;n m&aacute;s utilizados son: basado en <em>m&eacute;tricas </em>y <em>an&aacute;lisis de logs</em>. Esto puede deberse principal- mente a  la existencia de un  sinn&uacute;mero de herramientas que realizan  dicha tarea  de manera autom&aacute;tica (Tomas  et al., 2013) y el inter&eacute;s por parte de investigadores  &nbsp;por normar ciertos  elementos que resultan subjetivos a  la hora de establecer los  umbrales de  acci&oacute;n de las m&eacute;tricas (M&uml;antyl&uml;a and Lassenius, 2006).</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cabe destacar que muchos de los estudios han abordado el  mismo grupo de &rdquo;olores&rdquo;  relacionados con c&oacute;digo duplicado, lista extensas de par&aacute;metros, clases y m&eacute;todos extensos o  con demasiado l&oacute;gica. Por otro lado, los m&eacute;todos de detecci&oacute;n basado en <em>visualizaci&oacute;n &nbsp;</em>para las categor&iacute;a <strong>inhibidores de cambios </strong>son  inexistentes. Similar situaci&oacute;n ocurre con la categor&iacute;a <strong>abusadores de la orientaci&oacute;n a objetos</strong>. Una de las potenciales razones de lo anterior es que las m&eacute;tricas para este tipo de &rdquo;olores&rdquo; a&uacute;n no est&aacute;n del todo maduras y  resultan inexactas (Concei&cedil;c&tilde;ao et al., 2014).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>PI2: &iquest;Cu&aacute;l es el tipo de aporte de los estudios seleccionados, en  t&eacute;rminos de modelo, estrategia o  herramienta?</em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Existen 13 art&iacute;culos &nbsp;seleccionados que han propuesto una <em>estrategia </em>o parte de &eacute;sta &nbsp;s&oacute;lo &nbsp;para estudiar  la categor&iacute;a <strong>hipertrofias</strong>. Lo anterior plantea que existe predominancia por estudiar  &rdquo;olores&rdquo; relacionados con  duplicaci&oacute;n de c&oacute;digo, m&eacute;todos y clases extensas.  &nbsp;Una posible justificaci&oacute;n de lo anterior  radica en que un  gran n&uacute;mero de estrategia de detecci&oacute;n se basan &nbsp;en m&eacute;tricas asociadas a una herramientas por lo que dicha  categor&iacute;a resulta simple de abordar con alguna herramienta con m&eacute;tricas convencionales como CYCLO y LoC.  En la mayor&iacute;a &nbsp;de los casos &nbsp;se utiliz&oacute; &nbsp;tambi&eacute;n &nbsp;la misma fuente de software proveniente de <em>Qualitas Corpus </em>(Tempero et al., 2010). El resto de los art&iacute;culos de distribuye de manera uniforme a excepci&oacute;n de los <em>modelos </em>elaborados para detecci&oacute;n que s&oacute;lo son aplicados  a grupos peque&ntilde;os de &rdquo;olores&rdquo;.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>PI3: &iquest;Qu&eacute; lenguajes de programaci&oacute;n son predominantes como foco de estudio de &rdquo;olores&rdquo; en el c&oacute;digo?</em> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Antes de responder esta pregunta, es &nbsp;preciso indicar  que algunos estudios abordaban con un lenguaje de programaci&oacute;n varias categor&iacute;as de &rdquo;olores&rdquo;  por lo que un mismo estudio  podr&iacute;a estar incluido  en m&aacute;s de una categor&iacute;a. &nbsp;En ese &nbsp;contexto, gran parte &nbsp;de los estudios  han abordado <em>Java </em>como lenguaje para realizar las pruebas o bien software implementados en <em>Java </em>que,  a su vez, analizan  c&oacute;digo  &nbsp;<em>Java </em>bajo &nbsp;la propiedad  de &rdquo;reflexi&oacute;n&rdquo;. En menor medida existen estudios,  preferentemente vinculados a  software empotrado en  aparatos electr&oacute;nicos, en cuyo caso se contempla <em>C++ &nbsp;</em>como lenguaje de programaci&oacute;n. En este marco de  predominancia de <em>Java</em>,  la categor&iacute;a menos estudiada fue <strong>abusadores de la orientaci&oacute;n &nbsp;a objetos</strong>, donde s&oacute;lo existe  un estudio para cada lenguaje. Gran parte de los otros estudios analizan c&oacute;digo duplicado y m&eacute;todos extensos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>PI4: &iquest;Cu&aacute;l es la categor&iacute;a de &rdquo;olor&rdquo; menos estudiada?</em> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Finalmente, m&aacute;s de  la mitad de los art&iacute;culos estudiaron s&oacute;lo 3 categor&iacute;as de &rdquo;olor&rdquo;: <strong>hipertrofia</strong>, <strong>prescindibles </strong>y <strong>acopladores </strong>(Ver<a href="/img/revistas/rcci/v12n4/f0613418.jpg" target="_blank"> Fig. 6</a> y <a href="/img/revistas/rcci/v12n4/f0513418.jpg" target="_blank">Fig.5</a>). Mientras que el resto de las  categor&iacute;as, como es el caso <strong>abuso de orientaci&oacute;n a objetos</strong>,  fue la menos analizada. Es preciso mencionar  que ning&uacute;n estudio  revisado abord&oacute; la totalidad  de &rdquo;olores&rdquo; de una sola categor&iacute;a. &nbsp;Siempre existi&oacute; una mezcla  de elementos de las 3 principales mencionadas anteriormente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Considerando lo anterior, la <a href="/img/revistas/rcci/v12n4/t0413418.jpg" target="_blank">Tabla 4</a> presenta todas las categor&iacute;as &nbsp;en las cuales no  se detectaron art&iacute;culos relacionados con la tem&aacute;tica. As&iacute; por ejemplo en la categor&iacute;a de &rdquo;olor&rdquo; &nbsp;<strong>abusadores de la orientaci&oacute;n &nbsp;a objetos </strong>no  se hallaron estudios donde el m&eacute;todo de detecci&oacute;n se basar&aacute; en <strong>an&aacute;lisis de logs</strong>. Para este mismo tipo de &rdquo;olor&rdquo; &nbsp;pero respecto al tipo de aporte basado en <strong>herramientas</strong>, <strong>otro </strong>y <strong>estrategia </strong>el resultando fue similar. Otras categor&iacute;as de olores que presentaron vac&iacute;os fueron <strong>inhibidores </strong>y <strong>otros </strong>pero s&oacute;lo en <em>visualizaci&oacute;n </em>y <em>an&aacute;lisis de logs </em>respectivamente.</font> </p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este estudio &nbsp;se ha focalizado en el problema de la mantenci&oacute;n de sistemas  de software y ha tomado como varia-  ble principal los malos &rdquo;olores&rdquo; en el c&oacute;digo fuente, com&uacute;nmente llamados &nbsp;<em>code smells</em>, asociado com&uacute;nmente  con altos costos en  la mantenci&oacute;n y evoluci&oacute;n del producto. Para ello se revis&oacute; en extenso el  marco  conceptual de &rdquo;olores&rdquo; en el c&oacute;digo, centrado en  sus modelos, estrategias  &nbsp;y herramientas de detecci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta investigaci&oacute;n por tanto, ha reportado  el actual estado del  arte en la detecci&oacute;n de &rdquo;olores&rdquo; y su impacto en </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">el proceso de reconstrucci&oacute;n, que se traduce en uno  de los principales problemas vinculados a la mantenci&oacute;n de software, tal como lo  plantea Fowler (Fowler et al., 1999). La mayor&iacute;a de los art&iacute;culos analizados describe el uso de m&eacute;tricas para detectar &rdquo;olores&rdquo;  de los grupos <strong>hipertrofia &nbsp;</strong>y <strong>acopladores</strong>, preferentemente utilizando el lenguaje de programaci&oacute;n <em>Java</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Uno de los hallazgos  m&aacute;s significativos &nbsp;que surgen de este estudio,  corresponde a  la identificaci&oacute;n de categor&iacute;as no estudiadas como <strong>abusadores de la orientaci&oacute;n a objetos</strong>, <strong>inhibidores </strong>y <strong>otros </strong>que dejan de manifiesto la necesidad de abordar dichos vac&iacute;os (<a href="/img/revistas/rcci/v12n4/t0413418.jpg" target="_blank">Ver Tabla 4</a>). Espec&iacute;ficamente, la categor&iacute;a <strong>abusadores de la orien- taci&oacute;n a objetos </strong>present&oacute; carencia de  estudio en el 50 % de las categor&iacute;as expuestas, tanto para M&eacute;todo de detecci&oacute;n (an&aacute;lisis de log) y Tipo de aporte (herramientas, estrategias y otros). Lo anterior podr&iacute;a entenderse bajo el supuesto que  la detecci&oacute;n de un olor depende de la experiencia de  quien analiza el c&oacute;digo, del conoci- miento en el dominio  del proyecto de software, y del an&aacute;lisis sobre proyectos  con similares caracter&iacute;sticas. Este hallazgo es relevante  &nbsp;porque abre la posibilidad  de evaluar t&eacute;cnicas de reconocimiento de &rdquo;olores&rdquo;  sustentados en par&aacute;metros sem&aacute;nticos y pragm&aacute;ticos en lugar de sint&aacute;cticos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un &aacute;mbito sin investigar  se relaciona  &nbsp;con los lenguajes de programaci&oacute;n utilizados en los estudios. Por ejemplo,  en el conjunto inicial  y masivo de 215 estudios, s&oacute;lo aparecieron dos estudios relacionados con <strong>JavaScript</strong>, lo que no es coherente &nbsp;con el hecho que es uno de los lenguajes ampliamente  &nbsp;usado. De  este  modo, requiere mayor an&aacute;lisis, no s&oacute;lo la detecci&oacute;n de olores sobre lenguajes masivamente  &nbsp;usados, sino tambi&eacute;n los estudios  relacionados  de costos de mantenci&oacute;n asociados a estas tecnolog&iacute;as.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una de las potenciales limitantes a la validez del estudio  se &nbsp;relaciona con el sesgo &nbsp;propio de la selecci&oacute;n de art&iacute;culos. &nbsp;Lo anterior podr&iacute;a &nbsp;implicar la omisi&oacute;n &nbsp;o inclusi&oacute;n &nbsp;de algunos estudios adem&aacute;s &nbsp;de las posibles inexactitudes a  la hora de extraer datos  para el mapa sistem&aacute;tico. Sin embargo, la ruta seguida en cada paso, admite la inclusi&oacute;n &nbsp;o eliminaci&oacute;n &nbsp;de estudios  permitiendo su actualizaci&oacute;n &nbsp;si fuese necesario.  &nbsp;A&uacute;n &nbsp;en este escenario,  &nbsp;se cree que las conclusiones relevantes no var&iacute;an.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En t&eacute;rminos &nbsp;de trabajo futuro, el equipo investigador ha trazado una ruta de investigaci&oacute;n &nbsp;basada en las categor&iacute;as m&aacute;s limitadas. Una investigaci&oacute;n en agenda&nbsp; es un estudio controlado que permita indagar y comparar el comportamiento de los desarrolladores a la hora de enfrentar anomal&iacute;as en el c&oacute;digo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por lo tanto, y a partir  de este trabajo, no s&oacute;lo se han respondido las preguntas de investigaci&oacute;n en cuanto al  Estado del Arte en el tema del c&oacute;digo con &rdquo;olores&rdquo;, sino que se advierte una agenda de investigaci&oacute;n amplia y abierta  en t&eacute;rmino de anomal&iacute;as del c&oacute;digo, sus impactos y  modelos de correcci&oacute;n eficientes desde la  perspectiva de los costos de mantenci&oacute;n. </font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS  BIBLIOGR&Aacute;FICAS</B></font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Marwen Abbes, Foutse Khomh, Yann-Gael Gueheneuc, and Giuliano Antoniol.&nbsp;  &nbsp;An empirical study of the impact of two antipatterns, blob and spaghetti  code, on  program comprehension. &nbsp;In <em>2011 15th European Conference on Software Maintenance and Reengineering</em>, &nbsp;pages  181&ndash;190, March 2011. doi: 10.1109/CSMR. 2011.24.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">L Amorim, E Costa, N Antunes, B Fonseca, and M Ribeiro. Experience report: Evaluating  the effectiveness of decision trees for detecting &nbsp;code smells. &nbsp;<em>Software &nbsp;Reliability &nbsp;Engineering (ISSRE), 2015 IEEE &nbsp;26th International Symposium on</em>, pages 261&ndash;269,  2015. doi: 10.1109/ISSRE.2015.7381819.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Francesca Arcelli Fontana, Mika V. M??ntyl??, Marco Zanoni, and Alessandro Marino.  &nbsp;Comparing and ex-  perimenting machine learning techniques  for code smell detection. <em>Empirical Software Engineering</em>, 2015. ISSN 15737616. doi: 10.1007/s10664-015-9378-4.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">S. Ayshwaryalakshmi, S. A Sahaaya Arul  &nbsp;Mary, and S. Shanmuga Vadivu.&nbsp; &nbsp;Agent  &nbsp;based tool for topolo- gically sorting badsmells and refactoring by analyzing  complexities in source code. <em>2013 4th International Conference on  Computing, Communications  and Networking Technologies, ICCCNT &nbsp;2013</em>, 2013. doi:10.1109/ICCCNT.2013.6726851.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Rajiv D Banker, Srikant M Datar, Chris F Kemerer, and  Dani Zweig. Software Complexity and Maintenance Costs. <em>Commun. ACM</em>, 36(11):81&ndash;94, 1993. ISSN 0001-0782. doi: 10.1145/163359.163375. &nbsp;URL <a href="http://doi.acm.org/10.1145/163359.163375">http://doi.acm.org/10.1145/163359.163375</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mohamed Boussaa,  Wael Kessentini, Marouane Kessentini, Slim Bechikh, and Soukeina Ben Chikha. &nbsp;Competitive coevolutionary code-smells detection. In <em>International Symposium on Search Based Software Engineering</em>, pages 50&ndash;65. Springer, 2013.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Carlos F&aacute;bio Ramos Concei&cedil;c&tilde;ao, Glauco De Figueiredo Carneiro, and Fernando Brito E Abreu. Streamlining code smells: Using collective intelligence and visualization. <em>Proceedings -  2014  9th International Conference on the Quality  of Information and Communications  Technology, QUATIC &nbsp;2014</em>, pages 306&ndash;311, 2014. doi: .1109/QUATIC.2014.49.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Floris P Engelbertink  and Harald H Vogt. How to save on software maintenance costs. <em>Omnext White Paper.</em> <em>Accessed</em>, 2010.    </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">L. Erlikh.&nbsp;  &nbsp;Leveraging legacy system dollars for e-business. <em>IT &nbsp;Professional</em>, 2(3):17&ndash;23, May 2000. ISSN 1520-9202. doi: 10.1109/6294.846201.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">F. A. Fontana, J. Dietrich,  &nbsp;B. Walter,  &nbsp;A. Yamashita, and M.  &nbsp;Zanoni.  &nbsp;Antipattern  &nbsp;and code smell false  positives: Preliminary conceptualization and classification. In <em>2016 IEEE  &nbsp;23rd International  Conference  on Software Analysis, Evolution,  and Reengineering (SANER)</em>, volume 1, pages 609&ndash;613,  March 2016. doi:10.1109/SANER.2016.84.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Francesca Arcelli Fontana, Elia Mariani,  Andrea Morniroli, Raul Sormani, and Alberto Tonello. An experience report on using code smells detection tools. <em>Proceedings -  4th IEEE International Conference on Software  Testing, Verification,  and Validation Workshops, ICSTW 2011</em>, pages 450&ndash;457, 2011. doi: 10.1109/ICSTW.2011.12.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Francesca Arcelli Fontana, Pietro Braione,  and Marco Zanoni.  Automatic detection of bad smells in  code: An  experimental assessment. <em>Journal of Object Technology</em>, 11(2):1&ndash;38, 2012. ISSN 16601769. doi: 10.5381/jot. 2012.11.2.a5.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Francesca Arcelli Fontana, Vincenzo Ferme, Alessandro Marino, Bartosz Walter, and Pawe?? Martenka. Inves- tigating  the impact of code smells on system&rsquo;s quality: An empirical  study on systems of  different application domains. <em>IEEE International Conference on  Software Maintenance, ICSM</em>, pages 260&ndash;269, 2013. ISSN 1063-6773. doi: 10.1109/ICSM.2013.37.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Francesca Arcelli Fontana, Vincenzo Ferme, Marco Zanoni,  and Aiko Yamashita.  Automatic metric thresholds  derivation for code smell detection.  &nbsp;<em>International &nbsp;Workshop on Emerging Trends in Software Metrics, WETSoM</em>, 2015-Augus:44&ndash;53,  2015. ISSN 23270969. doi: 10.1109/WETSoM.2015.14.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Martin Fowler, Kent Beck, John Brant, William  Opdyke, and Don Roberts. <em>Refactoring: Improving  the Design of Existing Code</em>.  Addison-Wesley Professional, 1999.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Shizhe Fu and Beijun  Shen. Code Bad Smell Detection through  Evolutionary Data Mining.  &nbsp;<em>International  Symposium on  Empirical Software Engineering and Measurement</em>, 2015-Novem:41&ndash;49, 2015. ISSN 19493789. doi: 10.1109/ESEM.2015.7321194.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Vahid &nbsp;Garousi Yusifolu, Yasaman Amannejad, and Aysu Betin &nbsp;Can.&nbsp;&nbsp;&nbsp; Software test-code engineering: A systematic mapping.&nbsp;&nbsp;&nbsp; <em>Information &nbsp;and Software &nbsp;Technology</em>, &nbsp;58:123&ndash;147, 2015.&nbsp;&nbsp;&nbsp; ISSN 09505849.&nbsp;&nbsp; doi: 10.1016/j.infsof.2014.06.009. </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Almas Hamid, Muhammad Ilyas, Muhammad  Hummayun, and Asad Nawaz. A Comparative Study on Code Smell Detection  Tools. <em>International Journal of Advanced &nbsp;Science and Technology</em>, 60:25&ndash;32, 2013. ISSN 20054238. doi: 10.14257/ijast.2013.60.03. &nbsp;URL <a href="http://www.sersc.org/journals/IJAST/vol60/3.pdf">http://www.sersc.org/journals/IJAST/vol60/3.pdf</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mario Hozano, Henrique Ferreira, Italo Silva, Baldoino Fonseca, and Evandro Costa. Using developers feedback  to improve code smell detection. In <em>Proceedings of  the 30th Annual ACM Symposium on Applied Computing</em>,  pages 1661&ndash;1663. ACM, 2015.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">International Organization for Standardization. ISO/IEC &nbsp;25000:2014 Software Engineering &nbsp;&mdash; Software Pro-  duct Quality Requirements and Evaluation (SQuaRE)  &mdash; Guide to SQuaRE, 2005. Technical report, Inter- national Organization for Standardization,ISO, 2014.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Kamaldeep Kaur and Shilpi Jain. Evaluation of machine learning approaches for change-proneness prediction using code smells. In <em>Proceedings of  the 5th International Conference on  Frontiers in Intelligent Computing: Theory and Applications</em>, pages 561&ndash;572. Springer, 2017.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Foutse Khomh,  Massimiliano Di Penta, Yann Ga??l Gu??h??neuc, and Giuliano Antoniol.&nbsp;  &nbsp;An exploratory study of the impact of antipatterns on class change-  and fault-proneness. <em>Empirical Software Engineering</em>, 17(3):243&ndash;275, 2012. ISSN 13823256. doi: 10.1007/s10664-011-9171-y.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tae-Woong Kim, Tae-Gong  Kim, and Jai-Hyun  Seu. Specification and automated detection of code smells using ocl. <em>International Journal  of Software Engineering and Its Applications</em>, 7(4):35&ndash;44, 2013.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">B P Lientz, E B Swanson, and  G E Tompkins. Characteristics  of Application Software Maintenance. <em>Commun.</em> <em>ACM</em>, 21(6):466&ndash;471, 1978. ISSN 0001-0782. doi: 10.1145/359511.359522. URL <a href="http://doi.acm.org/10.1145/359511.359522">http://doi.acm.org/10.</a> <a href="http://doi.acm.org/10.1145/359511.359522">1145/359511.359522</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Hui Liu, Zhiyi Ma, Weizhong Shao, and Zhendong Niu. Schedule of bad smell detection and resolution: A new way to save effort. <em>IEEE Transactions on Software Engineering</em>, &nbsp;38(1):220&ndash;235, 2012. ISSN 00985589. doi: 10.1109/TSE.2011.9.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Hui Liu, Qiurong  Liu, Zhendong Niu, and Yang Liu.&nbsp; &nbsp;Dynamic and Automatic &nbsp;Feedback-Based Threshold Adaptation &nbsp;for Code Smell Detection.  &nbsp;<em>IEEE &nbsp;Transactions on Software &nbsp;Engineering</em>, 5589(c):1&ndash;1, 2015. ISSN 0098-5589. doi: 10.1109/TSE.2015.2503740.  &nbsp;URL <a href="http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=7337457">http://ieeexplore.ieee.org/lpdocs/epic03/ wrapper.htm?arnumber=7337457</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">M. Mantyla, J. Vanhanen, and C. Lassenius. A taxonomy and an initial  empirical study of bad smells in  code. In <em>International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.</em>, pages  381&ndash;384, Sept 2003. doi: 10.1109/ICSM.2003.1235447.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mika V. M&uml;antyl&uml;a &nbsp;and Casper Lassenius. Subjective  &nbsp;evaluation  of software evolvability &nbsp;using  code smells: An empirical study. &nbsp;<em>Empirical Software Engineering</em>, 11(3):395&ndash;431, 2006. ISSN 13823256. &nbsp;doi: 10.1007/ s10664-006-9002-8. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Radu Marinescu. &nbsp;Detection strategies: Metrics-based &nbsp;rules  for detecting design  flaws. &nbsp;<em>IEEE &nbsp;International</em> <em>Conference on Software Maintenance, ICSM</em>, pages 350&ndash;359, 2004. ISSN 1063-6773. doi: 10.1109/ICSM. 2004.1357820.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Robert C. Martin.&nbsp;  &nbsp;<em>Clean Code: A Handbook of Agile Software Craftsmanship</em>. Prentice &nbsp;Hall  PTR, Upper Saddle River, NJ, USA, 1 edition,  2008. ISBN 0132350882, 9780132350884.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">T. J. McCabe. A complexity measure. <em>IEEE Trans. Softw. Eng.</em>, 2(4):308&ndash;320, July 1976. ISSN 0098-5589.  doi: 10.1109/TSE.1976.233837. URL <a href="http://dx.doi.org/10.1109/TSE.1976.233837">http://dx.doi.org/10.1109/TSE.1976.233837</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mohamed Wiem Mkaouer. Interactive code smells  detection: An initial &nbsp;investigation. In <em>International Sym- posium on Search Based Software Engineering</em>, &nbsp;pages  281&ndash;287. Springer, 2016.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Naouel Moha, Yann Ga??l Gu??h??neuc, Anne Fran??oise Le  Meur, Laurence Duchien, and Alban Tiberghien. DECOR: A Method for the Specification and Detection of Code and Design Smells. <em>Formal Aspects of</em> <em>Computing</em>, 22(3-4):345&ndash;361, 2010. ISSN 09345043. doi: 10.1007/s00165-009-0115-x.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Matthew James Munro.  &nbsp;Product metrics for automatic identification of &rdquo;bad smell&rdquo;design problems  in Java  source-code. <em>Proceedings - International Software Metrics Symposium</em>, 2005(Metrics):125&ndash;133, 2005. ISSN 15301435. doi: 10.1109/METRICS.2005.38.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ali &nbsp;Ouni,  Marouane Kessentini, Houari Sahraoui, Katsuro Inoue, and Mohamed  Salah Hamdi. &nbsp;Improving  multi-objective code-smells correction using development history. &nbsp;<em>Journal of Systems and Software</em>, 105: 18&ndash;39, 2015. ISSN 01641212. &nbsp;doi: 10.1016/j.jss.2015.03.040. &nbsp;URL <a href="http://dx.doi.org/10.1016/j.jss.2015.03.040">http://dx.doi.org/10.1016/j.jss.</a> <a href="http://dx.doi.org/10.1016/j.jss.2015.03.040">2015.03.040</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Fabio Palomba, Gabriele Bavota, Massimiliano  Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshy- vanyk. &nbsp;Detecting bad smells in  source  code using change history information. &nbsp;<em>2013 28th IEEE/ACM In-  ternational Conference on Automated Software Engineering, ASE 2013 -  Proceedings</em>, &nbsp;pages  268&ndash;278, 2013. ISSN 1527-1366. doi: 10.1109/ASE.2013.6693086.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Fabio Palomba, Gabriele  Bavota, Massimiliano Di &nbsp;Penta, Rocco Oliveto, Denys Poshyvanyk, and Andrea De Lucia.  Mining version  histories for detecting code smells. <em>IEEE Transactions on Software Engineering</em>, 41(5):462&ndash;489, 2015a.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Fabio Palomba, Andrea De Lucia, Gabriele Bavota, and Rocco Oliveto.&nbsp; &nbsp;Anti-pattern  &nbsp;detection: Methods,  challenges, and open issues. <em>Advances in Computers</em>, 95:201&ndash;238, 2015b.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Kai Petersen, Robert Feldt, Shahid Mujtaba, and Michael Mattsson. Systematic Mapping Studies in Software Engineering. <em>International Journal  of Software Engineering &amp; Knowledge Engineering</em>, 17(1):33&ndash;55, 2007. ISSN 02181940. doi: 10.1142/S0218194007003112. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Thomas M. Pigoski. <em>Practical Software Maintenance: Best Practices for  Managing Your Software Investment</em>. Wiley Publishing, 1st edition, 1996. ISBN 0471170011, 9780471170013.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ghulam Rasool and Zeeshan Arshad. A review of code smell mining techniques. <em>Journal of Software: Evolution  and Process</em>, 26(12):1172&ndash;1192, 2014. ISSN 20477481. doi: 10.1002/smr.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ghulam Rasool and Zeeshan Arshad. A lightweight approach for detection of code smells. <em>Arabian Journal for Science and Engineering</em>, 42(2):483&ndash;506, 2017.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dilan Sahin, Marouane  Kessentini, Slim Bechikh, and Kalyanmoy Deb.  &nbsp;Code-Smell Detection as a Bilevel Problem. <em>ACM Transactions on Software Engineering and Methodology</em>, 24(1):1&ndash;44, 2014. ISSN 1049331X. doi: 10.1145/2675067. URL <a href="http://dl.acm.org/citation.cfm?id=2676679.2675067">http://dl.acm.org/citation.cfm?id=2676679.2675067</a>. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Jan Schumacher, Nico Zazworka,  Forrest Shull, Carolyn  Seaman, and Michele Shaw. Building empirical  support for automated code smell detection. &nbsp;In <em>Proceedings  of the 2010 ACM-IEEE International Symposium on  Empirical Software Engineering  and Measurement</em>, &nbsp;page 8.  ACM, 2010.    </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Satwinder Singh and K. S. Kahlon. &nbsp;Effectiveness  of encapsulation and object-oriented metrics to refactor  code and identify error prone classes using bad smells. <em>ACM SIGSOFT Software Engineering  Notes</em>, 36(5): 1, 2011. ISSN 01635948.  &nbsp;doi: 10.1145/2020976.2020994.  &nbsp;URL <a href="http://dl.acm.org/citation.cfm?doid">http://dl.acm.org/citation.cfm?doid=</a><a href="http://dl.acm.org/citation.cfm?doid=2020976.2020994">2108144.2108157{%}5Cnhttp://dl.acm.org/citation.cfm?doid=2020976.2020994</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">K. Sirikul and C. Soomlek. Automated  detection of code smells caused  by null checking conditions in java  programs. In <em>2016 13th International  &nbsp;Joint Conference on Computer Science and Software Engineering (JCSSE)</em>, pages 1&ndash;7, July 2016. doi: 10.1109/JCSSE.2016.7748884.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Kathryn &nbsp;T. Stolee and Sebastian Elbaum. &nbsp;Identification, impact, and refactoring of smells in  pipe-like web  mashups. &nbsp;<em>IEEE &nbsp;Transactions on Software &nbsp;Engineering</em>, 39(12):1654&ndash;1679, 2013. ISSN 00985589.  doi: 10.1109/TSE.2013.42.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">G&aacute;bor Sz&#733;oke, G&aacute;bor Antal, Csaba Nagy, Rudolf Ferenc, and Tibor Gyim&oacute;thy. Empirical  study on refactoring large-scale industrial &nbsp;systems and its effects on maintainability.&nbsp; &nbsp;<em>Journal of Systems and Software</em>, 129: 107 &ndash; 126, 2017. &nbsp;ISSN 0164-1212. doi: <a href="http://dx.doi.org/10.1016/j.jss.2016.08.071">http://dx.doi.org/10.1016/j.jss.2016.08.071.&nbsp; &nbsp;</a>URL <a href="http://www.sciencedirect.com/science/article/pii/S0164121216301558">http://www. sciencedirect.com/science/article/pii/S0164121216301558</a>. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ewan Tempero, Craig Anslow, Jens Dietrich, Ted Han, Jing Li, Markus Lumpe, Hayden Melton, and James  Noble. The Qualitas Corpus: A curated collection of Java code for empirical studies. <em>Proceedings  - Asia- Pacific Software Engineering Conference, APSEC</em>, pages 336&ndash;345, &nbsp;2010. ISSN 15301362. doi: 10.1109/  APSEC.2010.46. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">P. Tomas, M. J. Escalona, and M. Mejias.  &nbsp;Open source tools for measuring the Internal Quality &nbsp;of Java  software products. A survey. <em>Computer  Standards and Interfaces</em>, &nbsp;36(1):244&ndash;255, 2013. ISSN 09205489.  doi: 10.1016/j.csi.2013.08.006. URL <a href="http://dx.doi.org/10.1016/j.csi.2013.08.006">http://dx.doi.org/10.1016/j.csi.2013.08.006</a>. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Bartosz Walter, B-laz&#729; ej Matuszyk, and Francesca Arcelli Fontana. Including structural  factors into the metrics- based code smells detection. In <em>Scientific  Workshop Proceedings of  the XP2015</em>, page 11. ACM, 2015.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aiko Yamashita  and Steve Counsell. Code smells as system-level &nbsp;indicators of maintainability:  &nbsp;An empirical study. <em>Journal of Systems and Software</em>, 86(10):2639&ndash;2653, 2013. ISSN 01641212. doi: 10.1016/j.jss.2013. 05.007. URL <a href="http://dx.doi.org/10.1016/j.jss.2013.05.007">http://dx.doi.org/10.1016/j.jss.2013.05.007</a>.</font></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 02/10/2017      <br> Aceptado: 15/10/2018</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Abbes]]></surname>
<given-names><![CDATA[Marwen]]></given-names>
</name>
<name>
<surname><![CDATA[Khomh]]></surname>
<given-names><![CDATA[Foutse]]></given-names>
</name>
<name>
<surname><![CDATA[Yann-Gael]]></surname>
<given-names><![CDATA[Gueheneuc]]></given-names>
</name>
<name>
<surname><![CDATA[Antoniol]]></surname>
<given-names><![CDATA[Giuliano]]></given-names>
</name>
</person-group>
<source><![CDATA[An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension.]]></source>
<year>2011</year>
<page-range>181-190</page-range></nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Amorim]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Costa]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Antunes]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Fonseca]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Ribeiro]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Experience report: Evaluating the effectiveness of decision trees for detecting code smells]]></source>
<year>2015</year>
<page-range>261-269</page-range><publisher-name><![CDATA[Software Reliability Engineering (ISSRE)]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fontana]]></surname>
<given-names><![CDATA[Francesca Arcelli]]></given-names>
</name>
<name>
<surname><![CDATA[M??ntyl??]]></surname>
<given-names><![CDATA[Mika V]]></given-names>
</name>
<name>
<surname><![CDATA[Zanoni]]></surname>
<given-names><![CDATA[Marco]]></given-names>
</name>
<name>
<surname><![CDATA[Marino]]></surname>
<given-names><![CDATA[Alessandro]]></given-names>
</name>
</person-group>
<source><![CDATA[Comparing and ex- perimenting machine learning techniques for code smell detection.]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ayshwaryalakshmi]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Arul Mary]]></surname>
<given-names><![CDATA[S. A Sahaaya]]></given-names>
</name>
<name>
<surname><![CDATA[Vadivu]]></surname>
<given-names><![CDATA[S. Shanmuga]]></given-names>
</name>
</person-group>
<source><![CDATA[Agent based tool for topolo- gically sorting badsmells and refactoring by analyzing complexities in source code.]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Banker]]></surname>
<given-names><![CDATA[Rajiv D]]></given-names>
</name>
<name>
<surname><![CDATA[M Data]]></surname>
<given-names><![CDATA[Srikant]]></given-names>
</name>
<name>
<surname><![CDATA[Kemerer]]></surname>
<given-names><![CDATA[Chris F]]></given-names>
</name>
<name>
<surname><![CDATA[Zweig]]></surname>
<given-names><![CDATA[Dani]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software Complexity and Maintenance Costs]]></article-title>
<source><![CDATA[]]></source>
<year>1993</year>
<volume>36</volume>
<numero>11</numero>
<issue>11</issue>
<page-range>81-94</page-range></nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Boussaa]]></surname>
<given-names><![CDATA[Mohamed]]></given-names>
</name>
<name>
<surname><![CDATA[Kessentini]]></surname>
<given-names><![CDATA[Wael]]></given-names>
</name>
<name>
<surname><![CDATA[Kessentini]]></surname>
<given-names><![CDATA[Marouane]]></given-names>
</name>
<name>
<surname><![CDATA[Bechikh]]></surname>
<given-names><![CDATA[Slim]]></given-names>
</name>
<name>
<surname><![CDATA[Chikha]]></surname>
<given-names><![CDATA[Soukeina Ben]]></given-names>
</name>
</person-group>
<source><![CDATA[Competitive coevolutionary code-smells detection.]]></source>
<year>2013</year>
<page-range>50-65</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramos Conceicao]]></surname>
<given-names><![CDATA[Carlos Fábio]]></given-names>
</name>
<name>
<surname><![CDATA[Carneiro]]></surname>
<given-names><![CDATA[Glauco De Figueiredo]]></given-names>
</name>
<name>
<surname><![CDATA[Brito E Abreu]]></surname>
<given-names><![CDATA[Fernando]]></given-names>
</name>
</person-group>
<source><![CDATA[Streamlining code smells: Using collective intelligence and visualization]]></source>
<year>2014</year>
<page-range>306-311</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Engelbertink]]></surname>
<given-names><![CDATA[Floris P]]></given-names>
</name>
<name>
<surname><![CDATA[Harald]]></surname>
<given-names><![CDATA[H Vogt]]></given-names>
</name>
</person-group>
<source><![CDATA[How to save on software maintenance costs.]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Erlikh]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Leveraging legacy system dollars for e-business]]></article-title>
<source><![CDATA[]]></source>
<year>May </year>
<month>20</month>
<day>00</day>
<volume>2</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>17-23</page-range></nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fontana]]></surname>
<given-names><![CDATA[F. A]]></given-names>
</name>
<name>
<surname><![CDATA[Dietrich]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Walter]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Yamashita]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Zanoni]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Antipattern and code smell false positives: Preliminary conceptualization and classification.]]></source>
<year>2016</year>
<volume>1</volume>
<page-range>609-613</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fontana]]></surname>
<given-names><![CDATA[Francesca Arcelli]]></given-names>
</name>
<name>
<surname><![CDATA[Mariani]]></surname>
<given-names><![CDATA[Elia]]></given-names>
</name>
<name>
<surname><![CDATA[Morniroli]]></surname>
<given-names><![CDATA[Andrea]]></given-names>
</name>
<name>
<surname><![CDATA[Sormani]]></surname>
<given-names><![CDATA[Raul]]></given-names>
</name>
<name>
<surname><![CDATA[Tonello]]></surname>
<given-names><![CDATA[Alberto]]></given-names>
</name>
</person-group>
<source><![CDATA[An experience report on using code smells detection tools.]]></source>
<year>2011</year>
<page-range>450-457</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fontana]]></surname>
<given-names><![CDATA[Francesca Arcelli]]></given-names>
</name>
<name>
<surname><![CDATA[Braione]]></surname>
<given-names><![CDATA[Pietro]]></given-names>
</name>
<name>
<surname><![CDATA[Zanoni]]></surname>
<given-names><![CDATA[Marco]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Automatic detection of bad smells in code: An experimental assessment]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>11</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>1-38</page-range></nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fontana]]></surname>
<given-names><![CDATA[Francesca Arcelli]]></given-names>
</name>
<name>
<surname><![CDATA[Vincenzo]]></surname>
<given-names><![CDATA[Ferme]]></given-names>
</name>
<name>
<surname><![CDATA[Alessandro]]></surname>
<given-names><![CDATA[Marino]]></given-names>
</name>
<name>
<surname><![CDATA[Bartosz]]></surname>
<given-names><![CDATA[Walter]]></given-names>
</name>
<name>
<surname><![CDATA[Martenka]]></surname>
<given-names><![CDATA[Pawe??]]></given-names>
</name>
</person-group>
<source><![CDATA[Investigating the impact of code smells on system’s quality: An empirical study on systems of different application domains.]]></source>
<year>2013</year>
<page-range>260-269</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Francesca Arcelli]]></surname>
<given-names><![CDATA[Fontana]]></given-names>
</name>
<name>
<surname><![CDATA[Vincenzo]]></surname>
<given-names><![CDATA[Ferme]]></given-names>
</name>
<name>
<surname><![CDATA[Zanoni]]></surname>
<given-names><![CDATA[Marco]]></given-names>
</name>
<name>
<surname><![CDATA[Yamashita]]></surname>
<given-names><![CDATA[Aiko]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatic metric thresholds derivation for code smell detection.]]></source>
<year>2015</year>
<page-range>:44-53</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fowler]]></surname>
<given-names><![CDATA[Martin]]></given-names>
</name>
<name>
<surname><![CDATA[Beck]]></surname>
<given-names><![CDATA[Kent]]></given-names>
</name>
<name>
<surname><![CDATA[Brant]]></surname>
<given-names><![CDATA[John]]></given-names>
</name>
<name>
<surname><![CDATA[Opdyke]]></surname>
<given-names><![CDATA[William]]></given-names>
</name>
<name>
<surname><![CDATA[Roberts]]></surname>
<given-names><![CDATA[Don]]></given-names>
</name>
</person-group>
<source><![CDATA[Refactoring: Improving the Design of Existing Code.]]></source>
<year>1999</year>
<publisher-name><![CDATA[Addison-Wesley Professional]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shizhe]]></surname>
<given-names><![CDATA[Fu]]></given-names>
</name>
<name>
<surname><![CDATA[Beijun]]></surname>
<given-names><![CDATA[Shen]]></given-names>
</name>
</person-group>
<source><![CDATA[Code Bad Smell Detection through Evolutionary Data Mining.]]></source>
<year>2015</year>
<page-range>41-49</page-range></nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Garousi]]></surname>
<given-names><![CDATA[Vahid]]></given-names>
</name>
<name>
<surname><![CDATA[Amannejad]]></surname>
<given-names><![CDATA[Yasaman]]></given-names>
</name>
<name>
<surname><![CDATA[Can]]></surname>
<given-names><![CDATA[Aysu Betin]]></given-names>
</name>
</person-group>
<source><![CDATA[Software test-code engineering: A systematic mapping.]]></source>
<year>2015</year>
<volume>58</volume>
<page-range>123-147</page-range></nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hamid]]></surname>
<given-names><![CDATA[Almas]]></given-names>
</name>
<name>
<surname><![CDATA[Muhammad]]></surname>
<given-names><![CDATA[Ilyas]]></given-names>
</name>
<name>
<surname><![CDATA[Muhammad]]></surname>
<given-names><![CDATA[Hummayun]]></given-names>
</name>
<name>
<surname><![CDATA[Nawaz]]></surname>
<given-names><![CDATA[Asad]]></given-names>
</name>
</person-group>
<source><![CDATA[A Comparative Study on Code Smell Detection Tools]]></source>
<year>2013</year>
<volume>60</volume>
<page-range>25-32</page-range></nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hozano]]></surname>
<given-names><![CDATA[Mario]]></given-names>
</name>
<name>
<surname><![CDATA[Ferreira]]></surname>
<given-names><![CDATA[Henrique]]></given-names>
</name>
<name>
<surname><![CDATA[Silva]]></surname>
<given-names><![CDATA[Italo]]></given-names>
</name>
<name>
<surname><![CDATA[Baldoino]]></surname>
<given-names><![CDATA[Fonseca]]></given-names>
</name>
<name>
<surname><![CDATA[Costa]]></surname>
<given-names><![CDATA[Evandro]]></given-names>
</name>
</person-group>
<source><![CDATA[Using developers feedback to improve code smell detection.]]></source>
<year>2015</year>
<page-range>1661-1663</page-range></nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="">
<collab>International Organization for Standardization</collab>
<source><![CDATA[ISO/IEC 25000:2014 Software Engineering - Software Pro- duct Quality Requirements and Evaluation (SQuaRE)]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kamaldeep]]></surname>
<given-names><![CDATA[Kaur]]></given-names>
</name>
<name>
<surname><![CDATA[Shilpi]]></surname>
<given-names><![CDATA[Jain]]></given-names>
</name>
</person-group>
<source><![CDATA[Evaluation of machine learning approaches for change-proneness prediction using code smells.]]></source>
<year>2017</year>
<page-range>561-572</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Khomh]]></surname>
<given-names><![CDATA[Foutse]]></given-names>
</name>
<name>
<surname><![CDATA[Di Penta]]></surname>
<given-names><![CDATA[Massimiliano]]></given-names>
</name>
<name>
<surname><![CDATA[Guhneuc]]></surname>
<given-names><![CDATA[Yann Gal]]></given-names>
</name>
<name>
<surname><![CDATA[Antoniol]]></surname>
<given-names><![CDATA[Giuliano]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An exploratory study of the impact of antipatterns on class change- and fault-proneness.]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>17</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>243-275</page-range></nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tae-Woong]]></surname>
<given-names><![CDATA[Kim]]></given-names>
</name>
<name>
<surname><![CDATA[Jai-Hyun]]></surname>
<given-names><![CDATA[Seu]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Specification and automated detection of code smells using ocl.]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>7</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>35-44</page-range></nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lientz]]></surname>
<given-names><![CDATA[B P]]></given-names>
</name>
<name>
<surname><![CDATA[Swanson]]></surname>
<given-names><![CDATA[E B]]></given-names>
</name>
<name>
<surname><![CDATA[Tompkins]]></surname>
<given-names><![CDATA[G E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Characteristics of Application Software Maintenance]]></article-title>
<source><![CDATA[]]></source>
<year>1978</year>
<volume>21</volume>
<numero>6</numero>
<issue>6</issue>
<page-range>466-471</page-range></nlm-citation>
</ref>
<ref id="B25">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hui]]></surname>
<given-names><![CDATA[Liu]]></given-names>
</name>
<name>
<surname><![CDATA[Zhiyi]]></surname>
<given-names><![CDATA[Ma]]></given-names>
</name>
<name>
<surname><![CDATA[Weizhong]]></surname>
<given-names><![CDATA[Shao]]></given-names>
</name>
<name>
<surname><![CDATA[Zhendong]]></surname>
<given-names><![CDATA[Niu]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Schedule of bad smell detection and resolution: A new way to save effort]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>38</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>220-235</page-range></nlm-citation>
</ref>
<ref id="B26">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hui]]></surname>
<given-names><![CDATA[Liu]]></given-names>
</name>
<name>
<surname><![CDATA[Qiurong]]></surname>
<given-names><![CDATA[Liu]]></given-names>
</name>
<name>
<surname><![CDATA[Zhendong]]></surname>
<given-names><![CDATA[Niu]]></given-names>
</name>
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[Liu]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Dynamic and Automatic Feedback-Based Threshold Adaptation for Code Smell Detection.]]></article-title>
<source><![CDATA[]]></source>
<year>2015</year>
<volume>5589</volume>
<numero>c</numero>
<issue>c</issue>
<page-range>1-1</page-range></nlm-citation>
</ref>
<ref id="B27">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mantyla]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Vanhanen]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Lassenius]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[A taxonomy and an initial empirical study of bad smells in code.]]></source>
<year>2003</year>
<page-range>381-384</page-range></nlm-citation>
</ref>
<ref id="B28">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mantyla]]></surname>
<given-names><![CDATA[Mika V]]></given-names>
</name>
<name>
<surname><![CDATA[Lassenius]]></surname>
<given-names><![CDATA[Casper]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Subjective evaluation of software evolvability using code smells: An empirical study]]></article-title>
<source><![CDATA[]]></source>
<year>2006</year>
<volume>11</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>395-431</page-range></nlm-citation>
</ref>
<ref id="B29">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Marinescu]]></surname>
<given-names><![CDATA[Radu]]></given-names>
</name>
</person-group>
<source><![CDATA[Detection strategies: Metrics-based rules for detecting design flaws]]></source>
<year>2004</year>
<page-range>350-359</page-range></nlm-citation>
</ref>
<ref id="B30">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Martin]]></surname>
<given-names><![CDATA[Robert C]]></given-names>
</name>
</person-group>
<source><![CDATA[Clean Code: A Handbook of Agile Software Craftsmanship]]></source>
<year>2008</year>
<edition>1</edition>
<publisher-loc><![CDATA[^eNJ NJ]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall PTR, Upper Saddle River]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B31">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[McCabe]]></surname>
<given-names><![CDATA[T. J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A complexity measure]]></article-title>
<source><![CDATA[]]></source>
<year>1976</year>
<volume>2</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>308-320</page-range></nlm-citation>
</ref>
<ref id="B32">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wiem Mkaouer]]></surname>
<given-names><![CDATA[Mohamed]]></given-names>
</name>
</person-group>
<source><![CDATA[Interactive code smells detection: An initial investigation.]]></source>
<year>2016</year>
<page-range>281-287</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B33">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Moha]]></surname>
<given-names><![CDATA[Naouel]]></given-names>
</name>
<name>
<surname><![CDATA[Guhneuc]]></surname>
<given-names><![CDATA[Yann Gal]]></given-names>
</name>
<name>
<surname><![CDATA[Le Meur]]></surname>
<given-names><![CDATA[Anne Franoise]]></given-names>
</name>
<name>
<surname><![CDATA[Duchien]]></surname>
<given-names><![CDATA[Laurence]]></given-names>
</name>
<name>
<surname><![CDATA[Tiberghien]]></surname>
<given-names><![CDATA[Alban]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[DECOR: A Method for the Specification and Detection of Code and Design Smells]]></article-title>
<source><![CDATA[]]></source>
<year>2010</year>
<volume>22</volume>
<numero>3-4</numero>
<issue>3-4</issue>
<page-range>345-361</page-range></nlm-citation>
</ref>
<ref id="B34">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Munro]]></surname>
<given-names><![CDATA[Matthew James]]></given-names>
</name>
</person-group>
<source><![CDATA[Product metrics for automatic identification of ”bad smell”design problems in Java source-code]]></source>
<year>2005</year>
<page-range>125-133</page-range></nlm-citation>
</ref>
<ref id="B35">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ouni]]></surname>
<given-names><![CDATA[Ali]]></given-names>
</name>
<name>
<surname><![CDATA[Marouane]]></surname>
<given-names><![CDATA[Kessentini]]></given-names>
</name>
<name>
<surname><![CDATA[Sahraoui]]></surname>
<given-names><![CDATA[Houari]]></given-names>
</name>
<name>
<surname><![CDATA[Inoue]]></surname>
<given-names><![CDATA[Katsuro]]></given-names>
</name>
<name>
<surname><![CDATA[Hamdi]]></surname>
<given-names><![CDATA[Mohamed Salah]]></given-names>
</name>
</person-group>
<source><![CDATA[Improving multi-objective code-smells correction using development history.]]></source>
<year>2015</year>
<volume>105</volume>
<page-range>18-39</page-range><publisher-name><![CDATA[Journal of Systems and Software]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B36">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Palomba]]></surname>
<given-names><![CDATA[Fabio]]></given-names>
</name>
<name>
<surname><![CDATA[Bavota]]></surname>
<given-names><![CDATA[Gabriele]]></given-names>
</name>
<name>
<surname><![CDATA[Di Penta]]></surname>
<given-names><![CDATA[Massimiliano]]></given-names>
</name>
<name>
<surname><![CDATA[Oliveto]]></surname>
<given-names><![CDATA[Rocco]]></given-names>
</name>
<name>
<surname><![CDATA[De Lucia]]></surname>
<given-names><![CDATA[Andrea]]></given-names>
</name>
<name>
<surname><![CDATA[Poshy- vanyk]]></surname>
<given-names><![CDATA[Denys]]></given-names>
</name>
</person-group>
<source><![CDATA[Detecting bad smells in source code using change history information]]></source>
<year>2013</year>
<page-range>268-278</page-range></nlm-citation>
</ref>
<ref id="B37">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Palomba]]></surname>
<given-names><![CDATA[Fabio]]></given-names>
</name>
<name>
<surname><![CDATA[Bavota]]></surname>
<given-names><![CDATA[Gabriele]]></given-names>
</name>
<name>
<surname><![CDATA[Di Penta]]></surname>
<given-names><![CDATA[Massimiliano]]></given-names>
</name>
<name>
<surname><![CDATA[Oliveto]]></surname>
<given-names><![CDATA[Rocco]]></given-names>
</name>
<name>
<surname><![CDATA[Poshyvanyk]]></surname>
<given-names><![CDATA[Denys]]></given-names>
</name>
<name>
<surname><![CDATA[De Lucia]]></surname>
<given-names><![CDATA[Andrea]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Mining version histories for detecting code smells]]></article-title>
<source><![CDATA[]]></source>
<year>2015</year>
<volume>41</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>462-489</page-range></nlm-citation>
</ref>
<ref id="B38">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Palomba]]></surname>
<given-names><![CDATA[Fabio]]></given-names>
</name>
<name>
<surname><![CDATA[De Lucia]]></surname>
<given-names><![CDATA[Andrea]]></given-names>
</name>
<name>
<surname><![CDATA[Bavota]]></surname>
<given-names><![CDATA[Gabriele]]></given-names>
</name>
<name>
<surname><![CDATA[Oliveto]]></surname>
<given-names><![CDATA[Rocco]]></given-names>
</name>
</person-group>
<source><![CDATA[Anti-pattern detection: Methods, challenges, and open issues.]]></source>
<year>2015</year>
<volume>95</volume>
<page-range>201-238</page-range></nlm-citation>
</ref>
<ref id="B39">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Petersen]]></surname>
<given-names><![CDATA[Kai]]></given-names>
</name>
<name>
<surname><![CDATA[Feldt]]></surname>
<given-names><![CDATA[Robert]]></given-names>
</name>
<name>
<surname><![CDATA[Mujtaba]]></surname>
<given-names><![CDATA[Shahid]]></given-names>
</name>
<name>
<surname><![CDATA[Mattsson]]></surname>
<given-names><![CDATA[Michael]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Systematic Mapping Studies in Software Engineering]]></article-title>
<source><![CDATA[]]></source>
<year>2007</year>
<volume>17</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>33-55</page-range></nlm-citation>
</ref>
<ref id="B40">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pigoski]]></surname>
<given-names><![CDATA[Thomas M]]></given-names>
</name>
</person-group>
<source><![CDATA[Practical Software Maintenance: Best Practices for Managing Your Software Investment]]></source>
<year>1996</year>
<edition>1st</edition>
<publisher-name><![CDATA[Wiley Publishing]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B41">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ghulam]]></surname>
<given-names><![CDATA[Rasool]]></given-names>
</name>
<name>
<surname><![CDATA[Arshad]]></surname>
<given-names><![CDATA[Zeeshan]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A review of code smell mining techniques.]]></article-title>
<source><![CDATA[]]></source>
<year>2014</year>
<volume>26</volume>
<numero>12</numero>
<issue>12</issue>
<page-range>1172-1192</page-range></nlm-citation>
</ref>
<ref id="B42">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rasool]]></surname>
<given-names><![CDATA[Ghulam]]></given-names>
</name>
<name>
<surname><![CDATA[Zeeshan]]></surname>
<given-names><![CDATA[Arshad]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A lightweight approach for detection of code smells.]]></article-title>
<source><![CDATA[]]></source>
<year>2017</year>
<volume>42</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>483-506</page-range></nlm-citation>
</ref>
<ref id="B43">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sahin]]></surname>
<given-names><![CDATA[Dilan]]></given-names>
</name>
<name>
<surname><![CDATA[Kessentini]]></surname>
<given-names><![CDATA[Marouane]]></given-names>
</name>
<name>
<surname><![CDATA[Bechikh]]></surname>
<given-names><![CDATA[Slim]]></given-names>
</name>
<name>
<surname><![CDATA[Kalyanmoy]]></surname>
<given-names><![CDATA[Deb]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Code-Smell Detection as a Bilevel Problem]]></article-title>
<source><![CDATA[]]></source>
<year>2014</year>
<volume>24</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>1-44</page-range></nlm-citation>
</ref>
<ref id="B44">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Schumacher]]></surname>
<given-names><![CDATA[Jan]]></given-names>
</name>
<name>
<surname><![CDATA[Zazworka]]></surname>
<given-names><![CDATA[Nico]]></given-names>
</name>
<name>
<surname><![CDATA[Forrest]]></surname>
<given-names><![CDATA[Shull]]></given-names>
</name>
<name>
<surname><![CDATA[Seaman]]></surname>
<given-names><![CDATA[Carolyn]]></given-names>
</name>
<name>
<surname><![CDATA[Michele]]></surname>
<given-names><![CDATA[Shaw]]></given-names>
</name>
</person-group>
<source><![CDATA[Building empirical support for automated code smell detection.]]></source>
<year>2010</year>
<page-range>8</page-range></nlm-citation>
</ref>
<ref id="B45">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Satwinder]]></surname>
<given-names><![CDATA[Singh]]></given-names>
</name>
<name>
<surname><![CDATA[Kahlon]]></surname>
<given-names><![CDATA[K. S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Effectiveness of encapsulation and object-oriented metrics to refactor code and identify error prone classes using bad smells]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>36</volume>
<numero>5</numero>
<issue>5</issue>
</nlm-citation>
</ref>
<ref id="B46">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sirikul]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Soomlek]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Automated detection of code smells caused by null checking conditions in java programs.]]></source>
<year>July</year>
<month> 2</month>
<day>01</day>
<page-range>1-7</page-range></nlm-citation>
</ref>
<ref id="B47">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kathryn]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Stolee and Sebastian Elbaum.]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>39</volume>
<numero>12</numero>
<issue>12</issue>
<page-range>1654-1679</page-range></nlm-citation>
</ref>
<ref id="B48">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gábor]]></surname>
<given-names><![CDATA[Sz&#733;oke]]></given-names>
</name>
<name>
<surname><![CDATA[Gábor]]></surname>
<given-names><![CDATA[Antal]]></given-names>
</name>
<name>
<surname><![CDATA[Nagy]]></surname>
<given-names><![CDATA[Csaba]]></given-names>
</name>
<name>
<surname><![CDATA[Rudolf]]></surname>
<given-names><![CDATA[Ferenc]]></given-names>
</name>
<name>
<surname><![CDATA[Gyimóthy]]></surname>
<given-names><![CDATA[Tibor]]></given-names>
</name>
</person-group>
<source><![CDATA[Empirical study on refactoring large-scale industrial systems and its effects on maintainability.]]></source>
<year>2017</year>
<volume>129</volume>
<page-range>107 - 126</page-range><publisher-name><![CDATA[Journal of Systems and Software]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B49">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tempero]]></surname>
<given-names><![CDATA[Ewan]]></given-names>
</name>
<name>
<surname><![CDATA[Anslow]]></surname>
<given-names><![CDATA[Craig]]></given-names>
</name>
<name>
<surname><![CDATA[Dietrich]]></surname>
<given-names><![CDATA[Jens]]></given-names>
</name>
<name>
<surname><![CDATA[Han]]></surname>
<given-names><![CDATA[Ted]]></given-names>
</name>
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[Jing]]></given-names>
</name>
<name>
<surname><![CDATA[Lumpe]]></surname>
<given-names><![CDATA[Markus]]></given-names>
</name>
<name>
<surname><![CDATA[Melton]]></surname>
<given-names><![CDATA[Hayden]]></given-names>
</name>
<name>
<surname><![CDATA[Noble]]></surname>
<given-names><![CDATA[James]]></given-names>
</name>
</person-group>
<source><![CDATA[The Qualitas Corpus: A curated collection of Java code for empirical studies.]]></source>
<year>2010</year>
<page-range>336-345</page-range></nlm-citation>
</ref>
<ref id="B50">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tomas]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Escalona]]></surname>
<given-names><![CDATA[M. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Mejias]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Open source tools for measuring the Internal Quality of Java software products]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>36</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>244-255</page-range></nlm-citation>
</ref>
<ref id="B51">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bartosz]]></surname>
<given-names><![CDATA[Walter]]></given-names>
</name>
<name>
<surname><![CDATA[ej Matuszyk]]></surname>
<given-names><![CDATA[B-laz]]></given-names>
</name>
<name>
<surname><![CDATA[Arcelli Fontana]]></surname>
<given-names><![CDATA[Francesca]]></given-names>
</name>
</person-group>
<source><![CDATA[Including structural factors into the metrics- based code smells detection.]]></source>
<year>2015</year>
<page-range>11</page-range><publisher-name><![CDATA[ACM]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B52">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yamashita]]></surname>
<given-names><![CDATA[Aiko]]></given-names>
</name>
<name>
<surname><![CDATA[Counsell]]></surname>
<given-names><![CDATA[Steve]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Code smells as system-level indicators of maintainability: An empirical study]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>86</volume>
<numero>10</numero><numero>01641212</numero>
<issue>10</issue><issue>01641212</issue>
<page-range>2639-2653</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
