desarrollo de prototipo web, de un sistema …

89
DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR PARA LA BÚSQUEDA DE COLEGIOS. Ing. Héctor Rodrigo Arias Cueca Ing. Isidro Francisco Cortés Sánchez UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS ESPECIALIZACIÓN EN INGENIERÍA DE SOFTWARE BOGOTÁ D.C. 2018

Upload: others

Post on 15-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR

PARA LA BÚSQUEDA DE COLEGIOS.

Ing. Héctor Rodrigo Arias Cueca

Ing. Isidro Francisco Cortés Sánchez

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

ESPECIALIZACIÓN EN INGENIERÍA DE SOFTWARE

BOGOTÁ D.C. 2018

Page 2: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR

PARA LA BÚSQUEDA DE COLEGIOS.

Ing. Héctor Rodrigo Arias Cueca Ing. Isidro Francisco Cortés Sánchez

Proyecto de grado para optar por el título de

Especialista en Ingeniería de Software

Director

Julio Barón Velandia

Revisor

Sandra Milena Cortes

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

ESPECIALIZACIÓN EN INGENIERÍA DE SOFTWARE BOGOTÁ D.C.

2018

Page 3: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CONTENIDO

INTRODUCCIÓN ................................................................................................................. 7

PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN ..................................... 8 CAPÍTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN ............................................. 9

1.1. Descripción del problema .................................................................................... 9

1.1.1. Formulación del problema..............................................................................10

1.1.2. Sistematización del problema........................................................................10

1.2. Objetivos ...............................................................................................................10

1.2.1. Objetivo General ..............................................................................................10

1.2.2. Objetivos específicos ......................................................................................10

1.3. Justificación ..........................................................................................................11

1.4. Hipótesis ...............................................................................................................12

1.5. Estado del Arte ....................................................................................................12

1.5.1. Marco Teórico ..................................................................................................12

1.5.2. Marco Conceptual............................................................................................13

1.5.3. Características de los Chatbots ....................................................................15

1.5.4. Análisis de Chatbots existentes ....................................................................16

1.6. Metodología de la investigación........................................................................21

1.6.1. Tipo de estudio.................................................................................................21

1.6.2. Método de investigación .................................................................................21

1.6.3. Fuentes y técnicas para la recolección de información.............................21

1.6.4. Tratamiento de la información .......................................................................23

1.7. Alcance .................................................................................................................23

1.7.1. Limitaciones ......................................................................................................23

1.7.2. Resultados esperados ....................................................................................24

1.8. Organización del trabajo de grado ...................................................................24

1.9. Estudio de sistemas previos ..............................................................................25

PARTE II. DESARROLLO DE LA INVESTIGACIÓN .................................................27

CAPÍTULO 2. ANALISIS DE LA INFORMACIÓN .......................................................28

2.1. Entrevistas a personas con hijos .........................................................................28

2.2. Encuesta a personas con hijos ............................................................................28

CAPÍTULO 3. ARQUITECTURA EMPRESARIAL ......................................................29

3.1. Análisis y diseño de la solución de la Arquitectura ...........................................29

3.2. Capa de negocio.....................................................................................................29

Page 4: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3.2.1. Punto de Vista de Organización ................................................................29

3.2.2. Punto de Vista de Cooperación de actor..................................................30

3.2.3. Punto de Vista de Función de Negocio ....................................................31

3.2.4. Punto de Vista de Proceso de Negocio....................................................31

3.2.5. Punto de Vista de Cooperación de Proceso de Negocio ......................32

3.2.6. Punto de Vista de Producto........................................................................33

3.3. Capa de Aplicación ................................................................................................33

3.3.1. Punto de Vista de Comportamiento de Aplicación .................................33

3.3.2. Punto de Vista de cooperación de Aplicación .........................................34

3.3.3. Punto de Vista de Estructura de Aplicación.............................................35

3.3.4. Punto de Vista de Uso de Aplicación........................................................36

3.4. Capa de Tecnología............................................................................................37

3.4.1. Punto de Vista de Infraestructura ..............................................................37

3.4.2. Punto de Vista de uso de infraestructura .................................................38

3.4.3. Punto de Vista de Implementación y Despliegue ...................................39

3.4.4. Punto de Vista de estructura de Información ..........................................40

3.4.5. Punto de Vista Realización del Servicio ...................................................41

3.4.6. Punto de Vista de Capas ............................................................................41

3.5. Capa de Motivación ............................................................................................42

3.5.1. Punto de Vista de Stakeholder...................................................................42

3.5.2. Punto de Vista de principios .......................................................................43

3.5.3. Punto de Vista de Realización de Objetivos............................................44

3.5.4. Punto de Vista de Contribución de Objetivos ..........................................45

3.5.5. Punto de Vista de Motivación.....................................................................46

3.6. Capa de Proyecto................................................................................................47

3.6.1. Punto de Vista de Proyecto ........................................................................47

3.6.2. Punto de Vista de Migración ......................................................................48

3.6.2. Punto de Vista de migración e implementación .........................................49

CAPÍTULO 4. DETALLE DE LA SOLUCION...............................................................50

4.1. Metodología de Desarrollo RUP ..........................................................................50

4.2. Requerimientos funcionales y no funcionales ...................................................51

4.4. Análisis y Diseño de la solución ...........................................................................52

4.4.1. Diagrama de casos de uso ............................................................................53

Page 5: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

4.4.2. Diagrama de actividades ................................................................................56

4.4.3. Diagrama de componentes ............................................................................57

4.4.4. Diagrama de despliegue.................................................................................58

4.3. Tecnología Utilizada...............................................................................................58

4.3.1. Chatbot .............................................................................................................58

4.3.2. Funcionamiento de AIML ..............................................................................59

4.3.3. Dialogflow ........................................................................................................63

4.3.4. Motor de búsqueda ........................................................................................65

4.3.5. Resumen Herramientas.................................................................................66

PARTE III CIERRE DE LA INVESTIGACIÓN ..............................................................67

CAPÍTULO 5. RESULTADOS Y DISCUSIÓN..............................................................68 CAPÍTULO 6. CONCLUSIONES ....................................................................................69

5.1. Verificación, contraste y evaluación de objetivos..............................................69

5.2. Síntesis del modelo propuesto .............................................................................70

5.3. Aportes Originales ..................................................................................................71

5.4. Trabajos o Publicaciones Derivadas ...................................................................71

CAPÍTULO 7. PROSPECTIVA DEL TRABAJO ..........................................................72

6.1. Líneas de investigación futuras............................................................................72

6.2. Trabajos de investigación futuros ........................................................................72

BIBLIOGRAFÍA .................................................................................................................74 ANEXOS .............................................................................................................................76

ANEXO 1 AIML PATRONES MANEJO BAJO OPERADORES .............................76

ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA ................................................82

ANEXO 3 ENCUESTA APLICADA .............................................................................85

ANEXO 4 RESULTADOS DE LA ENCUESTA .........................................................86

Page 6: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

TABLA DE ILUSTRACIONES

Ilustración 1: Los mejores colegios en Colombia .........................................................25

Ilustración 2: App Colombian Schools ............................................................................26 Ilustración 3: Metamodelo Caso Organización .............................................................30 Ilustración 4 Metamodelo Caso Cooperación de Actor ...............................................30

Ilustración 5: Metamodelo Caso Función Negocio .......................................................31 Ilustración 6: Metamodelo Caso Proceso de Negocio .................................................32

Ilustración 7: Metamodelo Caso Cooperación de Proceso .........................................32 Ilustración 8: Metamodelo Caso Vista de Producto .....................................................33 Ilustración 9: Metamodelo Comportamiento de Aplicación .........................................34

Ilustración 10: Metamodelo Caso Cooperación de Aplicación ...................................35 Ilustración 11: Metamodelo Caso Estructura de Aplicación........................................36

Ilustración 12: Metamodelo Caso de Uso de Aplicación .............................................37 Ilustración 13: Metamodelo Caso de Infraestructura ...................................................38 Ilustración 14: Metamodelo Caso Uso de Infraestructura ...........................................39

Ilustración 15: Metamodelo Caso Implementación y Despliegue ..............................40 Ilustración 16: Metamodelo Caso Vista Estructura de Información ...........................40

Ilustración 17: Metamodelo Caso Vista Realización del Servicio ..............................41 Ilustración 18: Metamodelo Vista de Capas ..................................................................42 Ilustración 19: Punto Vista StakeHolder.........................................................................43

Ilustración 20: Punto Vista Principios .............................................................................44 Ilustración 21: Punto Vista Realización Objetivos ........................................................45

Ilustración 22: Punto Vista Contribución Objetivos.......................................................46 Ilustración 23: Punto Vista Motivación............................................................................47 Ilustración 24: Punto de Vista de Proyecto ....................................................................48

Ilustración 25: Punto Vista Migración .............................................................................48 Ilustración 26: Punto de Vista de migración e implementación ..................................49

Ilustración 27: Fases RUP Clásica..................................................................................50 Ilustración 28. Diagrama de caso de uso Chatbot........................................................53 Ilustración 29: Diagrama de actividades ........................................................................57

Ilustración 30: Diagrama de componentes ....................................................................57 Ilustración 31: Diagrama de despliegue .........................................................................58

Ilustración 32: Lista de AIML etiquetas de plantilla. .....................................................60 Ilustración 33: Lista de AIML patrón de los operadores ..............................................60 Ilustración 34: Recursividad AIML ...................................................................................61

Ilustración 35: Visión general del funcionamiento de Dialogflow ...............................65 Ilustración 36: Google Cloud Platform. Creación de agente .......................................65

Ilustración 37: Encuesta aplicada....................................................................................85 Ilustración 38; ¿Es importante un colegio bilingüe?.....................................................86 Ilustración 39: ¿Tipo de Jornada? ...................................................................................86

Ilustración 40: ¿Tipo de Calendario? ..............................................................................87 Ilustración 41: ¿Genero? ..................................................................................................87

Ilustración 42: ¿Medio de búsqueda para seleccionar colegio? ................................88 Ilustración 43: ¿Es importante la formación deportiva?...............................................88 Ilustración 44: ¿Prefiere un colegio cerca a la casa? ..................................................89

Page 7: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

INTRODUCCIÓN

Los sistemas inteligentes actualmente se aplican en el campo de la medicina, ingeniería, economía, el entretenimiento. En el presente documento se presenta el diseño de un agente inteligente en orientación para búsqueda de instituciones

educativas, para apoyar a los padres a seleccionar el colegio de acuerdo con los criterios, intereses, aptitudes personales que se identifiquen, de acuerdo con sus

expectativas. Un agente inteligente es un software que automatiza el proceso de razonamiento humano en este documento denominaremos a este sistema como “chatbot” o agente inteligente indistintamente. Un “chatbot” es un programa que simula un

dialogo con una persona.[1] El análisis de orientación a la búsqueda de colegios se describe como un estudio

que permite a los padres determinar que opciones son las más indicadas para sus hijos de acuerdo con si sufren una enfermedad física, trastorno psicológico y/o

comportamiento. Con la finalidad de que elijan el colegio adecuado para las situaciones anteriormente mencionadas, teniendo en cuenta el gran abanico de posibilidades existentes.

La elección de colegio permite a los padres, tener la confianza y seguridad de cómo

van a estar sus hijos de acuerdo con los criterios evaluados, en donde se les proporcionara una forma de vida, por lo tanto, la elección debe hacerse consciente de que con ello los hijos van a formar una identidad, se formaran como persona y

asumirán un rol.

El sistema que se presenta está capacitado para poder pensar como un ser humano, un programa que puede simular una conversación escrita, con la intención de hacer creer a un humano que está hablando con otra persona. La conversación

tiene como finalidad determinar la orientación de búsqueda de colegio de los usuarios. Para su diseño utilizamos el lenguaje de programación AIML (Lenguaje

de marcas para inteligencia artificial), que es una extensión de XML (Extensible Markup Languaje), Lenguaje de Marcas Extensible, este lenguaje es utilizado para crear “chatbots” o sistemas conversacionales.

La aplicación de los métodos y modelos de la inteligencia artificial nos permite

desarrollar sistemas de utilidad a todos los sectores sociales como es el caso de nuestro “chatbot” que permite apoyar a los padres a seleccionar el colegio idóneo para su hijo, de acuerdo con ubicación, métodos de enseñanza, nivel de educación,

etc., utilizando un agente inteligente conversacional desde la comodidad y privacidad de su casa o lugar de trabajo. Estos sistemas inciden en una disminución

de la deserción escolar en los distintos niveles académicos y coadyuvan a formar estudiantes competentes en los diversos sectores y sociales de nuestro entorno.

Page 8: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN

Page 9: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN

1.1. Descripción del problema

Surge la necesidad de poseer una herramienta tecnológica que permita el mayor aprovechamiento de recursos, conocimientos y aprendizaje de forma centralizada,

para que esta herramienta se desempeñe de una forma pedagógica adecuada y adaptable a los padres de familia.

Con esto se presenta el hecho de que para crear esta herramienta debe iniciarse con el estudio y análisis de modelos y técnicas basadas en inteligencia artificial con

el fin de generar las bases fundamentales del diseño de un Sistema Inteligente para proveer la información de los colegios que permita mejorar el proceso de selección para los hijos que se encuentren próximos a incursionar en el área de la educación.

Por lo tanto, se busca como eje principal de esta primera fase de la investigación construir los conocimientos necesarios para aplicar diferentes modelos y técnicas

de la inteligencia artificial a corto plazo, encaminadas a sustentar el diseño del software a largo plazo y que permitan generar una alternativa viable de solución tecnológica para el desarrollo.

La investigación centra su estudio en el análisis y aplicación de técnicas de

Inteligencia Artificial (IA), sin embargo, mediante este proyecto de investigación se busca establecer las bases fundamentales sobre la aplicación de técnicas de inteligencia artificial que puedan ser adaptadas al diseño y construcción de un

