Definición de un proceso ingenieril para el desarrollo de un chatbot a partir de buenas prácticas establecidas

Definition of an Engineering Process for the Development of a Chatbot Based on Established Good Practices

Maydalis Hernández Pérez
UNIVERSIDAD DE LAS CIENCIAS INFORMÁTICAS, Cuba
Luis ángel Llull Céspedes
UNIVERSIDAD DE LAS CIENCIAS INFORMÁTICAS, Cuba

Revista Cubana de Transformación Digital

Unión de Informáticos de Cuba, Cuba

ISSN-e: 2708-3411

Periodicidad: Trimestral

vol. 3, núm. 2, 2021

rctd@uic.cu

Recepción: 06 Junio 2021

Aprobación: 15 Julio 2021



DOI: https://doi.org/doi.org/10.5281/zenodo.5546033

Resumen: Los chatbots son un programa diseñado para simular una conversación inte- ligente, generalmente, con uno o más humanos. En el ámbito educativo son utilizados para actuar como profesor, estudiante o acompañante del estu- diante y es capaz de procesar lenguaje natural y ofrecer información de forma coherente en tiempo real mediante un diálogo. Es posible encontrar diversas investigaciones relacionadas con el desarrollo e implementación de chatbots como trabajos de grado y posgrados. En estos trabajos se evidencia la apli- cación de un proceso ingenieril los cuales en algunos casos difieren unos de otros, pero tienen actividades y buenas prácticas en común utilizadas para el desarrollo de estos sistemas. Por lo que, el objetivo de esta investigación fue definir un proceso ingenieril para el desarrollo de un chatbot a partir de buenas prácticas identificadas en investigaciones realizadas. Logrando así es- tablecer los procesos, actividades y artefactos a realizar para el desarrollo de un chatbot que permita la evaluación y ejercitación de los estudiantes en una asignatura determinada.

Palabras clave: actividades, artefactos, buenas prácticas, chatbot, proceso ingenieril.

Abstract: Chatbots are a program designed to simulate an intelligent conversation, ge- nerally with one or more humans. In the educational field, they are used to act as a teacher, student or student companion and is capable of processing natu- ral language and offering information in a coherent way in real time through a dialogue. It is possible to find various research related to the development and implementation of chatbots such as graduate and postgraduate jobs. In these works the application of an engineering process is evidenced, which in some cases differ from each other, but have activities and good practices in common used for the development of these systems. Therefore, the objective of this re- search was to define an engineering process for the development of a chatbot based on good practices identified in research carried out. Thus, establishing the processes, activities and artifacts to be carried out for the development of a chatbot that allows the evaluation and training of students in a given subject.

Keywords: activities, artifacts, chatbot, engineering process, good practices.

INTRODUCCIÓN

En el sector educacional, la Inteligencia Artificial (IA; por sus siglas en inglés Artifi- cial Intelligence) ha comenzado a producir nuevas soluciones informáticas que se están probando en diferentes contextos con el objetivo de mejorar los diferentes procesos que se desarrollan en el sector. Los sistemas de IA pueden guiar al alumno a través del curso, evaluar automáticamente los resultados de las pruebas e incluso automatizar la interacción alumno-profesor mediante técnicas de procesamiento del lenguaje natural (PLN; por sus siglas en inglés Natural Language Processing) (León & García, 2008; Vila & Lama, 2007).

El PLN posibilita que los sistemas de gestión de aprendizaje (LMS; por sus siglas en in- glés Learning Magement System) puedan convertirse en un entorno inteligente apoyados por tecnologías que permiten realizar recomendaciones y adaptaciones de ayuda a los usuarios (orientación, retroalimentación, consejos o affordances) (Cortez & otros, 2009; León & Gar- cía, 2008; Busqué, 2018).

Dentro de estas tecnologías se encuentran los agentes inteligentes los cuales fueron considerados en el 2019 como una de las diez tendencias claves en el e-learning. Un agente inteligente es una entidad capaz de percibir su entorno, procesar tales percepciones y res- ponder o actuar de manera racional, es decir, de manera correcta y tendiendo a maximi- zar un resultado esperado (Gómez, 2012). Las características que debe cumplir un agente

para ser considerado como tal son: racionalidad, autonomía, reactividad, proactividad, veracidad y personalidad. Ejemplo de estos son los agentes conversacionales o chatbot (Gutiérrez, 2019).

En el artículo Chatbots: ¿Are they Really Useful? definen a un chatbot como “un progra- ma de software que interactúa con los usuarios utilizando lenguaje natural” (Shawar & otros, 2007). Para referirse a estos se utilizan diferentes términos tales como: sistema de conversa- ción de máquina, agente virtual, sistema de diálogo y chatterbot. Un chatbot está conectado al usuario a través de una interfaz, que puede ser una aplicación, un sitio web, una ventana emergente de un chat o una red social como Facebook, Messenger oTelegram. Estas interac- ciones se gestionan mediante un diálogo simulando conversaciones humanas través de Inter- net (Trivedi & otros, 2019). Los chatbots comienzan a ser utilizados en sectores como Salud, Turismo, Comercio, Banca y Educación; por ejemplo en la Salud, debido a la situación de la enfermedad por coronavirus, en Alemania se diseñó un chatbot para proporcionar informa- ción relacionada con la prevención de la enfermedad y detección de posibles síntomas; en la esfera del Turismo son aplicados para ofrecer ayuda a los clientes durante todo el proceso de reserva de un hotel o un vuelo; y en el campo del Comercio Electrónico se utilizan para res-

