Un enfoque combinatorio para la finalización de API: aprendizaje profundo y heurísticas
Autores: Liu, Yi; Yin, Yiming; Deng, Jia; Li, Weimin; Peng, Zhichao
Idioma: Inglés
Editor: MDPI
Año: 2024
Acceso abierto
Artículo científico
2024
Un enfoque combinatorio para la finalización de API: aprendizaje profundo y heurísticas
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Componentes de biblioteca de software
Interfaces de programación de aplicaciones (APIs)
Herramientas de completado de API
Eficiencia de desarrollo
Métodos de completado de código
Enfoques basados en aprendizaje profundo
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 36
Citaciones: Sin citaciones
Recordar los componentes de bibliotecas de software y dominar sus interfaces de programación de aplicaciones (APIs) es una tarea desafiante para los programadores, debido al gran volumen de bibliotecas disponibles. Las herramientas de completado de API, que predicen APIs posteriores basadas en el contexto del código, son esenciales para mejorar la eficiencia de desarrollo. Sin embargo, las técnicas de completado de API existentes enfrentan debilidades específicas que limitan su rendimiento. Los métodos de completado de código basados en patrones que dependen de información estadística sobresalen en la extracción de patrones de uso común de secuencias de API. Sin embargo, a menudo tienen dificultades para capturar la semántica del código circundante. Por el contrario, los enfoques basados en aprendizaje profundo sobresalen en la comprensión de la semántica del código pero pueden pasar por alto ciertos usos comunes que pueden ser fácilmente identificados por métodos basados en patrones. Nuestra visión para superar estos desafíos se basa en la complementariedad entre estos dos tipos de enfoques. Este documento propone un método combinatorio de completado de API que tiene como objetivo explotar las fortalezas de los enfoques basados en patrones y en aprendizaje profundo. La idea básica es utilizar un selector basado en confianza para determinar qué tipo de enfoque se debe utilizar para generar predicciones. Los enfoques basados en patrones solo se aplicarán si la frecuencia de un patrón particular supera un umbral predefinido, mientras que en otros casos, se utilizarán modelos de aprendizaje profundo para generar los resultados de completado de API. Los resultados mostraron que nuestro enfoque mejoró drásticamente la precisión y la media del rango recíproco (MRR) en experimentos a gran escala, resaltando su utilidad.
Descripción
Recordar los componentes de bibliotecas de software y dominar sus interfaces de programación de aplicaciones (APIs) es una tarea desafiante para los programadores, debido al gran volumen de bibliotecas disponibles. Las herramientas de completado de API, que predicen APIs posteriores basadas en el contexto del código, son esenciales para mejorar la eficiencia de desarrollo. Sin embargo, las técnicas de completado de API existentes enfrentan debilidades específicas que limitan su rendimiento. Los métodos de completado de código basados en patrones que dependen de información estadística sobresalen en la extracción de patrones de uso común de secuencias de API. Sin embargo, a menudo tienen dificultades para capturar la semántica del código circundante. Por el contrario, los enfoques basados en aprendizaje profundo sobresalen en la comprensión de la semántica del código pero pueden pasar por alto ciertos usos comunes que pueden ser fácilmente identificados por métodos basados en patrones. Nuestra visión para superar estos desafíos se basa en la complementariedad entre estos dos tipos de enfoques. Este documento propone un método combinatorio de completado de API que tiene como objetivo explotar las fortalezas de los enfoques basados en patrones y en aprendizaje profundo. La idea básica es utilizar un selector basado en confianza para determinar qué tipo de enfoque se debe utilizar para generar predicciones. Los enfoques basados en patrones solo se aplicarán si la frecuencia de un patrón particular supera un umbral predefinido, mientras que en otros casos, se utilizarán modelos de aprendizaje profundo para generar los resultados de completado de API. Los resultados mostraron que nuestro enfoque mejoró drásticamente la precisión y la media del rango recíproco (MRR) en experimentos a gran escala, resaltando su utilidad.