MORCoRA: Multi-Objective Refactoring Recommendation Considering Review Availability

El artículo presenta MORCoRA, una técnica de búsqueda multiobjetivo que recomienda secuencias de refactorización que mejoran la calidad del código y preservan su semántica, al mismo tiempo que identifica revisores expertos y disponibles para garantizar la viabilidad de la revisión.

Lei Chen, Shinpei Hayashi

Publicado Tue, 10 Ma
📖 4 min de lectura☕ Lectura para el café

Each language version is independently generated for its own context, not a direct translation.

¡Claro que sí! Imagina que el código de un programa es como una cocina gigante y desordenada. Con el tiempo, los platos se acumulan, los utensilios están mal guardados y las recetas son confusas. Para arreglarlo, necesitas "reorganizar" (refactorizar) la cocina: mover la nevera a otro lado, cambiar el nombre de los ingredientes o limpiar los gabinetes.

El problema es que, en el mundo del software, no puedes simplemente mover cosas sin avisar. Si mueves la nevera, podrías romper la tubería del agua o hacer que el chef no encuentre los huevos. Además, antes de hacer cualquier cambio, necesitas que alguien experto te diga: "Oye, eso suena bien, pero ¿estás seguro de que no vas a quemar la casa?".

Aquí es donde entra el problema que resuelve este papel: MORCoRA.

El Problema: El Chef Ocupado y el Experto Desconocido

Imagina que tienes un asistente de cocina muy inteligente (un algoritmo) que te dice: "¡He encontrado la forma perfecta de reorganizar la cocina! Mueve la nevera aquí y cambia el nombre de este cuchillo". Suena genial, ¿verdad?

Pero hay un truco:

  1. El Experto: Para que el cambio sea seguro, necesitas que un chef experto en esa zona de la cocina lo apruebe. Si le pides a alguien que solo sabe hacer pasteles que revise la nevera, no servirá de nada.
  2. El Tiempo: El chef experto podría estar atascado cocinando 10 platos a la vez. Si le pides que revise tu cambio ahora mismo, probablemente te diga: "Lo siento, estoy demasiado ocupado, lo haré en un mes" (o quizás nunca lo haga).

Si el cambio no se revisa, no se hace. Y si no se hace, la cocina sigue sucia y el restaurante (el software) pierde calidad.

La Solución: MORCoRA (El "Super-Asistente" Inteligente)

Los autores del paper, Chen y Hayashi, crearon MORCoRA. Es como un buen jefe de cocina que no solo busca la mejor forma de reorganizar, sino que también busca quién puede hacerlo y cuándo.

MORCoRA busca tres cosas a la vez (como un triángulo perfecto):

  1. Mejorar la Calidad: ¿El cambio hace que la cocina sea más limpia y eficiente? (¡Sí!).
  2. No Romper Nada: ¿El cambio tiene sentido? (Por ejemplo, no mover la nevera a la habitación de los niños).
  3. Disponibilidad para Revisar: ¿Hay un chef experto y libre para revisar el cambio ahora mismo?

¿Cómo funciona? (La Analogía del "Equipo de Rescate")

Imagina que MORCoRA es un sistema que escanea la cocina y dice:

  • "Oye, el Chef A es un experto en neveras, pero está cocinando 5 pizzas a la vez. ¡No lo llames!"
  • "El Chef B es un experto en neveras y solo tiene un pastel pendiente. ¡Llama a él!"

El sistema usa una técnica matemática (llamada NSGA-II, que suena a una receta secreta de evolución) para probar millones de combinaciones de cambios y encontrar la mezcla perfecta: un cambio que mejora la cocina, tiene sentido y, lo más importante, tiene a alguien libre y experto para aprobarlo.

¿Qué descubrieron? (Los Resultados)

Los autores probaron su sistema en 6 cocinas reales (proyectos de código abierto famosos como Mockito o Retrofit).

  • El resultado: MORCoRA encontró soluciones que no solo mejoraban la cocina, sino que aumentaban en un 433% la probabilidad de que alguien las revisara y aprobara en comparación con los sistemas antiguos.
  • La lección: Los sistemas antiguos decían: "¡Haz este cambio!", pero a veces nadie podía revisarlo. MORCoRA dice: "Haz este cambio, y aquí tienes al Chef B que está libre y sabe exactamente qué hacer".

En Resumen

Piensa en MORCoRA como un buen amigo que te ayuda a organizar tu casa.

  • Los otros programas te dicen: "¡Mueve ese sofá!".
  • MORCoRA te dice: "¡Mueve ese sofá! Y por cierto, tu amigo Juan, que es experto en muebles y no tiene nada que hacer hoy, está de acuerdo y puede ayudarte a moverlo".

Conclusión: Para que una mejora en el software funcione de verdad, no basta con que sea técnicamente buena; también necesita que las personas adecuadas tengan tiempo para aprobarla. MORCoRA es la herramienta que equilibra la perfección técnica con la realidad humana del trabajo en equipo.