ponder preguntas y resolver dudas mientras los usuarios realizan pedidos a través de Internet (Illescas & otros, 2021).

Específicamente, en el ámbito educativo puede ser una herramienta que puede actuar como profesor, estudiante o acompañante del estudiante y que es capaz de procesar lenguaje natu- ral y ofrecer información de forma coherente en tiempo real mediante un diálogo. Además, los chatbots permiten agilizar procesos, ya que; pueden funcionar como servicio de atención de veinticuatro horas, los siete días de la semana y así, por ejemplo, evitar que los docentes y el personal de servicio tenga que contestar preguntas repetitivas y de respuesta fácil (García & otros, 2018). Algunos de sus principales usos en este sector es resolver las dudas que le puedan surgir al estudiante y proveer distinta información al participante de un curso para alentarlo y motivarlo en el avance de este. Incluso en la investigación realizada por (Cameron & otros, 2018) se afirma que los chatbots ya se han utilizado para respaldar a estudiantes durante pe- ríodos de estrés en los exámenes. Actualmente se está realizando una investigación con la que se pretende desarrollar un chatbot con intencionalidad educativa en el que su función sería la evaluación y ejercitación de los estudiantes en una determinada asignatura utilizando técni- cas de Inteligencia Artificial.

En las fuentes consultadas para su desarrollo se evidencia que existen equipos que se en- cuentran trabajando en la construcción de chatbots. Además, es posible encontrar diversas investigaciones relacionadas con el desarrollo e implementación de chatbots utilizadas como trabajos de grado y posgrados. En estos trabajos se evidencia la aplicación de un proceso in-

genieril los cuales en algunos casos difieren unos de otros, pero tienen actividades y buenas prácticas en común utilizadas para el desarrollo de estos sistemas. El objetivo de esta inves- tigación es: Definir un proceso ingenieril para el desarrollo de un chatbot a partir de buenas prácticas establecidas en investigaciones realizadas.

MATERIALES Y MÉTODOS O METODOLOGÍA COMPUTACIONAL

Para cumplir con el objetivo planteado se utilizaron los siguientes métodos de investigación:

RESULTADOS Y DISCUSIÓN

Son varias las investigaciones que abordan el desarrollo de chatbots y que utilizan una meto- dología para la construcción de estos. Estas difieren según las necesidades y características de cada proyecto, pero tienen características, actividades y buenas prácticas en común. Dentro de las metodologías utilizadas se encuentran SCRUM, XP, Rousell y Kanban. A continuación, se analizan algunas de las investigaciones que aplican estas metodologías con el objetivo de identificar aspectos que se puedan poner en práctica para el desarrollo del chatbot.

Los autores (Ruiz & Guerrero, 2014), (Alvarez & Díaz, 2015) utilizaron para el desarrollo de

su propuesta la metodología definida por (Rousell, 2002) la cual consiste en los siguientes pasos.

Otra de las investigaciones consultadas es la realizada por el autor (Valero, 2019) en la que define la utilización de la metodología Kanban cuyo objetivo es gestionar de manera general cómo se van completando las tareas definidas para el desarrollo del proyecto. Kanban es una palabra japonesa que significa “tarjetas visuales” o literalmente “mirando al tablero”, donde Kan es “visual” y ban es “tarjeta”. En esta investigación se define que esta metodología es muy fácil de utilizar, actualizar y asumir por parte del equipo de desarrollo. Además, se define que su mecanismo es muy sencillo y se divide en tres pasos básicos: lo que hay que hacer, lo que

se está haciendo y lo que se ha hecho. En esa investigación se define que un buen proceso de desarrollo software, debería tener, como mínimo, las siguientes fases (Valero, 2019):

En otras investigaciones la metodología seleccionada fue SCRUM ya que la principal ven- taja de esta metodología es que permite obtener resultados de forma rápida y así poder ir cambiando cosas del proyecto (García, 2018) (Zarabia, 2018). Por ejemplo, en la investigación (Castillo, 2020) se guiaron para la construcción del chatbot la metodología mencionada con anterioridad donde definen una fase para el desarrollo del asistente en la cual se realizan las siguientes actividades:

  1. 1. Instalación de la tecnología y realización de tutoriales: en este caso se realizaron tutoria- les básicos de la tecnología a utilizar para aprender como funcionaba.

    Implementación e integración del chatbot: consiste en el desarrollo del chatbot e inte-

    grarlo en canales de comunicación; en este caso fue Telegram y Google Assistant.

    Pruebas del correcto funcionamiento del software: se realizaron tanto al instalar el software como al implementar el chatbot e integrarlo. Se hicieron cada vez que se añadía nuevas funcionalidades.

Por otro lado, el Grupo de Estudio en Metodologías de Ingeniería de Software (GEMIS) co- menzó una nueva línea de trabajo relacionado con el campo de la Informática, vinculando la Inteligencia Artificial (que está asociada al PLN y específicamente al desarrollo de chatbots) con el objetivo de generar nuevos conocimientos en el área de la Ingeniería de Software. En una investigación publicada recientemente por este grupo se establecen que aún quedan varios as- pectos que se deben profundizar y mejorar en las metodologías utilizadas para el desarrollo de chatbots. Por lo que, este grupo propone las siguientes fases para su desarrollo (González, 2019):

