SACS: A Code Smell Dataset using Semi-automatic Generation Approach
Este estudio presenta SACS, un conjunto de datos de código abierto y a gran escala para la detección de olores de código (Long Method, Large Class y Feature Envy), generado mediante un enfoque semiautomático que combina reglas automáticas con revisión manual para garantizar la calidad de las etiquetas y superar las limitaciones de los métodos puramente automáticos o manuales.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
¡Imagina que el código de un programa es como una cocina gigante! 🍳👨🍳
Cuando una cocina está bien organizada, con cada utensilio en su lugar y recetas claras, es fácil cocinar platos deliciosos (crear software funcional). Pero, con el tiempo, si no se limpia, la cocina se llena de desorden: ollas gigantes que nadie sabe usar, recetas que son tan largas que ocupan toda la pared, y cocineros que están constantemente corriendo a la despensa de otro para pedir ingredientes que deberían tener en su propia estación.
En el mundo del software, a este desorden le llamamos "Olor a Código" (Code Smell). No significa que el programa huele mal literalmente, pero indica que algo está mal diseñado y que, si no lo arreglas, será un dolor de cabeza mantenerlo o mejorarlo en el futuro.
El Problema: ¿Cómo encontrar el desorden?
Los investigadores quieren usar Inteligencia Artificial (IA) para enseñar a las computadoras a detectar y arreglar este desorden automáticamente. Pero, para que la IA aprenda, necesita un libro de ejercicios (un conjunto de datos) lleno de ejemplos de "cocinas sucias" y "cocinas limpias".
Aquí está el dilema:
- Hacerlo a mano: Contratar a 20 chefs expertos para que revisen cada receta y digan "esto está mal" es increíblemente lento, caro y agotador. Además, a veces dos chefs no están de acuerdo en si una receta es "demasiado larga".
- Hacerlo con robots: Crear desorden automáticamente es rápido, pero los robots a veces hacen cosas que no son realmente "malas", o no logran crear el desorden perfecto. El resultado es un libro de ejercicios con errores.
La Solución: El Equipo Híbrido (SACS)
Los autores de este paper, Zhang y Kishi, tuvieron una idea brillante: ¿Por qué no mezclar la velocidad de los robots con el ojo experto de los humanos? Llamaron a su proyecto SACS.
Imaginen que SACS es un sistema de control de calidad en una fábrica de juguetes:
Paso 1: Los Robots Crean el "Desorden" (Generación Automática)
Primero, usan un robot programado con reglas específicas para crear problemas a propósito.
- Si quieren crear una "Método Largo" (una receta gigante), el robot toma dos recetas pequeñas y las pega en una sola.
- Si quieren una "Clase Grande" (una olla gigante), el robot fusiona dos ollas en una.
- Si quieren "Envidia de Característica" (un cocinero que usa los utensilios del vecino), el robot mueve un ingrediente a la cocina equivocada.
El robot genera miles de ejemplos de "cocinas sucias" en segundos.
Paso 2: El Filtro Inteligente (Agrupación)
Aquí viene la magia. No revisan todo a mano. Usan una regla de tres (como un semáforo) para decidir qué necesita un humano y qué no:
- 🟢 Luz Verde (Grupo A - Automático): Si el robot crea una receta que es obviamente gigante (por ejemplo, tiene 100 líneas cuando el límite es 30), el sistema dice: "¡Esto es basura, está confirmado!". Lo guarda sin que nadie lo mire.
- 🔴 Luz Roja (Grupo M - Manual): Si la receta es un poco larga (digamos, 25 líneas) o el robot no está seguro, el sistema la envía a un humano experto.
- 🟡 Luz Amarilla (Lo que no es basura): Si el robot intenta crear desorden pero la receta sigue siendo pequeña y limpia, lo descarta.
Esto es como tener un tamiz: deja pasar la arena fina (lo obvio) y retiene las piedras grandes (lo ambiguo) para que un humano las revise. Así, los humanos solo gastan su energía en los casos difíciles, no en los obvios.
Paso 3: Los Expertos Revisan (Validación Manual)
Los humanos (chefs expertos) revisan solo las "piedras" que el robot no pudo decidir. Usan una herramienta especial (un plugin para el editor de código) que les facilita marcar exactamente qué parte de la receta está mal y cómo arreglarla.
El Resultado: El Gran Libro de Ejercicios (SACS)
Gracias a este método híbrido, crearon un libro de ejercicios masivo y gratuito llamado SACS.
- Contiene más de 10,000 ejemplos de cada tipo de "olor a código" (Recetas largas, Ollas gigantes, Cocineros envidiosos).
- Es de alta calidad porque los humanos verificaron lo difícil.
- Es grande porque los robots generaron la base.
¿Por qué es importante?
Antes, enseñar a una IA a arreglar el código era como intentar enseñar a un niño a cocinar con solo 5 recetas. Ahora, con SACS, les damos al niño decenas de miles de ejemplos de errores reales y cómo corregirlos.
Esto permitirá que, en el futuro, las herramientas de programación sean más inteligentes, detecten el desorden antes de que se convierta en un caos y ayuden a los desarrolladores a mantener sus "cocinas" limpias y eficientes, ahorrando tiempo y dinero a todo el mundo.
En resumen: SACS es la receta perfecta para entrenar a la próxima generación de "chefs de software" (la IA), combinando la velocidad de un robot con la sabiduría de un chef experto. 🤖👨🍳✨
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.