Suel Arroyo Walter - ACS

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Aseguramiento de la calidad en el proceso de desarrollo con el asistente

automatizado de programación GitHub Copilot basados en inteligencia


artificial y la ISO/IEC 25000

Autor: Suel Arroyo Walter Nick

Correo: [email protected]

RESUMEN

En este trabajo de investigación nos adentraremos en el mundo de los


asistentes automatizados, especialmente hablaremos de la herramienta
llamada Copilot, la cual ha generado una seria de incógnitas y curiosidades
para los desarrolladores y amantes de la tecnología. La principal finalidad de
los asistentes automatizados de programación es ahorrar tiempo a los
desarrolladores de software, la cual se logrará mediante la automatización de
tareas comunes, la cual GitHub Copilot es más sofisticada que las tecnologías
existentes. Además se afirma que Copilot puede detectar cuando un
desarrollador empieza a escribir determinado fragmento de código y le puede
sugerir o completarlo automáticamente que evidentemente será un ahorro de
tiempo increíble. Ahora, este sistema de automatización puede presentar
algunos errores cuando se está desarrollando, sobre todos puede generar
problemas en temas de seguridad, pudiendo ser los sistemas desarrollados con
Copilot altamente vulnerables. Es por ello por lo que este trabajo de
investigación recolectara toda la información para determinar si GitHub Copilot
cumple con los requerimientos especificados por la ISO/IEC 25000.

ABSTRACT

In this research work we will delve into the world of automated assistants,
especially we will talk about the tool called Copilot, which has generated a
series of unknowns and curiosities for developers and technology lovers. The
main purpose of automated programming wizards is to save time for software
developers, which will be achieved by automating common tasks, which GitHub
Copilot is more sophisticated than existing technologies. It is further stated that
Copilot can detect when a developer starts writing a certain piece of code and
can suggest or complete it automatically which will obviously be an incredible
time saver. Now, this automation system can present some errors when it is
being developed, above all it can generate problems in security matters, the
systems developed with Copilot being highly vulnerable. That is why this
research work will collect all the information to determine if GitHub Copilot
meets the requirements specified by ISO / IEC 25000.

Introducción

La evolución de la tecnología en los últimos años ha sido imparable. Hace uno


meses salió a conocerse una de las creaciones de GitHub llamada GitHub
Copilot que llamo la atención de las desarrolladoras de todo el mundo. Esta
herramienta pretende facilitar ahorro de tiempo y recursos a los desarrolladores
de software, evitando los códigos repetitivos, resolver dudas sobre la
implantación de cierto segmento de código, etc., lo cual puede significar una
ventaja para el desarrollador y para el producto digital que se esté elaborando.

Entonces, esta herramienta nos proporciona una serie de sugerencias al


momento que estemos programando, adaptándose también a nuestro estilo de
codificación. Ahora, ¿Esto genera un futuro incierto en los programadores?
Según GitHub no, ya que Copilot solo será un complemento al momento de
desarrollar y que además como sugiere el CEO de GitHub que “siempre habrá
problemas para que los humanos resuelvan”.

Antecedentes

Hammind,P., Ahmad, B., Dolan, B, Karri, R. (2021) mencionan que existe un


interés creciente en desarrollar sistemas que ayuden a los humanos a poder
diseñar sistemas informáticos de una manera mas eficiente, esto incluye
herramientas que generen código informático automáticamente. La herramienta
mas sofisticada y de la que se esta hablando en estos últimos tiempos es
GitHub Copilot, la cual se posiciona como un lenguaje entrenado sobre código
GitHub de código abierto.
Sin embargo, el código procesado por esta herramienta a menudo tiene
errores, surgiendo una serie de complicaciones y preocupaciones sobre las
contribuciones del código de Copilot por lo que en este trabajo se determina la
prevalencia y condiciones que puede hacer que GitHub Copilot recomiende
código inseguro. Para ello se realizo una serie de análisis en la cual se le pidió
a Copilot que genere códigos relevantes con el fin de poder detectar las
debilidades informáticas. De un total de 89 escenarios posibles se encontró que
el 40% de ellos seria vulnerable.

Zhensu S., Xiauning D., Fu S., Mingze N., Li L. (2021) nos dicen que GitHub
Copilot se ha convertido recientemente en la palabra de moda en investigación
y las ciencias de la computación. Esta herramienta esta diseñada para los
desarrolladores para ayudar a implementar código de manera mas rápida, pero
los profesionales e investigadores plantean preocupaciones sobre su ética y
sus problemas de seguridad. Por ello, es necesario que se creen mecanismos
para proteger el código de fuente abierta por modelos de aprendizaje
profundos. Es por ello por lo que en este trabajo se implemento un prototipo
llamado CoProtector que utiliza técnicas que protegen los datos de repositorios
de código fuente para defenderse contra los exploits, esto lograra reducir
significativamente el rendimiento de los modelos de aprendizaje profundo
similares a Copilot.

Modelo, metodología o estándares

Norma ISO 25000:

Las normas ISO son guías que otorgan especificaciones a nivel mundial sobre
los productos, servicios y sistemas para garantizar la máxima calidad y
eficiencia en sus resultados y funcionamiento.

A partir de ello, las normas ISO/IEC 25000 conocida también como SQuaRE
reúne en un documento el conjunto de pautas con el fin de asegurar el optimo
uso y propiedades de un software.
Usaremos estas especificaciones proporcionadas por las normas ISO para
evaluar la seguridad, calidad y eficiencias de GitHub Copilot

Desarrollo de la propuesta

GitHub:

Se presenta como un servicio comercial de alojamiento de repositorios Git


remotos, proporcionando una interfaz Web que permite a un usuario registrado
crear repositorios vacíos, clonar repositorios que se encuentre hospedados en
GitHub, enviar solicitudes de cambios en los repositorios, etc.

Además de este sistema de alojamiento, GitHub proporciona a cada repositorio


creado una Wiki, la cual se comporta como un gestor de tareas (issues), un
sistema de gestión de comentarios, un cuadro de control con grafos, e incluso
una página web propia

GPT - 3:

Es un modelo de inteligencia artificial cuyo objetivo es predecir que es lo que


viene en función de los datos previos introducidos por los desarrolladores. Se le
podría definir como una especie de autocompletado. Por ejemplo se le puede
decir que cree una web que contenga cierta cantidad de botones con los
colores de un arcoíris y automáticamente la inteligencia artificial creara el
código de lo especificado.

Además, es importante saber que las respuestas brindadas por GPT – 3


representan una posibilidad por separado. Es decir que cada respuesta
brindada no tiene que ser la única, ya que la misma petición puede sugerir
respuestas variadas pero similares o también respuestas contradictorias.

GitHub Copilot

Es un sistema capaz de generar código de forma autónoma facilitando


desarrollar software de manera mas eficiente y ahorrando gran cantidad de
tiempo y que podría cambiar el trabajo de los desarrolladores.
Resultados

Conclusiones y recomendaciones

Referencias bibliográficas

Sun, Z., Du, X., Song, F., Ni, M., & Li, L. (2021). CoProtector: Protect Open-Source Code
against Unauthorized Training Usage with Data Poisoning. arXiv preprint arXiv:2110.12925.

https://arxiv.org/pdf/2110.12925.pdf:

https://arxiv.org/pdf/2108.09293.pdf

También podría gustarte