Después, de describir los procesos ingenieriles llevados a cabo en estas investigaciones se realiza un análisis de estas con el objetivo de identificar buenas prácticas y posibles mejoras. En las investigaciones realizadas por (Ruiz & Guerrero, 2014), (Alvarez & Díaz, 2015) se iden- tificaron las siguientes buenas prácticas:

Para la validación del chatbot se realizó un cuestionario a los usuarios para ver si existía con-

gruencia entre los resultados de este y el resultado proporcionado por el sistema computacional. Si el 80 % de la muestra coincidía en los resultados entonces se comprobaba la congruencia del sistema. Por lo tanto, se confirmaba que el sistema estaba funcionado correctamente.

Además, se realizaron pruebas de usabilidad en ambos casos donde se utilizó el cuestiona- rio de System Usability Scale (SUS). SU es un cuestionario estándar que se utiliza para probar la usabilidad de los sistemas de cómputo en general el cual permite determinar la precisión, funcionalidad, efectividad y satisfacción de la interfaz del sistema. En la figura se muestra el cuestionario de SUS.

Sin embargo, en estas investigaciones no se evidencia el desarrollo de artefactos propios para la construcción del chatbot como: modelo de datos, modelo de implementación, modelo de clases del diseño, diagramas de secuencia y diagrama de procesos los cuales permitirían una mejor compresión del chatbot desarrollado.

Cuestionario de System Usability Scale (Ruiz & Guerrero, 2014), (Alvarez & Díaz, 2015).
Figura 1
Cuestionario de System Usability Scale (Ruiz & Guerrero, 2014), (Alvarez & Díaz, 2015).
sf

En las investigaciones realizadas por (Valero, 2019) (García, 2018) (Zarabia, 2018) (Castillo, 2020) (Ariste & otros, 2020), se llegaron a las siguientes conclusiones. En el caso de la especi- fico de la investigación realizada por (Valero, 2019) se considera como una buena práctica el entrenamiento del chatbot. Esta actividad consiste en definir varias formas de decir lo mismo (frases o expresiones posibles) con el objetivo de que este pueda captar la intención del usuario de varias formas. Además, se evidencia que para el desarrollo de este se utilizó la herramienta Dialogflow. Esta herramienta facilita que no se tengan que definir todas las entradas posibles (frases o expresiones) ya que; tiene integrado aprendizaje automático permitiendo que la base de conocimiento del chatbot se vaya expandiendo y pueda detectar lo que el usuario intenta decir. No obstante, las únicas pruebas realizadas fueron utilizando la consola de la herramien- ta en la que se realizaron una serie de preguntas para comprobar el correcto funcionamiento del chatbot.

En la propuesta de (García, 2018) se evidencia el desarrollo de algunos artefactos como el modelo entidad relación y los prototipos de interfaz de usuario. Además, se realizaron diagra- mas de procesos en los que se evidencian los flujos realizados para la gestión del proceso que se automatizó antes del desarrollo del chatbot y una vez implementado demostrándose una reducción de actividades y una mejora en la ejecución del proceso lo que permite validar la solución. A pesar de esto, no se evidencian la aplicación de pruebas al chatbot.

En (Zarabia, 2018) se evidencia que en el diseño del sistema se definieron los requisitos funcionales y se considera como una buena práctica la descripción de los mismos utilizando lenguaje natural. En este caso para las descripciones realizaron historias de usuario. Además, realizaron pruebas funcionales para validar las funcionalidades establecidas para esto se di- señaron varios casos de prueba los cuales estan en correspondencia con los requisitos funcio- nales identificados.

Con respecto a la investigación de (Castillo, 2020) se identifica como buenas prácticas el diseño de varios artefactos como:

Además, se desarrollaron pruebas unitarias con la biblioteca unittest de Python con el ob-

jetivo de comprobar que todas las acciones transaccionales funcionaban correctamente. Ade- más, se realizaron pruebas de estrés para saber cómo reaccionaba el chatbot en función del número de usuarios que lo utilicen al mismo tiempo.

En la metodología propuesta por el grupo GEMIS se considera que se deberían agregar actividades relacionadas con el entrenamiento del chatbot y que se deberían realizar pruebas para medir la calidad del chatbot desarrollado.

Por último, en la investigación realizada por (Ariste & otros, 2020), se utiliza la meto- dología de desarrollo de softwareXP pero en la documentación revisada no se evidencia el desarrollo de artefactos para la construcción de este, aunque se define como una buena práctica el modo en que validaron la solución ya que aplicaron la prueba de los rangos con signo de Wilcoxon, una prueba no paramétrica que se utiliza para comparar el rango me- dio de dos muestras relacionadas y determinar si existen diferencias entre ellas. En este caso especifico fue utilizado para comparar las notas de estudiantes antes de desarrollar el chatbot y una vez implementado, dado que su función era aclarar dudas de un tema en específico.

Proceso ingenieril para el desarrollo del chatbot

En cuanto a las metodologías de desarrollo de software predomina la utilización de metodo- logías agiles evidenciándose la utilización de SCRUM en las siguientes investigaciones (Zara- bia, 2018), (Espinoza, 2020), (Castillo,2020), (Machado, 2019), (Arteaga, 2017) y XP en (Ariste & otros, 2020). Después de un análisis de estas se selecciona la metodología SCRUM ya que; permite realizar cambios en los requerimientos en caso de surgir nuevas necesidades o reali- zar mejoras. Además, el enfoque de desarrollo es iterativo e incremental, donde cada iteración denominada Sprint tiene una duración preestablecida de entre 2 y 4 semanas, en el que se ob- tiene una versión después de cada iteración.