sistema inteligente de búsqueda para padres y que este software exhiba un comportamiento similar al de un humano que imparta conocimiento personalizado,

es decir, que brinde los resultados y la colaboración que el usuario desea. La inteligencia artificial en todas sus áreas presenta una gran cantidad de modelos,

técnicas y herramientas que permiten obtener desde la concepción de parámetros principales de análisis hasta la resolución de casos complejos por medio de agentes

inteligentes y además utiliza métodos de resolución de problemas basados en estrategias factibles y búsquedas de soluciones para situaciones generales.

Por lo cual, esta investigación analiza esos fundamentos y enfoques de inteligencia artificial buscando así elaborar un modelo de análisis que represente la

funcionalidad y estructura de componentes de un software inteligente de búsqueda, incorporando en la investigación la selección de herramientas e instrumentos de medición pertenecientes al campo de la Inteligencia artificial que brinden una guía

inicial para el desarrollo futuro del sistema inteligente con el propósito de que éste sea capaz de identificar la forma en que el padre busca el colegio, para así brindarle

ayuda sobre los diferentes criterios, con explicaciones en el momento preciso.

Page 10: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

1.1.1. Formulación del problema

¿De qué manera se puede brindar información centralizada de colegios, que se utilice de insumo para los padres de familia, logrando la adecuada selección de colegio para su hijo con base en la búsqueda de criterios personales, cognitivos y

sociales?

1.1.2. Sistematización del problema

1. ¿Cómo puede un modelo de afinidad ayudar a los padres de familia tomar

una mejor decisión al momento de seleccionar el colegio para su hijo?

2. ¿Cómo la implementación de una herramienta de asistente conversacional ayuda en la identificación de colegios, logrando una toma de decisiones?

3. ¿Cuáles son los criterios personales de búsqueda que se deben tener en cuenta al momento de contribuir la base de conocimiento a partir de un modelo de identificación de colegios?

1.2. Objetivos

1.2.1. Objetivo General

Implementar un prototipo chatbot basado en modelos y técnicas de inteligencia artificial que oriente y apoye a la toma decisiones en la selección de un colegio a los

padres de familia, con una base de conocimientos centralizada de información (jornada, extracurriculares, calendario, discapacidad que cubre, enfoque de

idiomas) de los colegios privados de Bogotá D.C.

1.2.2. Objetivos específicos

Analizar conceptos de procesamiento de lenguaje para el desarrollo un agente conversacional (chatbot), comparando casos de éxito donde se hayan utilizado, para seleccionar el más adecuado siendo este la base de

comunicación entre el usuario y el chatbot.

Plantear un modelo de afinidad mediante la creación de una base de conocimiento que servirá como fuente de información para el sistema de

búsqueda colegios.

Page 11: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Implementar el diseño del sistema chatbot, utilizando como fuente de información una base de conocimiento, con el fin que los padres de familia

cuenten con información centralizada y apoye el proceso de selección de colegio.

1.3. Justificación

La orientación hacia la búsqueda colegio proporciona información que permite a los padres de familia seleccionar el colegio de acuerdo con sus criterios personales, los

cuales serán base para el desarrollo de vida del estudiante, al automatizar este proceso, el análisis de orientación se puede realizar desde la privacidad y

comodidad de su casa. De acuerdo con lo anterior, el presente proyecto tiene como fin ofrecer una nueva

plataforma para los padres de familia, en la que podrán recibir orientación sobre los diferentes colegios privados que se encuentran en Bogotá D.C. y así tener un mejor

criterio de selección al momento de seleccionar el colegio para su hijo. Esta investigación se basa en investigaciones de la última década, ya que han

surgido nuevos tipos de sistemas, basados en robots virtuales que han demostrado ser de gran apoyo para las diversas áreas de conocimiento. Por esta razón el utilizar

este tipo de métodos que permite modernizar el proceso de orientación a una mejor educación o que se adapte los criterios necesarios, ya que se realiza por una conversación tipo chat interactivo que ofrecerá a los usuarios la posibilidad de hacer

preguntas sobre colegios con enfoques de idiomas, calendario, actividades extracurriculares, jornada, inclinaciones religiosas, valor pensión, entre otras. Logrando de esta manera obtener una afinidad e información relevante sobre el

colegio de interés, esto con el fin de permitirle al padre de familia vincular a su hijo a la educación, bajo los criterios deseados.

En la actualidad no existe un medio en donde los padres de familia puedan realizar sus consultas por un medio natural que les evite el desplazamiento (como si fuesen

a cada colegio para averiguar), no se utiliza tecnología para estos análisis, lo cual es un obstáculo para que los padres dispongan de un apoyo para tomar la mejor

decisión del colegio para su hijo. Hay ocasiones en el que algunos padres realizan este análisis, pero los resultados

obtenidos no son los esperados de acuerdo con sus expectativas, criterios y otros aspectos y se guardan la intención de volver a hacer este estudio. Por el hecho de

ser un trámite largo, el involucrar desplazamiento y el invertir más tiempo, por lo cual deciden continuar con sus dudas y muchas veces escoger un colegio que no es el adecuado para sus hijos. Con este sistema podrán realizar este análisis el

Page 12: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

número de veces que consideren necesarias. Ya que el acceso es desde internet y

puede ser desde la comodidad de su casa.

En esta área, la falta de una adecuada orientación, el manejo de un gran volumen de datos y por otro lado, la facilidad de utilizar interfaces de sistemas y el hecho de que cada día más personas están acostumbradas al uso de sistemas informáticos

hace que este modelo de sistema sea una herramienta para ayudar a que los padres y estudiantes se interesen por ella y la utilicen.

1.4. Hipótesis

La investigación de este proyecto centro su interés en la contribución del conocimiento sobre la aplicación de técnicas y modelos de inteligencia artificial en

el diseño de un sistema de orientación inteligente que contribuya a la búsqueda de colegio de acuerdo con sus expectativas, teniendo en cuenta variables como la

ubicación, precio, infraestructura, programa académico y actividades extracurriculares.

El estudio de los modelos y técnicas aplicables a sistemas inteligentes de este tipo supondrá el avance del “estado del arte” sobre nuevos conocimientos, tanto en lo

relativo a la representación de este sistema que pueda dar lugar a nuevos desarrollos teóricos y la construcción de aplicaciones de mayor calidad. Además, se analizarán las técnicas basadas en inteligencia artificial, así como en la integración

de estas en la arquitectura de sistemas inteligentes y que permitan incluir aspectos de aprendizaje y enseñanza vinculándolos con otros parámetros propios del

estudiante que serán objeto de estudio.

1.5. Estado del Arte

1.5.1. Marco Teórico

El desarrollo de esta investigación tiene como soporte teórico, los planteamientos

identificados en el área de la educación para los niños, en la búsqueda de colegio. La problemática radica en la búsqueda descentralizada de este tipo de información y soportada por criterios particulares de los usuarios (Padres, niños, familiares etc.).

Con el fin de establecer los objetivos y estrategias para solucionarlo, se identifica

criterios específicos sobre los tipos de información relevante para esta investigación y las fuentes de datos que se podrían acceder, con el fin de proponer una solución

Page 13: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

estratégica a la necesidad actual. Varias de las problemáticas de buscar colegio es

el poder investigar las innumerables opciones que se presentan de una forma ágil, contemplando aspectos personales y generales que brinden un panorama más

claro y en tiempo real. Realizar investigación externa en el entorno global, para visualizar estrategias de

apoyo para el diseño de solución.

La investigación que se plantea para el desarrollo del posible proyecto se basa en la información expuesta por los colegios y las problemáticas expuestas en la red, sobre este tema. También se fundamenta en la información del uso de las diferentes

aplicaciones que están en línea. Ya que siendo un servicio tan necesario se debe plantear soluciones que brinden satisfacción a los usuarios.

Los chatbots, son un sistema de software novedoso basado en inteligencia artificial y con gran impacto en los diferentes ambientes donde es usado. Para el área

educativa se han integrado pocas funcionalidades. “La principal razón se achaca a la rapidez con la que mejoran los softwares de Inteligencia Artificial, siendo los

culpables de este auge las principales tecnológicas de Silicon Valley como Facebook y Google, entre otros. Y es que la IA permite a los ordenadores procesar el lenguaje, y en el fondo conversar con las personas, de una forma que nunca se

había visto”.[2]

1.5.2. Marco Conceptual

El siguiente marco muestra las definiciones de los conceptos básicos que aparecen

a lo largo del proyecto y que resultan de vital importancia para el desarrollo de este. Los BOTS: son sistemas informáticos que simulan el comportamiento humano

capaces de llevar a cabo tareas específicas, Los BOTS son creados mediante sistemas de Inteligencia Artificial que permiten que estos interactúen con las

personas y otros sistemas. [6] Por ejemplo, enviar correos electrónicos, entablar conversaciones vía chat, editar documentos, incluso existen algunos diseñados con fines maliciosos, como por ejemplo para propagación de virus, ataques cibernéticos,

entre otros.

Estos sistemas son usados para automatizar tareas de manera más rápida que lo que lo haría un humano y para manejar ciertos procesos de forma desatendida ya que tienen la ventaja de estar disponibles 24/7, en la actualidad se están creando

BOTS manejando componentes de inteligencia artificial como por ejemplo el Bot Framework Machine Learning de Microsoft, otras plataformas como Google, IBM

tienen sus propios marcos de trabajo para la creación de BOTS. [4]

Page 14: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Existen diferentes tipos de BOTS que se podrán categorizar de acuerdo con su

funcionalidad:

Crawlers: Recolectan información de la web o de otras Apis

Informativos: ayudan a gestionar la información de los diferentes canales

ChatBot: Son función es simular una conversación humana, ofreciendo

información y ayudando a solucionar dudas

Transaccionales: Actúan como intermediarios entre personas y medios externos

Hacker Bots: su función principal es distribuir virus y realizar acciones fraudulentas

Spam Bots: diseñados para enviar Spam masivamente

Game Bots: diseñados para funcionar con inteligencia artificial en los juegos

y permitan simular que se está jugando contra otro competidor

Scrapet Bots: diseñados para robar información

Estrategia: Conjunto de líneas maestras para la toma de decisiones que tienen

influencia en la eficacia a largo plazo de una organización. Requerimientos o levantamiento de información: Es la determinación de las

necesidades o de las condiciones a satisfacer para un software nuevo o modificado,

tomando en cuenta los diversos requisitos de los inversores. [5] Software de aplicación: Aquel que permite a los usuarios llevar a cabo una o varias

tareas específicas, en cualquier campo de la actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. [6]

Sistema: Conjunto de partes o elementos organizados y relacionados que

interactúan entre sí para lograr un objetivo.

Navegador web: Programa informático que permite visualizar, interactuar e

interpretar el contenido de una página web dentro de una red. Online: En línea. Se refiere a cualquier documento, archivo o servicio de la red.

Web: Es un servicio que permite acceder por medio del internet a muchas

prestaciones y funciones, así como a un sin número de programas, tiendas, servicios, etc. Sus fundamentos son el protocolo HTTP y el lenguaje HTML

Page 15: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

BOT Framework: Es una plataforma para construir, conectar, testear y desarrollar

poderosas aplicaciones e inteligentes bots. Conectado con Azure Bot Service. Bot Framework permite construir bots que soportan diferentes tipos de interacción con

los usuarios. Se puede manejar sistemas conversacionales que pueden usar Texto plano o texto más complejo que incluya imágenes, acciones o botones. (Microsoft) Bot Framework provee poderosas herramientas para ayudar a construir los bots. [6]

Bot Builder: provee varias opciones e implementaciones sobre plataformas .Net,

Ademas incluye un emulador para realizar las pruebas de los bots con un gran número de ejemplos que se pueden usar para su construcción.[3] Bot framework portal: es un portal web que permite administrar los bots creados,

contiene herramientas de diagnóstico y control para cada Bot creado.

Chanels: Es una herramienta que permite desplegar el Bot en diferentes

