stringtranslate.com

Repositorios de software de minería

Dentro de la ingeniería de software , el campo de minería de repositorios de software [1] ( MSR ) [2] analiza los ricos 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 útil sobre sistemas de software , proyectos e ingeniería de software .

Definición

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

Técnicas

Análisis de cambio acoplado

La idea del análisis de cambios acoplados es que los desarrolladores cambien las entidades del código (por ejemplo, archivos) juntas con frecuencia para corregir defectos o introducir nuevas características. 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 de un proyecto. A través de las confirmaciones y el momento de los cambios, podríamos identificar qué entidades cambian juntas con frecuencia. Esta información podría luego presentarse a los desarrolladores que estén a punto de cambiar una de las entidades para ayudarlos en sus cambios posteriores. [4]

Análisis de confirmación

Existen muchos tipos diferentes de commits en los sistemas de control de versiones, por ejemplo, commits de corrección de errores, commits de nuevas características, commits de documentación, etc. Para tomar decisiones basadas en datos basados ​​en commits anteriores, es necesario seleccionar subconjuntos de commits que cumplan con un criterio determinado. Esto se puede hacer en función del mensaje de commit. [5]

Generación de documentación

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 principiantes a identificar rápidamente las clases de uso común. [6]

Datos y herramientas

Los datos de minería primarios provienen de sistemas de control de versiones. Los primeros experimentos de minería se realizaron en repositorios CVS. [7] Luego, los investigadores analizaron exhaustivamente los repositorios SVN. [8] Ahora, los repositorios Git son dominantes. [9] Dependiendo de la naturaleza de los datos requeridos (tamaño, dominio, procesamiento), uno puede descargar datos de una de estas fuentes. Sin embargo, la gobernanza de datos y la recopilación de datos con el fin de construir modelos de lenguaje grandes han llegado a cambiar las reglas del juego, al integrar el uso de rastreadores web para obtener datos de múltiples fuentes y dominios.

Véase también

Referencias

  1. ^ Hassan, Ahmed E. (2008). "El camino a seguir para la minería de repositorios de software". 2008, Fronteras del mantenimiento de software . IEEE. págs. 48–57.
  2. ^ Jornada de trabajo sobre minería de repositorios de software, la principal conferencia de ingeniería de software en el área
  3. ^ KS Herzig y A. Zeller, “Explorando su propia evidencia”, en Making Software, págs. 517–529, Sebastopol, California, EE. UU.: O'Reilly, 2011.
  4. ^ Gall, H.; Hajek, K.; Jazayeri, M. (1998). "Detección de acoplamiento lógico basado en el historial de lanzamiento de productos". Actas. Conferencia internacional sobre mantenimiento de software (Cat. No. 98CB36272) . págs. 190–198. CiteSeerX 10.1.1.199.7754 . doi :10.1109/icsm.1998.738508. ISBN .  978-0-8186-8779-2.
  5. ^ Hindle, Abram; German, Daniel M.; Godfrey, Michael W.; Holt, Richard C. (2009). "Clasificación automática de grandes cambios en categorías de mantenimiento". 2009 IEEE 17th International Conference on Program Comprehension . págs. 30–39. doi :10.1109/ICPC.2009.5090025. ISBN 978-1-4244-3998-0.
  6. ^ Stylos, Jeffrey; Faulring, Andrew; Yang, Zizhuang; Myers, Brad A. (2009). "Mejora de la documentación de API mediante la información de uso de API". Simposio IEEE de 2009 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC) . pp. 119–126. doi :10.1109/VLHCC.2009.5295283. ISBN . 978-1-4244-4876-0.
  7. ^ Canfora, G.; Cerulo, L. (2005). "Análisis de impacto mediante minería de software y repositorios de solicitudes de cambio". 11.º Simposio internacional sobre métricas de software del IEEE (METRICS'05) . pág. 29. doi :10.1109/METRICS.2005.28. ISBN 978-0-7695-2371-2.
  8. ^ d'Ambros, Marco; Gall, Harald; Lanza, Michele; Pinzger, Martin (2008). "Análisis de repositorios de software para comprender la evolución del software". Software Evolution . págs. 37–67. doi :10.1007/978-3-540-76440-3_3. ISBN 978-3-540-76439-7.
  9. ^ Kalliamvakou, Eirini; Gousios, Georgios; Blincoe, Kelly; Singer, Leif; German, Daniel M.; Damian, Daniela (2014). "Las promesas y los peligros de la minería de GitHub". Actas de la 11.ª Conferencia de trabajo sobre minería de repositorios de software - MSR 2014. págs. 92–101. doi :10.1145/2597073.2597074. ISBN 9781450328630.