Las razones para usar un enfoque de desarrollo interactivo e incremental usando SCRUM son (Zarabia, 2018):

Después, de haber identificado buenas prácticas se establece que para el desarrollo del chatbot se deben realizar un conjunto de procesos (pues estarán compuesto por varias ac- tividades) para que este tenga la calidad requerida. Estos se realizarán según el Sprint co- rrespondiente:

A continuación, se define el macroproceso (relación que existe entre cada uno de los sub- procesos mencionados con anterioridad) estableciendo así las posibles entradas y salidas. La figura 2 representa el proceso ingenieril a seguir para la construcción del chatbot.

Proceso ingenieril para el desarrollo del chatbot.
Figura 2.
Proceso ingenieril para el desarrollo del chatbot.
elaboración propia.

En el proceso de recopilar información se obtiene la información necesaria para el desa- rrollo del chatbot identificando así (objetivos, usuarios potenciales, intenciones, entidades, re- quisitos funcionales y requisitos no funcionales). Posteriormente se deberá diseñar el chatbot

mediante la creación de los diálogos y los prototipos de interfaz teniendo en cuenta la infor- mación obtenida en el proceso anterior. Estos prototipos serán validados por posibles usuarios (estudiantes y profesores). En el caso de que estos prototipos no tengan la calidad requerida se deberán volver a diseñar. Posteriormente se realizará el análisis de requerimientos y diseño de artefactos que permitirán comprender el chatbot desarrollado. Luego se implementarán los requisitos funcionales identificados teniendo en cuenta las salidas de los procesos anteriores. Una vez que se vaya implementando los requisitos se deberá ir realizando el entrenamiento del chatbot para luego realizar las pruebas según el nivel de prueba correspondiente. En caso de encontrarse defectos o no conformidades se deberán documentar para posteriormente hacer los cambios correspondientes en la implementación del chatbot. Por último, se debe validar la propuesta para ver si el chatbot cumple con el objetivo esperado.

A continuación, se describen las actividades que deben realizarse en cada uno de los sub- procesos.

Recopilar información

Se deben de aplicar varias técnicas con el objetivo de buscar información relevante acerca del propósito del chatbot que se quiere desarrollar. Las técnicas aplicar son: técnicas de prospec- ción (aplicación de entrevistas) y técnicas creativas con el desarrollo de tormenta de ideas y estudio de soluciones similares. La aplicación de estas técnicas permitirían identificar:

  1. Objetivo del chatbot: es el resultado deseado que se espera alcanzar con el desarrollo del

    chatbot.

    Usuarios potenciales: se identifican los usuarios potenciales del chatbot, así como sus necesidades.

    Intenciones: un chatbot, lo primero que trata de identificar cuando alguien le escribe es la intención de lo que el usuario le ha querido decir (captar lo que el usuario quiere hacer a partir de una frase). Por ejemplo, si el chatbot a desarrollar será utilizado como una herramienta para realizar evaluaciones de una asignatura determinada, se pueden definir varias intenciones pro- pias del negocio como: EvaluarContenido, CalificaciónObtenida y TemasEvaluativos. Es decir, el usuario puede escribir la siguiente pregunta ¿Cuáles son los temas que se evaluarán? y el chatbot debe ser capaz de identificar que la frase esta en correspondencia con la última intención defi- nida. Al definir las intenciones hay que tener presente que existen varias formas de preguntar lo mismo lo que implica clasificar el mismo intento. Si se toma el ejemplo anterior otra forma en el que el usuario puede preguntar lo mismo seria ¿Qué temas se van a evaluar? Cuando se de- finan las intenciones no hay que definir todas las posibles combinaciones si se utilizan técnicas de aprendizaje automático ya que; estas permiten que el chatbot pueda entender la intención de una pregunta antes de formular una respuesta. Por lo que, si el sistema posee la habilidad de aprender y adaptarse a los cambios, para el desarrollador ya no sería necesario prever y propor- cionar respuestas para todos los escenarios que se puedan presentar.

    Las entidades son las entradas del usuario (palabras, categorías, frases) que determinarán

    la respuesta del chatbot, puesto que son necesarias para poder llevar a cabo la acción. Las en-

    tidades, van asociadas a las intenciones. Por ejemplo, al existir la intención CalificaciónOb- tenida, se puede definir la entidad Notas que tendrá cuatro valores posibles que están en co- rrespondencias con las posibles notas (5, 4 ,3, 2). Por ejemplo, si el usuario escribe ¿Qué nota alcance en en la evaluación del tema uno? Entonces, se define que si el usuario alcanzó cinco se mostrará un mensaje que diga “ Su calificación fue de 5. Felicidades alcanzó la máxima calificación” y si alcanzó dos “ Su calificación fue de 2. Se recomienda que se prepare para la próxima evaluación”. De igual forma otra entidad sería Tema que estaría en correspondencia a los posibles temas que podrán ser evaluados.

    Requisitos funcionales: se definen las funciones que el chatbot debe permitir realizar a los

    usuarios. La identificación de las intenciones permitirá identificar los requisitos funcionales.

    Requisitos no funcionales: se deben especificar las propiedades o cualidades que el pro- ducto debe tener (rendimiento, seguridad, portabilidad e interfaz).

    En cuanto al desarrollo de artefactos se propone realizar diagramas de casos de uso para especificar la comunicación y el comportamiento del chatbot mediante su interacción con los usuarios. En la figura 3 se propone un ejemplo.