plataformas tales como (Skype, Facebook, Messenger, entre otros.

SDK (Software Development Kit – Kit de Desarrollo de Software): El SDK es un

paquete instalable de Java que contiene la interfaz de programación de aplicaciones (API) de Java. La API de Java es una colección grande de clases listas para usar y que están agrupadas en bibliotecas para ayudarle a desarrollar y desplegar

aplicaciones. [7]

El SDK también incluye:

Compilador Java.

Máquina virtual Java (JVM o VM).

Herramientas para supervisar, depurar y documentar aplicaciones.

Herramientas para desarrollar interfaces de usuario o GUI.

Bibliotecas de integración para aplicaciones que necesitan acceder a bases de datos y a objetos remotos.

1.5.3. Características de los Chatbots

Las características que diferencian a los agentes conversacionales son:

Autonomía: un agente es completamente autónomo si es capaz de actuar

basándose en su experiencia. El agente es capaz de adaptarse, aunque el entorno cambie severamente, puede brindar diferentes formatos (o estilos) de respuesta, dependiendo del tipo de usuario, del tipo de pregunta realizada, etc.

Page 16: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Sociabilidad: este atributo permite a un agente comunicar con otros agentes o

incluso con otras entidades, la cual sería la característica diferenciadora de los chatbots.

Racionalidad: el agente siempre realiza lo correcto a partir de los datos que percibe

del entorno, sabe formular respuestas, analizando la frase introducida, son capaces

de generar la respuesta más apropiada Reactividad: un agente actúa como resultado de cambios en su entorno. En este

caso, un agente percibe el entorno y esos cambios dirigen el comportamiento del agente. Pueden proporcionar respuestas de diversa naturaleza. Es decir, no tienen

que limitarse a brindar frases como respuestas. Pueden proporcionar enlaces dentro de la web o incluso recursos Electrónicos como respuesta.

Pro-actividad: un agente es pro-activo cuando es capaz de controlar sus propios

objetivos a pesar de cambios en el entorno. Pueden ser programados para

comprender el contexto de la conversación y situar la pregunta en el mismo. Adaptabilidad: está relacionado con el aprendizaje que un agente es capaz de

realizar y si puede cambiar su comportamiento basándose en ese aprendizaje. Se encuentra en fase de desarrollo, pero ya con avances promovedores.

Movilidad: capacidad de un agente de trasladarse a través de una red telemática.

Veracidad: asunción de que un agente no comunica información falsa a propósito. Personalidad: cada agente es único y depende del programador las características

que quiera darle como emociones, comportamiento no verbal, entre otros.[3]

Se muestran características generales que deben tener un agente conversacional para determinar sus particularidades como Chatbot.

1.5.4. Análisis de Chatbots existentes

Dentro de las alternativas de chatbot, existen multitud de soluciones, por lo que no

es posible analizarlas todas; sin embargo, se ha realizado una muestra entre las opciones disponibles, con el fin de ver la utilidad y el impacto que tiene el uso de

este tipo de tecnologías. De acuerdo con lo anterior, la selección de estos se debió a los siguientes criterios:

Idioma: Se tuvo en cuenta chatbots que dialoguen en multilenguaje.

Calidad: Se han seleccionado chatbots que han tenido resultado para las empresas en las que opera.

Page 17: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Disponibilidad púbica, sobre su funcionamiento: Se toma esta alternativa, valorando la alternativa de que el código se ha totalmente abierto o que

tenga respaldo de una comunidad.

Utilidad: Se clasifica para los chatbots existentes según la utilidad práctica real que tienen, y de esta manera tenemos Sin utilidad práctica (Disponibles en la web) y con utilidad práctica (Chatbots cuyo objetivo es

el de reemplazar en cierta medida algún rol humano).

Domino's simplifica el pedido de pizza usando la tecnología conversacional

Fundada en 1960, Domino's ahora opera más de 14,000 pizzerías en más de 85

países. Sus conductores cubren más de 10 millones de millas para entregar 10.5 millones de pizzas por semana solo en los Estados Unidos. Durante años, los clientes han podido pedir pizzas a través de "Dom", un simple bot de pedidos

disponible en línea y a través de las aplicaciones móviles de la compañía. "Somos uno de los primeros en este espacio en lanzar nuestro propio asistente de pedidos

de voz artificialmente inteligente a través de nuestras propias aplicaciones nativas", dice Mandi Galluch, líder del programa Domino para la experiencia digital. [10]

Decidida a innovar y seguir el ritmo del comportamiento cambiante de los consumidores, la empresa optó por crear experiencias de conversación

enriquecedoras basadas en la comprensión del lenguaje natural (NLU) y el aprendizaje automático. [8]

Enfoque

Domino's comenzó a explorar varias soluciones de NLU en agosto de 2016. Finalmente, eligieron a Dialogflow por su capacidad de escalar y adaptarse a la cantidad de intentos necesarios, uno de los mayores puntos críticos que

encontraron inicialmente. "Con una conversación más contenida, no necesita tantos caminos que la gente pueda seguir", explica Galluch. "Pero puedes ir en tantas

direcciones al ordenar nuestro menú, y tuvimos que darnos cuenta de todo eso". [2] El equipo también apreció la interfaz de usuario (UI), una de las razones principales

que disfrutan al utilizar Dialogflow. "Es fácil de usar, intuitivo y simplemente tiene sentido", dice Galluch. "La otra pieza clave es el procesamiento del lenguaje natural

(PNL), que es el mejor que hemos probado". El alcance del proyecto era más grande de lo que nadie hubiera esperado, pero

Domino aprovechó sus más de 50 años de conocimiento de servicio al cliente y las capacidades de NLU de Dialogflow para crear interacciones simples con el cliente

y escenarios de pedidos cada vez más complejos. "Pudimos lograr una sólida

Page 18: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

experiencia para el cliente con bastante rapidez", dice Ken Natoli, líder comercial de

la empresa.

Cualquier persona que use un dispositivo con el Asistente de Google incorporado, como una página de inicio de Google "simplemente puede decir: 'Oye Google, habla con Domino's' y podrás realizar el pedido directamente con nosotros". [8]

KLM construye el chatbot de reservas y empaquetado 'BB'

Fundada en 1919, KLM Royal Dutch Airlines, con sede en Ámsterdam, es la aerolínea global más antigua que sigue volando con su nombre original. Sirven a

más de 30 millones de pasajeros al año, operan más de 200 aviones y vuelan a 163 destinos en todo el mundo. También son el tercer empleador privado más grande

de los Países Bajos. [8] El cliente promedio vuela con KLM 1.4 veces al año y es posible que no tarde en

descargar la aplicación móvil de la aerolínea para reservar un vuelo. Para ese cliente, la aerolínea quería "un nuevo punto de entrada", uno que brindara

oportunidades para las interacciones de conversación mediante voz o texto. "Una experiencia de conversación permite ese enfoque personal. Aporta calidez y personalidad a las conversaciones con nuestros clientes", dice Ruben Klerks,

gerente de redes sociales de KLM. [8]

"Para nosotros, los medios sociales incluyen todos los canales de mensajes y plataformas de asistencia como el Asistente de Google", dice Martine van der Lee, directora de medios sociales de KLM. Klerks agrega: "Creemos que KLM debe ir al

cliente y estar donde está". [7]

Enfoque KLM comenzó a explorar formas de proporcionar una experiencia de conversación

para los clientes en 2016. La aerolínea eligió Dialogflow después de probar varias plataformas. "Nos encanta Dialogflow", dice van der Lee. "Tiene capacidades muy

sólidas de comprensión del lenguaje natural (NLU), lo que significa que pudimos automatizar una gran parte de la conversación. Y fue fácil para nuestros desarrolladores utilizar Dialogflow. Pudimos crear y enviar la experiencia realmente

rápido. [8]

El primer proyecto de la aerolínea fue un bot de reserva para Facebook Messenger, que introdujeron en septiembre de 2017. KLM lo apodó 'BB', para Blue Bot (el azul es su color característico). La personalidad de BB es femenina, servicial, amigable

y profesional. Ella también es un poco nerviosa, y en ocasiones incluso hace bromas. "Si desea hacer una reserva a través de Messenger, BB le preguntará su

destino, cuándo quiere volar, etc.", explica van der Lee. "Le mostraremos las opciones, y usted puede comprar, completar sus datos personales y obtener la confirmación de su reserva, todo allí en la aplicación de conversación". Al conectar

Page 19: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

a BB con el sistema de CRM de KLM, un agente humano puede asumir el control

fácilmente si no puede responder. [5]

Unos meses más tarde, KLM creó otra forma nueva para que los clientes interactúen con BB. La aerolínea lanzó un servicio de embalaje para el Asistente de Google en diciembre de 2017. "BB lo guiará a través de todo lo que necesita para llevar a su

destino y durante la duración de su viaje", dice van der Lee. "Ella hace todas las preguntas correctas, como si necesita solicitar una visa o si necesita traer

medicamentos, para que los viajeros estén preparados para su viaje. Según el pronóstico del tiempo, ella verificará si necesita traer más ropa o una sombrilla”.

La aerolínea desarrolló BB en gran parte dentro de pocos meses, un esfuerzo multifuncional que involucró a miembros de marketing, TI, comunicaciones,

redacción de textos publicitarios, UX, ingeniería y más. También incorporó una agencia digital para crear la experiencia de embalaje. [8]

Resultados

KLM está satisfecho con el sólido desempeño inicial de BB. También aprendieron que a los clientes les encanta conversar con BB solo para descubrir respuestas divertidas de Easter-egg a todo tipo de preguntas.

La aerolínea planea fusionar las experiencias de reservación y empaque, para que

los viajeros puedan abordar fácilmente la logística de la planificación del viaje y enfocarse en sus itinerarios de vacaciones. También continuarán creciendo las capacidades de BB. "Nuestro objetivo es ayudar a los viajeros durante todo el viaje

del cliente", dice Klerks. "Realmente vemos a BB como una extensión de la familia de servicios KLM".[8]

Ticketmaster conecta a las personas con eventos y boletos más rápido a través de experiencias de conversación

“Ticketmaster es la principal empresa de venta de entradas para eventos en vivo

del mundo. Fundada en 1976, venden más de 500 millones de boletos al año en 29 países diferentes. Al reconocer la precisión y la potencia cada vez mayores del procesamiento del lenguaje natural, Ticketmaster recurrió a la tecnología

conversacional de Dialogflow para proporcionar servicios más rápidos y más personalizados para los compradores de boletos.

Las oportunidades en torno a las herramientas de conversación son enormes", dice Patrick Jackson, ingeniero de software de Ticketmaster. La compañía vio posibilidades para ofrecer una mejor experiencia de navegación, mejorar la

búsqueda de eventos e incluso proporcionar direcciones a lugares y estacionamiento. "Estas interfaces de conversación nos permiten realizar una

experiencia realmente rápida y útil; en algunos casos, más que abrir una aplicación o un sitio web. Nuestro objetivo es ser su asistente para encontrar eventos y obtener entradas", agrega Jackson”.[8]

Page 20: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Enfoque

Antes de que comenzaran a usar Dialogflow en enero de 2017, el equipo de Ticketmaster investigó varias tecnologías de la competencia. "Reconocimos los pros y los contras de muchos de ellos y decidimos usar Dialogflow", explica Jackson. El

equipo tenía tres razones principales para elegir Dialogflow:

Rápido y fácil de comenzar a construir: el equipo vio el mínimo esfuerzo y la codificación necesarios para poner en marcha su experiencia de

conversación.

Buena experiencia de desarrollador: el entorno de desarrollo intuitivo permitió

al equipo elegir fácilmente cómo debería verse, sentirse y sonar la experiencia.

Fácil de escalar: la experiencia podría escalar bien a medida que la base de

usuarios creciera.

A pesar de que tenían poca experiencia en el procesamiento del lenguaje natural, el equipo utilizó fácilmente las herramientas de Dialogflow para crear experiencias

de usuario de voz convincentes. "Fue genial aprovechar la experiencia de Dialogflow en el aprendizaje automático y el procesamiento del lenguaje natural, por lo que podemos concentrarnos en las cosas que sabíamos hacer", dice Jackson.

"Dialogflow nos facilitó agregar una intención y asegurarnos de que nuestro

sistema estaba capacitado para entender los nombres de miles de artistas musicales diferentes. La simplicidad y flexibilidad de Dialogflow nos permiten

concentrarnos en el back-end: manejar el dominio del descubrimiento de eventos y La venta de entradas, que es nuestra área de especialización”. [12]

El equipo de Jackson también quedó impresionado por la precisión del lenguaje

natural de Dialogflow. "Es alucinante lo bien que el sistema traduce mi discurso y el de todos a mi alrededor", dice. Por ejemplo, un cliente de Ticketmaster puede simplemente decirle al Asistente de Google en su teléfono con Android o iOS "Hable

con Ticketmaster" y luego preguntar directamente a Ticketmaster, "¿Qué eventos divertidos están ocurriendo este fin de semana?" Ticketmaster mostrará una lista de

lugares, fechas y horas. Al conversar con la interfaz de conversación, el cliente puede comprar boletos directamente a través de una cuenta de Ticketmaster existente. [12]

Page 21: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

1.6. Metodología de la investigación

1.6.1. Tipo de estudio

El tipo de estudio planteado para esta investigación busca proponer una solución que ayude como herramienta de aplicación y uso, para esto se identifican los hechos o las causas del problema y sus consecuencias y las situaciones que suelen

presentarse a fin de mitigar el problema. Otros hechos que inciden pero que no son visibles deben determinarse para abordar el problema en su totalidad, dejando un

precedente que pueda ser el insumo clave para futuras investigaciones dentro del contexto planteado.

La investigación se determinará mediante el nivel de profundidad y la forma en que se abordara es de tipo descriptivo, realizando una previa caracterización de

acuerdo con entrevistas y fuentes de conocimiento.

1.6.2. Método de investigación

Los métodos de investigación que se utilizarán para el desarrollo del proyecto serán a partir de la observación y la inducción.

Se inicia desde la observación como método de investigación teniendo en cuenta la experiencia personal y de la observación participando de procesos, las técnicas de

recolección inferirán en la base de conocimiento logrando la implementación y consulta de este. De igual forma se apoyará en encuestas direccionadas a la población con esta

problemática (Padres de familia, profesores. etc.). Se analizará información de los aspectos generales, apoyada en encuestas que permitirán abastecer de datos El

método inductivo en esta investigación permitirá, desde las entrevistas y encuestas, generalizar comportamientos que permitan direccionar a una solución propuesta.

1.6.3. Fuentes y técnicas para la recolección de información

1.6.3.1. Fuentes primarias

Las fuentes primarias para la recolección de la información parten de una

observación inicial en donde se contrasta la información personal para tener una masa conceptual inicial que será refinado con técnicas anteriores.

Page 22: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Entrevistas con los padres de familia

Entrevistas con jefes de admisiones de los colegios Información que se desea obtener

Se busca captar las principales necesidades bajo problemáticas de búsqueda de este tipo de información en diferentes poblaciones y estratos.

1.6.3.2. Fuentes secundarias

La recopilación de la información secundaria inicia de tres fuentes clave en la realización del estudio, la primera corresponde a la información que está

relacionada con los requerimientos dentro del entorno planteado, lo cual incluye:

Análisis documental: consulta de información sobre aplicaciones o sitios de búsqueda que permitan brindar esta información. Como también información sobre como esto es manejado en otros países.

Consulta de fuente de información en línea: Realizar búsqueda de

aplicaciones a nivel general que brinden funcionalidades de este tipo, para que así se pueda identificar los lineamientos de solución.

La segunda fuente principal corresponde a la información que se debe tener en cuenta para definir la arquitectura empresarial del proceso, es decir, revisar

documentación existente y practicas acordes para este problema en particular, para esto se busca:

Seleccionar la metodología para levantamiento de requerimientos indicada.

Definición de la arquitectura empresarial orientada al proceso.

La tercera fuente principal corresponde a la búsqueda de información sobre la

metodología de desarrollo de software y ciclo de vida a tener en cuenta.

Realizar consultas bibliográficas sobre casos de estudio que estén

relacionados con las metodologías de desarrollo de software y el ciclo de vida que se utilice.

Las tres fuentes mencionadas se encuentran relacionadas al problema de investigación y los objetivos específicos. Buscando que sirvan de apoyo en la forma

en la que se va a realizar la solución del problema.

Page 23: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

1.6.4. Tratamiento de la información

Para el tratamiento de la información obtenida tanto de fuentes primarias como de secundarias, es necesario aplicar técnicas de tratamiento de información específicas para cada caso:

Fuentes primarias de Información: Para el caso de las entrevistas se procede

a consolidar la información y analizarla y representar el conocimiento obtenido a través de modelos visuales como mapas conceptuales y

documentos de tipo descriptivo y posteriormente expresar las necesidades específicas en una sección de requerimientos formal. En el caso de las encuestas se debe consolidar la información y utilizar técnicas estadísticas

de tabulación y representarla en los gráficos correspondientes.

Fuentes secundarias de información: para el caso los temas relacionados de consultas acerca de la metodología de desarrollo de software, se pretende establecer los lineamientos y directrices del desarrollo, con la definición de

las tareas específicas a realizar y un cronograma orientado al desarrollo del prototipo. Se plantea que el tratamiento de la información y la obtención de

las fuentes de información se establezcan tanto al inicio como en toda la duración del proyecto de investigación, es decir las actividades de recolección y el tratamiento de la información deben continuarse realizando

hasta que la definición de todo el contexto del proyecto se encuentre definido en su totalidad.

1.7. Alcance

El presente proyecto de investigación analizara y realizara de forma propositiva una solución tecnológica (Prototipo) para apoyar a la problemática planteada.

La base de conocimiento se centra en las en la ciudad de Bogotá para colegios privados bajo criterios específicos.

La metodología de chat será a través de preguntas y/o inferencias que el Chatbot realice a la persona.

1.7.1. Limitaciones

La falta de información actualizada de los colegios en cuanto a sus

programas académicos.

Page 24: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

La falta de información necesaria por parte de los encuestados.

El acceso a fuentes de datos que permitan hacer una integración de

búsqueda.

No se pueden realizar comparaciones entre colegios.

1.7.2. Resultados esperados

El principal resultado de este proyecto es plantear un prototipo de chatbot bajo la

solución basada en criterios de implementación de un aplicativo capaz de facilitar la búsqueda de colegio, bajo criterios específicos de búsqueda. Con el fin de brindar una orientación en la selección de un colegio privado en la ciudad de Bogotá,

basado en una fuente de conocimiento con diferentes fuentes de datos permitiendo la toma de decisiones de una forma más clara y objetiva, logrando ahorrar tiempo y

brindando comodidad al padre de familia.

1.8. Organización del trabajo de grado

Este documento está organizado en los siguientes capítulos:

En el primer capítulo se presenta la parte introductoria del trabajo de investigación

incluyendo planteamiento del problema y su sistematización, justificación, definición de los objetivos, hipótesis que se pretende probar, el alcance, las limitaciones del proyecto de investigación y la reseña de la organización del trabajo.

En el segundo capítulo se desarrolla el análisis de la información recolectada de

fuentes primarias, secundarias durante el desarrollo de la investigación. En el tercer capítulo se detalla el diseño de la solución de software bajo

componentes de arquitectura empresarial, que busca resolver la problemática identificada. En este capítulo se presentan los diferentes diagramas que permiten

comprender el producto de software. En el cuarto capítulo se describen los componentes de la solución, presentando el

detalle de cada uno.

En el quinto capítulo se presentan los resultados obtenidos con la solución de software desarrollada.

Page 25: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

En el sexto capítulo se presentan las conclusiones contrastando el cumplimiento de

objetivos y el aporte del trabajo realizado.

En el séptimo capítulo se detallan los trabajos futuros que pueden desarrollarse a partir de esta investigación planteada.

1.9. Estudio de sistemas previos

En la actualidad existen diferentes soluciones basadas en plataformas, que han sido desarrolladas para diferentes propósitos. Pero muy pocos con las particularidades

que ofrece este proyecto y a la comunidad a la que va dirigida.

Plataforma Web mejores colegios

La plataforma Web http: //losmejorescolegios.com/colegios/, permite ofrece las opciones de búsquedas por diferentes criterios. Tienen una base de información de

los colegios adscritos. Esta plataforma permite visualizar en el resultado de la búsqueda, información estructurada. Así describe esta página Web su

funcionalidad: “En esta guía de colegios encontrarás descripciones detalladas de la oferta educativa donde podrás conocer, proyectos educativos, procesos de admisiones, mapas interactivos e información práctica que permite comparar y

elegir el colegio que mejor se adapte a cada necesidad”.[8]

Ilustración 1: Los mejores colegios en Colombia

Fuente: https://losmejorescolegios.com/colegios/

Page 26: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Aplicación Móvil Colombian Schools - Android

Esta aplicación permite al usuario realizar mediante un clic la búsqueda de colegio de acuerdo con opciones particulares. Hay opciones de búsqueda por tipo

calendario escolar (A o B). Como también si es campestre o bilingüe entre otras. Así describe esta página Web la funcionalidad de la aplicación: “Para los padres no

es fácil encontrar un colegio privado en Colombia por varias razones. Una de las principales es que muchos no tienen el tiempo suficiente para buscarlo debido a sus trabajos. Otra es que no todos los niños y niñas son iguales y algunos requieren

más atención que otros ya sea porque sufren una enfermedad física o padecen un trastorno psicológico y del comportamiento que les dificulta adaptarse a la rutina

escolar. Por esta razón, Edison Charry y Carolina Lozada crearon la aplicación Colombian Schools, que facilita al padre la identificación de colegios ideales que se ajustan a sus expectativas, teniendo en cuenta variables como la ubicación, el

precio, la infraestructura, el programa académico y las actividades extracurriculares. Es gratuita y está disponible en Google Play Store”.[9]

Ilustración 2: App Colombian Schools Fuente:

https://play.google.com/store/apps/details?id=com.colegiosyjardines&hl=es_CO

Page 27: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

PARTE II. DESARROLLO DE LA INVESTIGACIÓN

Page 28: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 2. ANALISIS DE LA INFORMACIÓN

Para esta investigación, se optó por realizar entrevistas personalizadas debido a que presentan la forma más próxima de entender el problema y los lineamientos

que la solución debe tener en cuenta.

2.1. Entrevistas a personas con hijos

En el proceso de levantamiento de información se realizaron cuestionamientos

abiertos a estudiantes con hijos de la Universidad Francisco José de Caldas, como también a familiares con el fin de compartir el objetivo y alcance del proyecto, y así

mismo conocer las necesidades de esta comunidad y así plantear de manera conjunta un enfoque de solución que pueda aportar a los procesos de selección.

El trabajo realizado en las diferentes sesiones, se hizo basado en los resultados de la encuesta llevada a cabo con el apoyo de personas con este perfil. En donde se

resaltó la necesidad con respecto a que son muchas las opciones que se presentan a nivel de colegios, pero que la disposición de tiempo limita a tener mayor amplitud de opciones para tomar una buena decisión

Como conclusión de la posible interacción con una aplicación (Prototipo Web), se

produjo un resultado positivo y optimista con respecto al desarrollo del proyecto y su implementación. Esto debido a que el enfoque en el cual se proyecta se presta para varios propósitos que se pueden transformar en trabajos futuros y satisfacer

diferentes necesidades.

2.2. Encuesta a personas con hijos

Se diseñó y aplico una encuesta dirigida a las personas que tengan hijos en edad de colegio. El objetivo fue conocer su punto de vista acerca de los criterios de búsqueda que tienen en cuenta a la hora de buscar colegio En el anexo 1 se

encuentra el formato de la encuesta enviada.

La encuesta fue aplicada utilizando la herramienta Google Formulario. Esta cuenta con capacidades que permiten responder las preguntas de forma intuitiva y disfrutando de una experiencia de usuario cómoda.

Se recibieron en total 80 respuestas entre el 21 de julio y el 15 de agosto. Los resultados por pregunta se pueden ver en el Anexo 1.

Page 29: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 3. ARQUITECTURA EMPRESARIAL

3.1. Análisis y diseño de la solución de la Arquitectura

ArchiMate es un lenguaje de diseño para describir la arquitectura de negocio y

arquitecturas de TI en coherencia entre sí. Al margen del lenguaje de diseño, ofrece una amplia gama de técnicas para la visualización, análisis, diseño y uso de la arquitectura empresarial con el fin de resolver los cambios necesarios del negocio.

A continuación, se presentan los diagramas y modelos utilizados para analizar y

diseñar la solución objeto de este estudio descompuesto en capas.

3.2. Capa de negocio

Es una de las capas más importantes debido a que el lenguaje que se utiliza permite

hablar en términos de las entidades del negocio, por lo que es importante distribuir adecuadamente la semántica. Esta capa gira en torno a tres dimensiones de

comportamiento: procesos, servicios y producto (centro del negocio).

3.2.1. Punto de Vista de Organización

El metamodelo de la organización describe los actores del área de la empresa, en cual se va a aplicar el estudio. Los actores del modelo son los siguientes:

-MINE - viceministro de educación básica, primaria, bachillerato.

-Padres de familia. La ubicación de la empresa está en la ciudad de Bogotá.

Page 30: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 3: Metamodelo Caso Organización

Fuente: Los Autores

3.2.2. Punto de Vista de Cooperación de actor

Hace referencia a las relaciones existentes entre los actores con su entorno. Es importante este modelo debido a que evidencia como sus componentes de

aplicación cooperan para realizar un proceso de negocio. Se observan en este modelo los dos actores que forman una colaboración llamada "búsqueda" luego se desprende un rol de "puente de información" que enlaza a los clientes y padres de

familia por medio de un portal web.

Ilustración 4 Metamodelo Caso Cooperación de Actor

Fuente: Los Autores

Page 31: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3.2.3. Punto de Vista de Función de Negocio

Este punto de vista muestra las principales funciones de negocio de una organización, así como su relación en flujos de información. La función de negocio provee una mirada de alto nivel en las operaciones generales de la organización.

En este modelo se precisan dos roles fundamentales, el padre de familia y el agente

conversacional; el primero con la función principal de realizar la consulta de información de colegios, posteriormente el agente como realizar la interpretación y responder la conversación.

Ilustración 5: Metamodelo Caso Función Negocio

Fuente: Los Autores

3.2.4. Punto de Vista de Proceso de Negocio

Este punto de vista es usado para mostrar la estructura de alto nivel y composición de uno o más procesos de negocio. Se muestra las actividades a realizar hasta el

retorno de la información bajo los criterios seleccionados.

Page 32: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 6: Metamodelo Caso Proceso de Negocio

Fuente: Los Autores

3.2.5. Punto de Vista de Cooperación de Proceso de Negocio

Este punto de vista es usado para mostrar las relaciones de uno o más procesos de

negocio entre sí mismos y con su ambiente. Se observa el flujo de una consulta realizada:

Ilustración 7: Metamodelo Caso Cooperación de Proceso

Fuente: Los Autores

Page 33: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3.2.6. Punto de Vista de Producto

Representa el valor que los productos ofrecen a los clientes o a otros externos involucrados. También para mostrar las interfaces a través de las cuales es ofrecido el producto y los eventos asociados a él. En este punto de vista se plantean los

beneficios de la implementación de la aplicación

Ilustración 8: Metamodelo Caso Vista de Producto

Fuente: Los Autores

3.3. Capa de Aplicación

La capa de aplicación ofrece servicios de presentación, por ejemplo, servicios de almacenamiento y comunicación necesarios para ejecutar aplicaciones. Esta capa

muestra la conexión entre el hardware y los sistemas de software.

3.3.1. Punto de Vista de Comportamiento de Aplicación

El comportamiento de aplicación describe el comportamiento interno de una aplicación, por ejemplo, el cómo realiza uno o más servicios de aplicación Este punto de vista es útil en el diseño de los comportamientos principales de las

aplicaciones, o para identificar los cambios funcionales entre diferentes aplicaciones.

Page 34: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

El modelo comportamiento de aplicación describe la búsqueda realizada por el

usuario, allí encontramos diferentes componentes con funciones específicas, los procesos que se desprenden de estos componentes son:

Ilustración 9: Metamodelo Comportamiento de Aplicación

Fuente: Los Autores

3.3.2. Punto de Vista de cooperación de Aplicación

Este punto de vista describe las relaciones entre componentes de aplicaciones en

términos de los flujos de información entre ellas, o en términos de los servicios que ellas ofrecen o utilizan. Este punto de vista es usado típicamente para crear una

visión general del panorama de aplicaciones de una organización también es usado para expresar la cooperación interna o la orquestación de servicios que en conjunto soportan la ejecución de un proceso de negocio.

Este modelo muestra dos partes fundamentales que son el frontend y el backend

de los componentes involucrados. Por el lado del frontend tenemos 2 componentes:

Page 35: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Bot WepApi

Comunidad

ChatBot

Por el lado del backend tenemos 2 componentes:

Interpretador

Información

Ilustración 10: Metamodelo Caso Cooperación de Aplicación

Fuente: Los Autores

3.3.3. Punto de Vista de Estructura de Aplicación

El punto de vista de estructura de aplicación muestra la estructura de una o más

aplicaciones o componentes. Este punto de vista es utilizado en el diseño o entendimiento de la estructura principal de aplicaciones o componentes y los datos

Page 36: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

asociados, por ejemplo, para descomponer la estructura del sistema que está en

construcción.

Para el presente modelo se elaboran 3 componentes con sus respectivas interfaces, el componente central es el chatbot el cual tiene las siguientes interfaces:

Conexión

Búsqueda

Interacción

Ilustración 11: Metamodelo Caso Estructura de Aplicación

Fuente: Los Autores

3.3.4. Punto de Vista de Uso de Aplicación

Este punto describe como son usadas las aplicaciones para soportar uno o más procesos de negocio, y como estas son usados por otras aplicaciones. Puede ser

utilizado en el diseño de una aplicación identificando los servicios necesitados por procesos de negocio y otras aplicaciones.

Para el presente modelo intervienen los siguientes elementos en el proceso de

búsqueda:

Consulta Interactiva

Page 37: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Salida de Información

Ilustración 12: Metamodelo Caso de Uso de Aplicación

Fuente: Los Autores

3.4. Capa de Tecnología

La capa de tecnología ofrece servicios de infraestructura, por ejemplo servicios de almacenamiento y comunicación necesarios para ejecutar aplicaciones. Esta capa

muestra la conexión entre el hardware y los sistemas de software.

3.4.1. Punto de Vista de Infraestructura

El presente punto de vista contiene los elementos de infraestructura de software y

de hardware que soportan la capa de aplicación, tales como dispositivos físicos, redes o sistemas de software por ejemplo (sistemas operativos, bases de datos, red, servidores).

El metamodelo de Infraestructura muestra la estructura de ChatBot la cual soporta

la capa de aplicación, podemos observar algunos componentes de software y hardware. El diagrama inicia con 2 nodos principales.

Page 38: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Este portal se encuentra en un hosting con el servidor web y el servidor de base de

datos. El portal se encuentra desarrollado en AIML y en JAVA, opera bajo un servidor Microsoft.

Ilustración 13: Metamodelo Caso de Infraestructura

Fuente: Los Autores

3.4.2. Punto de Vista de uso de infraestructura

En el punto de vista uso de infraestructura muestra como las aplicaciones son soportadas por la infraestructura de software y hardware. Este punto de vista juega un papel importante en el análisis de rendimiento y escalabilidad ya que relaciona

la infraestructura con las aplicaciones.

El metamodelo de uso de infraestructura describe como los componentes de la capa de aplicación son soportados por la capa de tecnología. Observamos que el Chatbot se conecta por medio de un web service a la información; el portal cuenta con un

componente de interpretación. Los componentes que implementa el lenguaje natural son (Plugin de interpretador).

Page 39: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 14: Metamodelo Caso Uso de Infraestructura

Fuente: Los Autores

3.4.3. Punto de Vista de Implementación y Despliegue

Este punto de vista muestra como una o más aplicaciones son llevadas a la realidad

en la capa de infraestructura. Esto implica el mapeo de aplicaciones y componentes lógicos en artefactos físicos como por ejemplo Java NetBeams.

En este modelo podemos observar una colaboración entre los componentes (Servidor de App y Servidor de enlace) esta colaboración forma un webservice

bidireccional, esto es debido a que los 2 pueden enviar y recibir peticiones, este sistema permite que el acceso a los datos sea por autorización en cada uno de los

nodos.

Page 40: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 15: Metamodelo Caso Implementación y Despliegue

Fuente: Los Autores

3.4.4. Punto de Vista de estructura de Información

Permite visualizar la capa de información y el flujo de actividades que interactúan. Permite visualizar el flujo de datos en un flujo de actividades y su asociación con el

chat bot.

Ilustración 16: Metamodelo Caso Vista Estructura de Información

Fuente: Los Autores

Page 41: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3.4.5. Punto de Vista Realización del Servicio

Permite visualizar de una manera sencilla la plataforma y sus diferentes servicios. Permite visualizar en el prototipo (Proyecto), los diferentes servicios que interactúan con el chat bot.

Ilustración 17: Metamodelo Caso Vista Realización del Servicio

Fuente: Los Autores

3.4.6. Punto de Vista de Capas

El modelo de capas permite visualizar los diferentes componentes que interactúan.

Page 42: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 18: Metamodelo Vista de Capas

Fuente: Los Autores

3.5. Capa de Motivación

La capa motivacional añade los conceptos motivacionales tales como objetivos, principios y requerimientos. Esto direcciona la forma en que la arqui tectura

empresarial está alineada a su contexto, tal como lo describen los elementos motivacionales.

3.5.1. Punto de Vista de Stakeholder

El punto de vista stakeholder le permite al analista modelar a los interesados, los motores de cambio y las valoraciones en términos de fortalezas, debilidades,

oportunidades y amenazas. También pueden ser descritos los enlaces a los objetivos iniciales de alto nivel que direccionan estos asuntos y valoraciones. Estos objetivos conforman las bases para el proceso de ingeniería de requerimientos,

incluyendo el refinamiento de objetivos y análisis de contribuciones y conflictos.

Cada stakeholder cuenta con un objetivo (goal) y una evaluación:

Page 43: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 19: Punto Vista StakeHolder

Fuente: Los Autores

3.5.2. Punto de Vista de principios

El punto de vista de principios permite al diseñador modelar los principios que son relevantes al problema de diseño que se está resolviendo, incluyendo los objetivos

que motivaron dichos principios. En pocas palabras los principios son valores corporativos de la organización en base al objetivo planteado.

Se observa en este punto de vista los principios que surgen de cada uno de los objetivos, los principios se pueden tomar como los valores corporativos que se

ofrecen por cada objetivo. Con cada principio se brinda valor al servicio ofrecido por la organización.

Page 44: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 20: Punto Vista Principios

Fuente: Los Autores

3.5.3. Punto de Vista de Realización de Objetivos

Este punto de vista permite al diseñador modelar el refinamiento de objetivos de alto nivel en objetivos más concretos y el refinamiento de dichos objetivos concretos en

requerimientos o restricciones que describen las propiedades que son necesarias para realizar los objetivos.

En este modelo podemos observar los requerimientos y restricciones que tiene cada objetivo de las partes interesadas, con este descubrimiento se puede pensar a

grandes rasgos las restricciones del sistema al momento de su implementación para este proceso de negocio de la organización.

Page 45: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 21: Punto Vista Realización Objetivos

Fuente: Los Autores

3.5.4. Punto de Vista de Contribución de Objetivos

El presente punto de vista permite modelar las relaciones influyentes entre objetivos y requerimientos. Las vistas resultantes pueden ser usadas para analizar el impacto

que tienen los objetivos. Se observa en este punto de vista como se generan nuevos objetivos a partir de los

requerimientos, se toman dos requerimientos de los cuales se muestran sus objetivos positivos y negativos. Se pueden crear objetivos negativos ya que se

pueden cruzar los requerimientos con los objetivos.

Page 46: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 22: Punto Vista Contribución Objetivos

Fuente: Los Autores

3.5.5. Punto de Vista de Motivación

El punto de vista permite modelar aspectos generales como una vista completa de los aspectos motivacionales relacionando a las partes interesadas, sus objetos

primarios, los principios que aplican y los requerimientos principales en servicios, procesos, aplicaciones y objetos.

Para el último modelo de la capa de motivación observamos un complemento de stakeholders, motivadores, valores, restricciones, objetivo y requerimientos. Todos

ellos unidos de manera lógica en base a un objetivo principal.

Page 47: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 23: Punto Vista Motivación

Fuente: Los Autores

3.6. Capa de Proyecto

La capa de proyecto incluye conceptos para modelar la implementación de

programas y los proyectos que soportan dicho programa, portafolio, gestión de proyectos y el concepto de platea para soportar la planeación de migraciones.

3.6.1. Punto de Vista de Proyecto

El punto de vista de proyecto es usado principalmente para modelar la gestión del cambio de arquitectura. La Arquitectura del proceso de migración de una vieja

situación (estado actual de la arquitectura empresarial) a una nueva y deseada situación tiene consecuencias significativas en el mediano y largo plazo de la estrategia de crecimiento puesto que realizar la Arquitectura empresarial para toda

una organización es un proceso que puede tardar a nos y es necesario el entero compromiso de todas las partes interesadas.

Page 48: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

El presente modelo muestra una vista general el objetivo del proyecto, el cual es

construir una aplicación.

Ilustración 24: Punto de Vista de Proyecto

Fuente: Los Autores

3.6.2. Punto de Vista de Migración

El punto de vista de migración implica modelos y conceptos que pueden ser usados para especificar la transición de una arquitectura existente a una arquitectura

deseada. Los conceptos principales modelados son las planteadas (hitos del proyecto) y las brechas (dificultades que deben ser superadas).

En este punto de vista observamos el estado actual de la organización a nivel de plataforma web y el esquema de brecha para la transición entre el estado actual y

el estado final.

Ilustración 25: Punto Vista Migración Fuente: Los Autores

Page 49: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3.6.2. Punto de Vista de migración e implementación

El presente punto de vista es usado para relacionar programas y proyectos con las partes de la arquitectura que ellos implementan. Esta vista permite modelar el alcance de programas, proyectos, actividades de proyectos en términos de las

plateas que son realizadas o los elementos individuales de arquitectura que son afectados.

Para este último modelo observamos un diagrama completo entre objetivo organizacional, entregable y análisis de brecha según los hitos de la

implementación.

Ilustración 26: Punto de Vista de migración e implementación

Fuente: Los Autores

Page 50: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 4. DETALLE DE LA SOLUCION

4.1. Metodología de Desarrollo RUP

Para el proyecto “PROTOTIPO WEB”, se definió la metodología RUP. Ya que,

gracias a la claridad en los requerimientos y el alcance definido, no se ejecutaron

variaciones en el tiempo de la ejecución del proyecto. Por esta razón se definió esta metodología para llevar a fin término este proyecto bajo el tiempo y el alcance estimado.

El proyecto pudo ser correctamente ejecutado siguiendo el ciclo de vida en cascada

como se define en las siguientes fases:

Ilustración 27: Fases RUP Clásica

Fuente: Los Autores Requerimientos: Se analizan las necesidades de los usuarios del software para ver

los objetivos a cumplir. Análisis: Descomposición y organización del sistema en elementos que se

elaboren por separado. Diseño: Se crean los algoritmos para cumplir los requerimientos del usuario y

análisis que permitan saber las herramientas a utilizar.

Page 51: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Codificación: Se programan los algoritmos y códigos, mediante prototipos,

ensayos y errores. Prueba: Se ensamblan los elementos programados para comprobar el buen

funcionamiento.

4.2. Requerimientos funcionales y no funcionales

Requerimientos funcionales

Los requerimientos funcionales arquitecturalmente significantes que impactan la

arquitectura teniendo asociación a funcionalidades o características críticas, esfuerzos como la integración, riesgos en particular o que están influenciados fuertemente por los requerimientos no funcionales, son:

REQ01 Consulta de información

El sistema permitirá el ingreso de una oración de consulta en lenguaje natural. REQ02. Respuesta sobre la consulta de información

En caso de que el sistema encuentre información sobre la consulta realizada, se debe informar la respuesta mediante lenguaje natural.

REQ03. Independencia en el uso de acentos

REQ04. Trazabilidad de las conversaciones El sistema guardara en un log histórico, la conversación realizada entre el usuario y

el chatbot. REQ05. Base de conocimiento

El sistema tendrá un conjunto den preguntas y respuestas, que se utilizará para mantener la conversación entre el usuario y el chatbot

Requerimientos no funcionales

Los requerimientos no funcionales del sistema “PROTOTIPO WEB” se representan a continuación en términos de atributos de calidad.

Rendimiento:

Una respuesta a un usuario no puede tomar más de 30 segundos en procesarse.

La información consultada debe ser actualizada permanente y simultáneamente, sin que se afecte el tiempo de respuesta de las solicitudes.

Page 52: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Disponibilidad

El sistema debe estar disponible el tiempo estipulado modo 7x24.

Multiplataforma

La aplicación podrá ser ejecutada desde cualquier entorno que tenga la posibilidad de ejecutar JavaScript, entre los cuales se encuentran los 3

navegadores más frecuentes Chrome, Safari, Firefox, incluso se podrá llegar a ejecutar desde tabletas y móviles que soporten esta tecnología.

Concurrencia

La aplicación debe soportar el ingreso de 100 usuarios concurrentes realizando consultas.

Seguridad

La solución debe estar diseñada para garantizar la disponibilidad y prever de ataques que indispongan el sistema.

Escalabilidad

El sistema está diseñado para que en el futuro se integren nuevas bases de

conocimientos sobre otros colegios.

4.4. Análisis y Diseño de la solución

El análisis y diseño de la solución fue el proceso más importante durante la

construcción. En este se realizaron tareas propias de esta fase del ciclo de vida y para este propósito se llevó a cabo un proceso de entendimiento de las necesidades

del problema, interpretación y análisis de los resultados obtenidos durante las actividades de recolección de información, adopción de conocimientos propios de la tecnología a utilizar y planteamiento de soluciones.

Como insumo principal para el análisis se realizó una tarea de levantamiento de

requerimientos, los cuales se documentaron en casos de uso que manifiestan las necesidades de los actores del negocio y a partir de ello se plantearon los modelos que soportaran la solución propuesta.

Se realizó como apoyo a la fase de codificación la creación de diagramas UML

(Lenguaje Unificado de Modelado). Con el fin de presentar un lenguaje visual común, comprensible por los desarrolladores de software, usuarios de negocios y demás personas que quisieran entender el sistema.

Page 53: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

4.4.1. Diagrama de casos de uso

La solución cuenta con los siguientes componentes:

Usuario

Chat bot

Web Api

Servicios Web

Base de Datos

En la siguiente ilustración se describe las operaciones que realizan los usuarios

(padres de familia, administrador) en la interacción con la plataforma, nombradas a un alto nivel en donde posteriormente en la descripción de los casos de uso, se detalla el proceso de la operación.

Ilustración 28. Diagrama de caso de uso Chatbot

Fuente: Los Autores

CU-01 Consulta de Información

Versión 1.0 (12/08/2018) Dependencias Precondición Inicio asistente virtual.

Descripción El sistema deberá comportarse como se describe en el siguiente caso de uso, cuando la información solicitada está disponible en el chatbot.

Page 54: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Secuencia

normal

Paso Acción

1 El usuario escribe en el cuadro de dialogo o habla presionando el botón del

micrófono.

2 Pulsar “Enter” o si el usuario esta con el micrófono se

envía la pregunta automáticamente.

3 Se envía sincrónicamente

la petición mediante HTTP al servidor.

4 Se obtiene respuesta Pos condición Se muestra la respuesta al usuario. Excepciones Paso Acción

4 En el caso de que el

componente chatbot no responda, continuara la ejecución del programa,

solicitando una nueva oración.

CU-02 Respuesta sobre la consulta

Versión 1.0 (12/08/2018) Dependencias Precondición CU-01 no se encuentra respuesta Descripción El sistema comprobará si existe alguna palabra clave en la

base de conocimiento y responderá al usuario. Secuencia

normal

Paso Acción

1 Se realiza petición síncrona HTTP al servidor.

2 Se analizará la oración,

identificando los elementos clave.

3 Búsqueda de elementos en

la base de datos.

4 Se obtiene respuesta Postcondición Se muestra la respuesta al usuario. Excepciones Paso Acción

2 Si el módulo de análisis, no encuentra elementos clave,

solicita otra oración.

Page 55: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3 Si no se encuentra

información en la base de datos, se pedirá al usuario que ingrese otros términos

de búsqueda. CU-03 Actualizar base de conocimiento de preguntas

Versión 1.0 (12/08/2018) Dependencias Precondición Descripción Se deberán seguir los siguientes pasos para actualizar la base

de conocimiento de preguntas, no es necesario detener el

chatbot. Secuencia normal

Paso Acción

1 Realizar una copia de

seguridad.

2 Revisar la base histórica conversacional del chatbot,

para extraer preguntas de conocimiento.

3 Crear script “.sql”, con la

nueva base de preguntas.

4 Ejecutar el script “.sql” y comprobar resultado de respuesta.

5 Comprobar el correcto

funcionamiento del chatbot. Postcondición Se puede utilizar correctamente la aplicación, con la nueva

base de conocimiento de preguntas. Excepciones Paso Acción

5 En caso de un

comportamiento no esperado, cargar la copia

de seguridad de la base de datos.

CU-04 Actualizar base de conocimiento de repuestas

Versión 1.0 (12/08/2018) Dependencias Precondición Descripción Se deberán seguir los siguientes pasos para actualizar la base

de conocimiento de respuestas, no es necesario detener el

chatbot. Secuencia normal

Paso Acción

Page 56: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

1 Realizar una copia de

seguridad.

2 Revisar la base histórica conversacional del chatbot, para extraer preguntas de

conocimiento y así definir las respuestas que se

pueden informar al usuario.

3 Crear script “.sql”, con la nueva base de respuestas.

4 Ejecutar el script “.sql” y

comprobar resultado de respuesta.

5 Comprobar el correcto funcionamiento del chatbot.

Postcondición Se puede utilizar correctamente la aplicación, con la nueva

base de conocimiento de respuestas. Excepciones Paso Acción

5 En caso de un comportamiento no

esperado, cargar la copia de seguridad de la base de

datos.

4.4.2. Diagrama de actividades

Presenta los procesos de negocios a un alto nivel, direccionándolo sobre el movimiento de datos. Las acciones son representadas a un alto nivel del sistema, plasmando las tareas sobre un flujo de acciones.

Page 57: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 29: Diagrama de actividades

Fuente: Los Autores

4.4.3. Diagrama de componentes

Se muestra la vista de la solución a partir de elementos funcionales, de forma

atómica. Esta vista muestra las responsabilidades por componentes, abstrayendo la arquitectura por funcionalidades.

A continuación, se presenta el diagrama de componentes que ilustra cada una de estas funcionalidades con la responsabilidad individual para el proyecto Prototipo

Web.

Ilustración 30: Diagrama de componentes

Fuente: Los Autores

Page 58: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

4.4.4. Diagrama de despliegue

Describe la implementación física de la información generada por el prototipo Web

en los componentes de hardware. A la información que genera la aplicación se la conoce como artefacto.

Ilustración 31: Diagrama de despliegue

Fuente: Los Autores 4.3. Tecnología Utilizada

Este ítem detalla la tecnología utilizada para la construcción del producto. Se describen aspectos importantes definidos en el diseño de solución.

4.3.1. Chatbot

Este ítem está indicado inicialmente en el documento. En este punto se describen las funciones que realizan y como está estructurada esta tecnología para su

implementación en la solución planteada. “Un asistente virtual se puede implementar en los lenguajes más comunes de

programación como pueden ser Java, C, Python, pero estos lenguajes no están especializados en procesamiento de lenguaje, y menos en programación de

chatbots. En este apartado la decisión tecnológica fue fácil, el lenguaje de programación para chatbots más extendido es AIML (Artificial Intelligence Mark-up Language) se pueden encontrar numerosas comunidades con tutoriales y

Page 59: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ejemplos. Es un lenguaje muy básico pero muy potente, está basado en XML, y su

propósito es crear una base de conocimiento para dar respuesta mediante patrones”. [9]

4.3.2. Funcionamiento de AIML

AIML (Inteligencia Artificial Lenguaje de Marcado), es un estándar XML para la definición de chatbot respuestas. Se basa específicamente en conceptos de

conocimiento similar a la del cerebro humano. [9] Tiene tres componentes básicos que son:

Categorías

Son las unidades fundamentales de conocimiento, es la etiqueta que marca el inicio de una regla de conocimiento que contiene al menos un patrón y una plantilla.

Etiqueta: <category> Patrones

El lenguaje AIML se basa en patrones. La entrada de texto es comparada con los patrones, estos son expresiones en lenguaje formal que puede contener:

1. Lenguaje natural en mayúsculas. 2. El símbolo “*” que equivale a una o más palabras.

3. El símbolo “_”es igual que “*” pero prevalece. 4. <name/> que es reemplazado cuando se carga por el nombre del chatbot.

Etiqueta: <pattern> Plantillas

Si se tiene una coincidencia con este patrón, la respuesta del chatbot se sitúa en la

en la descripción de la plantilla.

Etiqueta: <template>

Page 60: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 32: Lista de AIML etiquetas de plantilla. Fuente: http://es.botlibre.com/manual-aiml.jsp

AIML define como un robot debe responder a una pregunta con <patrón> y

<plantilla> elementos. Un patrón representa al usuario de la pregunta, y la plantilla

define el bot de la respuesta. El patrón y la plantilla de elementos se agrupan en una categoría de elemento, que se pueden agrupar bajo el tema de los elementos .

[9]

Ilustración 33: Lista de AIML patrón de los operadores

Fuente: http://es.botlibre.com/manual-aiml.jsp

Ejemplos

Aquí es un simple 'Hola' AIML ejemplo:

Este código hara responder al bot con "Hola, como estas?.

Page 61: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

<aiml>

<category>

<pattern>Hola</pattern> <template>Hola como estas?</template>

</category>

</aiml> Ejemplo 1: (Básico)

<category>

<pattern>HOLA</pattern> <template> Bienvenido, espero poder ayudarte. </template>

</category>

En este caso si el usuario enviara el mensaje de “Hola”, el chatbot respondería con

“Bienvenido, espero poder ayudarte.”

Tú: Hola

BOT: Bienvenido, espero poder ayudarte.

A partir del ejemplo se pueden ir complicando con etiquetas que aportan otras

funcionalidades como son:

“<star/>”, esta etiqueta es sustituida por las palabras que coinciden con “*”

“<srai>X</srai>” llama recursivamente al patrón que coincide con X “<sr/>” = <srai><star/></srai>

Con estos nuevos elementos podemos ver que se pueden crear ejemplos más complejos. Ejemplo 2: (Recursividad)

El Input del usuario es: -Esto es una prueba para Buscando Colegió

Ilustración 34: Recursividad AIML

Fuente: https://faustol.wordpress.com/2007/09/05/anlisis-sintctico-descendente-ll1/

Partiendo de que el nombre del chatbot es Buscando Colegió la recursión iría realizando las siguientes llamadas:

Page 62: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Paso 1:<sr/>=ESTO ES UNA PRUEBA PARA

Paso2: <sr/>=ESTO ES UNA PRUEBA Paso3:<sr/>=UNA PRUEBA

La respuesta final es: “Ejemplo 2 Fin” Partiendo de que el nombre del chatbot es Buscando Colegió la recursión iría

realizando las siguientes llamadas:

Paso 1:<sr/>=ESTO ES UNA PRUEBA PARA Paso2: <sr/>=ESTO ES UNA PRUEBA Paso3:<sr/>=UNA PRUEBA

La respuesta final es:“Ejemplo 2 Fin”

Otras etiquetas bastante prácticas son: “<that></that>”, se utiliza como un patrón, pero de lo que dijo previamente el chatbot, frecuentemente se utiliza para preguntas.

Ejemplo 3:

<category> <pattern>TOCK TOCK</pattern>

<template>Quién es?</template> </category>

<category> <pattern>*</pattern>

<that>¿Quién es?</that> <template>Sabía que eras tú, <star/></template>

</category> Diálogo:

-Tock tock .¿Quién es?

-Luis .Sabía que eras tú, Luis “<random><li></li></random>”, permite responder aleatoriamente una de las

respuestas entre las etiquetas <li> Ejemplo 4:

<category>

<pattern>¿QUÉ TAL TE ENCUENTRAS HOY?</pattern> <template>

<random> <li>Bien </li> <li>Regular </li> <li>Mal </li> </random> </template> </category>

Page 63: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Dialogo:

-¿Qué tal te encuentras hoy? .Bien

-¿Qué tal te encuentras hoy? .Mal -¿Qué tal te encuentras hoy?

.Bien

Se hace una descripción bajo patrones AIML que se pueden visualizar en el ANEXO 1: AIML PATRONES MANEJO BAJO OPERADORES

4.3.3. Dialogflow

Es una herramienta (Api), que permite la creación de Chatbots muy fácilmente.

Permite crear interfaces conversacionales. Se basa en tecnología de Google para crear estos tipos de sistemas reconociendo lenguaje natural.

Dialogflow es un paquete de desarrollo integral que permite crear interfaces de

conversación para sitios web, aplicaciones móviles, plataformas de mensajería populares y dispositivos de Internet de las Cosas. Puedes utilizarlo para diseñar

interfaces (por ejemplo, robots de conversación) que ofrezcan una interacción profunda y natural entre los usuarios y tu empresa. Gracias al aprendizaje

automático, Dialogflow puede reconocer la intención y el contexto de las palabras de un usuario para que tu interfaz de conversación responda con precisión y eficacia. [9]

Principal ventaja de Dialogflow frente a otras plataformas

Dialogflow permite establecer normas de reconocimiento natural del lenguaje y

varias respuestas naturales.

Ejemplo:

Con herramientas básicas:

Si el usuario dice “Hola cómo te llamas”, entonces responde “Me llamo robot”.

Con Dialogflow: si el usuario pregunta por mi nombre entonces responde “Me llamo robot”, o “Mi nombre es robot”, o “Yo no me llamo, siempre comunico, pero otros me llaman robot”.

Conceptos básicos:

Page 64: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

“Agentes. Los agentes son como proyectos o como módulos de reconocimiento

natural del lenguaje. En bots sencillos, un agente bastará para agruparlo todo. Sin embargo, en proyectos más grandes, podrías tener varios agentes para un mismo

proyecto (marca, tienda, cuenta), cada uno de ellos agrupando una particularidad o intención común de la conversación. Por ejemplo, este agente podría ser “Agente de atención al cliente”. [10]

Intents. Son las intenciones del cliente o, dicho de otra forma, qué es lo que quiere.

Aquí definimos las posibles preguntas o peticiones de los clientes y qué posibles respuestas. Por ejemplo: si pregunta por el estado de un pedido. [10]

Entities. Las entidades son las herramientas de que disponemos para extraer parámetros o variables de lo que ha dicho el usuario. Por ejemplo, cuando un

usuario diga “Quiero consultar el estado del pedido con ID 0237908” se usa las entidades para extraer el valor del ID del pedido en lo que está diciendo el usuario. [10]

Actions. Las acciones es lo que hacemos cuando se detecta una intención de un

usuario. Cuando lo que dice el usuario se corresponde con un Intent, entonces se extraen los parámetros y se pasan a la acción que hayas definido, que puede ser “responde esto” o incluso conecta con tal servicio online y pide la respuesta con una

petición de API.[10]

Contexts. Los contextos de esta herramienta permiten definir intenciones en función del contexto de la conversación. ¿Qué? Espera, te cuento. Imagina que el usuario poner robot. ¿A qué se refiere? ¿Es su nombre? ¿El de su novio? En una

conversación normal que se deduce por lo que se ha hablado justo antes, ¿verdad? Mi novia se llama Consuelo, ¿y el tuyo? robot. Pues eso son los contextos, una

forma de relacionar y hacer fluida la conversación. [10] Fullfillment. Permite hacerlo todo desde su plataforma en plan si el usuario dice, tú

respondes. Pero, por norma general, el usuario no querrá respuestas predefinidas sino más bien respuestas para su caso particular. De poco serviría hacer un chatbot

al que se le preguntes “¿Dónde está mi pedido?” y la respuesta siempre fuese “Envíanos un correo a”. ¿Me sigues? Pues bien, DIalogflow te permite enviar peticiones a Webhooks (que ya sabes lo que es) para que la respuesta sea mucho

más natural al recuperar la información, por ejemplo, de tu Prestashop.[10]

Page 65: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Ilustración 35: Visión general del funcionamiento de Dialogflow

Fuente: https://javilopezg.com/tag/dialogflow/

4.3.4. Motor de búsqueda

Cuando se habla de búsqueda, se puede definir como software enfocado a la búsqueda de recursos expuestos en la red mediante palabras clave. Cuando

hablamos de recursos, podemos decir que los hay de diferentes tipos: videos, documentos, imágenes etc.

La gestión de búsqueda de la solución (chatbot) está bajo tecnología Google. En la interfaz de la plataforma se crea el asistente (agente) de AI virtual. Cada asistente

se con habilidades específicas, estas también se van aprendiendo en la interacción con él. Se llama “agente”. [8]

Ilustración 36: Google Cloud Platform. Creación de agente

Fuente: https://console.dialogflow.com/

Page 66: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Al crear el agente, se crean unos intents por defecto. Estos se encargan de

procesar las solicitudes de los usuarios. Los “intents” (intenciones) permite crear conexiones entre las entidades y lo que el usuario dijo en lenguaje natural con las

acciones que quieres que haga el programa. [8]

4.3.5. Resumen Herramientas

Las versiones de las herramientas que se han utilizado son las siguientes:

Hosting

Dialogflow (Chatbot)

Portal Web

Servidor Node Js

Bases de Datos Sql Server

Page 67: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

PARTE III CIERRE DE LA INVESTIGACIÓN

Page 68: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 5. RESULTADOS Y DISCUSIÓN

A partir de la definición de requerimientos por medio de la metodología de desarrollo

de software (RUP Clásica), la definición de la arquitectura empresarial orientada al proceso de autoevaluación y el levantamiento de la información del contexto del problema, se logra construir un prototipo Web capaz de permitir interactuar bajo un

lenguaje natural y bajo criterios de búsqueda. Este prototipo de aplicación es la implementación a la problemática planteada Se da por finalizada la construcción del

prototipo dando cumplimiento al alcance del problema. Se mencionan los resultados alcanzados más destacados de la investigación:

Apropiar del conocimiento de integración de chatbot en una aplicación Web

para el sistema planteado.

Conocer de las necesidades de las personas a la hora de escoger colegios

Construir una aplicación Web que integra inteligencia artificial para la

búsqueda y respuesta de información a usuarios.

Construir una aplicación web y de servicios que permite gestionar interacción similar a la humana.

Motivar la construcción de este tipo aplicaci9ones bajo servicio web que permita la integración de diferentes fuentes de datos.

Page 69: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 6. CONCLUSIONES

5.1. Verificación, contraste y evaluación de objetivos

Durante el desarrollo de la investigación se llevaron a cabo actividades que han

podido dar como resultado el producto planteado en el objetivo principal. Se describe información general del trabajo realizado:

La implementación de un modelo de afinidad basado en un modelo de

orientación para la búsqueda de colegios y soportado en un sistema conversacional automático (Chatbot) apoya de una manera interactiva a los padres de familia que en la actualidad realizan la búsqueda de colegio para

sus hijos, teniendo información centralizada que en la actualidad no es posible.

Con el auge y el uso de los chatbots, se visualiza un cambio profundo y radical en la forma en que las personas se comunican e interactúan en la

web. Como también la forma en que en la interacción disponen de información específica, que poyan a la toma de decisiones como lo es en

este caso la búsqueda de colegio.

El uso de un chatbot como plataforma de implementación de un tema tan

importante como la orientación de selección de colegio, que cumpla con las expectativas de los padres de familia ayuda que las tecnologías de

información apoyen los procesos de selección de acuerdo con criterios dados, promoviendo la mejor elección de estudio para su hijo en su vida académica, lo cual facilite su desarrollo de habilidades duras y blandas.

La investigación, base del proyecto centro su interés en la contribución del

conocimiento sobre la aplicación de técnicas y modelos de inteligencia artificial en el diseño de un sistema de orientación inteligente que contribuye

a la búsqueda de colegio de acuerdo a criterios de búsqueda, teniendo en cuenta variables como: colegio bilingüe, Jornada, Calendario etc...

El estudio de los modelos y técnicas aplicables a sistemas inteligentes da un avance del “estado del arte” sobre nuevos conocimientos, tanto en lo relativo

a la representación de este sistema que pueda dar lugar a nuevos desarrollos teóricos y la construcción de aplicaciones de mayor calidad.

Además, se analizó técnicas basadas en inteligencia artificial, así como en la integración de estas, en la arquitectura de sistemas inteligentes que permitan incluir

aspectos de aprendizaje y enseñanza vinculándolos con otros parámetros propios del estudiante que son objeto de estudio.

Page 70: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ArchiMate es un lenguaje que nos brinda una guía para modelar la arquitectura de

un sistema de información o de una empresa en general, no obstante, se requiere tener claro el enfoque, los procesos y las tecnologías que se van a implementar, así

como el contexto dentro del cual se trabajara para evitar ambigüedades en la diagramación.

5.2. Síntesis del modelo propuesto

Como resultado podemos observar que aunque en el país se han realizado diferentes proyectos que puedan servir como apoyo al momento de buscar y elegir

colegio para un niño, aún hace falta más conocimiento y divulgación de las diferentes plataformas y a la vez estas sean más usables, lo cual facilite la utilización y por ende brinde orientación, es por esto que realizar la implementación sobre una

plataforma de fácil acceso y que brinde una conversación tipo chat, esto representa una oportunidad para que la plataforma y el modelo estén al alcance de más

personas de una forma más fácil. La verificación de la efectividad del Bot es un proceso a largo plazo, se debe realizar

la prueba sobre padres de familia en que sus hijos están próximos a iniciar su proceso académico, y luego realizar un seguimiento en los primeros meses, para

verificar que tan acertado fue el modelo al momento que se realizó. Se construyó la solución (Prototipo Web) basada en una arquitectura

cliente/servidor, en la que el servidor aloja una aplicación Web y a su vez esta integra el chatbot. La aplicación conversacional integra servicios como Api's para

realizar consultas a una base de información. El lado del cliente está definido por una aplicación WEB.

La implementación de un chatbot y el apalancamiento en la posibilidad de realizar integración con las redes sociales hace que el software pueda llegar a más personas

y a futuro pueda llegar a difundirse en todo el territorio colombiano y por qué no, poder llegar a convertirlo en modelo de referencia al momento de seleccionar el colegio para sus hijos.

Revisar ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA, ANEXO 3 ENCUESTA APLICADA y ANEXO 4 RESULTADOS DE LA ENCUESTA.

Page 71: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

5.3. Aportes Originales

El proyecto “DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR PARA LA BÚSQUEDA DE COLEGIOS”, utiliza tecnologías innovadoras y de vanguardia que permiten implementar soluciones bajo tecnología

de punta para una amplia gama de áreas. Algunos de los aportes más destacados del proyecto:

Se construyó una aplicación para apoyar a la búsqueda de colegios a través

de un sistema conversacional “chatbot”.

Creación de una aplicación conversacional funcional, moderna y con proyección para convertirse en una base de búsqueda en esta área de

educación.

Propuesta de un mecanismo apoyado en la tecnología para realizar

búsquedas de colegio, bajo criterios específicos de búsqueda.

Prever un cambio profundo y radical de como las personas realizan las

búsqueda y selección de un colegio.

5.4. Trabajos o Publicaciones Derivadas

Como un trabajo derivado de este proyecto, se implementó bajo tecnología Google (Dialogflow) el prototipo Web de búsqueda de colegios, para evaluar su

funcionamiento desde cualquier navegador.

Page 72: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

CAPÍTULO 7. PROSPECTIVA DEL TRABAJO

6.1. Líneas de investigación futuras

Se detectaron las siguientes líneas de investigación:

Construcción de soluciones que utilicen la tecnología de inteligencia artificial

bajo chatbot en diferentes áreas y sectores.

Integración con herramientas como google maps para que adicional a la

información se permita mostrar la ubicación.

Desarrollo de aplicaciones bajo esta tecnología que permita buscar otro tipo de información.

Integración con herramientas de entrada de voz para personas con discapacidad visual.

Integrar una mayor empatía humana y diálogos cotidianos en los chatbot,

bajo Inteligencia Artificial en la comunicación del servicio al cliente de los diferentes sectores.

Desarrollo de menús personalizados e integración con sistemas académicos, redes sociales y sistemas financieros.

6.2. Trabajos de investigación futuros

Es presente trabajo fue desarrollado dentro de un tiempo limitado a la duración de la especialización por tal motivo fue necesario limitar la implementación a un

prototipo del software, el cual está orientado brindar la orientación de búsqueda de colegios privados basado en un modelo de afinidad en la ciudad de Bogotá D.C.

Por lo anterior se proyecta que en un futuro cercano se pueda realizar la implementación de las siguientes actividades las cuales permitirán ampliar el

prototipo aumentando la cobertura en cuanto a ciudades y colegios.

Ampliar la cobertura de las ciudades a nivel nacional, puesto que al ser una herramienta web se puede hacer desde cualquier lugar con conexión a

internet.

Page 73: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Involucrar a los colegios oficiales y privados a nivel nacional en el proyecto para llegar a una mayor cantidad de usuarios.

Establecer convenios interinstitucionales a nivel nacional con el fin de

aumentar los recursos disponibles para la ejecución y divulgación del proyecto

El modelo de datos se diseñó de tal manera que pueda ser escalable a cualquier sistema que permita realizar una prueba basado en información de entidades, esto

conlleva a que el sistema puede extenderse para ser utilizado como una plataforma de búsqueda de información con preguntas y respuestas para diversos temas sobre entidades como universidades, bancos, entidades del estado, lo cual podría ser

configurable usando el modelo de datos y la plataforma.

Page 74: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

BIBLIOGRAFÍA

[1] «Pandorabots,» 2008. [En línea]. Available: https://www.pandorabots.com/docs/aiml/aiml-basics.html.

[2] «El economista,» 13 04 2016. [En línea]. Available:

http://www.eleconomista.es/tecnologia/noticias/7488529/04/16/Que-son-exactamente-los-chatbots-y-para-que-sirven.html.

[3] TECHCETERA, «https://techcetera.co/bots-y-eso-para-que-sirve/,» ¿Bots y eso para qué sirve?, vol. I, nº 1, pp. 1-4, 2018.

[4] Google, «Dialogflow,» Case studies, vol. I, nº 1, p. 1, 2016.

[5] «7 Técnicas de levantamiento de requerimientos software,» PMOInformática, 03 08 2016. [En línea]. Available:

http://www.pmoinformatica.com/2016/08/tecnicas-levantamiento-requerimientos.html. [Último acceso: 05 11 2018].

[6] L. Olarte Gervacio, «Clasificación de software de sistemas y aplicaciones,»

conogasi, 02 04 2018. [En línea]. Available: http://conogasi.org/articulos/clasificacion-de-software-de-sistemas-y-

aplicaciones/. [Último acceso: 10 11 2018].

[7] «BOtlibre!,» 26 07 2018. [En línea]. Available: http://es.botlibre.com/manua l-aiml.jsp. [Último acceso: 02 11 2018].

[8] IBM, «Kit de desarrolladores de software (SDK) de IBM,» 11 2016. [En línea]. Available:

https://www.ibm.com/support/knowledgecenter/es/SSYKE2_8.0.0/com.ibm.java.80.doc/user/java_sdk.html.

[9] J. C. Cobos Torres, «Integración de un chatbot como habilidad de un robot

social con gestor de diálogos,» 10 2013. [En línea]. Available: http://repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T-

SENESCYT-000332.pdf.

[10] L. E. Cubero Caba, «eprints,» 2015. [En línea]. Available: https://eprints.ucm.es/32448/1/Asistente%20Virtual%20%28chatbot%29%20

para%20la%20Web%20de%20la%20Facultad%20de%20Inform%C3%A1tica%28Luis%20Enrique%20Cubero%20Final%29.pdf. [Último acceso: 02 11

2018].

[11] V. Campuzano, «Dialogflow: la herramienta de Google para crear chatbots – Guía 2018,» 2018. [En línea]. Available: https://vicampuzano.com/dialogflow/.

[Último acceso: 01 11 2018].

[12] L. Ares, «Visual Engineering,» 24 04 2018. [En línea]. Available:

https://www.nubalia.com/que-es-dialogflow-asistente-virtual-google/. [Último acceso: 20 10 2018].

[13] «Los mejores colegios,» 2018. [En línea]. Available:

http://losmejorescolegios.com/colegios/.

Page 75: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

[14] «Enter,» 25 08 2014. [En línea]. Available: http://www.enter.co/cultura -

digital/colombia-digital/encuentre-colegio-para-sus-hijos-con-la-aplicacion-colombian-schools/.

[15] «AI and Machine Learning Products,» Google Cloud, 2018. [En línea]. Available: https://cloud.google.com/dialogflow-enterprise. [Último acceso: 02 11 2018].

[16] Anthony & Cols, 1984. [En línea]. Available: http://www.sie.es/crl/archivo_pdf/ORIENTACION%20VOCACIONAL.pdf.

[17] L. Duran, «ORIENTACION VOCACIONAL,» 17 11 2008. [En línea]. Available: http://orientacionvocacionalccsa.blogspot.com/2008/11/historia-de-lo-orientacin-vocacional.html.

[18] S. Arteaga, «Los mejores navegadores de 2018,» computerhoy.com/listas/tecnologia/mejores-navegadores-2018-274789,

España, 2018.

Page 76: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ANEXOS

ANEXO 1 AIML PATRONES MANEJO BAJO OPERADORES

Ejemplos

Aquí es un simple 'Hola Mundo' AIML ejemplo: Este código hará que su bot responder con "Hola a ti también' a la pregunta 'Hola

Mundo'. <aiml> <category> <pattern>HELLO WORLD</pattern> <template>Hello to you too</template> </category> </aiml>

Aquí es un simple ejemplo de comodín: Este código hará que su bot responder con "Hola a ti también" a cualquier

pregunta que contengan la palabra 'hola'. <aiml> <category> <pattern>* HELLO *</pattern> <template>Hello to you too</template> </category> </aiml>

Aquí es una broma 'que' ejemplo:

Este código hará que su bot contar un chiste. <aiml> <category> <pattern>TELL ME A JOKE</pattern> <template>Why did the chicken cross the road?</template> </category> <category> <pattern>* WHY *</pattern> <that>Why did the chicken cross the road?</that> <template>To get to the other side.</template> </category> </aiml>

Aquí es un complejo ejemplo de plantilla:

Este código hará que el robot responder a la pregunta "¿te gustan las manzanas o

¿te gustan las naranjas' con 'me encantan las manzanas y me encantan las naranjas'.

<aiml> <category>

Page 77: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

<pattern>* OR *</pattern> <template><srai><star/></srai> and <srai><star index="2"/></srai></template> </category> <category> <pattern>DO YOU LIKE *</pattern> <template>I love <star/></template> </category> </aiml>

^ y # Comodines

<category> <pattern>^ aiml ^</pattern> <template>AIML is cool.</template> </category> <category> <pattern>^ chat bot^</pattern> <template>Yes, I am a chat bot.</template> </category>

$ Prioridad <category> <pattern># sex #</pattern> <template>I'm not that kind of bot.</template> </category> <category> <pattern>$what is your sex</pattern> <template>I am female.</template> </category>

() y [] Listas de

<category> <pattern>do [you u] (really) [like love luv lv] me</pattern> <template>Yes, I love you.</template> </category>

Expresiones regulares

<category> <pattern>my email is /.+\@.+\..+</pattern> <template>That is a valid email</template> </category>

Conjuntos de <category> <pattern>I am <set>name</set></pattern> <template>Pleased to meet you <star/>.</template> </category> <category>

Page 78: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

<pattern><set>number</set> + <set>number</set></pattern> <template><srai>addition <star/> <star index="2"/></srai></template> </category>

AIML plantilla para establecer un conocimiento del tipo de objeto:

<category> <pattern>load animals</pattern> <template> <think> <map name="meaning" value="dog">dog</map><map name="instantiation" value="animal"><map name="meaning">dog</map></map> <map name="meaning" value="dog">doggy</map> <map name="meaning" value="cat">cat</map><map name="instantiation" value="animal"><map name="meaning">cat</map></map> </think> </template> </category>

Patrón etiquetas

<category> <pattern><bot name="name"/></pattern> <template>Yes, that's my name.</template> </category> <category> <pattern>I am </pattern> <template>That is my age too.</template> </category> <category> <pattern></pattern> <template>You are repeating yourself.</template> </category> <category> <pattern><response/></pattern> <template>Please don't repeat me.</template> </category>

Atributos como Elementos <category> <pattern>My * is *</pattern> <template>I will remember that your <star/> is <star index="2"/><think><set><name><star/></name><star index="2"/></set></think></template> </category> <category> <pattern>What is my *</pattern> <template>Your <star/> is <get><name><star/></name></get></template>

</category>

Mapas

<category> <pattern>what is the capital of <set>country</set></pattern>

Page 79: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

<template>The capital of <star/> in <map name="capital"><star/></map>.</template> </category>

Bot Libre se extiende el mapa de la operación a la que también permiten establecer el mapa de valor. De esta forma se establecerá el valor de una relación

en el conocimiento del objeto. <category> <pattern>the opposite of * is *</pattern> <template>Okay, the opposite of <star/> is <star index="2"/>. <think><map name="opposite"><value><star index="2"/></value><star/></map></think> </template> </category> <category> <pattern>what is the opposite of *</pattern> <template>the opposite of <star/> is <map name="opposite"><star/></map> </template> </category>

Condiciones y Bucles

<category> <pattern>count down from <set>number</set></pattern> <template> <think><set var="count"><star/></set></think> <condition var="count"> <li value="5"><think><set var="count">4</set></think>5 <loop/></li> <li value="4"><think><set var="count">3</set></think>4 <loop/></li> <li value="3"><think><set var="count">2</set></think>3 <loop/></li> <li value="2"><think><set var="count">1</set></think>2 <loop/></li> <li value="1"><think><set var="count">0</set></think>1 </li> </condition> </template> </category> <category> <pattern>what is <set>number</set> + <set>number</set></pattern> <template> <think> <set var="result"><star/></set> <set var="count">0</set> </think> <condition var="count"> <li><value><star index="2"/></value></li> <li> <think> <set var="result"><map name="word"><map name="next"><map name="meaning"><get var="result"/></map></map></map></set> <set var="count"><map name="word"><map name="next"><map name="meaning"><get var="count"/></map></map></map></set> </think> <loop/> </li> </condition> The answer is <get var="result"/> </template> </category>

Page 80: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

El aprendizaje <category> <pattern>learn question * answer *</pattern> <template> <think> <learn> <category> <pattern><eval><star/></eval></pattern> <template><eval><star index="2"/></eval></template> </category> </learn> </think> Okay, I will answer "<star index="2"/>" to "<star/>" next time </template> </category> <category> <pattern>wrong</pattern> <template>What should I have said?</template> </category> <category> <pattern>*</pattern> <that>what should I have said</that> <template> <think> <learn> <category> <pattern><eval><input index="3"/></eval></pattern> <template><eval><star/></eval></template> </category> </learn> </think> Okay, I will answer "<star/>" to "<input index="3"/>" next time </template> </category>

Sraix <category> <pattern>ask * about *</pattern> <template><star/> says "<sraix default="Timeout or max anonymous API calls exceeded"><botname><star/></botname><star index="2"/></sraix>"</template> </category> <category> <pattern>ask pandorabot * about *</pattern> <template><star/> says "<sraix server="http://www.pandorabots.com" default="Timeout or max anonymous API calls exceeded"><botid><star/></botid><star index="2"/></sraix>"</template> </category>

<category> <pattern>ask pandorabot chomsky about *</pattern> <template>He says "<sraix server="http://www.pandorabots.com" botid="b0dafd24ee35a477" default="Timeout or max anonymous API calls exceeded"><star/></sraix>"</template> </category>

Page 81: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

<category> <pattern>wikidata *</pattern> <template><sraix service="wikidata" default="Timeout or missing data"><star/></sraix> </category> <category> <pattern>wikidata * hint *</pattern> <template><sraix service="wikidata" default="Timeout or missing data"><hint><star index="2"/></hint><star/></sraix></template> </category> <category> <pattern>wiktionary *</pattern> <template><sraix service="wiktionary" default="Timeout or missing data"><star/></sraix></template> </category>

Auto

<category> <pattern>what is * + *</pattern> <template><star index="1"/> + <star index="2"/> = <self>star + star</self></template> </category>

Se encuentra en la referencia de información BOTLibre. [10]

Page 82: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA

La importancia de la escuela en la constitución de las sociedades ha sido clave y

ampliamente reconocida por los estudiosos del área, ya que a través de ella se constituyen los modelos de ciudadanía y los valores éticos, morales y patrios

indispensables para la perpetuación del sistema social.

Por esta razón es importante realizar un sondeo a nivel investigaciones de lo que se quiere encontrar a la hora de buscar colegio.

Una de las premisas para realizar una encuesta satisfactoria que nos permita analizar la información es direccionarla hacia una población específica:

Padres con niños pequeños que estén en la edad de colegio (Educación

básica primaria).

Personas adultas que tengan familiares que estén en la edad de colegio (Educación básica primaria).

Docentes del área de educación básica primaria.

Nota: Las edades de los niños deben estar entre los 4 a 11 años.

Reglas de redacción del cuestionario

El lenguaje utilizado debe ser acorde con el del sujeto al que se dirige la encuesta, utilizando el vocabulario y términos adecuados. Las preguntas

deben estar redactadas de la forma más corta posible, con el fin de facilitar su lectura y comprensión.

Las preguntas deben plantearse con claridad y de forma inequívoca, un típico error de redacción consiste en incluir dos preguntas en una, lo que conduce a no poder concretar a cual corresponde la respuesta.

Debe empezarse por las preguntas más fáciles o sencillas para pasar después a las más difíciles o complicadas.

Se debe tener un especial cuidado con la información de preguntas que puedan resultar delicadas o embarazosas para el encuestado, redactándolas de forma que pueda obtenerse la información sin provocar un rechazo o una

falsa respuesta. Estas preguntas deben ir, además, al final del cuestionario. No se debe incluir en las preguntas juicios de valor ni afirmaciones que

puedan condicionar las respuestas, ni que puedan verse afectadas por el orden en que figuren dentro del cuestionario.

Las preguntas deben formularse de forma que faciliten tanto el esfuerzo de

memoria que tenga que realizar el encuestado, como en su caso, la realización de cálculos, para evitar errores en las respuestas.

Page 83: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Propósito

Estructurar la encuesta que permitirá identificar los campos más relevantes por la cual los usuarios del prototipo podría usar:

1. ¿Nombre? 2. ¿Edad?

3. ¿Nivel de estudios?

Primaria

Bachillerato

Pregrado

Postgrado

4. Tiene hijos

SI

NO

5. ¿Cuántos hijos?

1

2

3

Más de 3

6. ¿Tiene niños cercanos (familiares) que estén en etapa de colegio (Educación básica primaria)?

SI

NO

7. ¿Cuántos niños relacionaría?

1

2

3

Más de 3

8. ¿Qué características cree usted que son las más importantes a la hora de

seleccionar colegio para un niño? (Seleccione más de una)

Ubicación

Con enfoque a diferentes Idiomas

Ruta

Page 84: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

Horario jornada completa

Educación tecnológica

Formación deportiva

Formación cultural

Formación religiosa

Costo

¿Si selecciono costo, cuál sería el valor que de acuerdo a sus necesidades estaría dispuesto a pagar?

¿Si selecciono formación religiosa, cual es el tipo de su elección? Descríbala

(Editable por el usuario)

¿Indique el valor? (Editable por el usuario)

¿Si selecciono que la formación en idiomas es importante, indique que idiomas cree que sería importante?

Ingles

Francés

Alemán

Japonés

Mandarín

Italiano

¿Otro, cuál? (Editable por el usuario)

9. ¿Qué otras características cree que se deberían tomar en cuenta a la hora

de seleccionar colegio para un niño?

Puede escribir más de una.

10. ¿Cuáles cree usted que son los medios que se utilizan para encontrar colegio? (Puede seleccionar más de una opción)

Página Web del colegio

Aplicación Web

Directamente en el colegio.

Por referencia de un conocido, un familiar etc...

¿Otra, cuál? (Editable por el usuario).

11. ¿Le gustaría que el colegio se enfocara en deportes?

SI

NO

Page 85: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ANEXO 3 ENCUESTA APLICADA

Ilustración 37: Encuesta aplicada Fuente: Los Autores

PREGUNTA OPCIONES DE RESPUESTA

¿Es importante un colegio bilingüe? Si

No

No responde

¿Tipo de Jornada? Mañana

Tarde

Completa

¿Tipo de Calendario? A

B

Otra

¿Genero? Masculino

Mixto

Femenino

¿Medio de búsqueda para seleccionar colegio? Página Web del colegio

Aplicación Web

Directamente en el colegio.

Por referencia de un conocido

¿Es importante la formación deportiva? Si

No

¿Prefiere un colegio cerca a la casa? Si

No

La siguiente encuesta va dirigida a personas con hijos, los cuales estén en edad escolar.

Una de las premisas para realizar una encuesta satisfactoria que nos permita analizar la

información es direccionarla hacia una población específica:

• Padres con niños pequeños que estén en la edad de colegio (Educación básica primaria).

• Personas adultas que tengan familiares que estén en la edad de colegio (Educación

básica primaria).

• Docentes del área de educación básica primaria.

ANÁLISIS DE INFORMACION NECESARIA

PARA OPTAR POR UN COLEGIO

Page 86: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

ANEXO 4 RESULTADOS DE LA ENCUESTA

1. ¿Es importante un colegio bilingüe?

Ilustración 38; ¿Es importante un colegio bilingüe?

Fuente: Los Autores

2. ¿Tipo de Jornada?

Ilustración 39: ¿Tipo de Jornada? Fuente: Los Autores

Si75%

No19%

No responde

6%

¿Es importante un colegio bilingüe?

Si No No responde

Mañana37%

Tarde50%

Completa13%

¿Tipo de Jornada?

Mañana Tarde Completa

Page 87: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

3. ¿Tipo de Calendario?

Ilustración 40: ¿Tipo de Calendario?

Fuente: Los Autores

4. ¿Genero?

Ilustración 41: ¿Genero?

Fuente: Los Autores

A62%

B25%

Otra

13%

¿Tipo de Calendario?

A B Otra

Masculino

12%

Mixto69%

Femenino19%

¿Genero?

Masculino Mixto Femenino

Page 88: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

5. ¿Medio de búsqueda para seleccionar colegio?

Ilustración 42: ¿Medio de búsqueda para seleccionar colegio?

Fuente: Los Autores

6. ¿Es importante la formación deportiva?

Ilustración 43: ¿Es importante la formación deportiva? Fuente: Los Autores

Página Web del colegio; 15; 19%

Apl icación Web; 5; 6%

Directamente en

el colegio.; 40; 50%

Por referencia de un conocido; 20;

25%

¿Medio de búsqueda para seleccionar colegio?

Página Web del colegio Aplicación Web

Directamente en el colegio. Por referencia de un conocido

Si69%

No31%

¿Es importante la formación deportiva?

Si No

Page 89: DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA …

7. ¿Prefiere un colegio cerca a la casa?

Ilustración 44: ¿Prefiere un colegio cerca a la casa?

Fuente: Los Autores

Si75%

No25%

¿Prefiere un colegio cerca a la casa?

Si No