Repositorios de software de minería


El campo de repositorios de software de minería [ cita requerida ] ( MSR ) [1] analiza los abundantes datos disponibles en los repositorios de software, como repositorios de control de versiones, archivos de listas de correo , sistemas de seguimiento de errores, sistemas de seguimiento de problemas , etc. para descubrir información interesante y procesable. sobre sistemas de software , proyectos e ingeniería de software .

Herzig y Zeller definen "archivos de software de minería" como un proceso para "obtener mucha evidencia inicial" mediante la extracción de datos de repositorios de software. Además, definen "fuentes de datos" como artefactos basados ​​en productos, como código fuente, artefactos de requisitos o archivos de versiones, y afirman que estas fuentes son imparciales, pero ruidosas e incompletas. [2]

La idea en el análisis de cambios acoplados es que los desarrolladores cambien entidades de código (por ejemplo, archivos) juntos con frecuencia para corregir defectos o introducir nuevas funciones. Estos acoplamientos entre las entidades a menudo no se hacen explícitos en el código u otros documentos. Especialmente los desarrolladores nuevos en el proyecto no saben qué entidades deben cambiarse juntas. El análisis de cambios acoplados tiene como objetivo extraer el acoplamiento del sistema de control de versiones para un proyecto. Mediante las confirmaciones y el momento de los cambios, podríamos identificar qué entidades cambian juntas con frecuencia. Luego, esta información podría presentarse a los desarrolladores que están a punto de cambiar una de las entidades para ayudarlos en sus cambios posteriores. [3]

Hay muchos tipos diferentes de confirmaciones en los sistemas de control de versiones, por ejemplo, confirmaciones de corrección de errores, confirmaciones de nuevas funciones, confirmaciones de documentación, etc. Para tomar decisiones basadas en datos basadas en confirmaciones anteriores, es necesario seleccionar subconjuntos de confirmaciones que cumplan con un criterio determinado. Eso se puede hacer en función del mensaje de confirmación, [4] o en función del contenido de la confirmación. [5]

Es posible generar documentación útil a partir de repositorios de software de minería. Por ejemplo, Jadeite calcula estadísticas de uso y ayuda a los recién llegados a identificar rápidamente las clases de uso común. [6] Cuando uno se enfoca en ciertos tipos de documentación estructurada, como las directivas de subclases, las técnicas más avanzadas pueden sintetizar oraciones completas. [7]

Los datos de minería primarios provienen de los sistemas de control de versiones. Los primeros experimentos de minería se realizaron en repositorios CVS. [8] Luego, los investigadores han analizado exhaustivamente los repositorios SVN. [9] Ahora, los repositorios de Git son dominantes, [10] pero se debe tener especial cuidado al manejar ramas y bifurcaciones. [11]