Ejemplo de diagrama de caso de uso.
Figura 3.
Ejemplo de diagrama de caso de uso.
elaboración propia.

Diseñar el chatbot: el diálogo es la propia estructura de la conversación. En los diálogos, se definen lo que se quiere que diga el chatbot cuando identifica qué es lo que ha querido decir el usuario (es decir, la intención). De este modo, y de forma visual, se va creando una conversa- ción en modo árbol, donde se indica qué deberá contestar el chatbot cuando reconoce la inten- ción que ha querido decir el usuario. Además, para que la comunicación entre el usuario y el chatbot se realice lo más real posible se debe

definir la personalidad propia del chatbot como

su nombre, la imagen del avatar y que le gusta y que no le gusta, para definir estos elementos hay que tener muy presente el público objetivo al que fue designado, por lo tanto, qué amiga-

ble, sarcástico o gracioso, debe depender de las personas que usarán el chatbot (Ferman, 2018).

También, se deben diseñar los prototipos de interfaz. Para el diseño de estos hay que tener en cuenta que los chatbots cuentan con características muy similares a los chats tradicionales por lo tanto hay elementos que no pueden faltar entre los cuales se encuentran (Gómez, 2012):

Por otro lado, para definir el flujo de la con-

versación se utilizarán diagramas de procesos los cuales pueden ser realizados en el Visual Paradimg. Para modelar el flujo de conversa- ción de un chatbot se deben de escribir ejem- plos de conversación desde el punto de vista del usuario final de esa forma se comprueba si el chatbot puede tener múltiples conversa- ciones sobre diferentes temas. Es decir, pen- sar en cualquier forma en que los usuarios puedan responder a una pregunta. Además, se deben tener en cuenta (Ferman, 2018) que para tener una conversación significativa, es necesario compartir un idioma y tener voca- bulario en común. Por lo tanto, los chatbots deben usar el mismo idioma y palabras que el

usuario tenga. Es decir, los términos orienta- dos al sistema deben adaptarse a la audiencia.

Ejemplo de prototipo de interfaz.
Figura 4.
Ejemplo de prototipo de interfaz.
elaboración propia.

Si el diseño del chatbot está orientado a determinadas poblaciones antes de la creación de este,

es necesario tener claro los posibles usuarios para buscar un vocabulario familiar al de ellos.

Es necesario, que en las conversaciones sí un usuario quiere pasar por un tema desconocido para el chatbot se espera que se notifique al usuario que esta pregunta va más allá de su co- nocimiento mediante un mensaje predeterminado. Puede darse el caso que el usuario no sepa qué realizar, por lo que el chatbot debe ofrecerle ayuda. La ayuda puede consistir en mostrar las posibles acciones que se pueden realizar.

A continuación, se muestra un ejemplo de cómo quedaría el flujo de conversación si la in- tención del usuario es obtener la calificación obtenida en una evaluación.

Figura 5.
Ejemplo de flujo de conversación.
Figura 5.
elaboración propia.

