Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 DESARROLLO DE UN SISTEMA DE AYUDA AL USUARIO BASADO EN AGENTES INTELIGENTES PARA LA PLATAFORMA INFORMATICA EDUCATIVA UCC CARMEN ELISA VALENCIA CARABALI ELSA MARIELA ORDOÑEZ PALECHOR UNIVERSIDAD COOPERATIVA DE COLOMBIA FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS CALI 2018 2 DESARROLLO DE UN SISTEMA DE AYUDA AL USUARIO BASADO EN AGENTES INTELIGENTES PARA LA PLATAFORMA INFORMATICA EDUCATIVA UCC CARMEN ELISA VALENCIA CARABALI ELSA MARIELA ORDOÑEZ PALECHOR Trabajo de Grado Para Optar al Título de Ingeniera de Sistemas Director JHON HAIDE CANO BELTRAN Ingeniero de Sistemas UNIVERSIDAD COOPERATIVA DE COLOMBIA FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS CALI 2018 3 4 A Dios Todopoderoso, por su gran misericordia y amor; por la sabiduría y por haberme permitido subir un escalón más y alcanzar esta meta. A mi familia y amigos por la comprensión y apoyo incondicional. Carmen Elisa Valencia Carabalí A mi familia por ser un apoyo constante en cada paso de mi vida y ser la bendición más grande que Dios me ha dado. A Dios mi padre celestial que siempre ha llenado mi vida de grandes bendiciones. A mis amigos y compañeros por su amistad y apoyo incondicional. Elsa Mariela Ordoñez Palechor 5 AGRADECIMIENTOS Agradezco especialmente a nuestros profesores: El Ing. Jhon Haide Cano Beltrán, la Ing. Josefina de Llano Feliú Msc. y la Ing. Diana Carolina Rivera por formarnos y brindarnos su orientación; por el conocimiento ofrecido, disposición, motivación y apoyo constante. A nuestro amigo y compañero Ing. Carlos Brayan Jurado Gómez por su colaboración y apoyarnos incondicionalmente en este trayecto. Carmen Elisa Valencia Carabalí Elsa Mariela Ordoñez Palechor 6 CONTENIDO Pág. RESUMEN 11 INTRODUCCIÓN 12 1. IDENTIFICACIÓN DEL PROBLEMA 13 1.1 PLANTEAMIENTO DEL PROBLEMA 13 1.2 FORMULACIÓN DEL PROBLEMA 14 2. JUSTIFICACIÓN 15 3. OBJETIVOS 16 3.1 OBJETIVO GENERAL 16 3.2 OBJETIVOS ESPECÍFICOS 16 4. MARCO REFERENCIAL 17 4.1 MARCO TEÓRICO Y CONCEPTUAL 17 4.1.1 Teorías del Aprendizaje en Ambientes Virtuales 17 4.1.2 Tecnologías de Información y Comunicación en Sistemas de Educación superior 18 4.1.3 Entornos Virtuales de Aprendizaje (EVA). 19 4.1.5 Tipos de Inteligencias 23 4.1.6 Inteligencia Artificial 24 4.1.7 Agente Inteligente 25 4.1.7.1 Características de los agentes 25 4.1.7.2 Ejemplo de Sistemas Inteligentes de Aprendizaje 27 4.1.7.3 Agentes Disponibles para el Desarrollo de Plataformas de Aprendizaje Virtual 27 4.1.7.4 Clases de Agentes Inteligentes 28 4.1.8 Métodos Para el Desarrollo y Construcción de los Agentes Inteligentes. 29 4.1.9 Metodologías Para el Desarrollo de Agentes Inteligentes 29 4.1.10 Arquitectura de los Agentes Inteligentes. 31 4.1.10.1 Arquitecturas deliberativas. 31 4.1.10.2 Arquitecturas Reactivas. 31 7 4.1.10.3 Arquitecturas Híbridas. 32 4.1.13 Sistemas Multiagente. 33 4.1.13.1. Comunicación Entre Agentes 34 4.1.14 Lenguajes Ontológicos Web. 34 4.1.14.1 OWL 35 4.1.14.2 OWL Lite. 35 4.1.14.3 OWL Dl. 35 4.1.14.4 OWL Full. 35 4.1.14.5 RDF 36 4.1.15 Plataformas Para Desarrollo de Agentes Inteligentes: 36 4.1.15.1 AGLETS. 36 4.1.15.2 ABLE 37 4.1.15.3 JADE 38 4.2 MARCO CONTEXTUAL 39 4.3 ANTECEDENTES 39 4.3.1 Arquitectura Multiagente Para Un Sistema e-Learning 39 4.3.2 Un Sistema de Tutoría Inteligente Adaptativo Considerando Estilos de Aprendizaje. 41 4.3.3 Desarrollo de un Agente Inteligente para Dispositivos Móviles Android que Permita Llevar los Ingresos y Egresos Económicos de Una Persona. 42 5. METODOLOGÍA 44 5.1 ANÁLISIS Y DISEÑO 45 5.1.1 Lista de StakeHolders del Proyecto 45 5.1.2 Requerimientos 48 5.1.3 Actores Relevantes del Sistema 50 5.1.4 Patrones de Diseño 51 5.1.4.1 Patrón Singletón 52 5.1.4.2 Patrón Factory Method. 53 5.1.4.3 Patrón Implementatión_JADE 54 5.1.5 Diseño de la Arquitectura. 55 5.1.6 Interdependencias de los Actores 56 5.1.7 Diagrama de Actores del Sistema 58 8 5.1.8 Diagramas de Objetivos o Metas 59 5.1.9 Diagrama del entorno del sistema de los agentes 61 5.1.10 ARQUITECTURA DEL SISTEMA (GENERAL) 62 5.2 Desarrollo del Prototipo Propuesto Para Este Proyecto 63 5.2.1 Codificación 67 5.2.1.1 Estructura del proyecto AgentesMaven [Enterprise Mave (Aplicación web)]. 67 5.2.1.2 Librerías y Dependencias 74 5.3 Despliegue 75 5.4 PRUEBA DE UNITARIA 76 6. RESULTADOS Y DISCUCIÓN 78 En este capítulo se detallan los resultados obtenidos en el desarrollo de cada una de las fases planteadas según la metodología Tropos e Ingenias. 78 6.1 EXPLORACIÓN DE DIFERENTES AGENTES INTELIGENTES 78 6.2 USO DE AGENTES INTELIGENTES EN DIVERSAS PLATAFORMAS. 79 6.3 AGENTES INTELIGENTES QUE SE ADECUAN AL ALCANCE DEL PROYECTO. 81 7. CONCLUSIONES 82 8. TRABAJOS FUTUROS 83 BIBLIOGRAFÍA 84 ANEXOS 87 9 LISTA DE TABLAS Pág. TABLA 1: EJEMPLO TIPOS DE AGENTES 26 TABLA 3: REQUERIMIENTOS FUNCIONALES DEL SISTEMA 49 TABLA 4: REQUERIMIENTOS NO FUNCIONALES DEL SISTEMA. 50 TABLA 5: ACTORES RELEVANTES DEL SISTEMA. 50 TABLA 6: EXPLORACIÓN DE DIFERENTES AGENTES INTELIGENTES. 78 10 LISTA DE FIGURA Pág. FIGURA 1 PROTOTIPO: MODELO DE SERVICIOS DEL SISTEMA MULTIAGENTE 41 FIGURA 2: PATRÓN SINGLETÓN CLASE SINGLETONPETICIONES.JAVA 52 FIGURA 3: PATRON FACTORY METHOD 53 FIGURA 4: DIAGRAMA DE CLASES DEL PATRÓN IMPLEMENTATION_JADE 54 FIGURA 5: NOTACIÓN GRÁFICA DE LOS ELEMENTOS BÁSICOS DE TROPOS 56 FIGURA 6: NOTACIÓN GRÁFICA DE LAS RELACIONES DE DEPENDENCIA 56 FIGURA 7: DIAGRAMAS DE INTERDEPENDENCIAS DE LOS ACTORES. 57 FIGURA 8: DIAGRAMA DE ACTORES. 58 FIGURA 9: DIAGRAMAS DE OBJETIVOS O METAS DEL ACTOR AGENTE. 59 FIGURA 10: DIAGRAMAS DE OBJETIVOS O METAS DEL ACTOR ESTUDIANTE. 60 FIGURA 11: DIAGRAMAS DE OBJETIVOS O METAS DEL ACTOR DOCENTE. 61 FIGURA 12 DIAGRAMA DEL ENTORNO DEL SISTEMA DE AGENTES. 62 FIGURA 13: ARQUITECTURA DEL SISTEMA 63 FIGURA 14: DIAGRAMA DE CLASES AGENTESMAVEN-WEB 65 FIGURA 15: DIAGRAMA DE CLASES AGENTESMAVEN-EJB 66 FIGURA 16: ESTRUCTURA PROYECTO AGENTESMAVEN 67 FIGURA 17: ESTRUCTURA AGENTESMAVEN-EJB 68 FIGURA 18: FRAGMENTO DE CÓDIGO MÉTODO SETUP 69 FIGURA 19: FRAGMENTO DE CÓDIGO CLASE RESPUESTA 70 FIGURA 20: FRAGMENTO DE CÓDIGO DE LA CLASE SEARCHLOGIC.JAVA 71 FIGURA 21: FRAGMENTO DE CÓDIGO DE LA CLASE SINGLETONRESPUESTAS.JAVA 72 FIGURA 22: FRAGMENTO DE CÓDIGO CLASE SERVICES.JAVA 73 FIGURA 23: PRUEBA POSTMAN 75 FIGURA 24: RESULTADO PRUEBA POSTMAN 76 FIGURA 25: PRUEBA UNITARIA (1) SEARCHLOGIC.JAVA 77 FIGURA 26 : PRUEBA UNITARIA (2) SEARCHLOGIC.JAVA 77 FIGURA 27: MODELO DE AGENTES ASISTENTE TEXTUAL 80 11 LISTA DE ANEXOS Pág. ANEXO 1. ENCUESTA 87 12 RESUMEN El proyecto “DESARROLLO DE UN SISTEMA DE AYUDA AL USUARIO BASADO EN AGENTESINTELIGENTES PARA LA PLATAFORMA INFORMATICA EDUCATIVA UCC”, tuvo como objetivo el desarrollo de un prototipo funcional de ayudas al usuario basado en la tecnología de Agentes Inteligentes; ideal para integrar en Entornos Virtuales de Aprendizaje EVA en los cuales se requiera el apoyo continuo a usuarios al momento de interactuar con los contenidos y actividades de los cursos; en este caso se tomó como referencia EVA la Plataforma Informática Educativa UCC de la Universidad Cooperativa de Colombia sede Cali. Para la realización de este proyecto fue necesario apoyarse en diferentes fuentes de información y en la metodología Tropos, la cual está diseñada para cubrir el ciclo de vida de desarrollo de proyectos basados en agentes inteligentes y que conllevó al diseño arquitectural y diseño detallado del sistema en general, para luego acoplarlo a un prototipo funcional. JADE (Java Agent Development Framework),fue la herramienta más importante utilizada en la etapa de desarrollo, al otorgar la creación simplificada de agentes, asignación de comportamientos y su despliegue. Finalmente se obtiene un prototipo (proyecto tipo web) que implementa web services y un agente inteligente al cual se le asigna la función de realizar sugerencias en tiempo real a usuarios de la plataforma, sobre diversos contenidos e información alojada en la web que esté relacionada con la temática estudiada en un momento dado dentro de un curso. 13 INTRODUCCIÓN Hoy en día, los Entornos Virtuales de Aprendizaje EVA (Plataformas educativas) se han convertido en una tendencia que ha sido acatada e implementada por diversas instituciones de educación superior, especialmente por los múltiples avances de este tipo de tecnología. A través los EVA, muchas instituciones ofertan a sus estudiantes cursos interdisciplinarios para reforzar temáticas tratadas en el aula de clases o por el simple hecho de que estos amplíen sus conocimientos estudiando de forma virtual. Frecuentemente se requiere que, por medio de este tipo de plataformas, estás instituciones logren implementar material educativo, fortalecer el aprendizaje virtual en sus estudiantes de manera innovadora (buscar nuevas experiencias para los usuarios), disminuyan brechas de espacio entre el educador-estudiante- contenido, logren gestionar el aprendizaje y generar adaptabilidad de las actividades y cursos con la forma de aprender de los diversos estudiantes (usuarios). Teniendo en cuenta lo anteriormente mencionado se propuso la realización de este proyecto, con el fin de desarrollar un sistema de ayuda al usuario basado en la tecnología de Agentes Inteligentes; dicho sistema puede ser integrado en Entornos Virtuales de Aprendizaje en los cuales se requiera el apoyo continuo a usuarios al momento de interactuar con los contenidos y actividades de los cursos; en este caso tomando como referencia la Plataforma Informática Educativa UCC de la Universidad Cooperativa de Colombia sede Cali. Estos agentes inteligentes, serán capaces de brindar ayuda y recomendación acorde a cada estudiante (usuario), es decir, un tipo de ayuda adaptativa que optimizará el tiempo que intervienen los usuarios en el desarrollo del curso y la comprensión de sus contenidos. 14 1. IDENTIFICACIÓN DEL PROBLEMA 1.1 PLANTEAMIENTO DEL PROBLEMA Los entornos virtuales de aprendizaje (EVA) son herramientas, donde uno de sus objetivos principales es el apoyar a los estudiantes y docentes en la comprensión de los temas o contenidos de los cursos dentro de las aulas, debido a que muchas veces el tiempo dedicado a ciertas asignaturas no es suficiente para que los estudiantes logren fortalecer su conocimiento. Las plataformas virtuales se convierten en un vínculo o, dicho de otra manera, en un conector entre alumno y profesor por medio del cual, a través de cursos virtuales se pueda abordar todo el contenido de los cursos o asignaturas, disminuir falencias y mejorar las competencias, conceptos y fundamentos que no fueron trabajadas o no se tuvieron en cuenta en las clases presenciales. La Plataforma Informática Educativa UCC de la Universidad Cooperativa de Colombia sede Cali, está en proceso de desarrollo y actualmente cuenta con dos cursos: Algoritmia y Desarrollo de aplicaciones móviles en Android, pero ésta aún no tiene implementado o no cuenta con un sistema de ayuda al usuario, el cual puede servir como una herramienta de apoyo para el desarrollo de actividades y mejor comprensión del contenido de los cursos. Con la implementación de sistemas de ayuda en la plataforma, utilizando agentes inteligentes, se busca brindar apoyo al usuario en el momento de interactuar con los contenidos y actividades del curso, que sea acorde al historial de tareas realizadas y complementadas con información extraída de la web; una herramienta que motive al estudiante a cumplir con los objetivos y adquisición de competencias relacionadas con la carrera, para que este no llegue a tomar decisiones como abandonarla o desertar de la universidad. Además, una plataforma enfocada a procesos de enseñanzas con la tecnología de agentes inteligentes, es novedosa, flexible y atractiva para todo tipo de usuario. 15 1.2 FORMULACIÓN DEL PROBLEMA ¿Cómo acompañar el aprendizaje de los estudiantes y la comprensión de contenidos del curso de algoritmia en la Plataforma Informática Educativa UCC, con un sistema de ayuda al usuario basado en agentes inteligentes? 16 2. JUSTIFICACIÓN La enseñanza y aprendizaje a través de plataformas virtuales, es una tendencia que ha sido acatada y difundida por casi todo el mundo gracias a múltiples avances tecnológicos. La educación virtual e-learning genera la oportunidad de acceder a espacios de enseñanza, y a su vez a la obtención de conocimiento con pocas limitaciones de tiempo, espacio y en ocasiones de dinero. Por tal razón, para la Facultad de Ingeniería de la Universidad Cooperativa de Colombia sede Cali, el llegar a implementar un sistema de ayuda al usuario basado en agentes inteligentes para la Plataforma Informática Educativa UCC (que está en proceso de desarrollo) es de suma importancia porque se convertiría en una herramienta más atractiva e interactiva de apoyo a estudiantes y profesores en la asignatura de Algoritmia, para que puedan desarrollar una serie de competencias específicas y fundamentales para los ingenieros de sistemas en las primeras etapas de formación. El diseño e implementación de un sistema de ayudas al usuario basado en agentes inteligentes, como su mismo nombre lo indica, ayudará al usuario en este caso el estudiante y el docente, en la interacción con los contenidos del curso de Algoritmia y en el desarrollo de actividades. Los agentes inteligentes, serán capaces de brindar ayuda y recomendación acorde a cada usuario, es decir, un tipo de ayuda adaptativa que optimizará el tiempo que intervienen los usuarios en el desarrollo del curso y la comprensión de sus contenidos. Este proyecto es un eslabón para el progreso tecnológico y a su vez un ente beneficioso para la comunidad estudiantil, docentes y demás usuarios que hagan uso de la plataforma, porque no solo será una herramienta de apoyo para el curso, sino que también permitirá realizar un seguimiento al proceso de aprendizaje y disminución de la deserción de estudiantes, especialmente a los de semestres inferiores. 17 3. OBJETIVOS 3.1 OBJETIVO GENERAL Diseño de un prototipo funcional de ayuda al usuario para la Plataforma Informática Educativa UCC de la Universidad Cooperativa de Colombia basado en agentes inteligentes. 3.2 OBJETIVOS ESPECÍFICOS Comparar el comportamiento de los diferentes tipos de agentes inteligentes de acuerdo a la funcionalidad asignada. Seleccionar una metodología para el desarrollo de los agentes inteligentes. Seleccionar un frameworks para la implementación de los agentes inteligentes. Desarrollar un prototipo funcional basado en agentes inteligentes para la plataforma informática educativa UCC. 18 4. MARCO REFERENCIAL 4.1 MARCO TEÓRICO Y CONCEPTUAL 4.1.1 Teorías del Aprendizaje en Ambientes Virtuales Dado que uno de los temas centrales del proyecto es la creación y entrenamiento de agentes inteligentes basándolos en modelos mentales de aprendizaje de los usuarios de la plataforma y su modo de interactuar con esta, es necesario conocer y plantear teorías de aprendizaje que sirvan de ejes conceptuales para identificar y seleccionar métodos, herramientas y técnicas para cada situación particular que se pueda presentar con los usuarios en su proceso de aprendizaje. Las teorías de aprendizaje buscan y plantean la descripción de procesos por medio de loscuales el ser humano aprende o cómo accede al conocimiento, además de esto ayudan a la comprensión, control y predicción de su comportamiento. Entre estas teorías se encuentran el conductismo el cognitivismo y el constructivismo. Para Guerrero y Flores1 el conductismo es un enfoque que tiene sus bases en la psicología, está orientado al estudio de la conducta humana y cómo la interacción con diferentes entornos generan un estímulo que a su vez le sigue una respuesta. Por otro lado, el cognitivismo lo definen como el enfoque que se centra en comprender cómo se transforman los estímulos sensoriales, como el ser humano conoce, interpreta, procesa y almacena información la mente humana, dicho en otras palabras, como el humano piensa y aprende. De igual forma también plantea el constructivismo como un enfoque, el cual da una perspectiva de cómo el hombre va construyendo poco a poco su conocimiento al interactuar con el medio y no sólo con realizar registros en el cerebro. 1 GUERRERO, Tivisay Y FLORES, Hazel. Teorías del Aprendizaje y la Instrucción en el Diseño de Materiales Didácticos Informáticos. Artículo, educere Universidad de los Andes. Revista Venezolana de Educación. Vol. 13. Mérida, Venezuela: 2009. p. 321 19 Estas teorías de aprendizaje aplicadas en ambientes virtuales ayudan básicamente a articular la pedagogía con la tecnología y la comunicación, para diseñar actividades en entornos virtuales y establecer lineamientos de desarrollo donde se plasman relaciones de interacción entre estudiante, tutor, materiales didácticos y recursos que fundamentan el proceso de enseñanza y aprendizaje. 4.1.2 Tecnologías de Información y Comunicación en Sistemas de Educación superior Las tecnologías de la información y la comunicación, también conocidas como TIC, son herramientas por medio de las cuales se procesa, sintetiza, se recupera y se representa información; a su vez, están conformadas por aparatos, software y redes interconectados entre sí donde su objetivo principal es mejorar la calidad de vida de las personas cuando se enfrentan a determinados entornos. La aplicación de las TIC trae consigo, entonces, la aparición de nuevos tipos de instituciones de educación superior y la transformación de las existentes. Algunos autores han tipificado distintos modelos de enseñanza, apoyados en las posibilidades que hoy brindan las redes para la formación en diversas maneras. por ejemplo, nos hablan de siete tipos distintos de organizaciones: universidades de educación a distancia basadas en la tecnología; instituciones privadas dirigidas a la enseñanza de adultos; universidades corporativas; alianzas estratégicas universidad- empresa; organizaciones de control de acreditación y certificación; universidades tradicionales extendidas y universidades multinacionales globales. Utilicemos la tipología que utilicemos, lo que parece claro es que están apareciendo nuevas instituciones y que las existentes están modificando sus estructuras. Así pues, independientemente de la tipología empleada, considero importante resaltar los siguientes aspectos en relación con la inclusión de las TIC en las universidades: - Una de las principales contribuciones es que abren un abanico de posibilidades, situadas tanto en el ámbito de la educación a 20 distancia, como en el de modalidades de enseñanza presencial. Estas posibilidades dependen, tanto o más que del grado de sofisticación y potencialidad técnica, del modelo de aprendizaje en que se inspiran, de la manera de concebir la relación profesor- alumnos y de entender la enseñanza. - Muchos de los conceptos asociados con el aprendizaje en la clase tradicional, pero ausentes cuando se utilizan sistemas convencionales de educación a distancia, pueden reacomodarse al integrar las TIC en la enseñanza, dando lugar a una nueva configuración que puede superar las deficiencias de los sistemas convencionales, ya sean presenciales o a distancia. - La existencia de una disyuntiva que conduce, por un lado, hacia la institución de educación superior "orientada al mercado", y por otro, hacia la institución "orientada al servicio", más centrada en las demandas que surgen del contexto cercano, en dar respuestas a la sociedad que la soporta, buscando la calidad en este servicio, etc.2 4.1.3 Entornos Virtuales de Aprendizaje (EVA). La Plataforma Informática Educativa UCC es concebida como un entorno virtual de aprendizaje, porque su principal funcionalidad es el alojamiento de contenido educativo que está a disposición de sus usuarios; y no solo eso, también funciona como una herramienta que complementa lo aprendido en las clases presenciales, 2 SALINAS, Jesús. ¿Qué aportan las tecnologías de la información y la comunicación a las universidades convencionales? Algunas consideraciones y reflexiones. En: Revista Educación y Pedagogía. Medellín: Universidad de Antioquia, Facultad de Educación. Vol. XIV, No. 33, (mayo- agosto), 2002. p. 95. 21 permite evaluar, realizar un seguimiento a cada uno de estudiante y a su vez trata de romper barreras de espacio/tiempo que se presentan en el proceso de aprendizaje. Los EVA generan nuevas experiencias educativas, porque ya no es necesario estar ligado a un espacio físico, no se requiere la presencia física del profesor, el sistema académico deja de ser monótono, los horarios son flexibles, mejor administración de tiempo. Comúnmente están establecidas en plataformas de educación virtual, dichas plataformas son un conjunto de aplicaciones o un entorno de hardware y software; permiten desarrollar y gestionar actividades y cursos virtuales, se caracterizan porque son interactivos, es decir, tienen la capacidad de responder a los requerimientos de los usuarios, Flexibles al ser fáciles de adaptar y fácil manejo y escalables porque pueden ser utilizados por diferentes números de usuarios. En las últimas décadas, la investigación científica sobre el proceso de aprendizaje humano y su relación con la tecnología ha generado vertientes relevantes de estudio, entre las cuales se destacan seis líneas que aportan conocimiento de frontera sobre los entornos virtuales de aprendizaje, éstas son: a) el desarrollo de tecnología educativa, b) el empleo de las TIC en el proceso educativo, c) el impacto de las plataformas tecnológicas en la educación, d) la influencia de Internet en los procesos educativos, e) los modelos y modalidades de educación a distancia, y f ) el fenómeno de la virtualización educativa. La comprensión de la virtualización en el proceso educativo y la apropiación y transformación de la virtualidad educativa, demanda profundizar en la naturaleza de los entornos diferenciados y/o emergentes de aprendizaje, dimensionar la contribución de “lo virtual” para la innovación educativa y valorar su impacto en los procesos educativos, por tanto, reconocerle como un objeto de estudio relevante en México y América Latina resulta de interés actual para las instituciones de educación superior; generar conocimiento sobre el empleo y la contribución de los recursos digitales, lo cual les permitirá sistematizar el desarrollo de habilidades digitales de estudiantes y conocer cómo responden a través de sus modelos educativos con las exigencias de un mercado laboral globalizado y con la reducción de brechas, al respecto, específicamente de la inclusión digital, en este sentido uno de los principales desafíos de las IES será dimensionar que los 22 entornos virtuales de aprendizaje son recursos digitales cuyo empleo deliberado permiten la gestión del conocimiento, el desarrollo de competencias informáticas e informacionales, así como la contribución socialmente aceptable.3 4.1.4 ¿Qué es un MOOC? MOOC, sussiglas traducidas al español como Curso en línea, masivo y abierto; es una modalidad de educación abierta, la cual se observa en diferentes cursos ofrecidos gratuitamente a través de plataformas educativas en Internet; cuya filosofía es la liberación del conocimiento para que este llegue a un público más amplio. Para que la enseñanza a distancia pueda ser considerada MOOC debe cumplir los siguientes requisitos: - Ser un curso: Debe contar con una estructura orientada al aprendizaje, que suele conllevar una serie de pruebas o de evaluaciones para acreditar el conocimiento adquirido. - Tener carácter masivo: El número de posibles matriculados es, en principio, ilimitado, o bien en una cantidad muy superior a la que podría contarse en un curso presencial. El alcance es global. - En línea: El curso es a distancia, e Internet es el principal medio de comunicación. No requiere la asistencia a un aula. - Abierto: Los materiales son accesibles de forma gratuita en Internet. Ello no implica que puedan ser reutilizados en otros cursos. 4.1.4.1 Ventajas y Debilidades Ventajas: - Facilita el acceso a contenidos actualizados, prácticamente sin límite de tiempo ni espacio. - Acceder a una extraordinaria cantidad de cursos ofrecidos por instituciones y docentes de reconocido prestigio mundial 3 NAVARRO, Rubén. Entornos Virtuales De Aprendizaje, La contribución de “lo virtual” en la educación. Artículo. Universidad Veracruzana. En: Revista Mexicana de Investigación Educativa. Vol. 15, enero-marzo 2010 Veracruz, México. p. 9. 23 - La contribución a la democratización, no solo local o regional sino global, de la educación. - Acceso libre a contenidos, elevar el aprendizaje no formal a su máxima expresión, construir conocimiento a través de la experiencia colectiva, adaptar la formación a nuestra medida, ampliar nuestro network, poder adquirir cierta relevancia en función de nuestra aportación al grupo, democratizar la enseñanza, facilitar la formación continua evitando la barrera del precio. - Para las instituciones puede resultar un factor positivo, ya que refuerza su marca y le permite acceder a un amplio público, lo que puede redundar en ventas cruzadas o en explorar el modelo Premium (pagar sólo por el certificado o por algún servicio concreto). Debilidades: - La falta de contextualización, lo que compromete muy seriamente la aplicabilidad de los aprendizajes. - Los niveles de abandono detectados a la fecha aún resultan ser muy altos. - Nivel de desarrollo y madurez en los conceptos de aprendizaje que no todo el mundo posee, el formador actúa como simple facilitador (lo que no siempre convive con criterios de eficiencia), es muy complicado valorar los resultados porque la participación masiva dificulta procesos de evaluación y, en la actualidad, aún está por demostrar que permita una cierta rentabilidad empresarial. 4.1.4.2 Principales Plataformas de Enseñanza MOOC Actualmente las plataformas agregadoras de cursos MOOC han ido creciendo. Las principales plataformas anglosajonas son Coursera, EdX y Udacity y en el ámbito Iberoamericano destacan Miriadax y RedunX. Coursera: creada en octubre de 2011 por Andrew Ng y Daphne Koller y desarrollada por académicos de la Universidad de Stanford con el fin de brindar oferta de educación masiva a la población mundial, con cursos en inglés y otros idiomas como el español, francés, italiano y chino. Coursera ofrece cursos gratis de temas 24 variados a niveles universitarios pero abiertos a todos los sectores de la población. EdX: Plataforma fundada por el MIT y la Universidad de Harvard contribuyendo cada una con 30 millones de dólares los recursos para la organización no lucrativa del proyecto. EdX se puso en marcha en otoño de 2012 y se basa en MITX, un proyecto similar lanzado por el MIT, en diciembre de 2011. Se desarrolla en software de código abierto. Anunció un plan para abrir el código fuente de todo el verano de 2013. Miriadax: ahora cuenta con 57 cursos producidos por 19 universidades. Es un proyecto que nace por iniciativa de Universia – la mayor red de universidades de habla hispana y portuguesa, promovida por Banco Santander y Telefónica – a través de Telefónica Learning Services- con la colaboración de la Fundación CSEV, por el que se pone a disposición de los docentes de las 1.232 universidades iberoamericanas que integran la red Universia una plataforma en la que crear e impartir MOOC sin coste alguno. Es la iniciativa más relevante en el ámbito Iberoamericano.4 4.1.5 Tipos de Inteligencias La inteligencia es la capacidad que tiene cada persona para entender y comprender lo que sucede a su alrededor dependiendo de sus actitudes o talentos y algunas veces por cultura establecida por un tipo de sociedad. Actualmente se dice que existen 9 tipos de inteligencias: la inteligencia lingüística, inteligencia musical, inteligencia lógica matemática, inteligencia espacial, inteligencia corporal Kinestésica, inteligencia emocional, inteligencia intrapersonal, inteligencia interpersonal y la inteligencia naturalista. Para el diseño e implementación de cursos virtuales, se debe tener muy en cuenta los tipos de inteligencia que posee cada usuario para que su interacción con el curso sea más agradable, se adapte a sus capacidades y preferencias; muchos usuarios tienen la capacidad de aprender mediante gráficos, otros mediante sólo texto y otros por medio de las dos formas. 4 “Scopeo Informe Nº2: MOOC: Estado de la Situación Actual, Posibilidades, Retos y Futuro”. Scopeo Informe No. 2 Universidad de Salamanca, España: 2013. p.11 25 Actualmente la Plataforma Informática Educativa UCC tiene implementadas o cuenta con tres tipos de inteligencias: lingüística, kinestésica y visual espacial. -Inteligencia Lingüística: capacidad para comunicarse y aprender de forma oral, verbal y escrita. -Inteligencia Kinestésica: capacidad para controlar el cuerpo por medio de actividades físicas coordinadas como la danza, el deporte y manualidades. -Inteligencia Visual Espacial: capacidad para percibir el mundo y aprender mediante imágenes. 4.1.6 Inteligencia Artificial En la actualidad vivimos en un mundo donde casi todo lo que fabrica el hombre a nivel tecnológico, tiene Inteligencia Artificial: los juegos de azar, los videojuegos, los robots, aparatos médicos, electrodomésticos, son algunos de los dispositivos donde se hace uso de esta ciencia. Pero a medida que se crean infinidades de nuevos sistemas tecnológicos, se debe innovar y crear nuevas cosas que sean de gran utilidad para el hombre, para las empresas, las industrias, las instituciones educativas, etc. Es por ello que, la tecnología siempre se encuentra en constante evolución, siendo el internet quizá uno de los más grandes inventos, donde la inteligencia artificial como rama de la ciencia computacional se plantea con gran importancia. El internet es la red que permite conexión entre redes y entre máquinas a nivel mundial, y es utilizada en empresas, en clínicas, instituciones educativas, plataformas de aprendizaje, sirve para la búsqueda de información, para hacer negocios, anuncios publicitarios, etc. Algunas instituciones educativas cuentan con plataformas de aprendizaje virtual, donde la inteligencia artificial soportada por el internet, hace aportes por medio de los agentes inteligentes que son los encargados de brindar interactividad entre plataforma, los estudiantes y los docentes, con el fin de mejorar la forma de transmitir el conocimiento a los usuarios, para que aumenten el nivel de aprendizaje y puedan tener bases sólidas de los temas que se abordan en las asignaturas dentro de los planteles educativos. 26 4.1.7 Agente Inteligente La implementación de los sistemas de ayuda en las plataformas virtualesde aprendizaje, facilitan el desarrollo de actividades y a dar solución a la falta de interacción que existe en muchas plataformas, donde aún siguen el modelo tradicional de aprendizaje. Para Russell, Stuart y Norvig, Peter 5 un agente inteligente es una entidad capaz de percibir su entorno, ser autónomo, retroalimentar el conocimiento; en las plataformas se encarga de percibir el nivel de inteligencia, las dificultades que presenta el usuario, obteniendo un perfil de usuario de acuerdo a lo que percibe, con el fin de poder brindar soluciones de acuerdo a las necesidades. Los agentes inteligentes cumplen algunas características de percepción, acción, metas y ambiente y tienen propiedades de acuerdo al ambiente en que se desarrollan. 4.1.7.1 Características de los agentes Reactivo: el agente es capaz de responder a cambios en el entorno en que se encuentra situado. Proactivo: el agente debe tratar de cumplir su propio plan u objetivo. Social: debe poder comunicarse con otros agentes por medio de cualquier lenguaje de agente. 5 Russell, Stuart y Norvig, Peter. Inteligencia Artificial un Enfoque Moderno. 2ed. Pearson Educación SA. Madrid. 2004. p.1240. 27 Tabla 1: Ejemplo Tipos de Agentes Tipo agente Rendimiento (Metas) Entorno (Ambiente) Actuadores (Acciones) Sensores (Percepciones) Sistema de diagnóstico médico Paciente saludable, reducción al mínimo de los costos y de las demandas. Paciente, hospital, personal Preguntas, pruebas, tratamientos, diagnósticos, casos. Impresora, monitor Síntoma, evidencias y respuestas del paciente. Teclado para emitir dicha información. Sistema para el análisis de imágenes satelitales Clasificación correcta de la imagen. Imágenes enviadas desde un satélite en órbita, conexión con el satélite en órbita. Visualizar e imprimir una clasificación de escena. Pixel de intensidad y colores diversos (matriz de bits) Robot clasificador (seleccionador) de partes Poner las partes en el bote que les corresponda. Porcentaje de piezas clasificadas. Bandas transportadoras sobre la que se encuentran las partes, las partes, y los botes sobre en los que se depositarán las partes clasificadas. Recoger partes y clasificarlas poniéndolas en botes. Brazos y manos articulados. Pixel de intensidad variable (mapa de bits). Cámara, sensor angular. Controlador de una refinería Maximizar la seguridad, pureza y rendimiento (producción). Refinería, operadores Abrir y cerrar válvulas, ajustar la temperatura. Válvulas, bombas, calentadores, monitores. Lectura de temperatura y presión. Sensores químicos. Tutor interactivo de inglés Que el estudiante obtenga la máxima calificación en una prueba. Grupo de estudiantes, agencia examinadora. Ejercicios en línea, impresos, de audio, visualizar correcciones y sugerencias. Bocinas, monitor, impresora. Palabras escritas a través del teclado, y emisión de voz. Teclado, micrófono. Conductor de taxi Viaje seguro, rápido, sin infracciones, cómodo, obtención máxima de ganancias. Caminos, tráfico, peatones, cliente, semáforos. Manipulación del volante, acelerar, frenar, hablar con el pasajero. Acelerador, freno, bocina, visualizador (pantalla) Cámaras, velocímetro, sistema satelital global de ubicación, sonar, micrófono, sensores de motor, teclado, tacómetro, visualizador de la aceleración. Fuente: Elaboración propia a partir de Russell, Stuart y Norvig, Peter. Inteligencia Artificial un Enfoque Moderno. 2ed. Pearson Educación SA. Madrid. 2004. p.1.240. 28 4.1.7.2 Ejemplo de Sistemas Inteligentes de Aprendizaje El sistema multiagente MAS-PLANG El poder guiar al estudiante durante su proceso de aprendizaje, es una característica muy importante a tener en cuenta en el diseño de tutores inteligentes, y debe estar orientada no solo a permitir ver o trabajar con los contenidos didácticos considerando el nivel de conocimiento del estudiante o su estilo de aprendizaje como en nuestro caso, sino también a ofrecer un entorno de trabajo agradable y adaptado a las preferencias del estudiante. El sistema multiagente MAS-PLANG transforma el sistema hipermedia educativo configurable USD en un sistema hipermedia educativo adaptativo, teniendo en cuenta el estilo de aprendizaje del estudiante que lo utiliza. Los agentes de este sistema se han diseñado con propiedades de sociabilidad, para interactuar y colaborar con otros agentes y propiedades de adaptabilidad, para en ciertos casos y cuando representen un complemento a la forma de realizar las actividades de aprendizaje, permitir al estudiante programar ciertas tareas. El sistema está compuesto por dos niveles de agentes: los agentes del nivel superior o asistentes personales denominados PDAs y los agentes del nivel inferior o agentes de información denominados IAs.6 4.1.7.3 Agentes Disponibles para el Desarrollo de Plataformas de Aprendizaje Virtual Agentes para el aprendizaje de personalización: Esos agentes promueven el aprendizaje a través de la comprensión de las capacidades de aprendizaje individuales y tratar al alumno en consecuencia. 6 AGUILAR, María y PEÑA, Clara. SMIT: Un Agente Sintético Antropomórfico Para Una EVA. Universidad de Girona. España. 2001. pp.1-12. p.3 29 Agentes para el apoyo emocional: Los agentes apoyan el aprendizaje por medio de la mejora del compromiso y la motivación, a través del entorno de aprendizaje, teniendo en cuenta el estado emocional que aprende y mejora en consecuencia. Agentes cognitivos. Esos agentes están inspirados en las teorías cognitivas de la mente humana, así como la IA. Agentes meta-cognitiva. Considera meta cognición. Agentes enseñables: Estos agentes mejoran el aprendizaje, dando al alumno la capacidad humana para enseñar a un agente pedagógico artificial. Autorregulados Agentes de aprendizaje: Aplicar las teorías de aprendizaje autorregulado por los agentes. Agentes de Cambio Conceptual: Los agentes que se consideran en las teorías del cambio conceptual de aprendizaje. Los agentes múltiples: apoyan el aprendizaje o la formación del grupo. 4.1.7.4 Clases de Agentes Inteligentes Los agentes se pueden clasificar de acuerdo a las propiedades y a la función que ejecutan. Agentes colaborativos: tienen capacidades para comunicarse e intercambiar información con otros agentes para realizar las tareas. Agentes de interfaz: tienen la facilidad de adaptarse a la forma de aprendizaje del usuario y le sirve de asistente en la comprensión de nuevos temas. 30 Agentes móviles: procesos computacionales capaces de viajar por nodos de una red, por computadoras, navegar por internet y efectuando intercambio de información. Agentes de información: sirven de ayuda para mejorar el manejo de la sobrecarga de información en la web. 4.1.8 Métodos Para el Desarrollo y Construcción de los Agentes Inteligentes. Proceso de Definición del Problema del Agente Proceso de Adquisición y Representación del conocimiento: Proceso de Diseño del Agente Proceso de Implantación del Agente Proceso de Prueba del Agente. 4.1.9 Metodologías Para el Desarrollo de Agentes Inteligentes Según Más, Ana en el libro Agentes Software y Sistemas Multiagente: Conceptos, Arquitectura y Aplicaciones plantea las siguientes metodologías para el desarrollo de agentes MaSE: Es una metodología basada en el análisis y diseño de sistemas multiagente (MAS), esta herramienta combina distintos modelos en una metodología con altos niveles de comprensión, facilitando a los desarrolladores la transformación de los modelos generados a código fuente para la implementaciónde los agentes. En la actualidad esta metodología cuenta con un limitante técnico, dado a que los resultados obtenidos con ella no son 100% aplicables a frameworks generales. Gaia: Esta metodología permite pasar de un análisis sistemático identificado mediante requerimientos a un diseño con un alto nivel de detalle que puede ser 31 implementado directamente. La captura de información en la fase de requerimientos se realiza a través de paradigmas definidos directamente por la propia metodología, permitiendo un movimiento entre análisis e implementación de una manera limpia y sin perder la esencia de las funcionalidades requeridas para los agentes inteligentes, empleando lenguajes de programación especiales para adaptar el diseño generado por Gaia. Prometheus: Prometheus abarca la ciclo de desarrollo de agentes inteligentes de principio a fin (análisis, diseño, desarrollo, implementación), brindando a los equipos de desarrollo la posibilidad de generar diseños conceptuales de los agentes y procesos necesarios a través de notaciones definidas por la metodología en un paso a paso, basadas en reglas simples. Esta metodología cuenta con propósitos generales, donde se “asumen” características de la arquitectura de los agentes en las fases iniciales, pero en el desarrollo de los proyectos se dejan a un lado las suposiciones planteadas creando ideas solidas que serán empleadas en la implementación de los sistemas multiagente. Zeus : Es un sistema de desarrollo de agentes open source desarrollado en el lenguaje de programación java, considerado un kit de herramientas para la construcción de aplicaciones basadas en agentes inteligentes, su campo de aplicación se da en la fase de desarrollo del proyecto donde apoya el proceso en la planeación y la definición de las acciones de los agentes. Adicionalmente Zeus provee facilidades de comunicación entre sistemas multiagente empleando el protocolo de transporte TCP/IP y empleando sockets como mecanismo de entrega de mensajes. Otra de las características de Zeus es disponer de un entorno visual para el desarrollo de agentes y controlar el comportamiento de los mismos, además pueden observarse las acciones, metas y pre condiciones de los agentes para su buen funcionamiento en el sistema. 7 7 MAS, ANA. Agentes Software y Sistemas Multiagente: Conceptos, Arquitectura y Aplicaciones. Pearson. 2005. Libro. 32 4.1.10 Arquitectura de los Agentes Inteligentes. La arquitectura refiere a la manera en la que está construido un sistema, y la posibilidad de descomponer un sistema de software en componentes pequeños para determinar las relaciones internas de estos. Los agentes inteligentes pueden ser descompuestos para determinar las interacciones de éstos con el ambiente, en este campo existen las siguientes arquitecturas según el modelo de razonamiento. La arquitectura es un aspecto muy importante dentro de cualquier tipo de desarrollo de software, en este caso es primordial definir una arquitectura que se adapte a las unidades de código ya desarrolladas y que componen la plataforma Informática Educativa UCC, según el enfoque del proyecto y teniendo en cuenta que la solución a entregar está basada en agentes inteligentes Iglesias, Carlos resalta las arquitecturas más empleadas para estos casos: 4.1.10.1 Arquitecturas deliberativas. Esta arquitectura es aquella donde el comportamiento y el conocimiento de los agentes se encuentra representado de una manera explícita a través de un modelo simbólico, compuesto de símbolos físicos para referenciar entidades y estructuras, además, la toma de decisiones de los agentes desarrollados bajo esta arquitectura está basada en el razonamiento lógico o psicológico, partiendo de un estado inicial hacia un conjunto de planes que satisfacen los objetivos que el agente se plantee con respecto a su interacción con el ambiente, este comportamiento se denomina como BDI (creencias, decisiones, intenciones). 4.1.10.2 Arquitecturas Reactivas. Las arquitecturas reactivas tienen como característica principal la carencia de un modelo basado en símbolos y un razonamiento complejo. Las decisiones tomadas por los agentes en esta arquitectura se basan en la lectura del medio ambiente, el análisis del mismo y posteriormente la ejecución de una acción. Esta arquitectura debido a su poca complejidad puede presentar ocasiones donde las problemáticas a las que se enfrenta el agente sean no solucionables. 33 4.1.10.3 Arquitecturas Híbridas. Este tipo de arquitectura, integra aspectos de las anteriormente mencionadas (arquitectura deliberativa y arquitectura reactiva), donde el desarrollo del agente se da por subsistemas, siendo el deliberativo donde se almacene toda lógica representada en sistemas de símbolos y el reactivo donde se almacene la lógica carente de razonamiento complejo. El desarrollo de agentes bajo esta arquitectura puede aplicarse en un modelo de capas, donde la interacción con el entorno puede darse por una o más capas, y transferir información de manera óptima entre ellas, brindando mejores acciones de intervención frente a los estímulos recibidos; dicha estructuración por capas puede darse de dos maneras, de forma vertical, donde una sola capa tiene acceso a los sensores y a los actuadores o de forma horizontal donde todas las capas tienen acceso a los sensores y actuadores. La estructuración de los agentes que implementan la arquitectura híbrida consta de las siguientes capas: Capa reactiva. También se conoce como la capa central, es el núcleo del agente, donde se da lugar a la toma de decisiones acerca de las acciones a realizar sobre los estímulos recibidos del entorno. Capa de conocimiento. Es la capa media de la arquitectura, dando lugar al conocimiento que adquiere el agente del medio, dicho conocimiento es adquirido de manera simbólica del entorno. Capa social. Es la capa superficial del agente, donde se da lugar a la interacción con otros agentes, la interacción directa con el entorno, así como también deseos e intenciones.8 8 IGLESIAS, CARLOS ANGEL. Tesis Doctoral Definicion de una Metodologia para el Desarrollo de Sistemas Multiagente. 1998. Madrid. Universidad Politecnica de Madrid. p.25 34 4.1.13 Sistemas Multiagente. El desarrollo de los agentes no siempre se da de una manera individual, existen casos donde se hace necesario desarrollar diversos agentes con unos roles definidos con el fin de facilitar el funcionamiento de éstos, así como optimizar su trabajo, a esto se le denomina sistema multiagente, y su funcionamiento no depende solamente de un agente, sino varios que interactúan entre sí, con el fin de comunicarse, consultar información relevante entre ellos y establecer su rol dentro del sistema. Los sistemas multiagente deben ser diseñados teniendo en cuenta una estructura que permita una operación efectiva, además de interactuar de forma productiva entre ellos, dicha estructura debe contemplar todos los aspectos relacionados con los procesos de comunicación entre agentes, esto se refiere al lenguaje que emplean los agentes para el envío y recepción de mensajes, además de permitir intercambio de información a un alto nivel de abstracción.9 La capacidad de comunicación puede verse como un elemento vital para la percepción de los agentes, ya que es en este momento donde se da la interpretación y la determinación de las acciones a ejecutar, esto conlleva a la creación de “sociedades” de agentes donde se establecen objetivos grupales además de los objetivos individuales, para este caso un agente individual puede entablar comunicaciones e intercambio de información con los demás agentes, en pro al cumplimiento de sus objetivos o deseos. Otro aspecto fundamental en los sistemas de agentes inteligenteses la coordinación, esta se logra de manera conjunta y puede ser cambiante de acuerdo al tipo de agentes que se agrupen, además del grado de prioridad que le den a sus objetivos. 9 JIMENEZ, JOVANI. Modelo de Planificación Instruccional Usando Razonamiento Basado en Casos en Sistemas Multi-Agente Para Entornos Integrados de Sistemas Tutoriales Inteligentes y Ambientes Colaborativos de Aprendizaje. Universidad Nacional. Colombia. 2006. p.221. 35 4.1.13.1. Comunicación Entre Agentes Para que haya entendimiento entre dos o más agentes es necesario que se entiendan en los aspectos sintácticos y semánticos de los posibles mensajes que se intercambien. El proceso de comunicación entre agentes puede asimilarse con la comunicación humana, “Por una parte estaría el mensaje en sí, lo que se transmite, por otra parte estaría el sentido que se le quiere dar por parte del emisor a ese mensaje y, finalmente, la acción que realiza el receptor cuando recibe el mensaje”.10 Existen diversas maneras en que un agente puede indicar el sentido de su mensaje, esto puede ser dado por un requerimiento, una declaración, una pregunta. Los lenguajes de alto nivel con los que se comunican los agentes están constituidos fundamentalmente por expresiones que establecen los actos comunicativos que un determinado agente puede realizar. Existen formas de “estandarizar” la sintaxis y la semántica del lenguaje de comunicación para los agentes, una de ellas se denomina KQML que consiste en un protocolo que ayuda a los agentes en la coordinación de las interacciones, y en el desarrollo e intercambio de conocimiento. Estas herramientas facilitan la labor de darle sentido a las comunicaciones entre agentes, pero en ocasiones suele no ser suficiente y es necesaria la implementación de lenguajes más complejos y de mayor compatibilidad entre los agentes interactivos. 4.1.14 Lenguajes Ontológicos Web. Se utilizan para aplicaciones que necesitan ejecutar procesos no solamente para generar información a las personas sino también a las máquinas existentes, estos lenguajes facilitan un mejor camino de comprensión y de contenido web respecto a los mecanismos admitidos como: XML, RDF y RDF Schema, proporcionando un vocabulario adicional con una semántica formal necesaria para todo tipo de implementación de sistemas multiagente, brindando a estos capacidades más altas de interacción usuario-plataforma en la medida que se proveen unas traducciones o transformaciones de lenguaje maquina a lenguaje natural. 10 Ibíd. P. 22 36 4.1.14.1 OWL Tiene una tendencia para describir propiedades y clases: relaciones entre clases, cardinalidad, características y nombramiento de clases. OWL brinda tres lenguajes, con un aspecto creciente de expresividad en comparación al anterior, con el fin de ser utilizados por los desarrolladores y usuarios. 4.1.14.2 OWL Lite. Esta subdivisión de los lenguajes ontológicos web (OWL) se caracteriza por tener una baja complejidad en comparación a las otras subdivisiones de OWL, y su arquitectura se basa en el soporte a frente a las clasificaciones jerárquicas y restricciones simples, además de ofrecer una amplia y óptima ruta de migración para diccionarios y otras taxonomías. 4.1.14.3 OWL Dl. Está diseñado para usuarios que desean obtener una expresividad amplia manteniendo la completitud computacional y la resolubilidad, este lenguaje contiene todas las construcciones del lenguaje básico de OWL, pero tiene casos de uso puntuales, un claro ejemplo podría ser el hecho de que una clase puede ser una subclase de muchas clases, pero una clase no puede ser una instancia de otras. 4.1.14.4 OWL Full. Está dirigido a usuarios que desean una máxima expresividad y libertad sintáctica, para estos casos “una clase puede ser considerada a su vez como una colección de clases individuales y como una clase individual propiamente dicha”. 11 En este 11 ARENAS, Raquel y GARCIA, Marta. Web Semántica. Universidad Carlos III. Leganés. Madrid. 2004. p.5. 37 lenguaje se da una ontología para aumentar el significado del vocablo preestablecido. 4.1.14.5 RDF Es un método empleado para la descomposición del conocimiento en piezas pequeñas, esto se realiza utilizando la semántica o el significado de cada una de las piezas. Con este mecanismo se busca expresar cualquier situación, de una forma ordenada y estructurada para poder ser procesada por las computadoras y ser entendida para desarrollar cosas útiles. Más que un formato RDF es un método, donde cada pieza de información puede ser escrita de distintas maneras, de tal forma que los distintos sucesos pueden estar descritos en distintas formas para que puedan ser interpretados por distintos lenguajes. 4.1.15 Plataformas Para Desarrollo de Agentes Inteligentes: En la actualidad los agentes inteligentes se han conseguido en complementos versátiles y muy utilizados en las grandes aplicaciones, ya que estos brindan posibilidades de automatizar los procesos de una forma más eficientes que los artefactos de software convencionales, para lograr el desarrollo de un sistema de ayuda al basada en agentes para la plataforma informática educativa UCC se debe realizar un análisis profundo de qué tipo de tecnología es la más adecuada para ser integrada de una forma compatible y generar excelentes resultados. En la actualidad son muchas las plataformas existentes para desarrollar agentes inteligentes, sin embargo las más frecuentemente empleadas son: 4.1.15.1 AGLETS. Es una plataforma y librería móvil desarrollada en java que facilita el desarrollo de aplicaciones basadas en agentes. Un Aglet es un agente java que puede ser capaz de moverse de un host a otra de manera espontánea y autónoma, al ser una herramienta desarrollada en java, garantiza un alto nivel de compatibilidad y portabilidad para los agentes y la plataforma sobre la que estos se desempeñan. 38 Originalmente se desarrolló en el laboratorio de investigación de IBM, estas tecnologías están expuestas como proyectos de código libre que se distribuye bajo licenciatura pública de IBM. Aglets incluye una plataforma de agentes completa y también un servidor stand- alone llamado Tahití, y otras librerías que permiten construir agentes móviles que pueden ser embebidos en diferentes aplicaciones, aglets es una tecnología simple, debido a que sigue un paradigma compuesto por unos cuantos métodos para implementar el comportamiento de los agentes. En cuestión de seguridad sobresale, debido a su estructuración bajo java y el administrador de seguridad de java, es una herramienta flexible que permite extender las plataformas en la medida que se necesiten nuevas funcionalidades. 4.1.15.2 ABLE El entorno de construcción y aprendizaje de agentes (ABLE por sus siglas en inglés) es un frameworks, librería de componentes y kit de herramientas productivo, desarrollado bajo java con el objetivo de desarrollar agentes inteligentes usando el razonamiento y aprendizaje de las máquinas. Esta herramienta contiene componentes que proveen interfaces java basadas en clases que se emplean para construir librerías de java beans llamados Able Beans, estos beans son incluidos por la librería y se usan para la lectura y escritura de texto e información de bases de datos, con la finalidad de transformar datos. Las técnicas que emplea para el aprendizaje de las máquinas se basan en redes neuronales y árboles de decisiones y al ser una herramienta basada en clases, interfaces y java beans permiten que cualquier aplicación java tenga compatibilidad con este frameworks. Las reglas de ABLE se estructuran con condiciones if-else, manteniendo la semántica de java, estas pueden procesar diversas reglas brindadas por el kit de herramientas ABLE, aunque también puedenser creadas desde el principio. Estas reglas pueden usarse para implementar reglas simples de negocio, y la razón para implementar este tipo de reglas es la externalización de la lógica de negocio de la aplicación, de este modo puede ser modificada sin aplicar ningún cambio en la aplicación; estas reglas pueden cambiar de forma dinámica y efectiva 39 afectando la lógica de negocio, pero con la ventaja de no tener que realizar ningún tipo de programación ni de compilación. Como se mencionaba anteriormente ABLE contiene modelos que proveen reglas predefinidas, que pueden ser usadas con el fin de crear interfaces de interacción para usuario que deseen modificar las reglas. 4.1.15.3 JADE El frameworks de desarrollo de agentes en java (JADE) es un software que hace una implementación completa del lenguaje Java, se enfoca en simplificar la implementación de sistemas multiagente por medio de un software intermedio que cumple las especificaciones FIPA a través de un conjunto de herramientas gráficas que permiten el análisis del código de una manera profunda y las fases de despliegue. Un sistema basado en jade puede ser desplegado en varias máquinas sin importar que no tengan el mismo sistema operativo y la configuración puede ser cambiada de forma remota a través de una interfaz gráfica de usuario. Otra de sus ventajas es que pueden realizarse cambios en el tiempo de ejecución, pueden moverse agentes de una máquina a otra en el momento que se requiera, además cuenta con bajos requerimientos de hardware y no es necesario tener una versión de los controladores de java actualizada. Esta herramienta provee una ejecución de tareas simple pero muy potente, además de modelos de composición agente por agente que están basados en paradigma de intercambio de mensajes asíncronos; también se provee un servicio de páginas amarillas que soportan mecanismos de descubrimiento y muchas otras características avanzadas que facilitan el desarrollo e implementación de sistemas distribuidos. A través del tiempo esta herramienta ha adquirido grandes colaboraciones, permitiendo que esté presente en distintos ambientes basados en java, como dispositivos que corren las distintas versiones del sistema operativo de Google, Android. 40 En los sistemas desarrollados en este lenguaje hay una característica distintiva, y radica en el comportamiento de las configuraciones de los agentes jade en la red, ya que permiten intercambio de direcciones y se ajustan a las variantes de las conectividades. 4.2 MARCO CONTEXTUAL Este proyecto está dirigido a la comunidad estudiantil y docentes de la Universidad Cooperativa de Colombia y demás usuarios que deseen acceder a los servicios de la Plataforma Informática Educativa UCC. Actualmente la Plataforma Informática Educativa UCC cuenta con los cursos de algoritmia y desarrollo en aplicaciones Android, con los cuales se benefician estudiantes y docentes de ingeniería de sistemas y/o carreras afines. Cabe aclarar que esta plataforma nace como idea de proyecto En la Universidad Cooperativa de Colombia, Facultad de Ingeniería, en el Semillero de Investigación e Informática Educativa y de Software Libre, el cual tiene por objetivo generar soluciones de software enfocadas al sector educativo y apoyar el proceso de formación de los estudiantes. 4.3 ANTECEDENTES 4.3.1 Arquitectura Multiagente Para Un Sistema e-Learning En la Universidad del Valle Cali, Colombia, desde hace varios años se ha venido desarrollado una serie de proyectos de investigación sobre la creación de sistemas multiagente para generar ayudas adaptativas al usuario del sistemas de enseñanza de idiomas SEMAS de la misma Universidad. De dichos proyectos han surgido también Tesis cada una abordando y aplicando un componente diferente para implementar en el Sistema o Plataforma de enseñanza de idiomas LingWeb. Cada uno de estos proyectos plantea un modelo de diseño y desarrollo de los 41 agentes y arquitectura, que de una forma u otra aportan para el desarrollo de este proyecto. Un ejemplo de las tesis lleva el nombre de: Arquitectura multiagente para un sistema e-learning de Machuca y Rodríguez 12 centrado en la enseñanza de idiomas, Machuca propone visualizar el diseño desarrollando un prototipo funcional para el cual selecciona el agente Anuncios uno de los nueve agentes inteligentes propuestos en el proyecto, este agente es el encargado de los mensajes que se deben enviar a los usuarios cuando interactúan con el sistema, a su vez este agente se relaciona con la base de datos, la interfaz web y con los agentes Agenda, Controlador, Monitor y Supervisor. La implementación de los agentes es estructurada por paquetes organizados de acuerdo a su funcionalidad. Con esta propuesta se genera una idea de cómo realizar la integración de los componentes del sistema (plataforma - sistemas de ayuda) y también actividades que son convenientes para la implementación de agentes inteligentes como anuncios a los usuarios, dar soporte y acompañamiento a los usuarios cuando interactúan con el contenido y actividades de los cursos. 12 MACHUCA, Liliana y RODRIGUEZ, Paola. Arquitectura Multiagente para un Sistemas e-learning centrado de enseñanza de idiomas. En J. Sánchez (Ed.): Nuevas Ideas en Informática Educativa, Volumen 5. Santiago de Chile 2009. 42 Figura 1 Prototipo: Modelo de Servicios del Sistema Multiagente Fuente: MACHUCA, Liliana y RODRIGUEZ, Paola. Arquitectura Multiagente para un Sistemas e-learning centrado de enseñanza de idiomas. 4.3.2 Un Sistema de Tutoría Inteligente Adaptativo Considerando Estilos de Aprendizaje. En este proyecto construyen el sistema MAS-PLANG abarcando algunas de las propiedades que se deben tener en cuenta para diseñar agentes inteligentes. El inicio del proyecto AISAUPIEUCC por Peña, Clara y Marzo José 13se condujo a través de una etapa de indagación e investigación, la cual permite identificar o dar una visión de las características y funciones de agentes inteligentes para el prototipo propuesto, y a su vez su diseño y desarrollo; características como: la autonomía, la proactividad y el aprendizaje, ya que serán autónomos al ser capaces de decidir cómo ayudar y definir qué información enviar al estudiante, la proactividad se verá reflejada en la capacidad que tendrán los agentes en decidir 13 Peña, Clara y Marzo José. La tecnología en agentes inteligentes. En los procesos de asistencia al estudiante y Adaptabilidad de Entornos y contenido de Aprendizaje para a web. Universidad Girona España. 2005. 43 de qué forma enviar contenidos al estudiante, y para el aprendizaje el agente será capaz de actualizar su base del conocimiento, a medida que el estudiante presenta necesidades; el agente deberá explorar en el entorno en busca de respuestas que aporten al estudiante y de esta forma percibir también nuevos conocimientos para su aprendizaje. 4.3.3 Desarrollo de un Agente Inteligente para Dispositivos Móviles Android que Permita Llevar los Ingresos y Egresos Económicos de Una Persona. En Julio de 2015 fue presentado en la Facultad de Ingeniería de la Universidad Nacional de Loja de Ecuador, el trabajo de grado Desarrollo de un Agente Inteligente para Dispositivos Móviles Android que Permita Llevar los Ingresos y Egresos Económicos de una Persona por Solano Cabrera, John Patricio14. Como requisito para optar el título de Ingeniero de sistemas. Esta investigación estudió la interacción de los sistemas de agentes inteligentes como solución a un problema típico en la población promedio, que es el manejo de los ingresos. Se plantea entonces desarrollar una aplicación móvil en la que las personas puedan mejorar sus flujos económicos mediante la intervenciónde agentes inteligentes que se encargan de evaluar los presupuestos de las personas. Para el desarrollo de esta aplicación se empleó la metodología de desarrollo XP y para el desarrollo del agente encargado de gestionar y realizar los cálculos se empleó la metodología GAIA. Como tal, este trabajo de grado propuesto por Solano da una gran visión para el análisis, diseño y desarrollo del sistema de ayudas basado en agentes inteligente, a través de metodologías y frameworks para el desarrollo de agentes, porque parte de un análisis de alto nivel para luego pasar al diseño de alto nivel donde se generan tres modelos: el modelo de agentes (tipos), modelo de servicios (funciones), y un modelo de conocidos (enlaces). También menciona que el objetivo principal de esta metodología es generar claridad en los roles de los componentes del sistema, estableciendo los protocolos, permisos y responsabilidades dentro del entorno. 14 Solano, John. Desarrollo de un Agente Inteligente Para Dispositivos Móviles Android que Permita Llevar los Ingresos y Egresos Económicos de una Persona. Universidad de Loja. Ecuador. 2015. 44 En la parte del desarrollo Solano plantea una serie de pasos a seguir para configurar correctamente el entorno en el que se debe ejecutar jade, además de mostrar fragmentos de código donde se pueden observar las características de jade y el funcionamiento de las mismas. Adicionalmente menciona que el uso de Jade, agilizó el proceso de desarrollo debido a la flexibilidad de la herramienta que sumada con la especificación que desarrolló mediante GAIA permitió desarrollar el agente inteligente con las pautas que se habían planteado desde el inicio del proyecto. 45 5. METODOLOGÍA El proyecto propuesto se desarrolló mediante el ejercicio de ingeniería aplicada; abordó un enfoque cualitativo de alcance exploratorio, ya que para la estructuración de este fue necesario indagar en diversas fuentes de información con el fin de conocer sobre el comportamiento, herramientas y estructura de los agentes inteligentes; y a su vez con el fin de entender su funcionalidad, importancia y el impacto que podría tener su implementación en entornos virtuales aprendizaje. Adoptó metodologías para desarrollo de agentes orientado hacia el ámbito educativo: en primer lugar, Metodologías de Desarrollo de Software Educativo, las cuales aportaron aspectos didácticos y pedagógicos además de buenas prácticas y principios educativos computacionales para lograr la construcción de un software con las condiciones deseadas; y en segundo lugar, Tropos, metodología para el desarrollo de proyectos basados en agentes inteligentes, orientó la definición de la arquitectura de agentes, identificación de capacidades de agentes, comportamiento e interacción entre ellos. La recopilación de información se realizó mediante el diseño y aplicación de encuestas y reuniones con los integrantes del semillero de investigación e informática educativa y software libre SIIE&SL, estudiantes y profesores de la facultad de ingeniería de la Universidad Cooperativa de Colombia Cali; información que contribuyó para la identificación de los requerimientos funcionales del sistema propuesto y a su vez del prototipo funcional desarrollado. El lenguaje de programación utilizado fue Java en el entorno de desarrollo NetBeans, debido a que éstos son compatibles con el framework elegido (JADE). JADE, permite una fácil interacción con distintos lenguajes de programación y plataformas; este aspecto es vital debido a los aspectos cambiantes de los sistemas de hoy en día, ya que entre sus características está la portabilidad e interoperabilidad. A continuación, se describen actividades y procesos que se llevaron a cabo para el análisis, diseño, desarrollo y despliegue del proyecto: 46 5.1 ANÁLISIS Y DISEÑO En esta actividad se establecieron los requerimientos funcionales y no funcionales, StakeHolders y usuarios del software. Se obtuvo la arquitectura del sistema y prototipo propuesto. 5.1.1 Lista de StakeHolders del Proyecto A continuación, se presenta el listado de las personas y organizaciones que se relacionan, intervienen y tiene algún tipo de interés en el desarrollo del proyecto propuesto. (Ver Tabla 2). Tabla 2: StakeHolders StakeHolders Objetivos Nivel de Interés Nivel de Influencia Acciones posibles Estrategias Facultad de Ingeniería UCC Cali Brindan apoyo con algunos requerimientos necesarios para el proyecto. Alta Alta -Suministrar permisos para reuniones con estudiantes y docentes. Solicitud por medio de cartas dirigidas a la Facultad de Ingeniería. Docentes (Algoritmia y herramientas básicas de programación) Entes indispensables para establecer los requerimientos funcionales y no funcionales del sistema Alta Media -Proveer el material necesario como fuentes bibliográficas o páginas web de apoyo para complementar las ayudas brindadas por los agentes. -Plantea las dificultades que se le presenta a los estudiantes en el Organizar reuniones y entrevistas donde puedan exponer sus puntos de vista y sugerencias, también para proveer la información necesaria para el desarrollo del prototipo del sistema de ayudas al usuario 47 desarrollo de la clase de algoritmia. Estudiantes (Algoritmia y herramientas básicas de programación) Entes indispensables para establecer los requerimientos funcionales y no funcionales del sistema Alta Alta -Plantea problemáticas que se presenta en el desarrollo de la clase de algoritmia. Organizar reuniones encuestas y entrevistas donde puedan exponer sus puntos de vista y sugerencias -Sugiere funcionalidad con las que puede contar el prototipo del sistema de ayudas al usuario Semillero de Investigación SIIE&S Colaboradores indispensables para el diseño desarrollo e implementació n del proyecto Alta Alta -Proporcionar toda la información necesaria sobre los cursos de la plataforma y su contenido. -Aceptar y plantear sugerencias sobre el análisis y diseño del prototipo del sistema de ayudas al usuario Organizar reuniones y entrevistas donde puedan exponer sus puntos de vista y sugerencias, también para proveer la información necesaria para el desarrollo del prototipo del sistema de ayudas al usuario Usuarios de la Usuarios que Alta Alta -Al ser el Capacitar a los Plataforma llegarán a usuario final estudiantes y Informática interactuar de la docentes que Educativa UCC directamente plataforma y a llegarán a con la su vez del interactuar con plataforma y sistema de los contenidos y estarán en ayudas, darán sistema de contacto opinión sobre ayuda para 48 directo con los agentes inteligentes, además de verificar el correcto funcionamient o de la plataforma la experiencia de usuario, la funcionalidad y eficiencia del nuevo componente, retroalimentar y sugerir posibles mejoras. asegurar la buena utilización de la plataforma, así como también puedan brindar retroalimentació n de las funcionalidades esperadas. Desarrolladores Encargados Alta Alta Suministran A medida que de la Plataforma de verificar el información avanza el funcionamient de los proyecto se o de la componentes pueden plataforma, y arquitectura presentar dudas pueden de la e inquietudes, suministrar plataforma, por lo cual se información preferencias puede recurrir a requerida para de usuarios, los el diseño de lo relacionado desarrolladores agentes. con el diseño de la y desarrollo plataforma. dela plataforma y los módulos de los cursos. 49 Grupo auxiliar del proyecto de Investigación Encargados del análisis y ejecución del proyecto. Alta Alta -Analizar información relevante para el proyecto. -Organizar reuniones con algunos actores del sistema. -Diseñar modelo de prototipo basado en agentes inteligentes -Realizar pruebas funcionales al prototipo. -Capacitar a los actores relevantes del sistema (docentes y alumnos). -Consultar sobre el tema de agentes inteligentes en diferentes fuentes de información (libros, internet, revistas). -Diseñar encuestas para entrevistar a los actores del sistema. -Para realizar pruebas es indispensable reunirse con los actores del sistema para acatar sugerencias y tener un diagnóstico funcional del sistema y realizar un análisis de la experiencia de usuario. Fuente: Elaboración propia 5.1.2 Requerimientos Dentro de la metodología Tropos, en primera fase de requerimientos posteriores o tardíos, una de las actividades principales es la definición de los requerimientos funcionales y no funcionales del sistema. El proceso de levantamiento de requerimientos se realizó por medio reuniones y encuestas realizadas al líder del semillero SIIE&SL, estudiantes y docentes de la UCC de la asignatura de Algoritmia y Herramientas computacionales; a través de estas se plantearon preguntas con fin de identificar las dificultades más frecuentes al momento de comprender los contenidos de las asignaturas, la apreciación sobre 50 los entornos virtuales de aprendizaje y sugerencias para el diseño e implementación de un sistema de ayudas al usuario que se adecue a cada una de sus necesidades. (Ver anexo 1: Encuesta). 5.1.2.1 Requerimientos Funcionales Tabla 3: Requerimientos Funcionales del Sistema Requerimiento Descripción del Requerimiento Funcional RF1 El sistema por medio de los agentes inteligentes asistirá al usuario estudiantes en el desarrollo talleres y actividades del curso. RF2 El sistema mostrará automáticamente al usuario estudiante la ayuda proporcionada según su necesidad RF3 Los agentes inteligentes serán capaces de indagar en contenidos de la web y a su vez por medio de estos agregar nueva información a su base del conocimiento. RF4 Los agentes inteligentes, por medio de las ayudas serán capaces de brindar al usuario información que ellos autónomamente consideren la más importante, de acuerdo a sus percepciones guardadas en su base del conocimiento RF5 El sistema brindará sugerencias a los estudiantes de acuerdo al material de apoyo suministrado por el docente o contenidos encontrados en la web. RF6 El sistema por medio de los agentes inteligentes le mostrará al usuario estudiante recomendaciones sobre la sintaxis de lenguajes de programación, en el desarrollo de talleres y actividades del curso Fuente: Elaboración propia 51 5.1.2.2 Requerimientos No funcionales Tabla 4: Requerimientos no Funcionales del Sistema. Requerimiento Descripción del Requerimiento No Funcional RNF1 El sistema deberá brindar ayudas al usuario en tiempo real RNF2 El agente inteligente debe realizar los procesos de indagar en información web o de contenidos del curso y capturarla en menos de 1 minuto RNF3 El tiempo máximo que se debe esperar para brindarle ayuda de sugerencias a un usuario que se está demora mucho realizando una actividad es de 1 minuto Fuente: Elaboración propia 5.1.3 Actores Relevantes del Sistema Tabla 5: Actores Relevantes del Sistema. Actores Rol Objetivos Estudiante -Accede al contenido del curso e interactúa con el sistema de ayudas al usuario -Desarrolla actividades académicas asignadas en el curso -Activa las funciones o tareas de los agentes inteligentes implementados Poder contar con una herramienta funcional, usable y eficiente para el buen desarrollo del curso. Docente -Registro de actividades académicas y contenidos del curso -Realiza seguimiento a las actividades desarrolladas por el estudiante Poder contar con una herramienta funcional, usable y eficiente para el buen desarrollo del curso. Plataforma Informática Educativa Ucc. -Soporta contenido, actividades del curso y sistema de ayudas al usuario basado en agentes inteligentes Agentes inteligentes -Brindar ayudas en el desarrollo de las actividades del estudiante -Activar funciones cuando el estudiante lo solicite o al identificar que no está cumpliendo con los objetivos de las actividades del curso Fuente: Elaboración propia 52 5.1.4 Patrones de Diseño En el diseño y la implementación de sistemas basados en agentes inteligentes se proponen diversos patrones asociados a la movilidad de los agentes, reenvío y enrutamiento de datos, tareas, interacción, proactividad y arquitectura; todo esto con el fin de implementar buenas prácticas y desarrollar sistemas más robustos, con modelos lógicos y regulados, organizados, flexibles y portables. Para Moreno y Rosete15 algunos ejemplos de estos patrones son: Patrones para un solo agente donde se propone una solución para la estructura interna de un agente junto con sus planes de realización de un servicio específico Patrones de comportamiento que proponen una solución para agregar una capacidad específica al agente Patrones de especificación de acciones que agregan una funcionalidad simple al agente. En el caso de JADE, los patrones están orientados a la implementación y configuración de esta herramienta, con el fin de crear y manejar las propiedades de los agentes, en este caso la proactividad. Para el prototipo funcional de ayudas al usuario (sugerencias de contenido) basado en agentes inteligentes, el uso de patrones para el diseño, estructura y comportamiento del sistema bajo las funcionalidades de la librería y framework JADE fue indispensable, debido a que el agente debe ser de fácil extrapolación, debe contar la capacidad de establecer una comunicación menos desacoplada y a su vez ser capaz de buscar espacios donde su inteligencia y/o autonomía aplicada, además de razonar y actuar respecto a ello. A continuación, se describen los patrones de creación y de estructura implementados y los patrones de implementación en JADE 15 Cita: MORENO, Maylin y ROSETE, Alejandro. Patrones de Implementación para Incluir Comportamientos Proactivos. Instituto Superior Politécnico “José Antonio Echeverría”. La Habana, Cuba. 2013. p. 4-10. 53 5.1.4.1 Patrón Singletón La creación de este patrón asegura que sólo exista una instancia de una clase y proporciona un punto de acceso global a ella. En el caso del prototipo, se crean las clases SingletonPeticones y SingletonRespuestas, para que sólo exista una instancia de las clases petición y respuesta; si estas clases se instancian una vez, se logra la sincronización de los datos de petición con los datos de la respuesta por parte del agente y el servicio. Figura 2: Patrón Singletón Clase SingletonPeticiones.java: 54 5.1.4.2 Patrón Factory Method. Patrón de creación de objetos; permite instanciar objetos de una clase sin saber aún que tipo de objeto debe ser, ese decir, las subclases son las encargadas de decidirlo. Adoptado a este proyecto, el Factory Method se implementa al crear una clase genérica y con base a este se crean subclases al instanciar objetos, generando una herencia. En el diagrama figura (3) se hace la representación del Factory Method patrón de clase y las relaciones dinámicas o estáticas, las clases se basan en herencia y delegación. Figura 3: Patron Factory Method Fuente: Microsoft MSDN, consultado 05 septiembre 2018, disponible en https://msdn.microsoft.com/es-es/library/bb972258.aspx#GoF95.
Compartir