En este caso el usuario al escribir una frase relacionada con la obtención de la nota de una evalua- ción (en este caso se toma como ejemplo: ¿Qué nota alcance en la evaluación del tema 1? En caso de comprender la intención el chatbot comprobaría de forma automática cuál fue la nota alcanzada, en este caso la nota alcanzada puede ser de (5,4,3,2). En cualquiera de los casos se mostrará un mensaje al usuario con la nota alcanzada. Si la nota es menor que 5 el chatbot mostrará un mensaje al usuario con la opción de mostrar los errores cometidos. Si el usuario desea ver los errores cometidos entonces el chatbot le mostrará los errores, en caso contrario el chatbot mostrará otras opciones para que el usuario seleccione cual desea realizar. En caso de no comprender la intención del usuario se mostra- rá el siguiente mensaje “Introduzca una nueva frase o solicite ayuda con la siguiente cadena /ayuda”. En caso de solicitar /ayuda se le mostrará un listado de las posibles opciones que puede realizar.

Realizar análisis y diseño de artefactos para la construcción del chatbot: en esta fase se

deberán documentar los requisitos identificados utilizando lenguaje natural mediante histo- rias de usuario. Además, debe quedar definida y representada la arquitectura del chatbot te- niendo en cuenta la tecnología seleccionada para su desarrollo. Después, se debe representar el modelo de datos, modelo de implementación, modelo de clases del diseño y diagramas de secuencia. Estos artefactos se utilizarán para:

En la tabla 1 se propone un ejemplo de cómo quedaría la descripción del requisito funcio- nal Consultar temas a evaluar utilizando historias de usuario.

Ejemplo de historias de usuario.
Tabla 1.
Ejemplo de historias de usuario.
elaboración propia.

Implementar el chatbot: debe quedar documentado como es el funcionamiento del chat- bot teniendo presente las tecnologías utilizadas para su desarrollo y las técnicas de inteligen- cia artificial aplicadas para el desarrollo de este. En este caso, se deberá realizar un pequeño

manual en el que se especifiquen características de la tecnología seleccionada, funcionamien- to e instalación. Además, de implementar los requisitos identificados.

Entrenar al chatbot: teniendo presente que una de las características más importante

de los chatbots es comprender el significado y la intención de cada palabra mediante PLN, es importante entrenar al chatbot con el objetivo de que estos comprendan mejor todas las intenciones. Es decir, actualmente las personas no se comunican de igual manera mediante un correo electrónico que por un chat ya que suelen utilizar abreviaturas, frases mal escritas y pueden existir varias formas de preguntar lo mismo. Estos elementos hacen que sea nece- sario entrenar al chatbot con combinaciones posibles para evitar que existan problemas de comportamiento en la conversación y que detecte cambios en el comportamiento del usuario. Para el desarrollo de la propuesta se va a utilizar el framework RASA el cual es utilizado para la creación de chatbots y tiene implementado algoritmos de aprendizaje automático lo que permite que los chatbots posean la habilidad de aprender y adaptarse a los cambios de forma automática una vez que se realice el entrenamiento. La selección de esta herramienta fue a partir de las ventajas definidas en la investigación (Castillo, 2020) .

Realizar pruebas al chatbot: en esta fase se debe definir una estrategia de prueba identi- ficando las pruebas necesarias para comprobar el correcto funcionamiento del chatbot.

Cuando se diseña una estrategia de prueba hay que tener en cuenta los niveles de prueba (unidad, integración, sistema y aceptación). Por cada uno de estos niveles se definen un con- junto de pruebas que permitirán que la solución tenga la calidad requerida. Para probar el chatbot se define realizar pruebas automatizadas ya que estas permiten identificar de forma temprana defectos y comportamientos no deseados contribuyendo así a que se reduzca los costos de calidad. Por lo que se propone la siguiente estrategia:

Para el desarrollo de la propuesta como se definió la utilización del framework RASA y

este está escrito en el lenguaje de programación Python, posibilita que en el nivel de unidad y de integración se realicen pruebas unitarias de forma automatizada utilizando la biblioteca unittest de Python con el objetivo de probar la lógica de los diálogos.

Además, otro modo de comprobar que el chatbot comprende cada una de las intenciones

es aplicando pruebas funcionales utilizando la técnica de caja negra. Para la aplicación de este tipo de técnica se deben realizar casos de prueba. A continuación, se propone un ejemplo:

Una de las intenciones que debe tener definido un chatbot es la relacionada con Saludos, es de-

cir, si el usuario escribe “Hola” el chatbot debe ser capaz de entender que se está saludando y a par- tir de esto emitir una de las posibles respuestas definidas para esta intención como, por ejemplo:

Hola, en qué puedo ayudarte

Hola, en qué tema te gustaría evaluarte

Por lo que, se define el siguiente caso de prueba.

En el caso del nivel de sistema hay que tener en cuenta que, aunque las herramientas utili- zadas para la implementación de chatbots ofrecen una consola donde los desarrolladores pue-

den manualmente probar si el chatbot reacciona correctamente a las entradas un proceso de software adecuado requiere pruebas sistemáticas y automatizables mecanismos. Para abordar esta necesidad, están empezando a surgir algunas herramientas de prueba de chatbots, más notablemente Botium (Bravo & otros, 2020).

Botium es un conjunto de componentes de código abierto para pruebas automatizadas de chatbots. Eso se comunica con el chatbot bajo prueba a través de conectores. Estos están disponibles para muchas plataformas de chatbot (como Dialogflow, Watson o Lex y Rasa). Botium ejecuta todos los casos de prueba encontrados en una carpeta determinada contra el chatbot. Sigue un enfoque de desarrollo impulsado por el comportamiento, en el que los casos de prueba consisten en archivos que contienen la estructura de la conversación de prueba y archivos de enunciados que contienen las frases utilizado en la conversación.

Botium informa número de pruebas aprobadas y fallidas, el motivo de la falla y una matriz de confusión con el porcentaje de pruebas que coincidieron con la intención esperada. La úl- tima matriz permite detectar intenciones vagamente definidas.

Por otro lado, se propone utilizar la herramienta Bottester la cual simula la interacción de usuarios con el chatbot creando automáticamente diálogos que se asemejan a los usuarios reales lo que permite recopilar medidas sobre las interacciones. Esta herramienta luego calcu- la automáticamente métricas que están relacionadas con la satisfacción del usuario, así como algunas relacionados con el rendimiento general del chatbot. Para su utilización es necesario la creación de un corpus previo de preguntas y respuestas la cual es cargada en la herramienta. Hay que tener en cuenta que estas preguntas y respuestas son definidas según las intenciones del chatbot. A continuación, se definen algunas de las métricas calculadas por la herramienta (Vasconcelos & otros, 2017):

Por otro lado, se propone realizar pruebas de carga y estrés con el objetivo de descubrir posi- bles errores cuando varios usuarios intenten acceder al chatbot. Para el desarrollo de este tipo de prueba se utilizará la biblioteca locus de Python la cual permite desarrollar estos tipos de prueba. Por último, en el nivel de aceptación se demostrará el cumplimiento de los requisitos. Para esto el usuario debe usar el chatbot de forma natural con el desarrollador como observador

del usuario y así registrar los errores y problemas de uso. Es decir, se llevarán a cabo en un entorno controlado simulación de un entorno de producción (Aceptación informal o pruebas alfas). Además, se propone el desarrollo de pruebas de usabilidad aplicando el cuestionario de System Usability Scale (SUS) a los usuarios.

Realizar validación del chatbot: se debe de validar la solución propuesta aplicando técni-

cas de validación con el objetivo de medir la satisfacción del cliente con la propuesta desarro- llada. En este caso se propone utilizar la técnica de IADOV y aplicar la prueba de los rangos con signo de Wilcoxon. En este caso para verificar si mejoran los resultados de los estudiantes utilizando el chatbot.

CONCLUSIONES

Para el desarrollo del chatbot se definió utilizar la metodología ágil SCRUM ya que tiene un enfoque iterativo e incremental y es flexible al cambio. Su aplicación consistirá en la ejecución de un proceso que este compuesto por cinco subprocesos en los que se establecen buenas prácticas relacionadas con el diseño de un chatbot, desarrollo de artefactos, tipos de prueba, herramientas para la aplicación de pruebas y técnicas de validación las cuales servirán de guía para otras personas que se inicien en el mundo del desarrollo de chatbots.

Referencias

Alvarez Campos, Luz Maria; Malca Diaz, Bryan Oscar. (2015). Diseño de un sistema web de búsqueda inteligente conversacional para ubicación de empresas y servicio (Tesis de in- geniero informático). Recuperado de: http://dspace.unitru.edu.pe/bitstream/handle/UNI- TRU/9642/ALVAREZ%20CAMPOS%2C%20Luz%20-%20MALCA%20DIAZ%2C%20Br- yan.pdf?sequence=1&isAllowed=y.

Ariste, Jhoselyn Sofia Malaga; Ramírez, Eduardo Javier Pareja. (2020). Chatbot para el apren- dizaje de la fotosíntesis utilizando la técnica web scraping (Tesis en ingeniero en Sistemas). Recuperado:https://repositorio.ucv.edu.pe/bitstream/handle/20.500.12692/58331/Ariste_MJS

Arteaga, Sleyder Daniel Maza. (2017). Análisis, diseño e implementación de un asistente tutor basado en computación cognitiva para su uso en entornos virtuales de aprendizaje (Tesis de grado en sistemas informáticos y computación). Recuperado:http://dspace.utpl.edu.ec/bitstream/20.500.11962/20589/1/Arteaga%20Ma- za%2C%20Sleyder%20Daniel.pdf

Bravo, Sergio Santos; Guerra, Esther; Juan de Lara.(2020). Testing chatbots with Charm. En Quality of Information and Communications Technology (426-438). Recuperado: https://www.researchgate.net/publication/343985397_Testing_Chatbots_with_ Charm

Busqué Somacarrera, Victor. (2018). Asistente virtual para estudiantes de la FIB (Tesis fin de gra- do). Recuperado de: https://upcommons.upc.edu/bitstream/handle/2117/122656/133902. pdf?sequence=1&isAllowed=y

Cameron Gillian; Cameron, David; Megaw, Gavin; Bond, Raymond; Mulvenna, Maurice; O’Neill, Siobhan; Armour; Cherie; McTear, Michael. (Julio, 2018). Best Practices for De- signing Chatbots in Mental Healthcare – A Case Study on iHelpr. Trabajo presentado en la Conferencia: Proceedings of the 32nd International BCS Human Computer Interaction Conference (HCI). Recuperado: https://www.scienceopen.com/hosted-document?doi=10.14236/ewic/ HCI2018.129

Castillo, Cabero. (2020). Rasa framework: Análisis e implementación de un chatbot (Tesis de fin de grardo).Recuperado de: https://upcommons.upc.edu/handle/2117/192794

Cortez Vásquez, Augusto; Vega Huerta, Hugo; Pariona Quispe. (2009). Procesamiento de len- guaje natural. Revista de ingeniería de sistemas e informática, 6(2). Recuperado de: https:// core.ac.uk/download/pdf/304898423.pdf

Espinoza, Sonia Hoyos Elizabeth. (2020). Desarrollo e implementación de una plataforma web con chatbot para la comunicación activa entre usuario e información del portafolio de ser- vicio de la empresa ElectricSystems de la ciudad de Guayaquil (Licenciatura en sistemas de información). Recuperado: http://repositorio.ug.edu.ec/bitstream/redug/51131/1/Pro- yecto%20de%20Tesis-Espinoza%20Hoyos%20Sonia%20Elizabeth.pdf

Ferman, Maria Antonieta Guerra.(2018). Towards Best Practices for Chatbots (Master of Scien- ce). Recuperado de: https://chisel.cs.uvic.ca/theses/Ferman_Maria_MSc_2018.pdf

García Brustenga, Guillen; Fuertes Alpiste, Marc; Molas Castells, Núria. (2018). Briefing pa- per: los chatbots en educación. doi: https://doi.org/10.7238/elc.chatbots.2018

García Reina, Luis Felipe. (2018). Asistente virtual tipo chatbot (Tesis de grado). Recupera- do de: https://repository.ucatolica.edu.co/bitstream/10983/17726/1/ASISTENTE%20VIR- TUAL%20TIPO%20CHATBOT_final.pdf

Gómez Róspide, Celia. (2012). Agente virtual inteligente de ayuda al aprendizaje (Tesis de grado). Recuperado: https://www.academia.edu/11526483/AGENTE_VIRTUAL_INTE- LIGENTE_DE_AYUDA_AL_APRENDIZAJE_VIRTUAL_AGENT_ORIENTED_TO_ ELEARNING_PROCESSES_Author_Celia_G%C3%B3mez_R%C3%B3spide

Machado, Luis Felipe Redrobán. (2019). Desarrollo de un chatbot como asistente de venta (Te- sis de Maestría en Inteligencia Artificial). Recuperado:https://reunir.unir.net/bitstream/ handle/123456789/10206/Machado%20Redrob%C3%A1n%2C%20Luis%20Felipe.pdf?se- quence=1&isAllowed=y

Orozco-González, Martha; Panizza, Luciano; Vegega, Cinthia; Pytel, Pablo; Pollo-Cattaneo, Ma. Florencia. (2019). Metodología de implementación de un chatbot como tutor virtual en el ámbito educativo XXII Workshop de Investigadores en Ciencias de la Computación (WICC 2020, El Calafate, Santa Cruz). 873-877. Recuperado de: http://sedici.unlp.edu.ar/ handle/10915/103870

Gutiérrez Siliceo, José María. (2019). Desarrollo de chatbots con entornos de código abier- to (Tesis de grado). Recuperado:https://repositorio.unican.es/xmlui/bitstream/hand- le/10902/16456/418113.pdf?sequence=1&isAllowed=y

León Espinosa, Maikel; García Valdivia, Zenaida. (2008). La Inteligencia Artificial en la Infor- mática Educativa. Revista de Informática Educativa y Medios Audiovisuales. 5(10), 11-18. Recuperado: http://laboratorios.fi.uba.ar/lie/Revista/Articulos/050510/A2mar2008.pdf

Meza de Luna, Miguel Angel. (2010). Inteligencia artificial aplicada a objetos de aprendizaje a través de la tecnología del chatbot experto en temas especificos (Tesis de doctorado). Re- cuperado: http://bdigital.dgse.uaa.mx:8080/xmlui/handle/11317/667

Illescas, María D. Manzano; López, Noé Vicente; Afonso, Nuno González; Cristofol, Carmen Rodríguez.(2021). Implementation of Chatbot in Online Commerce, and Open Innovation. Journal of Open Innovation: Technology, Market, and complexity. 7. 125. Recuperado: ht- tps://www.mdpi.com/2199-8531/7/2/125/pdf

Rousell, R. (2002). Language use, Personality and True Conversational Interfaces. Artificial Intelligent and Computer Science.

Ruíz Tadeo, Ana Claudia; Guerrero García, Isabel. (2014). Robot Virtual en Orientación Voca- cional. Revista Iberoamericana de Producción Académica y Gestión Educativa, 1(2). Recu- perado: https://www.pag.org.mx/index.php/PAG/article/view/142

Shawar Abu, Bayan; Atwel, Eric. (2007). Chatbots: Are they Really Useful?. LDV-Forum 2007, 22 (1), 29-49.Recuperado de: https://www.researchgate.net/publication/220046725_Chat- bots_Are_they_Really_Useful

Trivedi, Aarsh; Gor, Vatsal; Thakkar, Zalak. (2019). Chatbot generation and integration: A review. International Journal of Advance Research Ideas and Innovations in Technolo- gy, 5(2), 1303-1311. Recuperado: https://d1wqtxts1xzle7.cloudfront.net/59155694/V5I2- 184020190507-93543-1ducwxq-with-cover-page-v2.pdf?Expires=1629427843&Signatu- re=IP~q0uRhJvD88pzwSTXmodZ4Xp44S7Nv06bW62LfYZZKUJ0kJ0cKETYLoBphL- qpRKYRzOaJP7LSOHQnl0voXvXTLNI3Oi~vw3jjqr~9e4oZvc4oGtYYAPXTSpzVQ83sS- PQNj15zGWJviKM1vin59QaaxFuRqJ88kuF1GKHZ4RfPd92D~qbXTXZt9akAnirKjM- 5VXah3xLfb7fPVMYuWEzCSD8ASUmemi8NrPqNIsbZOAmK5zxUmYJ3h28KfLwtl- BFPGRySKaMnid~L39tUY1xfds9rXRY2mDcx0HV7AaQflJa4BLScQ2OrtZhGpBfEA- beMYWbc91EBhIC5UKyCg__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA

Vila, Eduardo; Lama, Manuel. (2007). Técnicas de la inteligencia artificial aplicadas a la educa- ción. Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial, 11(33), 7-12. Recuperado: https://www.researchgate.net/publication/237042218_Monografia_Tecni- cas_de_la_Inteligencia_Artificial_Aplicadas_a_la_Educacion

Valero Clavel, Daniel. (2019). Desarrollo de un robot conversacional para redes sociales en el dominio académico (Tesis de maestria). Recuperado: http://rua.ua.es/dspace/hand- le/10045/96992

Vasconcelos, Marisa; Pinhanez, Claudio; Candello, Heloisa; Donizetti, Thiago Dos Santos. (2017). Bottester : Testing conversational Systems with simulated Users. Recuperado en:

Vallejo Ruiz,Ismael. (2015). Asistente Virtual (chatbot) para la Web de la Facultad de Informá- tica (Tesis fin de grado).Recuperado de: https://eprints.ucm.es/id/eprint/33443/

Zarabia Zuñiga, Omar Humberto. (2018). Ímplementación de un chatbot con botframework caso de estudio, servicios a clientes del área de fianzas de seguros equinoccial (Tesis de grado). https://bibdigital.epn.edu.ec/bitstream/15000/19628/1/CD-9031.pdf

Modelo de publicación sin fines de lucro para conservar la naturaleza académica y abierta de la comunicación científica
HTML generado a partir de XML-JATS4R