UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENIERÍA
CARRERA DE INGENIERÍA INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN
SISTEMA EXPERTO DE LA HOMOLOGACIÓN DE MATERIAS PARA LA FACULTAD DE CIENCIAS DE LA INGENIERÍA
TESIS PREVIA LA OBTENCIÓN DEL TÍTULO
DE INGENIERO EN INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN
CARLOS ANDRES MAFLA CARVAJAL
DIRECTOR: ING. VÍCTOR HUGO GÁLVEZ
Quito, Enero, 2015
DECLARACIÓN
Yo CARLOS ANDRES MAFLA CARVAJAL declaro que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentado para ningún
grado o calificación profesional; y, que he consultado las referencias
bibliográficas que se incluyen en este documento.
La Universidad Tecnológica Equinoccial puede hacer uso de los derechos
correspondientes a este trabajo, según lo establecido por la Ley de Propiedad
Intelectual, por su Reglamento y por la normativa institucional vigente.
_________________________________________
Carlos Andrés Mafla Carvajal
C.C.171552791-5
CERTIFICACIÓN
Certifico que el presente TRABAJO DE TITULACIÓN que lleva por título
“Sistema experto de homologaciones para la facultad de ciencias de la ingeniería”, que, para aspirar al título de INGENIERO EN INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN fue desarrollado por CARLOS ANDRES MAFLA CARVAJAL, bajo mi dirección y supervisión, en la Facultad de
Ciencias de la Ingeniería; y cumple con las condiciones requeridas por el
reglamento de Trabajos de Titulación artículos 18 y 25.
_________________________________________
Ing. Víctor Hugo Gálvez
Director de Trabajo de Titulación
C.C. 1707796536
ÍNDICE DE CONTENIDO
PÁGINA
RESUMEN................................................................................................... xii
ABSTRACT .................................................................................................xiii
1. INTRODUCCIÓN .................................................................................... 1
2. MARCO TEÓRICO ................................................................................. 3
2.1 CURRÍCULO .................................................................................... 3
2.2 MALLA CURRICULAR...................................................................... 4
2.3 PLAN DE ESTUDIOS ....................................................................... 5
2.4 ANÁLISIS DE HOMOLOGACIONES EN LA UNIVERSIDAD
TECNOLÓGICA EQUINOCCIAL ................................................................ 7
2.5 INTELIGENCIA ARTIFICIAL ........................................................... 10
2.6 INGENIERÍA DEL CONOCIMIENTO .............................................. 11
2.7 SISTEMAS EXPERTOS ................................................................ 12
2.7.1 ARQUITECTURA DE UN SISTEMA EXPERTO ....................... 13
2.7.2 VENTAJAS Y DESVENTAJAS ................................................. 14
2.7.3 ADQUISICIÓN DEL CONOCIMIENTO Y TÉCNICAS DE
ADQUISICIÓN ...................................................................................... 15
2.7.4 ETAPAS EN EL DESARROLLO DE UN SISTEMA EXPERTO 16
2.8 METODOLOGÍA DE DESARROLLO .............................................. 17
2.8.1 HERRAMIENTAS TÉCNICAS .................................................. 17
2.8.2 TIPOS DE SOFTWARE APROPIADOS A LA CREACION DE
SISTEMAS EXPERTOS ....................................................................... 19
2.8.3 MÉTODOS ............................................................................... 20
i
2.8.4 LENGUAJE UNIFICADO DE MODELADO UML ...................... 22
2.9 ALGORITMOS PARA LA COMPARACIÓN DE CADENA DE
CARACTERES......................................................................................... 25
2.9.1 RETE ....................................................................................... 25
2.9.2 ALGORITMO DE AGRUPAMIENTO (CLUSTERING) .............. 25
2.9.3 ALGORITMO DE LEVENSHTEIN (DL) .................................... 26
2.9.4 ALGORITMO BOYER MORE ................................................... 28
2.10 JAVA-COMPONENTES .............................................................. 28
2.10.1 Swing .................................................................................... 28
2.10.2 SwingX .................................................................................. 28
2.10.3 Jpedal ................................................................................... 29
2.10.4 iReport y JasperReport ......................................................... 29
2.11 MYSQL ........................................................................................ 29
2.12 RECONOCIMIENTO ÔPTICO DE CARACTERES OCR ............. 29
3. METODOLOGÍA ................................................................................... 31
3.1 METODOLOGÍA DE DESARROLLO DEL SOFTWARE ................. 31
3.1.1 FASE 1: PLANIFICACIÓN DEL PROYECTO ........................... 32
3.1.2 FASE 2: DISEÑO ..................................................................... 33
3.1.3 FASE 3: CODIFICACIÓN ......................................................... 34
3.1.4 FASE 4: PRUEBAS .................................................................. 34
4. ANÁLISIS Y DISCUSIÓN DE RESULTADOS ...................................... 36
4.1 FASE PLANIFICACIÓN .................................................................. 36
4.1.1 INTRODUCCIÓN ..................................................................... 36
4.1.2 DESCRIPCIÓN GENERAL ...................................................... 37
4.1.3 REQUISITOS ESPECÍFICOS .................................................. 38
4.1.4 DOCUMENTACIÓN PROPORCIONADA ................................. 43
ii
4.2 FASE DE DISEÑO .......................................................................... 45
4.2.1 ARQUITECTURA DEL SISTEMA ............................................. 45
4.2.2 CASOS DE USO ...................................................................... 48
4.2.3 DIAGRAMA DE SECUENCIA .................................................. 56
4.2.4 MODELO CONCEPTUAL DE LA BASE DE DATOS ................ 63
4.2.5 DIAGRAMA DE CLASES ......................................................... 64
4.2.6 MAQUETACIÓN DE PANTALLAS ........................................... 64
4.3 FASE DE CODIFICACIÓN ............................................................. 71
4.3.1 EXTRACCIÓN CONTENIDOS DE LOS SYLLABUS ................ 71
4.3.2 GUARDADO INFORMACIÓN SYLLABUS MATERIAS UTE .... 73
4.3.3 INGRESO DE ETIQUETAS A LOS TEMAS DE LAS MATERIAS
UTE 77
4.3.4 COMPARACIÓN DE CONTENIDOS ........................................ 79
4.3.5 HOMOLOGACIÓN ................................................................... 82
4.3.6 GENERACIÓN REPORTES ..................................................... 84
4.4 FASE DE PRUEBAS ...................................................................... 87
4.4.1 PRUEBAS UNITARIAS Y DE INTEGRACIÓN ......................... 87
5. CONCLUSIONES Y RECOMENDACIONES ........................................ 94
5.1 CONCLUSIONES ........................................................................... 94
5.2 RECOMENDACIONES ................................................................... 96
BIBLIOGRAFÍA ............................................................................................ 98
ANEXOS ................................................................................................... 102
ANEXO 1 ............................................................................................... 102
SCRIPT BASE DE DATOS ................................................................. 102
ANEXO 2 ............................................................................................... 105
DIAGRAMA DE CLASES ................................................................... 105
iii
ANEXO 3 ............................................................................................... 106
MANUAL DE USUARIO ..................................................................... 106
iv
ÍNDICE DE TABLAS
PÁGINA
Tabla 1: Sílabo datos generales de la asignatura Inteligencia Artificial .......... 6
Tabla 2: Sílabo Programa de la asignatura de la asignatura Inteligencia
Artificial .......................................................................................................... 6
Tabla 3: Algoritmo Levenshtein.................................................................... 27
Tabla 4: historia de Usuario ......................................................................... 32
Tabla 5 Historia usuario N1 Syllabus ........................................................... 40
Tabla 6 historia usuario N2 Homologación .................................................. 41
Tabla 7 Historia de usuario N3 Porcentajes de Homologación .................... 42
Tabla 8 Historia de usuario N4 Resultados de homologación ...................... 42
Tabla 9 Comparación de herramientas SE. ................................................. 46
Tabla 10 Comparación entre Java y C#. ...................................................... 47
Tabla 11 Comparación de características de DBMS .................................... 47
Tabla 12: Especificación CU Acceso al sistema .......................................... 48
Tabla 13: Especificación CU Acceder a Editar Materias UTE ...................... 49
Tabla 14: Especificación CU Ingresar Syllabus Materias UTE ..................... 50
Tabla 15: Especificación CU Acceder a Nueva Homologación .................... 52
Tabla 16: Especificación CU Homologar materias ....................................... 53
Tabla 17: Especificación CU Generar Reporte ............................................ 55
v
Tabla 18: Algoritmo Boyer Moore ................................................................ 80
vi
ÍNDICE DE FIGURAS
PÁGINA
Figura 1: Malla curricular de la carrera de Informática. .................................. 4
Figura 2: Campos de estudio de la inteligencia Artificial. ............................. 11
Figura 3 Arquitectura de los Sistemas Expertos. ......................................... 13
Figura 4: Modelo ciclo de vida de la creación de un SE. .............................. 17
Figura 5: Ejemplo diagrama de Clases. ....................................................... 23
Figura 6: Ejemplo Diagrama Caso de Uso. .................................................. 24
Figura 7: Ejemplo diagrama de Secuencia. ................................................. 24
Figura 8 Archivo syllabus de las materias de la carrera ............................... 43
Figura 9 Archivo syllabus de los estudiantes a homologar ........................... 44
Figura 10 Archivo Excel de Homologaciones realizadas .............................. 44
Figura 11 Esquema de arquitectura ............................................................. 45
Figura 12: CU Acceso al sistema ................................................................. 48
Figura 13: CU Acceder a Editar Materias UTE ............................................. 49
Figura 14: CU Ingresar Syllabus Materias UTE ........................................... 50
Figura 15: Acceder a Nueva Homologación ................................................. 51
Figura 16: CU Homologar materias ............................................................. 52
Figura 17: CU Ingresar Syllabus otra Universidad ....................................... 54
Figura 18: Especificación CU Ingresar Syllabus otra Universidad ................ 54
vii
Figura 19 CU: Generar Reporte ................................................................... 55
Figura 20 DS: Acceso al Sistema ................................................................ 56
Figura 21 DS: Acceder Editar Materias UTE ................................................ 57
Figura 22 DS: Ingreso Syllabus Materia UTE............................................... 58
Figura 23 DS: Acceder Nueva Homologación .............................................. 59
Figura 24 DS: Homologar Materias .............................................................. 60
Figura 25 DS: Ingreso Syllabus Otra Universidad ........................................ 61
Figura 26 DS: Reporte de Homologación .................................................... 62
Figura 27: Diseño Conceptual Entidad Relación .......................................... 63
Figura 28: Maquetación de pantalla login .................................................... 64
Figura 29: Maquetación Pantalla Menú ........................................................ 64
Figura 30: Maquetación Pantalla Cambiar Contraseña ................................ 65
Figura 31: Maquetación Editar Materias UTE: Seleccionar Facultad/Carrera
.................................................................................................................... 65
Figura 32: Maquetación Editar Materias UTE: Crear Facultad ..................... 66
Figura 33: Maquetación Editar Materias UTE Crear Carrera ........................ 66
Figura 34: Maquetación Editar Materias UTE: Ingreso Syllabus .................. 67
Figura 35: Maquetación Nueva Homologación: Selección Facultad/Carrera 67
Figura 36: Maquetación Homologación: de Materias de un Nuevo Estudiante
.................................................................................................................... 68
viii
Figura 37: Maquetación Nueva Homologación: Ingreso de Nueva Universidad
.................................................................................................................... 68
Figura 38: Maquetación Nueva Homologación: Ingreso de Nueva Carrera .. 69
Figura 39: Maquetación Nueva Homologación: Ingreso Nueva Materia ....... 69
Figura 40: Maquetación Nueva Homologación: Ingreso Syllabus Materia Otra
Universidad.................................................................................................. 70
Figura 41: Maquetación Generar Reporte .................................................... 70
Figura 42: Código Extracción Contenidos .................................................... 72
Figura 43 Extracción de contenidos syllabus UTE .................................... 73
Figura 44: Prolog Guardado Información Syllabus UTE ............................... 73
Figura 45: Guardado Contenidos Materias UTE .......................................... 74
Figura 46 Prolog Contenido Materia ......................................................... 75
Figura 47: Código Valor temas .................................................................... 76
Figura 48: Prolog Valor Contenido ............................................................... 76
Figura 49: Ingreso Etiquetas ........................................................................ 77
Figura 50: Ingreso de etiquetas a los temas ................................................ 78
Figura 51: Prolog Etiquetas Temas .............................................................. 78
Figura 52: Código Algoritmo Boyer-Moore ................................................... 79
Figura 53: Código Implementación Algoritmo Boyer Moore ......................... 81
Figura 54: Prolog Porcentajes de Comparación ........................................... 82
Figura 55: Homologación ............................................................................. 82
ix
Figura 56: Código Homologación ................................................................. 83
Figura 57: Detalle materia homologada ....................................................... 84
Figura 58: Generar Reportes ....................................................................... 84
Figura 59: Código Búsqueda por Rango de Fecha ...................................... 85
Figura 60: Código Búsqueda por Datos Estudiante ..................................... 86
Figura 61: Búsqueda Alumno ...................................................................... 87
Figura 62: Llamada a Reporte ..................................................................... 87
Figura 63: Test Clase Login ......................................................................... 88
Figura 64: Test Clase Conexión................................................................... 89
Figura 65: Test Clase Prolog ....................................................................... 90
Figura 66: Test Clase Menú ......................................................................... 91
Figura 67: Test Clase Alumno ..................................................................... 92
Figura 68: Test Clase Convalidación ........................................................... 93
Figura 69: Diagrama de Clases ................................................................. 105
x
ÍNDICE DE ANEXOS
PAGINA
ANEXOS ................................................................................................... 102
ANEXO 1 ............................................................................................... 102
SCRIPT BASE DE DATOS ................................................................. 102
ANEXO 2 ............................................................................................... 105
DIAGRAMA DE CLASES ................................................................... 105
ANEXO 3 ............................................................................................... 106
MANUAL DE USUARIO ..................................................................... 106
xi
RESUMEN
El presente trabajo de titulación se enfoca en el análisis, diseño y desarrollo
de un Sistema Experto de Homologación de Materias de la Carrera de
Ingeniería Informática y Ciencias de la Computación de la Facultad de
Ciencias de la Ingeniería de la Universidad Tecnológica Equinoccial (UTE),
para la automatización del proceso de homologación se realizó un análisis de
requerimientos con el uso de historias de usuario donde se tuvo entrevistas
con el coordinador y docentes que han estado envueltos en este proceso,
quienes apoyaron con toda la información requerida; para el diseño se realizó
un análisis de la arquitectura del sistema y diseño principal del software, para
lo cual fue necesario la utilización de Casos de uso, Diagramas de secuencia,
Modelado conceptual de la Base de datos (BDD), Diagramas de Clases y
Maquetación de pantallas. Las herramientas utilizadas en la realización de
este sistema fueron basados en software libre, siendo estas MySql como BDD,
Swi-prolog como base de conocimientos y Java SE como motor de inferencia
e interfaz gráfica. Es importante mencionar que el proceso para la
homologación inicia con la recepción del syllabus de las materias de las otras
universidades, la secretaría de la UTE comprueba que el syllabus no sean
mayores a 5 años de antigüedad y envía los syllabus a escanear para ser
posteriormente entregados al coordinador de la Carrera en formato PDF no
navegable. Es así como emerge la necesidad de encontrar una herramienta
OCR que permita la transformación de la información de imagen a texto y ser
utilizada en los contenidos de las materias dentro de un sistema que
contemple con la comparación de contenidos con la carrera de Ingeniería
Informática y Ciencias de la Computación de la UTE. Respecto a la
comparación de los contenidos es indispensable mencionar el estudio de
algoritmos que se realizó para determinar los que pudiesen ser usados, bajo
este contexto, se escogió dos algoritmos para ser probados, los cuales
fueron: el algoritmo de comparación de cadenas de caracteres Levenshtein y
el algoritmo de búsqueda Boyer Moore siendo este último el que fue
implementado para este sistema. xii
ABSTRACT
The current document for degree, it is focused on the analysis, design and
implementation of an Expert System designated to the approval of classes
belonging to the career of Information Engineer and Computer Science of the
Engineer Science Faculty of the Universidad Tecnológica Equinoccial(UTE),
to be applied on the automation of the approval process it was necessary to
perform the analysis of requirements with the use of user´s histories, where
throughout interviews with the career´s coordinator and people which have
been involved within this process, whom have helped with all the required
information; for the design and analysis of the system´s architecture has been
performed and a main design of the software, for which was necessary the use
of Use Cases and conceptual modeling of the data base (DB), class diagrams
and screen layouts. The tools used for the accomplishment of this system were
based in the implementation of Free Software, being these MySQL for the DB,
Swi-Prolog for the knowledge base and Java SE as the inference engine and
the graphic interface. It is important to mention that the approval process starts
with the reception of the syllabus of the classes of other universities, the
secretary of the UTE checks that the syllabus are not older than 5 years, and
then sends the syllabus to be scanned so later are given to the career’s
coordinator in an scanned digital pdf format. That is how it emerges as a
necessity to find an OCR tool for the transformation of the information found in
the image into text and the information found in the class’s contents saved in
the system can be used to compare with the contents found in each class of
the Informatics Engineer and Computer Science of the UTE. In respect to the
comparison of the contents it is essential to mention the study of the algorithms
that was used to determine which can be used, under this context, it was
chosen two algorithms to be tried, which were: the character string comparison
algorithm Levenshtein and the search algorithm Boyer Moore, being this last
one finally implemented within the system.
xiii
1. INTRODUCCIÓN
La sociedad del siglo XXI está marcada por la velocidad en los cambios,
mismos que pueden suscitarse en cualquier ámbito de interacción, desde esta
mirada se puede afirmar que la movilidad, en los seres humanos, es una
acción común; por tanto es necesario determinar procesos para que los
cambios y la respectiva movilidad no afecte (o lo haga en la menor intensidad
posible) a las personas involucradas.
En la actualidad en Ecuador existe el fenómeno de cambio de estudiantes de
una universidad a otra, con pensum de asignaturas diferentes entre las
universidades. Al entrar a una nueva universidad los estudiantes esperan que
las asignaturas cursadas y aprobadas en las otras instituciones superiores
sean reconocidas, mientras que la nueva universidad aspira a ubicar al
estudiante en el nivel correspondiente. Para esto se utiliza la información de
los sílabos.
En coherencia con el desarrollo de la informática y la sistematización de los
procesos se puede entender que “Los sistemas expertos son capaces de
razonar siguiendo pasos comparables a los que sigue un especialista (médico,
biólogo, geólogo, matemático, coordinador etc.) cuando resuelve un problema
propio de su disciplina.” (Zambrano, 2009), un sistema experto elabora el
trabajo de una persona emulando el pensamiento de la misma, de tal suerte
que, el riesgo de error sea el menor posible.
Bajo este contexto, lo que se quiere conseguir por medio del proyecto es
desarrollar un sistema experto, que permita agilitar el proceso de
homologación con certeza, cuyo objetivo es analizar y declarar las
equivalencias entre los contenidos, número de créditos de las diferentes
asignaturas impartidas en las Instituciones de Educación Superior, para esto,
se realiza un riguroso análisis comparativo de contenidos, cálculo de
1
porcentaje de créditos, siendo esto lo que requiere automatización dando un
óptimo porcentaje de equivalencias de las materias a homologar.
El tema de investigación se valida en el resultado de los valores reales de
equivalencias, esto al considerar que en la actualidad se lo calcula
manualmente. Se debe mencionar que, los procedimientos están
establecidos, sin embargo, no hay una estructura de temas académicos
uniformes para la homologación. Debido a esto se han producido casos que
arrojan distintos resultados de homologación, en estudiantes bajo similares
condiciones de una misma universidad que no han obtenido el igual
tratamiento para la ubicación en la carrera.
El sistema experto de homologación, determinará resultados uniformes, de
acuerdo a la preparación del mismo sistema, eliminando los diversos criterios
que actualmente ocurre y que afectan directamente a los estudiantes.
El objetivo general es analizar, diseñar y desarrollar un sistema experto para
el proceso de homologación de asignaturas en la Carrera de Ingeniería
Informática y Ciencias de la Computación de la Universidad Tecnológica
Equinoccial.
Los objetivos específicos de esta investigación son: a) realizar un análisis
comparativo de los syllabus de las asignaturas, b) realizar un estudio de los
diferentes algoritmos para el tipo de sistema que se desea realizar, c) entrenar
al sistema experto de homologación mediante programas analíticos ya
existentes, d) desarrollar el sistema de homologación.
2
2. MARCO TEÓRICO
2.1 CURRÍCULO
La conceptualización del currículo ha evolucionado a la par que las
transformaciones sociales, esto al considerar que el contenido curricular
refleja el modelo social; por tanto este se convierte en un apoyo para el
sistema imperante.
Acorde a la complejidad de esta mirada, se vuelve imprescindible mencionar
algunas definiciones de la palabra currículo, entre las cuales están las
siguientes:
• Curriculum es una palabra latina que deriva del verbo curro, que
significa carrera; es todo lo que se debe hacer para lograr algo.
(Lafrancesco; 2005)
• “El currículo es un proceso educativo integral con carácter de proceso
que expresa las relaciones de interdependencia en un contexto
histórico social, condición que le permite rediseñarse sistemáticamente
en la medida en que se producen cambios sociales, los progresos de
la ciencia y las necesidades de los estudiantes, lo que se traduce en la
educación de la personalidad del ciudadano que se aspira a formar.”
(García y Addine, 2001).
Dentro de las distintas concepciones curriculares se puede plantear dos
tendencias: La tecnológica y la personal-existencial, la primera define al
currículo como la organización de actividades de aprendizaje intelectual que
destaca como la más importante: contenidos pragmáticos, aspectos
metodológicos y evaluativos; la segunda tendencia curricular define al
currículo en términos globales, incluido los procesos informales. Para efectos
de este estudio de investigación se considerará al currículo dentro de la 3
tendencia tecnológica, este concepto coloca al currículo como un instrumento
que guía tanto las decisiones instruccionales como las evaluativas.
2.2 MALLA CURRICULAR
Es la representación gráfica de los ciclos de formación y de los cursos
contemplados en el plan de estudios, en la cual se hace visible las relaciones
entre los distintos cursos, su secuencialización y prioridades.
Ejemplo de la malla curricular de la carrera de Ingeniería Informática y
Ciencias de la Computación de la Universidad Tecnológica Equinoccial.
Figura 1: Malla curricular de la carrera de Informática. Recuperado dehttp://app.ute.edu.ec/mallas/Malla_Informatica.pdf
4
2.3 PLAN DE ESTUDIOS
El syllabus o plan de estudios es un programa detallado de estudios donde se
hace énfasis a los objetivos de la institución educativa, de la carrera y la
asignatura en la enseñanza. Es elaborado por el profesor, este instrumento
es importante tanto para el profesor(a) como para los estudiantes. Esta es una
herramienta que permite saber a dónde se quiere llegar con la asignatura, qué
camino se va a tomar y en dónde se está en la asignatura. En el syllabus
también se establecen los parámetros de evaluación de conocimientos
durante el curso.
Las funciones importantes del syllabus son:
Establecer una adecuada relación entre estudiante y profesor, fijando las
reglas, los propósitos, los objetivos y el material que se utilizará en el
curso.
Definir las responsabilidades que tendrán el profesor y los estudiantes
en su aprendizaje activo a lo largo del curso.
Ayudar a los estudiantes a autoevaluar su grado de preparación y
predisposición para el curso.
El Syllabus consta de:
Datos generales de la asignatura, ejemplo tabla1:
Prerrequisitos.
Metodología.
Objetivos o competencias.
Normatividad.
Materiales requeridos.
Esquema descriptivo del contenido, ejemplo tabla 2:
Evaluación.
5
Tabla 1: Sílabo datos generales de la asignatura Inteligencia Artificial (Ordoñez ,2013). Recuperado de http://app.ute.edu.ec/portalIntegrado/portal.aspx?state=1&aplicativo=3&pagina=http://app.ute.edu.ec/lmsportal/defaul.aspx
Tabla 2: Sílabo Programa de la asignatura de la asignatura Inteligencia Artificial (Ordoñez ,2013). Recuperado de http://app.ute.edu.ec/portalIntegrado/portal.aspx?state=1&aplicativo=3&pagina=http://app.ute.edu.ec/lmsportal/defaul.aspx
6
2.4 ANÁLISIS DE HOMOLOGACIONES EN LA UNIVERSIDAD
TECNOLÓGICA EQUINOCCIAL
Según el reglamento de convalidación y homologación de estudios
reconocimiento y equiparación de títulos, de la Universidad Tecnológica
Equinoccial, en el Capítulo I de convalidaciones de estudios menciona los
siguientes artículos:
Artículo 2.- La Universidad Tecnológica Equinoccial, convalidará según las
normas establecidas por el presente reglamento, los estudios equivalentes
realizados en instituciones de nivel superior, nacionales o del exterior,
oficialmente reconocidas.
Artículo 3.- La convalidación de estudios tiene por objeto otorgar validez
oficial para cada caso concreto, a los estudios de asignaturas debidamente
aprobadas, en cualquiera de las Universidades, Escuelas Politécnicas o
Institutos Superiores nacionales reconocidos por la SENECYT, siempre que
tales estudios sean afines en objetivos, finalidades y contenidos a los que se
imparten en la Universidad. Para los centros de estudios con los que se
mantenga convenios, se procederá de acuerdo a lo establecido en los
mismos.
Artículo 4.- La convalidación de estudios será solicitada a la Universidad,
durante el periodo determinado por la misma en el calendario académico,
con la presentación de los documentos que acrediten los estudios,
debidamente legalizados. La gestión del trámite de convalidación no implica
su aprobación.
Artículo 5.- En ningún caso se convalidarán más del 70% de asignaturas de
una carrera. Esto significa que cualquier estudiante procedente de otra
institución de educación superior deberá aprobar, para obtener el título, al
menos el 30% de las asignaturas de su carrera en la Universidad.
7
Artículo 6.- Los estudiantes que ingresen por convalidación, pueden solicitar
el trámite por una sola vez, a excepción de los casos que soliciten cambio de
carrera, o por reestructuración de la malla curricular del programa en el que
se matricularon.
Artículo 13.- Para que proceda la convalidación, los contenidos de cada
asignatura deberán tener una afinidad mínima del 80% con los de la
Universidad.
Artículo 14.- Únicamente se convalidarán aquellas asignaturas cursadas en
Universidades, Escuelas Politécnicas e Institutos Superiores dentro de los
diez años anteriores a la solicitud, que se contarán desde el último período
académico aprobado, siendo dentro de los 5 últimos años mediante el proceso
normal, y mayor a 5 años mediante prueba de contenidos.
Artículo 15.- No se convalidarán asignaturas en los siguientes casos:
a) Cuando el interesado presente tercera matricula reprobada en cualquiera
de las asignaturas que requieren convalidación. Se omitirán aquellas que
no hacen parte de curriculum de la carrera que está optando.
b) Cuando la asignatura cuya convalidación se solicita, no alcance al menos
el equivalente a la nota mínima de aprobación, requerida por la
Universidad Tecnológica Equinoccial
c) Cuando la asignatura cuya convalidación se solicita tenga prerrequisito y
éste no haya sido cumplido. En este caso se podrá presentar un alcance
de convalidación una vez que apruebe el prerrequisito; y,
d) Cuando la asignatura cuya convalidación se solicita pertenezca a un ciclo
de propedéutico o pre politécnico.
Según el régimen Académico del Consejo de Educación Superior de la
República del Ecuador, en el Capítulo II de reconocimiento u homologaciones
de estudios menciona los siguientes artículos:
8
Articulo 61.- Reconocimiento u homologación de estudios.- El reconocimiento
u homologación de asignaturas, cursos o sus equivalentes, consiste en la
transferencia de horas académicas de asignaturas aprobadas en el país o en
el extranjero, y de conocimientos validados mediante examen, o de
reconocimiento de trayectorias profesionales. Esta transferencia puede
realizarse de un nivel formativo a otro, o de una carrera o programa académico
a otro, dentro de la misma institución de educación superior (IES) o entre
diferentes IES, conforme al presente Reglamento.
Las horas académicas de asignaturas aprobadas se registrarán bajo la
responsabilidad de la institución de educación superior receptora, con la
respectiva calificación o comentario. Este proceso será regulado por cada IES.
Los valores de los procesos de homologación en las IES públicas y
particulares se regularán mediante una tabla anual que deberá expedir el CES
en el primer mes de cada año.
Artículo 62.- Transferencia de horas académicas.- Las horas de un curso o
asignatura aprobada o su equivalente serán susceptibles de transferencia
entre carreras y programas de un mismo o de distinto nivel de formación, en
la misma o diferente IES, conforme a este Reglamento. El CES podrá
supervisar este proceso y promoverá la movilidad académica en los ámbitos
regional, nacional e internacional.
Esta transferencia la solicitará el estudiante y será aprobada por la institución
de educación superior receptora, mediante los siguientes mecanismos de
homologación:
1. Análisis comparativo de contenidos, considerando su similitud y las horas
planificadas en cada asignatura.
2. Validación teórico-práctica de conocimientos.
9
3. Validación de trayectorias profesionales en los casos contemplados en el
presente Reglamento.
Las transferencias de horas académicas serán incorporadas al portafolio
académico del estudiante.
Artículo 63.- Procedimientos de homologación de cursos, asignaturas, o sus
equivalentes.- La transferencia de las horas de asignaturas, cursos, o sus
equivalentes, de un nivel a otro o de una carrera o programa académico a
otro, se podrá realizar por uno de los siguientes mecanismos:
1.- Análisis comparativos de contenidos.- Consiste en la transferencia de
las horas de asignaturas aprobadas a través del análisis de correspondencia
del micro currículo; la referida correspondencia deberá ser de al menos el 80%
del contenido, profundidad y carga horaria. Las IES pueden hacer uso de otros
procesos de evaluación si lo consideran conveniente.
Una vez realizada la homologación, se consignará en el sistema de
calificaciones de la institución, el número de horas y la calificación con la que
se aprobó la asignatura, curso o su equivalente homologado. Esta forma de
homologación, solo podrá realizarse hasta cinco años después de la
aprobación de la asignatura o curso.
2. Validación de conocimientos.- Consiste en la transferencia de las horas
de asignaturas aprobadas, a través de una evaluación teórico-práctica
establecida por la IES que realiza la homologación. La evaluación se realizará
antes del inicio del o de los correspondientes periodos académicos.
2.5 INTELIGENCIA ARTIFICIAL
El ser humano por las capacidades mentales que posee se ha denominado a
sí mismo como Horno sapiens (del latín Homo que significa hombre y sapiens
sabio), y durante años se ha tratado de comprender cómo piensa el ser
10
humano. La inteligencia artificial (IA) no solo intenta comprender cómo piensa
una persona, sino que, también trata de crear entidades inteligentes. La
inteligencia artificial es un área de la ciencia relativamente nueva, que
apareció después de la Segunda Guerra Mundial y su nombre quedó
formalmente registrado en 1956.Tambien la IA Involucra una gran cantidad
de áreas, tanto genéricas como de: aprendizaje, percepción, resolución de
problemas, y específicas como jugar al ajedrez, diagnosticar enfermedades,
conducir coches, etc. (Russell, 2004).
La inteligencia artificial es la ciencia que se encarga de la creación de sistemas
de computación inteligentes, sistemas que puedan pensar como seres
humanos. Inteligencia artificial también puede ser definida como programas
informáticos que realizan actividades o tareas, que al ser realizadas por el ser
humano se consideran inteligentes.(Henao, 2009)
Los campos de estudio de la inteligencia artificial son los siguientes:
Figura 2: Campos de estudio de la inteligencia Artificial (Peña, 2006).
2.6 INGENIERÍA DEL CONOCIMIENTO
Disciplina orientada a la creación de sistemas basados en conocimiento para
analizar y dar solución a los problemas dentro un dominio especifico. Una vez
que se delimita este dominio, hay que extraer y representar los conocimientos 11
del experto. Para representar este conocimiento se realiza una combinación
de estructuras y conocimientos que se usan de forma adecuada por un
programa para emular un comportamiento inteligente. El conocimiento
representa la parte más importante de un sistema experto (SE). (Peña, 2006)
2.7 SISTEMAS EXPERTOS
Los programas que simulan el razonamiento humano se conocen como
sistemas expertos, siendo uno de los productos de más éxito de la inteligencia
artificial. Los sistemas expertos encuentran su ámbito natural de aplicación en
aquellas situaciones donde no es posible obtener por métodos
convencionales una solución estándar o algoritmo, en estos casos la
estrategia que se adopta es simular el mecanismo de razonamiento que
seguiría un experto humano, lo que se conoce como método heurístico. Esto
significa que en un algoritmo el conocimiento es completo, no es fragmentado,
al contrario que el método heurístico que el conocimiento se encuentra
fragmentado en módulos relacionados entre sí. El método heurístico toma
como consideración no solo los datos que ingresa, sino en el contexto que se
los presenta. Sistemas expertos son máquinas que piensan y razonan como
una persona experta lo haría en una cierta especialidad o área en la que se
desenvuelve. (Lahoz, 2004)
Un sistema experto maneja una gran cantidad de datos y los manipula de tal
manera que, el resultado sea inteligente y tenga significado para poder
responder a preguntas y resolver problemas incluso más rápido que un
experto humano. Un sistema experto debe ser capaz de: Procesar y
memorizar información, Aprender y razonar en deterministas e inciertas
situaciones, comunicar con los seres humanos y otros sistemas expertos,
Tomar apropiadas decisiones y explicar por qué se han tomado tales
decisiones.(Pino, Gómez,Martínez,2001).
12
2.7.1 ARQUITECTURA DE UN SISTEMA EXPERTO
Dentro de la arquitectura de un sistema experto se consideran tres
componentes básicos: la base de conocimiento, la base de hechos y el motor
de inferencias.
Figura 3 Arquitectura de los Sistemas Expertos. (Pino, Gómez, Martínez, 2001)
La base de conocimiento está formada por toda la información disponible en
el campo donde se va a desarrollar la aplicación, esta información contiene
los hechos, las creencias, y los heurísticos que se adquieren con la
experiencia.
La base de hechos está formada por los datos sobre alguna situación en
concreto que va ser considerada, además puede almacenar los modos de
razonamiento, de esta forma con los requerimientos del usuario final el
sistema es capaz de explicar cómo ha conseguido los resultados finales.
13
El Motor de Inferencia es un programa que se encarga de gestionar la
información existente en la base de conocimiento y en los datos de la base de
hechos, para construir una serie de razonamientos que conducen a los
resultados.
2.7.2 VENTAJAS Y DESVENTAJAS
Las ventajas de los “sistemas expertos” en comparación con los “expertos
humanos” son las siguientes:
Están disponibles a cualquier hora del día y de forma interrumpida.
Pueden duplicarse, lo que permite tener tantos sistemas expertos como
se necesiten.
Pueden situarse en cualquier lugar donde sea necesario.
Permiten tener decisiones homogéneas efectuadas según las directrices
que se les fijen.
Son fáciles de reprogramar.
Pueden perdurar y crecer en el tiempo de forma indefinida.
Pueden ser consultados por personas u otros sistemas informáticos.
A menos que se le cambie el diseño contestará de la misma manera.
Los sistemas expertos pueden almacenar su conocimiento para cuando
sea necesario poder aplicarlo.
Replicabilidad y estabilidad asociado a la seguridad que provee.
Las desventajas y limitaciones de los sistemas expertos son los siguientes:
Para actualizarlo o realizar nuevas versiones se necesita de
reprogramación, lo que implica elevados costos en dinero y tiempo.
Programas poco flexibles a cambios.
Difícil acceso a la información no estructurada.
Los sistemas expertos carecen de sentido común, significa que para un
sistema experto no hay nada obvio.
Es complicado que un sistema experto aprenda de sus errores. 14
No son capaces de distinguir las cuestiones relevantes de las secundarias.
(Badaró, Ibáñez, Agüero 2013).
2.7.3 ADQUISICIÓN DEL CONOCIMIENTO Y TÉCNICAS DE ADQUISICIÓN
En esta fase se identifica las piezas claves del conocimiento como por ejemplo
conceptos, reglas y estrategias, las cuales permiten establecer las teorías
sobre la organización(Duque & Urrego, 2013). La adquisición del
conocimiento significa transferir el conocimiento desde la fuente a la base de
conocimientos del sistema, que implica aplicar alguna técnica para extraer el
conocimiento del especialista, interpretar los datos para reconocer el
conocimiento fundamental, y construir un modelo de representación. Las
fuentes del conocimiento se refieren a los expertos humanos, libros, y datos
experimentales agrupados en bases de datos.
La adquisición del conocimiento tiene tres fases: sacar datos del dominio que
interesa, elaborar los datos para obtener información, codificar el
conocimiento de alguna forma.
Las técnicas más representativas para la adquisición del conocimiento se
dividen en: manuales y técnicas basadas en el ordenador. Las más simples
se establecen en un contacto directo entre el ingeniero del conocimiento y un
experto en el dominio, sin usar herramientas especializadas.
Las técnicas manuales son costosas y consumen tiempo, para simplificar el
proceso, se han construido una variedad de técnicas asistidas por ordenador,
en las que se pone en contacto la máquina con la fuente de conocimiento. El
ordenador pregunta al especialista al igual que lo haría un ser humano (en
este sentido no se diferencia de lo que haría un sistema manual). Pueden ser
interactivas (o semiautomáticas) y de aprendizaje automático.(Samper, n.d.)
15
2.7.4 ETAPAS EN EL DESARROLLO DE UN SISTEMA EXPERTO
El desarrollo de un sistema experto comprende las siguientes etapas
Identificación. Desarrolladores y Expertos identifican los problemas y
subproblemas, se formulan los objetivos globales del sistema y definen las
necesidades de hardware y software.
Conceptualización. Después de interacción con el experto, el desarrollador
define los objetos y sus interrelaciones, los mecanismos de solución de
problemas y los datos que el experto utiliza en dichas soluciones.
Formalización. Los conceptos y relaciones identificados se expresan
formalmente utilizando algún mecanismo de representación dado por las
herramientas disponibles y las características propias del problema.
Implementación. El conocimiento formalizado se incorpora al sistema
experto, utilizando alguna herramienta de desarrollo, para convertir el conjunto
de reglas en un programa computacional. El conocimiento almacenado se
organiza de forma que al reflejar el mecanismo dé razonamiento del experto.
El resultado de esta etapa es un programa factible de ser probado.
Prueba. Se evalúa el desempeño del sistema experto, revisando su
capacidad para plantear soluciones a problemas y cumplir los requisitos
impuestos por los expertos. La evaluación la llevan a cabo los expertos
quienes sugieren aspectos en que el sistema debe ser mejorado. En esta
etapa se inicia el desarrollo incremental. Dependiendo del resultado de las
pruebas, será necesario volver a la Implementación o inclusive a etapas
anteriores.
Integración. Una vez terminado el desarrollo del sistema experto comercial,
éste se integrará a su entorno de trabajo, lo cual incluye la conexión a bases
de datos, equipos e instrumentos, y la capacitación de los usuarios.
16
Mantenimiento. Esta etapa considera la modificación de la Base de
Conocimientos, lo que dependiendo del sistema puede ser realizado por un
usuario experto o el desarrollador.
2.8 METODOLOGÍA DE DESARROLLO
2.8.1 HERRAMIENTAS TÉCNICAS
Las herramientas técnicas para la creación de un sistema experto se
representan como un modelo de ciclo de vida, donde se representa la
evolución del sistema. El clico de vida se subdivide, y pretende alcanzar metas
más concretas.
Figura 4: Modelo ciclo de vida de la creación de un SE. (Peña, 2006)
El proceso de selección del problema se descompone en varios plazos,
primero se investiga el problema al cual se va dar solución, luego se procede
a la selección de los candidatos, se hace un análisis detallado de la
17
aplicabilidad del dominio, donde se toman en cuenta los siguientes criterios:
la tarea demanda razonamiento experto, los problemas de dominio se
solucionan usando conocimiento simbólico, la tarea no debe requerir manejo
físico extenso. Posterior a esto se realiza un análisis de la disponibilidad
experta, que es cuando el experto es capaz de describir el conocimiento de
dominio, y debe estar en la capacidad de responder los problemas del mismo.
Se debe también dimensionar los alcances del proyecto y por último se realiza
un análisis de costo beneficio.
Una vez que se selecciona el problema la próxima fase es Construcción del
prototipo que representa una pequeña parte del sistema final. Los pasos en
este proceso son: primero está la adquisición de conocimiento inicial, el
modelo de consulta general, selección del mecanismo de inferencias, se
determina el modelo de la representación del conocimiento, selección de la
herramienta, se sigue con la implementación del prototipo, a este se le
realizan pruebas necesarias para la demostración del prototipo y la revisión
del proyecto. El prototipo es analizado para determinar la validez tanto del
problema como el de las técnicas de implementación.
La tercera fase es la formalización que tiene como propósitos: registrar las
decisiones respecto a las estrategias de implementación, forzar a que la
planeación se haga antes de realizar la implementación completa, posibilitar
el desarrollo concurrente de pruebas y el soporte de medios a largo plazo,
también se realiza un control de las versiones.
Una vez que el ingeniero de conocimiento interpreta las especificaciones
funcionales y del diseño establecido en la formalización se procede a realizar
la construcción del sistema experto, donde puede crear y editar la base de
conocimiento necesario en el funcionamiento del mismo, se codifican y prueba
cada uno de los módulos depurando las fallas y errores que se detecten.
Como siguiente paso se tiene la Implementación, donde se procede a integrar
el conocimiento completo y datos a las bases respectivas, se realizan pruebas
18
piloto al sistema bajo las condiciones reales de trabajo, y se procede a realizar
los ajusten finales. Se hace la presentación ante los usuarios, con su
respectiva documentación.
Por último se realiza la Evaluación donde se evalúa comparando las
respuestas que proporciona el sistema experto con las que ofrece el experto
humano.
La evolución a largo plazo se da cuando hay incremento de funcionalidades,
correcciones, adiciones a la base del conocimiento, expansión del domino y
revisiones requeridas por los expertos. (Peña, 2006).
2.8.2 TIPOS DE SOFTWARE APROPIADOS A LA CREACION DE SISTEMAS
EXPERTOS
Existen varias herramientas para la creación de sistemas expertos, si bien se
pudiera considerar los leguajes de programación convencionales, por ejemplo
Java, C, pero es más recomendable utilizar aquellos lenguajes que
pertenecen al campo de inteligencia artificial, a continuación se describen
brevemente tecnologías disponibles para la construcción de un sistema
experto:
PROLOG.- Es un lenguaje de programación lógica basado en reglas, su
sintaxis consiste en declarar hechos, hacer preguntas y definir reglas sobre
objetos y sus relaciones.
CLIPS.- Proviene de sus siglas C Language Integrated Production System
(sistema de producción integrado al lenguaje C), su principal ventaja es que
puede funcionar con otros sistemas existentes.
JESS.- Es un proyecto que tuvo sus orígenes en CLLIPS pero fue escrito en
java. Comparte varios conceptos de diseño y similitud con respecto a la
19
sintaxis con CLIPS e implementa la especificación de referencia JSR94 (Java
Speficication Request for Rules Enginne API).
Drools.- Es la implementación y ampliación del algoritmo Rete, que consiste
en una red de nodos interconectados con diferentes características que
evalúan las entradas mediante la propagación de resultados del siguiente
nodo cuando hay coincidencias. Drools ofrece herramientas de integración
con java, escalabilidad y una división clara entre los datos y una lógica de
dominio.
Jena.- Framework desarrollado en tecnología java que incluye un motor de
inferencia basado en normas, una Interfaz de programación de aplicaciones
(API) y un motor de búsqueda. (Jena, 2013)
JEOPS.- Añade encadenamiento hacia adelante, normas de producción de
primer orden mediante programación declarativa para facilitar el desarrollo de
los sistemas expertos.
OpenCisyc.- Es la versión más completa de base de conocimiento y el motor
de razonamiento de sentido común con respecto al código abierto de la
tecnología CyC.
2.8.3 MÉTODOS
2.8.3.1 Metodología XP
La Metodología XP, que tiene como objetivo el proceso ágil para ser usado
básicamente en organizaciones grandes.
La programación extrema usa un enfoque orientado a objetos y engloba un
conjunto de reglas y prácticas que ocurren en el contexto de cuatro actividades
estructurales: planeación, diseño, codificación y pruebas.
20
Planeación. Es la actividad para recabar requerimientos que permite que los
miembros técnicos del equipo XP entiendan el contexto del negocio para el
software y adquieran la sensibilidad de la salida y características principales y
funcionalidad que se requieren, este proceso lleva a la creación de algunas
historias, que describen la salida necesaria, características y funcionalidad del
software que se va a elaborar.
A medida que avanza el trabajo el cliente puede agregar historias, como
cambiar el valor(es decir una prioridad) de una ya existente, descomponerlas
o eliminarlas. Entonces, el equipo xp reconsidera todas las entradas faltantes
y modifica sus planes en consecuencia.
Diseño. Es el proceso mediante el cual se realiza un diseño sobre una
representación más compleja. A demás, el diseño guía una implementación
de una historia conforme se escribe.
Xp estimula el rediseño, técnica de construcción que también es un método
para la optimización del diseño en forma tal que no altere el comportamiento
externo del código, pero si mejora la estructura interna. Rediseñar significa
que el diseño se hace de manera continua según se construye el sistema.
Codificación. Después de que las historias han sido desarrolladas no inicia
la codificación, sino que desarrolla una serie de prueba a cada una de la
historias que se incluirán en la entrega en curso. Una vez que el código está
terminado se le aplica de inmediato una prueba unitaria, con lo que se obtiene
retro alimentación instantánea para los desarrolladores.
Pruebas. Se realizan pruebas unitarias, se centran en un componente de
software individual, en un esfuerzo por descubrir errores locales del
componente. A medida que se realizan las pruebas unitarias en un grupo de
prueba universal, las pruebas de integración y validación del sistema pueden
efectuarse a diario.
21
Las pruebas de aceptación xp, se centran en las características y
funcionalidad generales del sistema que son visibles y revisables por parte del
cliente. (Sommerville, 2005).
2.8.4 LENGUAJE UNIFICADO DE MODELADO UML
El lenguaje unificado de modelado o UML (Unified Modeling Language) es un
lenguaje grafico de modelado de sistemas y procesos, basado en la
orientación de objetos. UML unifica varios métodos, principalmente los
métodos de Booch, Rumbaugh y Jacoboson, en la actualidad UML es el
lenguaje de sistemas de software más conocido y está respaldado por
la OMG (Object Management Group). (Laurent & Fien van der, 2005).
Se dice que UML es un lenguaje de modelado, y no un método por lo que la
mayor parte de los métodos consisten, al menos en un principio, en un
lenguaje y proceso para modelar; el lenguaje de modelado es la notación que
se valen los métodos para expresar los diseños; y el proceso es la orientación
que nos dan sobre los pasos a seguir para hacer el diseño. (Addison Wesley,
1999).
UML cuenta con 14 tipos de diagramas, los cuales muestran diferentes
aspectos de las entidades representadas. Entre ellos están:
• Diagramas de clase, describen los tipos de objetos en un sistema, y las
diversas relaciones existentes entre ellos, muestran también los
atributos y operadores de una clase, y las restricciones a las que se
ven sujetos, según la forma en que se conecten los objetos.
22
Figura 5: Ejemplo diagrama de Clases (Fowler & Scott, 1999).
• Diagramas de caso de uso, es una interacción entre un usuario y un
sistema de cómputo, el caso de uso se obtiene hablando con los
usuarios habituales y analizando las distintas cosas que deseen hacer
con el sistema, permitiendo así capturas los requerimientos
funcionales.
23
Acceder sistema
Salir sistemaCoordinador
Figura 6: Ejemplo Diagrama Caso de Uso (Fowler & Scott, 1999).
• Diagramas de secuencia, describen cómo los grupos de objetos
colaboran para producir un comportamiento, mostrando los mensajes
que son pasados entre los objetos.
Figura 7: Ejemplo diagrama de Secuencia (Fowler & Scott, 1999).
24
2.9 ALGORITMOS PARA LA COMPARACIÓN DE CADENA DE
CARACTERES
Existen varios algoritmos para crear un conocimiento mediante patrones de
datos en lo que se denomina como minería de datos.
2.9.1 RETE
Es un algoritmo de emparejamiento que sirve para comparar un conjunto de
patrones o reglas con un conjunto de objetos y así determinar todos los
posibles emparejamientos o coincidencias, reduce el tiempo necesario para
calcular las reglas que pueden ser activadas evitando iterar sobre la memoria
de trabajo y sobre la memoria de producción. El algoritmo está divido en dos
partes tiempo de compilación y tiempo de ejecución. La compilación del
algoritmo genera una red de discriminación con las reglas en la memoria de
producción, la misma que se utiliza para filtrar los datos, la idea es filtrar los
datos mientras se propagan a través de la red, al inicio hay muchos nodos que
coinciden con el patrón pero mientas se avanza el número de coincidencias
se va reduciendo.
2.9.2 ALGORITMO DE AGRUPAMIENTO (CLUSTERING)
Es un procedimiento que agrupa en un mismo clúster o grupo aquellos
documentos más similares entre si y los menos similares en otros clústers.
Los rasgos seleccionados para representar a los documentos, y el peso o
prioridad de cada documento que se le aplica, afectan directamente al
momento de realizar la semejanza entre estos documentos. El algoritmo tiene
varias formas de representar a los documentos, la forma tradicional es
utilizando las palabras que en ellos aparecen en su forma tematizada, otra
manera de representación es la utilización palabras clave seleccionadas a
25
través de diferentes factores, por ejemplo: la posición, tema, etc.(González &
Martínez, 2006)
Uno de los modelos de representación de documentos utilizados es el modelo
de espacio vectorial (MEV), en este modelo cada documento se considera
como un vector, donde cada componente tiene un peso de cada rasgo. En
esta representación es sencillo establecer la relación de similitud y diferencia,
ya que únicamente se necesita realizar una función.
Otro modelo de representación es el índice de latencia semántica, permite
establecer similitudes semánticas entre textos. Parte dela matriz rasgo
documento, M, donde mij representa la frecuencia del rasgo i en el documento
j.
m’ij=L(i.j)G(i)
Donde L(ij) mide la importancia del rasgo i en el documento j, Gi es el peso
global que mide la importancia del rasgo i a nivel de corpus (conjunto de textos
de diversas clases, ordenadas y clasificados que sirven como base de una
investigación).
Para analizar la estructura semántica latente de asociación entre documentos,
se debe obtener la descomposición en valores singulares (SVD) de la matriz
M.
2.9.3 ALGORITMO DE LEVENSHTEIN (DL)
El algoritmo se utiliza para la identificación de menciones, la distancia de
Levenshtein es una métrica que mide la similitud entre dos cadenas, como
una simple forma tenemos D(x,y), se obtiene contando el mínimo número de
caracteres de inserciones, borrados y sustituciones que hay que hacer para
transformar de una cadena x a una cadena y.
26
Hay dos formas de similitud de Levenshtein, la distancia de edición que mide
la similitud por número de operaciones para pasar de una palabra a otra, y la
medida de similitud de Jaccard que se basa en símbolos y contabiliza las
diferencias debidas a la posición de los mismos. (Apostolico & Galil, 1997).
Explicación Algoritmo para la comparación de contenidos de Materias:
a) Toma la primera palabra del contenido seleccionado del syllabus de
la material a homologar. b) Toma la primera palabra del contenido del syllabus de la materia de
la carrera de la UTE. c) Calcula la longitud de cada una de las palabras y las almacena. d) Crea la matriz donde se realizará las operaciones necesarias para
obtener la distancia de diferencia.
Tabla 3: Algoritmo Levenshtein
E S T R U C T U R A 0 1 2 3 4 5 6 7 8 9 10 S 1 1 1 2 3 4 5 6 7 8 9 E 2 1 2 2 3 4 5 6 7 8 9 N 3 2 2 3 3 4 5 6 7 8 9 A 4 3 3 3 4 4 5 6 7 8 8 L 5 4 4 4 4 5 5 6 7 8 9 E 6 5 5 5 5 5 6 6 7 8 9 S 7 6 5 6 6 6 6 7 8 8 9
e) Sea n1 la longitud de la primera palabra y n2 la longitud de la
segunda palabra y m una matriz de enteros m[n1+1][n2+1]; para i=0
hasta n1 , y j=0 hasta n2. Se recorre cada fila y compara cada
carácter de la primera palabra con cada carácter de la segunda
palabra, tomando nota de su posición en cada cadena y se asigna
a cada elemento de m el mínimo entre: el elemento de la fila superior
más uno, el elemento de la izquierda más uno y: si en la
comparación entre las dos letras no es igual se toma el elemento
anterior de la diagonal más uno, si son iguales no se le suma el uno. 27
f) Toma el ultimo valor de la tabla esta es la diferencia que hay entre
las dos palabras comparadas. Si el valor es cero significa que las
dos palabras son iguales. Si la diferencia es de una letra está dentro
del margen de error.
2.9.4 ALGORITMO BOYER MORE
Es un algoritmo de búsqueda de cadenas desarrollado por Bob Boyer y
Strother Moore, la idea es buscar un patrón de derecha a izquierda. Si se
encuentra una diferencia entre el caracter del texto buscado y el último
caracter del patrón, y si tampoco se encuentra este caracter en todo el patrón,
este se detiene y seguiría al siguiente patrón, al saltarse estos primeros
caracteres se haría menos comparaciones haciendo que el algoritmo sea más
rápido. (Ziviani, 2007)
2.10 JAVA-COMPONENTES
2.10.1 Swing
Biblioteca gráfica para Java, incluye elementos para interfaz gráfica de usuario
tales como cajas de texto, botones, desplegables y tablas. (Osorio, 2007).
2.10.2 SwingX
Biblioteca gráfica para java, incluye componentes nuevos y mejorados de la
herramienta GUI Swing. Se centra en los componentes propios del Swing.
(Diciembre 14, 2014, de https://swingx.java.net/)
28
2.10.3 Jpedal
Conjunto de librerías Java para la impresión, visualización, conversión,
búsqueda y extracción de información de archivos en formato PDF.
(Recuperado Diciembre 14, 2014, de https://www.idrsolutions.com/).
2.10.4 iReport y JasperReport
JasperReport es una biblioteca para la ejecución y generación de salida de
informes en una aplicación java, iReport es un diseñador visual de informes
para JasperReports. (Toffoli, 2009)
2.11 MYSQL
Mysql es un sistema de gestión de base de datos relacional, multihilo y
multiusuario creado por la empresa Mysql AB, desarrollada como software
libre con esquema de licenciamiento dual, donde los usuarios pueden optar
por utilizar el software MySQL como un producto Open Source bajo los
términos de la Licencia Pública General de GNU o pueden adquirir una
licencia comercial estándar. Mysql es utilizado en aplicaciones web y
herramientas de seguimiento de errores. Es una base de datos muy rápida en
la lectura cuando utiliza el motor no transaccional MyISAM, pero puede
provocar problemas de integridad en entornos de alta concurrencia en la
modificación. En aplicaciones web hay baja concurrencia en la modificación
de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace
a MySQL ideal para este tipo de aplicaciones. (Fossati, 2014).
2.12 RECONOCIMIENTO ÔPTICO DE CARACTERES OCR
Actualmente los documentos son digitales provenientes de un editor o un
programa procesador de texto, pero existen documentos que se tienen solo 29
en papel y que la gente desea tenerlo en formato digital, para esto hoy en día
se escanean estos documentos pero su texto no es manipulable, para el
reconocimiento de caracteres de aquellos documentos, existen herramientas
denominadas OCR por sus siglas en inglés Optical Character Recognition
(reconocimiento óptico de caracteres), sin embargo, la copia digital obtenida
puede contener errores, por ello cuando más nítido sea el documento original
habrá menos posibilidad de errores de reconocimiento.( Aguilera & Morante,
2012).
30
3. METODOLOGÍA
3.1 METODOLOGÍA DE DESARROLLO DEL SOFTWARE
El trabajo de titulación se lo realizó en la carrera de Ingeniería Informática y
Ciencias de la Computación de la Facultad de Ciencias de la Ingeniería de la
Universidad Tecnológica Equinoccial, desarrollando una investigación
descriptiva y sistemática enfocada en la creación de un sistema que permita
realizar la homologación de materias de los estudiantes que vienen de otras
universidades. La Facultad permitió conocer cómo las personas encargadas
de las homologaciones realizan dicha tarea, para fines de esta investigación
se utilizó un método inductivo para describir los pasos a seguir para el fin
mencionado y todos sus requerimientos, utilizando como práctica de
investigación la entrevista, ya que, es una técnica valiosa para la recopilación
de datos, además permite establecer un diálogo con los actores principales
para la obtención de información detallada de la investigación esta
información fue documentada en Historias de Usuario.
La entrevista fue dirigida a aspectos específicos como el formato de los
syllabus de la carrera de ingeniería Informática y Ciencias de la Computación
y los entregados por los estudiantes, el manejo de porcentajes en la
homologación de materias, la cantidad máxima de materias con las que se
puede homologar una asignatura de la carrera, número de años máximo de
antigüedad para que un syllabus pueda ser homologado, porcentaje mínimo
de créditos y de contenidos que debe obtener para que la materia sea
homologada.
Después de un análisis exhaustivo entre las metodologías y técnicas de
desarrollo de software que permiten obtener el resultado deseado para este
trabajo de titulación, se optó por escoger la metodología XP “Extreme
Programming”, debido a su característica, la cual es que, no tiene que
31
adoptarse por completo toda la metodología. Por tanto es adaptable a las
necesidades, ya que no sigue un régimen muy estricto para poderla seguir.
Esta metodología mejora un proyecto de software en cinco aspectos
esenciales: la comunicación, la sencillez, la retroalimentación, el respeto y el
valor. La sencillez de su diseño al empezar con lo necesario y requerido y
trabajar desde ahí. Reciben retroalimentación probando su software a partir
del primer día. Se entrega el sistema a los clientes tan pronto como sea
posible e implementar cambios como se sugiere. La comunicación porque se
está en constante reunión y crear un software requiere de sistemas
comunicados entre sí.
3.1.1 FASE 1: PLANIFICACIÓN DEL PROYECTO
Durante esta fase se realizó entrevistas con el coordinador de la carrera de
Ingeniería Informática y Ciencias de la Computación y docentes quienes son
los actores fundamentales, recopilando la información y requerimientos
necesarios para el desarrollo del proyecto, también se analizó el marco legal
el cual se rige a las normativas para realizar las debidas homologaciones
dentro de la Universidad Tecnológica Equinoccial. Este procedimiento de
toma de información y requerimientos se lo fue realizando durante el
desarrollo del sistema, para la documentación de toda esta información se
utilizó historias de usuario como se muestra en la siguiente tabla.
Tabla 4: historia de Usuario
Historia de usuario
Numero: Nombre:
Usuario:
Modificación de historia número: Iteración asignada:
32
Prioridad en Negocio: Alta
(Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: Medio
(Alto / Medio / Bajo)
Puntos Reales:
Descripción:
Observaciones:
Para que la planificación y el análisis de requerimientos fueran exitosas era
indispensable reconocer el procedimiento profesional que se le brinda a cada
syllabus entrante, saber el procedimiento realizado por cada profesional de la
materia para que su resultado fuera lo más justo posible y conocer el
porcentaje mínimo que debe cumplir la materia, número de horas para ser
homologada y periodo de tiempo de aprobación.
El coordinador proporcionó los syllabus de las materias de la carrera, los
syllabus de las materias de estudiantes que han aplicado para homologación,
también un documento Excel en el cual tienen estudiantes de las distintas
universidades con las materias aplicadas para la homologación con sus
respectivos porcentajes obtenidos en Contenidos y Créditos con cada materia
de la carrera de Ingeniería Informática y Ciencias de la Computación de la
Universidad Tecnológica Equinoccial.
3.1.2 FASE 2: DISEÑO
En esta fase se realizó un análisis de la arquitectura del sistema y diseño
principal del software utilizando el Lenguaje de Modelado Unificado UML, para
33
visualizar, especificar y construir los artefactos de un sistema de software
intensivo. (Pressman, 2010), con el fin de comprender y especificar con más
facilidad el sistema de homologación de materias. También se hizo un análisis
de la estructura de la base de conocimiento y el modelado de la base de datos,
realizando también un diseño previo de las pantallas del programa.
Para esto fue indispensable utilizar diagramas de caso de uso, diagramas de
secuencia, diagramas de clases, diagramas de objetos, diseño conceptual y
maqueta de pantallas.
3.1.3 FASE 3: CODIFICACIÓN
Después de haber obtenido los requerimientos y realizado el diseño del
sistema, se procedió a desarrollar el software, con la utilización de
herramientas de software libre y multiplataforma como Swi-Prolog, Java SE y
Mysql, también se empleó el OCR de Adobe Acrobat XI pro. Realizando
semanalmente prototipos funcionales basándose en los casos de uso
anteriormente diseñados. En esta fase se probaron los distintos algoritmos
que se investigaron para cumplir con el objetivo principal del trabajo de
titulación, el cual es hacer la comparación de los syllabus de los nuevos
estudiantes con los syllabus de las materias de la carrera de Ingeniería
Informática y Ciencias de la Computación, los algoritmos que se probaron
fueron los siguientes: Algoritmo Levenshtein, Algoritmo de Búsqueda Boyer
Moore.
3.1.4 FASE 4: PRUEBAS
Para el buen desempeño y garantizar la calidad del sistema es necesario la
aplicación de las siguientes pruebas formales para el tipo de sistema a
realizar. Las pruebas que se ejecutarán al sistema serían las siguientes:
• Pruebas Unitarias
34
• Pruebas de integración
Estas pruebas servirán para detectar problemas y/o errores que puedan
presentarse en la aplicación.
35
4. ANÁLISIS Y DISCUSIÓN DE RESULTADOS
La finalidad primordial de esta investigación fue automatizar el proceso de
homologación para materias provenientes de otra universidad, siendo parte
importante la extracción de información de los syllabus escaneados de los
nuevos estudiantes.
A continuación se procede al desarrollo de la metodología XP detallando cada
fase descritas en la metodología.
4.1 FASE PLANIFICACIÓN
El análisis de requisitos es la una de las tareas más importantes para el
desarrollo de un software ya que es la fase donde se documenta todas las
necesidades del usuario, es por esto que, para el trabajo de titulación se
seguirá el estándar IEEE 830,
“La IEEE indica que un buen documento de requisitos debe contemplar toda
la información presentada en dicho estándar, aunque propone una
organización de la información, no exige estrictamente el formado de dicha
información” (IEEE Computer Society, 1998).
4.1.1 INTRODUCCIÓN
4.1.1.1 Propósito
Describir y documentar los requerimientos que debe cumplir el sistema a
desarrollar, los cuales se obtuvieron a través de entrevistas y fueron
registradas las necesidades mediante historias de usuario.
36
4.1.1.2 Ámbito del Sistema
Actualmente la Carrera de Ingeniería Informática y Ciencias de la
Computación de la Facultad de Ciencias de la Ingeniería de la Universidad
Tecnológica Equinoccial no cuenta con un sistema de automatizado de
homologación de materias, por lo que en este documento se especifican los
requisitos necesarios para el desarrollo de una aplicación informática.
4.1.2 DESCRIPCIÓN GENERAL
4.1.2.1 Perspectiva del Producto
El siguiente producto es el Diseño de un sistema de homologación de materias
para los estudiantes de otras universidades que desean homologar sus
materias en la carrera de Ingeniería Informática y Ciencias de la Computación
de la Universidad Tecnológica Equinoccial, permitiendo agilizar el proceso de
comparación de contenidos.
4.1.2.2 Funciones del Producto
Las principales funciones que el sistema se detalla a continuación:
Permite ingresar y editar los syllabus de las materias de la carrera
Crear nueva universidad e ingresar los syllabus de las materias a
homologar.
Homologación de materias.
Reportes de estudiantes que han realizado la homologación.
Administración del sistema.
37
4.1.2.3 Identificación de usuarios participantes
El único usuario que va utilizar el sistema es el Coordinador de la carrera de
Ingeniería Informática y Ciencias de la Computación quien es el encargado de
enviar los resultados de las materias que se homologan.
4.1.2.4 Restricciones
La limitación del proyecto es su dependencia a un software externo para
descifrar el texto proveniente de los syllabus escaneados, ya que por la mala
calidad de la imagen no se diferencian las letras y no las convierte en una
manera óptima.
4.1.3 REQUISITOS ESPECÍFICOS
4.1.3.1 Requisitos de Interfaces
Ingresar y Editar Syllabus de la Carrera
Requerimientos Funcionales
El usuario podrá cargar los syllabus de cada materia de la Carrera de
Ingeniería Informática Y Ciencias de la computación según el área a la
que corresponda.
El usuario podrá crear y eliminar áreas y materias.
El usuario tendrá opción de editar, crear o eliminar los syllabus de las
materias de la carrera, si fuese el caso de que se realice algún cambio
en los contenidos o en la malla curricular de las mismas.
Ingreso Información del Estudiante
Requerimientos Funcionales
38
El usuario puede ingresar los datos personales del estudiante los
cuales son: Nombres, Apellidos, Cédula de Identidad.
El usuario podrá ingresar el número de trámite y fecha en la que se
hace la homologación.
El usuario podrá ingresar el nombre de la universidad y carrera de la
cual viene el estudiante.
El usuario podrá escoger de las universidades y carreras existentes, a
cual pertenece el estudiante que desea realizar la homologación de
materias e ingresará las materias a homologar con sus respectivos
syllabus.
El usuario podrá visualizar el porcentaje de los contenidos y créditos de
las materias convalidadas con su respectivo detalle.
Búsqueda de Estudiante
Requerimientos Funcionales
El usuario podrá consultar estudiantes que han realizado la
homologación de las materias, esto podrá hacer ya sea por nombre o
número de cédula.
Usuario podrá consultar los estudiantes que han realizado la
homologación de materias en un determinado período, seleccionando
la fecha de inicio y fecha de fin.
Usuario podrá obtener reportes de los estudiantes buscados.
4.1.3.2 Requisitos no Funcionales
Rendimiento
El tiempo de respuesta de la comparación de temas del proceso de
homologación sea óptimo dando un resultado certero.
39
Seguridad
El acceso al sistema debe estar restringido por el uso una clave asignada al
usuario a la cual se le realizará un proceso de encriptación AES (Advanced
Encryption Standard), implementada en el DBMS Mysql
Disponibilidad
Una vez instalado el sistema en la máquina del usuario, este estará disponible
las 24 horas del día, los 7 días a la semana y los 365 días del año.
Mantenibilidad
El sistema estará totalmente documentado para que su mantenimiento sea
fácil de realizar, pudiendo así en un futuro aumentar los procesos que sean
necesarios.
4.1.3.3 Historias de usuario
Tabla 5 Historia usuario N1 Syllabus
Historia de usuario
Numero:1 Nombre: Syllabus
Usuario: Coordinador
Modificación de historia número: Iteración asignada:
Prioridad en Negocio: Alta (Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: Medio (Alto / Medio / Bajo)
Puntos Reales:
Descripción:
Ingresar los syllabus de las materias de la Carrera de Ingeniería Informática con su respectivo número de crédito.
40
Transformar los syllabus de los nuevos estudiantes ya que se encuentran escaneados.
Observaciones: Los nuevos estudiantes entregan los syllabus de las materias a homologar de manera física, estos son escaneados y entregados a los coordinadores de cada carrera, quienes entregan a los profesores de cada área para que realicen la respectiva comparación de contenidos.
Tabla 6 historia usuario N2 Homologación
Historia de usuario
Numero:2 Nombre: Homologación
Usuario: Coordinador
Modificación de historia número: Iteración asignada:
Prioridad en Negocio: Alta (Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: Medio (Alto / Medio / Bajo)
Puntos Reales:
Descripción:
La homologación de los syllabus de los estudiantes nuevos consiste en una comparación de los syllabus de las materias de la carrera de Ingeniería Informática y Ciencias de la computación con los syllabus de las materias que los nuevos estudiantes proporcionan, esta consiste en analizar los contenidos de cada materia revisando tema por tema y verificando con los contenidos de las materias que se imparten en la carrera.
La coincidencia de los contenidos y créditos debe ser mayor o igual al 80 %.
Los syllabus no deben pasar los 5 años de antigüedad.
Observaciones: Actualmente el proceso de homologación lo realiza el profesor que dicta la materia que se desea convalidar, lo cual es realizado manualmente.
41
Tabla 7 Historia de usuario N3 Porcentajes de Homologación
Historia de usuario
Numero: 3 Nombre: Porcentajes de Homologación
Usuario: Profesor
Modificación de historia número: Iteración asignada:
Prioridad en Negocio: Alta (Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: Medio (Alto / Medio / Bajo)
Puntos Reales:
Descripción:
Para saber qué porcentaje pertenece a cada unidad y cada tema se divide el 100% por el número de unidades que tiene la materia de la carrera obteniendo así el porcentaje correspondiente a la unidad, y para saber el porcentaje de cada tema se divide el porcentaje correspondiente a la unidad por el número de temas contenido en la unidad.
Observaciones:
Tabla 8 Historia de usuario N4 Resultados de homologación
Historia de usuario
Numero: 4 Nombre: Resultados homologación
Usuario: Coordinador
Modificación de historia número: Iteración asignada:
Prioridad en Negocio: Alta (Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: Medio (Alto / Medio / Bajo)
Puntos Reales:
Descripción:
Que se presenten las materias homologadas con los porcentajes obtenidos en la comparación de contenidos, el porcentaje de los créditos y el detalle de
42
con que materia o materias se obtuvieron dichos porcentajes, también que se pueda visualizar los temas con los que se encontró coincidencia.
Búsqueda de los estudiantes que homologaron y que desplegué la lista de materias homologadas y no homologadas.
Se pueda realizar un reporte de los resultados.
Observaciones
4.1.4 DOCUMENTACIÓN PROPORCIONADA
4.1.4.1 Syllabus de las materias de la carrera
Los syllabus de las materias de la Carrera que fueron proporcionados por el
coordinador se encuentran en formato PDF como se muestra a continuación.
Figura 8 Archivo syllabus de las materias de la carrera
43
4.1.4.2 Syllabus de los estudiantes que han homologado
Los syllabus de los estudiantes que van a homologar se encuentran
escaneados y en formato PDF.
Figura 9 Archivo syllabus de los estudiantes a homologar
4.1.4.3 Archivo Excel
El coordinador tiene guardado la información de los estudiantes que han
homologado en un documento Excel, este archivo muestra los porcentajes
que los estudiantes obtuvieron al homologar sus materias con las de la carrera
de Informática y Ciencias de la computación de la Universidad Tecnológica
Equinoccial, el mismo que se encuentra organizado por universidades y los
estudiantes de esas universidades.
Figura 10 Archivo Excel de Homologaciones realizadas
44
4.2 FASE DE DISEÑO
4.2.1 ARQUITECTURA DEL SISTEMA
Para el desarrollo de este Sistema de Homologación de Materias para la
Carrera de Ingeniería Informática y Ciencias de la Computación se ha
determinado una arquitectura de un sistema experto, basándose
principalmente en la utilización de software libre para su implantación, la
arquitectura de un sistema experto consta de los tres componentes básicos
mencionados anteriormente los cuales son: base de hechos, base de
conocimientos y motor de inferencia.
• Para la base de hechos y de conocimiento se utilizaría la herramienta Swi-
Prolog,
• El motor de inferencia sería Java SE
Y a estos componentes se le sumaria un DBMS (MySQL) para guardar la
información de los estudiantes.
Usuario
BASE DE DATOS
MOTOR DE INFERENCIA
BASE DE HECHOS
BASE DE CONOCIMIENTOS
Figura 11 Esquema de arquitectura 45
4.2.1.1 Base de Hechos y Base de conocimiento
Como se mencionó para la base de hechos y conocimiento se utilizará Swi-
Prolog, la cual es una herramienta de código abierto del lenguaje de
programación Prolog, esta herramienta se ajusta a las necesidades del
sistema que se desea realizar, escogida también por su fácil uso además de
ya tener una librería para su conexión al lenguaje de programación java.
Tabla 9 Comparación de herramientas SE.
Parámetro de Evaluación
Swi-Prolog Clips
Experiencia de uso Alto Bajo
Costo Libre Gratuito
Plataformas Linux, Windows y otros
Windows, Mac
Integración con IDE Netbeans Existente Existente
Integración con IDE Eclipse Existente Existente
4.2.1.2 Motor de inferencia e Interfaz Gráfica
Se seleccionó como motor de inferencia Java SE, ya que con esta herramienta
se puede trabajar con la base de hechos y conocimientos y a partir de estos,
deducir nuevos hechos con los cuales se puedan obtener conclusiones para
resolver el problema deseado. El lenguaje de programación java es una de
las últimas tecnologías en aparecer, convirtiéndose en un lenguaje orientado
a objetos, que permite el fácil acceso y mejor organización de clases para
brindar un mejor rendimiento al programa a desarrollar. También java
mediante JFrame permite la creación de una interfaz gráfica para el usuario.
46
Tabla 10 Comparación entre Java y C#.
Parámetro de Evaluación
Java SE C#
Experiencia de uso Alto Medio
Costo Libre Pago
Plataformas Linux, Windows Windows
Integración con Swi-Prolog Existente Existente
Integración con Clips Existente Existente
Integración con MySQL Existente Existente
Integración con Oracle Existente Existente
4.2.1.3 Gestor de Base de Datos (DBMS)
Para guardar información de interés y de importancia se buscó un gestor de
base de datos que funcionará excelentemente en todos los sistemas
operativos y que ofreciera una óptima seguridad para el resguardo de la
información, para lo cual se analizaron los diferentes DBMS y se decidió por
utilizar el DBMS MySQL.
Tabla 11 Comparación de características de DBMS
Parámetro de Evaluación
Postgre SQL Oracle MySQL
Experiencia de uso Bajo Medio Alto
47
Costo Libre Pago Libre
Plataformas Linux, Windows y otros
Linux, Windows y otros
Linux, Windows y otros
Velocidad de respuesta Media Media Alta
Migración de datos Medio Alto Alto
Integración con IDE Netbeans Existente Existente Existente
Integración con IDE Eclipse Existente Existente Existente
4.2.2 CASOS DE USO
4.2.2.1 Acceso al Sistema
Acceder sistema
Salir sistemaCoordinador
Figura 12: CU Acceso al sistema
Tabla 12: Especificación CU Acceso al sistema
Especificación del caso de uso
Nombre del caso de uso:
Acceder al sistema Versión No: 1.0
Descripción: Permite al actor acceder al sistema mediante sus credenciales.
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
48
Flujo Básico
Paso Actor Sistema
1 El usuario ingresará al sistema. El sistema desplegará pantalla de acceso.
2 El usuario ingresará sus credenciales. El sistema validará su usuario y contraseña.
3 El usuario ingresará a la pantalla principal.
El sistema desplegará el menú con las diferentes opciones
4 El usuario selecciona salir. El sistema cerrará la aplicación.
4.2.2.1 Acceder a Editar materias UTE
Coordinador
Acceder a Editar materias ute
Seleccionar Facultad UTE
Seleccionar CarreraUTE
Crear Facultad UTE
<<incluir>>
<<incluir>>
<<incluir>>
Crear Facultad UTE
<<incluir>>
Figura 13: CU Acceder a Editar Materias UTE
Tabla 13: Especificación CU Acceder a Editar Materias UTE
Especificación del caso de uso
Nombre del caso de uso:
Acceder a Editar Materias UTE Versión No: 1.0
Descripción: Permite Editar Materias de la Facultad y Carrera seleccionada.
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
49
Flujo Básico
Paso Actor Sistema
1 El usuario seleccionará del menú la opción Editar Materias UTE.
El sistema desplegará una pantalla con las diferentes opciones.
2 El usuario seleccionará la Facultad y Carrera.
Sistema presentará opción para escoger Facultad y Carrera.
3 El usuario Seleccionará Crea Facultad si esta no existiera en el sistema.
El sistema Presentará Opción de crear Facultad.
4 El usuario Seleccionará Crea Carrera si no existiera en el sistema.
El sistema Presentará Opción de crear Carrera.
4.2.2.2 Ingresar Syllabus Materias UTE
Coordinador
Administar Área
Crear Área
Eliminar Área<<incluir>>
<<incluir>>
Administar materia
Crear Materia
Eliminar Materia
<<incluir>>
<<incluir>>
Ingresar Syllabus
Materias UTE
Seleccionar Area
Seleccionar materia
<<incluir>>
cargar Syllabus
<<incluir>>
Seleccionar Contenido
<<incluir>>
Ingresar Creditos
<<incluir>>
Figura 14: CU Ingresar Syllabus Materias UTE
Tabla 14: Especificación CU Ingresar Syllabus Materias UTE
Especificación del caso de uso
Nombre del caso de uso:
Ingresar Syllabus Materias UTE Versión No: 1.0
Descripción: Ingreso de los contenidos de los Syllabus de las materias de la UTE
50
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
Flujo Básico
Paso Actor Sistema
1 El Usuario creará el área. El sistema presentará opción para agregar área.
2 El usuario seleccionará el área de la lista.
Sistema desplegará lista de áreas existentes.
3 El usuario creará materia en el área escogida.
Sistema presentará en pantalla opción para crear materia.
4 El usuario Ingresará número de créditos que pertenecen a la materia.
Sistema presenta campo para ingreso del número de créditos.
5 El usuario seleccionará abrir archivo del syllabus de la materia.
Sistema presenta opción de carga de archivos y presentará visualmente el archivo.
6 El usuario seleccionará contenidos. Sistema extrae el contenido seleccionado.
4.2.2.3 Acceder a Nueva Homologación
Coordinador
Acceder a Nueva Homologacion
Seleccionar Facultad Ute
Seleccionar Carrera UTE
<<incluir>>
<<incluir>>
Figura 15: Acceder a Nueva Homologación
51
Tabla 15: Especificación CU Acceder a Nueva Homologación
Especificación del caso de uso
Nombre del caso de uso:
Acceder a nueva Homologación Versión No: 1.0
Descripción: Selección de facultad y carrera de la UTE para la homologación.
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
Flujo Básico
Paso Actor Sistema
1 El usuario seleccionará del menú la opción Nueva Homologación.
El sistema desplegará una pantalla lista de Facultades y Carreras de la UTE para su selección.
2 El usuario seleccionará la Facultad.
3 El usuario Seleccionará Carrera.
4.2.2.4 Homologar Materias
Coordinador
Ingresar Nueva Homologación
Ingresar datos Estudiante
<<incluir>> Ingresar Universidad
Ingresar Carrera
Ingresar Materia
Homologar Materias
<<incluir>>
<<incluir>>
Ingresar CI
<<incluir>>
Ingresar nombres<<incluir>>
Ingresar apellidos<<incluir>>
Ingresar fecha
<<incluir>>
<<incluir>>
Ingresar Período
<<incluir>>
Ingresar Nombre materia<<incluir>>
Ingresar Créditos<<incluir>>
Seleccionar Materia
<<incluir>>
Seleccionar Universidad
<<incluir>>Seleccionar
Carrera<<incluir>>
Seleccionar Período
<<incluir>>
<<incluir>>
Ingresar syllabus
<<incluir>>
Figura 16: CU Homologar materias 52
Tabla 16: Especificación CU Homologar materias
Especificación del caso de uso
Nombre del caso de uso:
Homologar Materias Versión No: 1.0
Descripción: Se realiza la homologación de Materias presentando resultados
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
Flujo Básico
Paso Actor Sistema
1 El usuario ingresará los datos del estudiante que desea homologar.
El sistema presentará en pantalla los campos para el ingreso de los nombres, apellidos, CI y fecha.
2 El usuario ingresará la universidad de la que viene el estudiante.
Sistema presentará en la pantalla una opción de agregar de nueva universidad.
3 El usuario ingresará el nombre de la carrera de la que viene el estudiante.
Sistema presentará una opción de agregar nueva carrera.
4 El usuario ingresará la materia a homologar.
Sistema presentará en la pantalla una opción de agregar nueva materia.
5 El usuario ingresará los datos de la materia.
Sistema presentará una pantalla con los campos para ingresar el nombre de la materia y número de créditos, y período de la materia ingresada.
6 El usuario podrá ingresar syllabus de la materia agregada.
Sistema presentará en pantalla opción de ingreso de syllabus.
7 El usuario procederá a la homologación las materias.
8 Usuario seleccionará la Universidad de la que viene el estudiante.
Sistema presentará lista de universidades.
9 Usuario seleccionará la carrera que tomó el estudiante.
Sistema presentará lista de carreras pertenecientes a cada universidad.
10 Usuario seleccionará la materia a homologar.
Sistema presentará lista de las materias existentes.
53
11 Usuario escogerá a que período pertenece la materia.
Sistema presentará lista de períodos pertenecientes a una materia.
12 Usuario agregará la materia para ser homologada.
Sistema presentará opción para agregar la materia.
13 Usuario seleccionará opción homologar El sistema presentará en la pantalla materia o materias homologadas y no homologadas, con sus respectivos porcentajes de coincidencia de contenidos y créditos.
4.2.2.5 Ingresar Syllabus Materia otra Universidad
Coordinador
Ingresar Syllabus otra Universidad
Seleccionar Área
Cargar Syllabus
<<incluir>>
<<incluir>>
Selleccionar contenido
<<incluir>>
Figura 17: CU Ingresar Syllabus otra Universidad
Especificación del caso de uso
Nombre del caso de uso:
Ingresar Syllabus otra Universidad
Versión No: 1.0
Descripción: Ingreso de contenidos de los syllabus de las materias otra Universidad.
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
Figura 18: Especificación CU Ingresar Syllabus otra Universidad
Flujo Básico
54
Paso Actor Sistema
1 El usuario seleccionará el Área en la cual se va hacer la comparación de los contenidos de la materia.
El sistema Presentará lista de {Áreas pertenecientes a la UTE para ser escogidas.
2 El usuario Cargará el syllabus de la materia.
El sistema presentará opción para abrir syllabus de la materia y presentará en pantalla el syllabus.
3 El usuario seleccionará el contenido de la materia.
El sistema extraerá el contenido y presentará en un campo de texto.
4.2.2.6 Generar Reporte
Coordinador
Generar Reporte
Seleccionar Facultad y Carrera
<<incluir>>
Ingresar Informacion Estudiante
<<incluir>>
Generar Reporte
<<incluir>>
Figura 19 CU: Generar Reporte
Tabla 17: Especificación CU Generar Reporte
Especificación del caso de uso
Nombre del caso de uso:
Generar Reporte Versión No: 1.0
Descripción: Se realiza la consulta de estudiantes para generar un reporte de las materias homologadas.
Autor: Carlos Andrés Mafla Carvajal Fecha: 20-04-2014
Usuario/Actor: Coordinador
55
Flujo Básico
Paso Actor Sistema
1 El usuario seleccionará la Facultad y Carrera en la cual va a buscar el estudiante.
El sistema presenta opción de selección de facultad y carrera.
2 El usuario ingresará dato para consulta de estudiante.
Sistema presenta opciones de búsqueda, ya sea por rango de fechas o por datos del estudiante.
3 El usuario seleccionará el estudiante del cual desea el reporte.
Sistema presentará lista de estudiantes.
4 El usuario dará clic la opción generar reporte.
Sistema presentará botón para generación de reporte.
4.2.3 DIAGRAMA DE SECUENCIA
4.2.3.1 Acceso al Sistema
GUI Acceso al sistema ControladorCoordinador Base de
datos
Ingresa datosEnvía datos
Verifica datos
Ingreso válidoUsuario válido
Figura 20 DS: Acceso al Sistema
56
4.2.3.2 Acceder a Editar Materias UTE
GUI Acceso Editar Materias UTE ControladorCoordinador Base de
Conocimiento
Crea Facultad UTEEnvía Nombre Facultad
UTE Verifica Nombre Facultad UTE
Facultad verificada
Guarda Facultad
Crea Carrera UTEEnvía Nombre Carrera
UTE Verifica Nombre Carrera UTE
Carrera verificada
Guarda Carrera
Selecciona Facultad UTE Envía Facultad UTE Verifica
Facultad UTEFacultad verificada
Selecciona CarreraUTE
Envía CarreraUTE
Verifica Carrera UTE
Facultad verificada
Figura 21 DS: Acceder Editar Materias UTE
57
4.2.3.3 Ingreso syllabus Materias UTE
GUI Ingreso Syllabus UTE ControladorCoordinador Base de
Conocimiento
Cargar syllabusExtraer contenidos
Guarda contenidos
Envía Nombre ÁreaVerifica Area
Área verificada
Guarda Área
Crear Área
Envía Nombre MateriaUTE
Verifica Materia
Materia verificada
Guarda Materia
Crear Materia UTE
Figura 22 DS: Ingreso Syllabus Materia UTE
58
4.2.3.4 Acceder Nueva Homologación
GUI Acceder Nueva Homologación ControladorCoordinador Base de
Conocimiento
Seleccionar FacultadUTE
Envía FacultadUTE Verifica
Facultad UTEFacultad verificada
Selecciona CarreraUTE
Envía CarreraUTE Verifica
Carrera UTE
Carrera verificada
Figura 23 DS: Acceder Nueva Homologación
59
4.2.3.5 Homologar Materias
GUI Homologar Materias ControladorCoordinador
Base de conocimientos
Seleccionar Universidad
Verifica universidadUniversidad verificada
Seleccionar materiaEnvía materia
Consulta porcentajes
Devuelve porcentajes
Envía Universidad
Envía lista de Carreras
Envía porcentajes
Ingresa datos estudiante
Envía datos
Verifica datos
Ingreso válido
Guardar datos
Envía Nombre Universidad
Verifica Universidad
Universidad verificada
Guardar Universidad
Ingresa Nueva Universidad
Envía Nombre Carrera
Verifica Crrera
Carrera verificada
Guardar Carrera
Ingresa Nueva Carrera
EnvÍa Datos Materia
Verifica Datos MateriaDatos Materia
verificados
Guardar Datos
Ingresa Datos Materia
Seleccionar CarreraEnvía Carrera
Verifica Carrera
Carrera verificadaEnvía lista de Materias
Figura 24 DS: Homologar Materias
60
4.2.3.6 Ingresar Syllabus Otra Universidad
GUI Ingreso Syllabus Otra Universidad
controladorCoordinador base de Conocimiento
Cargar syllabusExtraer contenidos
Compara contenidos
Algoritmo base de datos
Seleccionar ÁreaEnvía Área
Verifica Área
Área Verificada
Envía resultados
Guarda Resultados
Figura 25 DS: Ingreso Syllabus Otra Universidad
61
4.2.3.7 Reporte Homologación
GUI Reporte de Homologación controladorCoordinador base de datos
Ingreso CI, Nro Trámite Nombre Verifica CI, Nro Trámite o
NOmbre
CI,Nro Trámite o Nombre verificado
Envía CI,Nro Trámite o Nombre
Envía Estudiante
Base de Conocimientos
Seleccionar Facultad UTE Verifica Facultad UTE
Facultad UTE verificada
Envía Facultad UTE
Envía lista de Carreras UTE
Seleccionar Carrera UTE Verifica Carrera UTE
Facultad UTE verificada
Envía Carrera UTE
Envía lista de Carreras UTE
Seleccionar Rango de FechasVerifica Reango de Fechas
Rango de Fechas verificado
Envía Rango de Fechas
Envía Lista de Estudiantes
Generar reporteConsulta datos
Envía Datos
Enviar Estudiante
Presenta reporte
Figura 26 DS: Reporte de Homologación
‘
62
4.2.4 MODELO CONCEPTUAL DE LA BASE DE DATOS
Con la herramienta MySQL Workbench 6.1 se ha diseñado el modelo de
conceptual entidad relación, basado en todos los requerimientos del sistema.
Figura 27: Diseño Conceptual Entidad Relación
El script de la base de datos se encuentra en el Anexo1.
63
4.2.5 DIAGRAMA DE CLASES
Adjunto en Anexo 2.
4.2.6 MAQUETACIÓN DE PANTALLAS
4.2.6.1 Pantalla Login
Figura 28: Maquetación de pantalla login
4.2.6.2 Pantalla Principal MENU
Figura 29: Maquetación Pantalla Menú 64
4.2.6.3 Pantalla Cambiar Contraseña de Usuario
Figura 30: Maquetación Pantalla Cambiar Contraseña
4.2.6.4 Pantalla Editar Materias UTE: Seleccionar Facultad/Carrera
Figura 31: Maquetación Editar Materias UTE: Seleccionar Facultad/Carrera
65
4.2.6.5 Editar Materias UTE: Crear Facultad
Figura 32: Maquetación Editar Materias UTE: Crear Facultad
4.2.6.6 Editar Materias UTE: Crear Carrera
Figura 33: Maquetación Editar Materias UTE Crear Carrera
66
4.2.6.7 Editar Materias UTE: Ingreso Syllabus
Figura 34: Maquetación Editar Materias UTE: Ingreso Syllabus
4.2.6.8 Nueva Homologación: Selección Facultad/Carrera
Figura 35: Maquetación Nueva Homologación: Selección Facultad/Carrera
67
4.2.6.9 Homologación Materias de un Nuevo Estudiante
Figura 36: Maquetación Homologación: de Materias de un Nuevo Estudiante
4.2.6.10 Nueva Homologación: Ingreso de Nueva Universidad
Figura 37: Maquetación Nueva Homologación: Ingreso de Nueva Universidad
68
4.2.6.11 Nueva Homologación: Ingreso Nueva Carrera
Figura 38: Maquetación Nueva Homologación: Ingreso de Nueva Carrera
4.2.6.12 Nueva Homologación: Ingreso nueva Materia
Figura 39: Maquetación Nueva Homologación: Ingreso Nueva Materia
69
4.2.6.13 Nueva Homologación: Ingreso Syllabus Materia Otra Universidad
Figura 40: Maquetación Nueva Homologación: Ingreso Syllabus Materia Otra Universidad
4.2.6.14 Generar Reporte
Figura 41: Maquetación Generar Reporte
70
4.3 FASE DE CODIFICACIÓN
Para comenzar con la codificación del sistema de homologación de materias
lo primero que se realizó fue la transformación de los syllabus de los
estudiantes de otras universidades, analizando cómo se podría transformar
los caracteres de una imagen a texto, y así usar la información en la
comparación y futura homologación con los temas de los syllabus de la
universidad. Para esto se probaron herramientas que realizan esa función
como PDFcompressor y el OCR de Adobe Acrobat XI pro.
• PDFcompresor una herramienta OCR creada por Cvision, empresa que
se dedica a soluciones en automatización de documentos. Además su
OCR está disponible en más de 117 idiomas. Existe una versión en
línea para su acceso desde cualquier buscador de internet.
• Adobe Acrobat XIPro es un software creado por la empresa Adobe
Systems para gestionar archivos PDFs, entre una de las opciones se
tiene la transformación de documentos que se encuentran como
imagen a texto, gracias a que tiene incorporada la herramienta OCR.
Finalmente se optó por utilizar el OCR de Adobe Acrobat XI pro, debido a que
fue la herramienta que mejor resultados dio en la transformación de los
archivos.
4.3.1 EXTRACCIÓN CONTENIDOS DE LOS SYLLABUS
Una vez teniendo los syllabus de las materias de la UTE y de las otras
universidades guardadas en formato PDF navegable, se buscó la manera de
extraer la información de estos, para lo cual se probó con dos alternativas que
se ajustaban a las exigencias del programa: la librería JPedal de java y el
programa en línea de Tabula
71
• Tabula una herramienta para la liberación de las tablas de datos
encerrados en archivos PDF, Tabula fue creado por Manuel Aristarán,
Mike Tigas y Jeremy B. Merrill con el apoyo de ProPublica , La Nación
DATOS, Knight-Mozilla OpenNews, The New York Times y La
Fundación Knight .
Para la extracción de contenido se eligió usar la librería jpedal y no depender
de otras herramientas externas como es Tabula.
Figura 42: Código Extracción Contenidos
Con jpedal se convirtió cada página del archivo PDF de los syllabus en una
imagen para poder visualizarla en la pantalla, una vez teniendo cada página
como imagen se utilizó la librería Graphics de java, con la cual se pudo dibujar
un cuadrado para obtener las coordenadas de selección y aplicarlas en el
jpedal y obtener el contenido allí expuesto.
72
Figura 43 Extracción de contenidos syllabus UTE
4.3.2 GUARDADO INFORMACIÓN SYLLABUS MATERIAS UTE
Toda la información correspondiente a los syllabus de las materias de la UTE,
se guardaron como hechos en la base de conocimiento de la siguiente
manera:
• facultad('Nombre_Facultad').
• carrera('Nombre_Carrera','Nombre_Facultad').
• creditos(Nro_créditos,'Nombre_Materia','Período','Nombre_Carrera','Nombre_Univer
sidad').
• area('Nombre_Área',Nombre_Carrera ').
• materias('Nombre_Materia','Nombre_Área','Nombre_Carrera').
Figura 44: Prolog Guardado Información Syllabus UTE
73
Creada las materia con su número de crédito y extraída la información del
syllabus, se comprobó la cantidad de unidades ingresadas. Se guardó el
contenido de cada unidad, siendo estos los temas y subtemas en el archivo
Prolog, para eso se utilizó el siguiente código:
Figura 45: Guardado Contenidos Materias UTE
Para el guardado de los contenidos de las materias de la UTE en la base de
conocimiento se utilizó la siguiente estructura:
74
contenido_materia('Nombre_Materia','Nombre_Carrera,'Nro_Unidad','Nombre_Tema',[‘Nombre_subte
ma’]).
Figura 46 Prolog Contenido Materia
Teniendo ingresada la materia y cada unidad con sus temas y subtemas, al
mismo tiempo fue necesario saber los porcentajes pertenecientes a cada
unidad, tema y subtema, esto se obtuvo dividiendo del cien por ciento por el
número de unidades (porcentaje unidad), porcentaje de unidad para el número
de temas(porcentaje de temas) y el porcentaje de temas para el número de
subtemas (porcentaje de subtemas), siendo estos valores guardados como
hechos para su uso en la parte de convalidación de materias.
Código:
75
Figura 47: Código Valor temas
La estructura para el guardado del valor de los porcentajes de los temas en la
base de conocimientos es la siguiente:
valor_contenido(Nombre_MAteria','Nombre_Carrera','Nombre_tema.',Porcentaje).
Figura 48: Prolog Valor Contenido
76
4.3.3 INGRESO DE ETIQUETAS A LOS TEMAS DE LAS MATERIAS UTE
Figura 49: Ingreso Etiquetas
Durante el desarrollo del sistema, una vez extraída la información de los
syllabus de la universidad y haberlos organizado en unidades con sus
respectivos temas, se vio la necesidad agregar etiquetas o palabras claves a
cada uno de los temas, estas etiquetas servirían para la parte de comparación
de contenidos con las materias de los estudiantes que desean homologar.
Estas etiquetas son las distintas maneras como se podría también encontrar
el tema en otros syllabus, y para el ingreso de estas etiquetas se implementó
un botón a lado de la unidad el cual proyecta en pantalla un JOptionPane.
Código:
77
Figura 50: Ingreso de etiquetas a los temas
Al ingresar nuevos contenidos el sistema asigna una etiqueta predeterminada,
la cual es el mismo nombre del tema.
La estructura para el guardado de las etiquetas en la base de conocimiento
es:
etiquetas_temas('Nombre_Carrera','Nombre_Materia','Nro_Unidad','Nombre_tema.','Etiqueta').
Figura 51: Prolog Etiquetas Temas
78
4.3.4 COMPARACIÓN DE CONTENIDOS
Algoritmo Boyer-Moore
Figura 52: Código Algoritmo Boyer-Moore
a) Toma el patrón a buscar dentro del texto y obtiene su longitud. b) Crea dos variables, la j para recorrer el texto una vez encontrado
alguna letra de similitud, y la k como límite del texto.
c) Posiciona el patrón al principio del texto y verifica en un recorrido de
derecha a izquierda la coincidencia de cada una de las letras. Si la
79
primera letra de esta comparación no coincide se detiene y calcula
la variable k; caso contrario disminuye la variable j y compara con la
siguiente letra. d) La variable k empieza con el valor de la longitud del patrón (m). Para
calcular la siguiente posición donde empezar la comparación, la
variable k = k + (m - a)donde a es la posición donde se encuentra la
letra que no se encontró en la primera posición del recorrido anterior;
si esta letra no está dentro del patrón a tomaría un valor 0. e) Si en el recorrido se encuentran todas letras, indicando que el patrón
está dentro del texto, se detiene y devuelve una respuesta positiva.
Tabla 18: Algoritmo Boyer Moore
1 2 3 4 5 6 7 8 9 10 11 12 patrón P S E U D O C O D I G O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
texto A L G O R I T M O S Y P S E U D O C O D I G O P S E U D O C O D I G O X P S E U D O C O D I G O X P S E U D O C O D I G O
P S E U D O C O D I G O a= 1 2 3 4 5 6 7 8 9 10 11 0
k= k+(m-a) K= 12 + ( 12 - 0 ) K= 24 K= 24 + ( 12 - 11 ) K= 25
La implementación del algoritmo de Boyer-Moore en el sistema es el
siguiente:
80
1. Toma cada etiqueta de los temas que pertenece a cada materia dentro
del área escogida, y la busca usando el algoritmo de Boyer-Moore en
cada línea del contenido del syllabus a homologar.
2. Si existe esa etiqueta en el contenido de la materia a homologar agrega
el tema al que pertenece la etiqueta a una lista de coincidencias.
3. Toma cada tema de la lista coincidencias y obtiene el porcentaje
perteneciente al tema.
4. Suma los valores obtenidos.
5. Finalmente se guarda en la base de conocimientos, los porcentajes de
Contenidos y Créditos entre la materia de la carrera y la materia que se
comparó.
Figura 53: Código Implementación Algoritmo Boyer Moore
Estructura del guardado de los porcentajes obtenidos en la comparación de
los syllabus.
81
convalida('Nombre_Materia_UTE','Nombre_Materia_OtraUniversidad','Período_Materia_OtraUniversid
ad',Porcentaje_Contenidos,Porcentaje_créditos,'Carrera_OtraUniversidad','Nombre_OtraUniversidad').
Figura 54: Prolog Porcentajes de Comparación
4.3.5 HOMOLOGACIÓN
Figura 55: Homologación
Habiendo ya realizado la comparación de contenidos de todas las materias
del estudiante, se procede a seleccionar las materias pertenecientes al
mismo, y se elige la opción de homologar, lo que realiza el programa es
consultar de los hechos de la Base de Conocimientos los porcentajes, que las
materias seleccionadas obtuvieron y presenta en pantalla, si una materia de
la Carrera de Ingeniería Informática y Ciencias de la Computación de la UTE,
presenta coincidencias de temas con más de tres materia del estudiante de 82
otra universidad, selecciona las tres materias con mayor porcentaje de
contenidos obtenido y los suma. Sí completa el 80% de igualdad en
contenidos y 80% en comparación de créditos, la materia se Homologa.
Código:
Figura 56: Código Homologación
Para saber con qué materias se obtuvo el porcentaje de coincidencias fue
necesario la creación de un hipervínculo “detalle”, el cual despliega una
pantalla en la que presenta las materias con las que se encontró coincidencia
con el porcentaje y los temas que coincidieron, esta consulta se realiza de la
Base de Conocimientos.
83
Figura 57: Detalle materia homologada
Una vez obtenido los resultados de homologación se guardan en la base de
datos junto con los datos del estudiante para su posterior búsqueda si fuera
necesario.
4.3.6 GENERACIÓN REPORTES
Figura 58: Generar Reportes
84
Para la generación del reporte se utilizó el plugin de iReport para Netbeans y
las librerías de JasperReport. Para la búsqueda de los estudiantes se planteó
dos opciones, una por datos del estudiante y la segunda por Rango de
Fechas.
El código de búsqueda por Rango de Fecha es el siguiente:
Figura 59: Código Búsqueda por Rango de Fecha
Código búsqueda por Datos Estudiante:
85
Figura 60: Código Búsqueda por Datos Estudiante
El reporte necesita que se mande un parámetro para la realización del mismo,
por lo cual, al seleccionar el estudiante y dar clic en la opción generar reporte
se envía el número de ID estudiante.
86
Figura 61: Búsqueda Alumno
La llamada al reporte se realizó de la siguiente manera:
Figura 62: Llamada a Reporte
Donde se manda la ubicación del archivo, el parámetro de búsqueda y la
conexión a la base de datos.
4.4 FASE DE PRUEBAS
4.4.1 PRUEBAS UNITARIAS Y DE INTEGRACIÓN
Se aplicaron estas pruebas para comprobar la existencia de errores en la
codificación, las clases en las que se aplicaron las pruebas se muestran a
continuación:
87
4.4.1.1 Test Clase Login
Comprueba si existe guardado un usuario en la base de datos y si no existe
pida nombre y contraseña para crear uno.
Figura 63: Test Clase Login
4.4.1.2 Test Clase Conexión
Para esta clase se realizaron los dos tipos de pruebas, las pruebas unitarias
y de integración, debido que esta hace la conexión a la base de datos MySql.
Estas pruebas se aplicaron aquellos métodos que devolvían algún resultado
de la base de datos, también se incluyeron la creación de procedimientos
almacenados. A continuación se detallan las pruebas más importantes
realizadas.
88
Test Coincide: Prueba la inserción en la base de datos la materia del
syllabus del estudiante de otra universidad conjunto a la materia y el
tema de la de la UTE con el que hizo coincidencia.
Test Existe (una variable): Comprueba la existencia de una variable
dentro de alguna tabla en la base de datos, esta comparación se realiza
para no repetir datos y evitar información basura y redundante.
Test Existe (dos variables): Comprueba la existencia de dos variables
dentro de una misma tabla. Esta comparación se realiza para no repetir
datos.
Test NomAlumno: Prueba realizada para la obtención del nombre
completo del alumno y conseguir el detalle de materias homologadas.
Figura 64: Test Clase Conexión
89
4.4.1.3 Test Clase Prolog
En esta clase se realizó los dos tipos de pruebas, porque integra la base de
conocimientos con la interfaz gráfica. Se detalla a la continuación los métodos
más importantes dentro de la clase.
Test Convalidación: Se comprueba por medio de una consulta cuales
materias de la UTE y con qué porcentaje se Homologaron ingresando el
nombre de la materia de otra universidad y a la universidad
perteneciente.
Test EtiquetasxTema: Se Comprobó que obtenga todas las etiquetas
según el tema seleccionado.
Test ValorxTema: Se Probó que obtenga de a base de conocimientos
el valor perteneciente según el tema seleccionado.
Figura 65: Test Clase Prolog 90
4.4.1.4 Test Clase Menú
En esta prueba se verificó que esta clase realice la inicialización de las clases
de integración de la base de datos y con la base de conocimientos, también
se comprobó que todos los accesos del menú principal sean válidos.
Figura 66: Test Clase Menú
4.4.1.5 Test Clase Alumno
Se realizó la prueba donde se obtenga toda la información de la base de
conocimientos referente a las universidades ingresadas con sus respectivas
materias, también el ingreso hacia la base de datos del nuevo estudiante y
sus materias homologadas.
91
Figura 67: Test Clase Alumno
4.4.1.6 Test Clase Convalidación
En esta clase se aplicaron los dos tipos de pruebas, debido la clase obtiene
los datos de la base de conocimiento, hace la comparación de contenidos
utilizando el algoritmo de Boyer Moore, y estos datos guarda tanto en la base
de datos como en la base de conocimientos.
92
5. CONCLUSIONES Y RECOMENDACIONES
5.1 CONCLUSIONES
• Durante el desarrollo del Trabajo de Titulación se realizó el análisis
diseño y automatización de un sistema de homologación, el cual
compara los contenidos de los syllabus de las materias de otras
universidades con los de las materias de la carrera de Ingeniería
Informática y Ciencias de la Computación de la Facultad de
Ciencias de la Ingeniería como lo harían las personas encargadas
de dicha tarea. Se logró esta automatización del proceso de
Homologación gracias al apoyo brindado por la Universidad a través
del coordinador y docentes de la Carrera quienes brindaron toda
información requerida lo que facilitó un mejor entendimiento de
cómo se realiza el proceso de homologación y comparación de
contenidos, siendo así de gran ayuda para la realización del sistema
de homologación.
• Se realizó un análisis comparativo de los Syllabus de los
estudiantes de otras universidades con los de las materias de la
carrera de Ingeniería Informática de la Universidad Tecnológica
Equinoccial, en el análisis realizado se pudo observar dos puntos
importantes:
a) En el análisis comparativo de los contenidos de las materias de
las otras universidades con los de las materias de la carrera de
Ingeniería Informática de la UTE existen temas que tratan de lo
mismo pero escritos de diferente manera, por lo que en un principio
se optó por la integración de un diccionario de sinónimos el cual
ayudaría en la comparación de los contenidos de las materias, pero
94
finalmente se utilizaron etiquetas o palabras claves por lo que se
ajustaban de mejor manera al algoritmo escogido.
b) Este análisis también ayudó para darse cuenta que los syllabus
de las materias de los estudiantes procedentes de otras
universidades son entregados al coordinador de la carrera de
Ingeniería Informática y Ciencias de la Computación en un formato
PDF, pero estos están como imágenes y no texto como se
encuentran los syllabus de las materias de la carrera de la UTE, al
saber eso sirvió para encontrar la manera de cómo realizar la
transformación de las imágenes de los syllabus a texto, para esto
se utilizó herramientas OCR logrando así resolver el problema.
• Para lograr una buena comparación de contenidos se realizó un
estudio de los diferentes algoritmos que se podrían utilizar, llegando
a escoger dos algoritmos que cumplirían con el objetivo, estos
fueron: Algoritmo de Levenshtein y Algoritmo de Boyer Moore, para
comprobar el funcionamiento de los algoritmos se utilizaron los
Syllabus de estudiantes de tres universidades (Universidad
Tecnológica Israel, Universidad Internacional SEK y Escuela
Politécnica del Ejército ESPE ) que han realizado el proceso en
semestres anteriores y se tienen los resultados que sirvieron en la
comparación con los que arrojaron los algoritmos elegidos. Después
implementar y probar el funcionamiento de los dos algoritmos en el
sistema y con las universidades elegidas, se llegó a la conclusión
que el Algoritmo de Boyer Moore es el que mejor se ajustó al
sistema dando resultados más precisos.
95
5.2 RECOMENDACIONES
• El sistema realizado en este trabajo de titulación es una aplicación
de escritorio de homologación de materias, y por lo tanto se podrá
utilizar solamente en el computador que esté instalado. Por lo que
sería importante que se realice una aplicación web de la misma,
para que se pueda acceder desde cualquier sitio, ingresando el
usuario y contraseña correspondiente.
• Durante el desarrollo del trabajo de investigación se observó que los
syllabus de las materias de los estudiantes de universidades que
desean homologar son entregados al coordinador de la carrera
escaneados en un formato PDF, lo cual complica su transformación
a texto y la necesidad de utilizar un OCR, lo óptimo sería que estos
syllabus fuesen entregados en formato PDF navegables, porque así
se evitaría problemas de transformación de las imágenes a
caracteres ya que algunos syllabus se entregan mal escaneados y
no se aprecia la información existente.
• Es recomendable que se escanee los syllabus como mínimo a una
resolución de 600ppp, ya que la resolución de los syllabus
entregados a los coordinadores de las carrera están en baja calidad
de escaneo, complicando la transformación de estos a texto.
• Una vez ingresadas las materias con sus respectivos contenidos,
estas toman por defecto el tema ingresado como etiqueta, por lo
que es recomendable, que estas sean aumentadas si fuese el caso
para que los resultados de la comparación de los contenidos de las
materias realizados por el algoritmo de Boyer Moore sean precisos.
También sería importante que haya estandarización de los syllabus
96
entre las diferentes universidades para que así las etiquetas de los
temas bajen y llegar a no utilizarlas.
97
BIBLIOGRAFÍA
Castillo, E., & Hadi, J. (2011). Sistemas expertos y modelos de redes
probabilísticas. Retrieved November 22, 2013, from
http://site.ebrary.com/lib/utesp/docDetail.action?docID=10467096&p00=siste
mas%20expertos%20modelos%20redes%20probabil%C3%ADsticas
Russell, Stuart & Norvig, Peter (2004), Inteligencia Artificial: Un Enfoque
Moderno (2nda. ed.).Madrid: Pearson Educación, S.A.
Lanfrancesco, Giovanni (2005), Fundamentos para la transformación
curricular (3era. Ed.) Bogotá: Cooperativa Editorial Magisterio.
Sommerville, Ian (2005), Ingeniería del Software (7ma. ed.).Madrid: Pearson
Educación, S.A.
Apostolico, Alberto; Galil, Zvi (1997), Pattern Matching Algorithms. New York:
Oxfor University Pres.
Lahoz, Rafael (2004), Bioinformática: Simulación, vida artificial e inteligencia
artificial. Madrid: Ediciones Díaz de Santos, S.A.
98
Pino, Raúl; Gómez, Alberto; Martínez, Nicolás (2001), Introducción a la
inteligencia artificial: sistemas expertos, redes neuronales artificiales y
computación evolutiva. Universidad de Oviedo.
Badaró, Sebastián; Ibáñez, Leonardo; Agüero, Martín (2013), Sistemas
Expertos: Fundamentos, Metodologías y Aplicaciones Universidad de
Palermo, Facultad de Ingeniería.
Duque, R. D. C., & Urrego, N. M. U. (2013). Selección de modelo de gestión
tecnológica para pymes colombianas. Revista Científica, 0(17), 125 – 130.
González, T., & Martínez, R. (2006). Seleccion de razgos para clustering de
documentos monolingües. Retrieved January 10, 2014, from
http://site.ebrary.com/lib/utesp/docDetail.action?docID=10227924&p00=leven
shtein
Henao, D. (2009). Inteligencia artificial. Retrieved November 22, 2013, from
http://site.ebrary.com/lib/utesp/docDetail.action?docID=10316885&p00=inteli
gencia%20artificial
Peña, A. (2006). Sistemas expertos y sus aplicaciones. Retrieved January 20,
2014, from
http://www.uaeh.edu.mx/docencia/Tesis/icbi/licenciatura/documentos/Sistem
as%20expertos%20y%20sus%20aplicaciones.pdf
99
Samper, J. (n.d.). Cuando las máquinas aprenden. Retrieved January 20,
2014, from http://www.redcientifica.com/doc/doc199909170005.html
Zambrano, D. F. (2009). ¿Qué es inteligencia artificial? Retrieved November
1, 2013, from
http://site.ebrary.com/lib/utesp/docDetail.action?docID=10317229&p00=inteli
gencia%20artificial
Ziviani, N. (2007). Diseño de algoritmos con implementaciones en Pascal y C.
Editorial Paraninfo.
Pressman, R. (2010). Ingeniería del Software Un enfoque Práctico (7ma ed.).
México DF, México: McGRAW-HILL INTERAMERICANA EDITORES, S.A. DE
C.V.
Fowler, Martin, and Kendall Scott. (1999). UML gota a gota. México:
Addison Wesley Longman, S.A de C.A.
Debrauwer, Laurent, and Fien van der Heyde. (2005). UML 2: iniciación,
ejemplos y ejercicios corregidos. Ediciones ENI.
IEEE Computer Society, I. (22 de Octubre de 2008). 830-1998 - IEEE
Recommended Practice for Software Requirements Specifications.
Recuperado el de 10 de Abril 2014, de standards ieee:
http://standards.ieee.org/findstds/standard/830-1998.html
100
Aguilera, P., & Morante, M. (2012). Imagen digital (Ofimática y proceso de la
información). Editex.
Compress, Convert, and OCR Your Scanned PDFs.PDF Compressor: Reduce
PDFs with CVISION's PdfCompressor. Recuperado Abril 10, 2014, de
http://www.cvisiontech.com/products/general/pdfcompressor.html?lang=eng
Osorio, F. L. (2007). Introducción a la Programación en Java. Medellin:
Editorial ITM.
Fossati, M. (2014). Todo sobre MySQL: Libro ideal para ingresar en el
mundo de la base de datos MySQL. Matias Fossati.
Toffoli,G. (2009, November 8). iReport Designer Getting Started [Text].
Recuperado Diciembre 28, 2014, de
https://community.jaspersoft.com/wiki/ireport-designer-getting-
started
Tabula is a tool for liberating data tables locked inside PDF files.Tabula:
Extract Tables from PDFs. Recuperado Abril 10, 2014, de
http://tabula.nerdpower.org/
SwingLabs :: Swing Component Extensions — Project Kenai. (n.d.).
Recuperado December 14, 2014, de https://swingx.java.net/
101
ANEXOS
ANEXO 1
SCRIPT BASE DE DATOS
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema homologacion
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `homologacion` ;
CREATE SCHEMA IF NOT EXISTS `homologacion` DEFAULT CHARACTER SET utf8 COLLATE
utf8_general_ci ;
USE `homologacion` ;
-- -----------------------------------------------------
-- Table `homologacion`.`Alumno`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `homologacion`.`Alumno` ;
CREATE TABLE IF NOT EXISTS `homologacion`.`Alumno` (
`Cedula_Alumno` VARCHAR(10) NOT NULL,
`Nombre1_Alumno` VARCHAR(50) NOT NULL,
`Nombre2_Alumno` VARCHAR(50) NULL,
`Apellido1_Alumno` VARCHAR(50) NOT NULL,
`Apellido2_Alumno` VARCHAR(50) NOT NULL,
`Tramite_Alumno` VARCHAR(50) NOT NULL,
`FechaTramite_Alumno` DATE NOT NULL,
`CarreraUTE_Alumno` VARCHAR(100) NOT NULL,
`FacultadUTE_Alumno` VARCHAR(100) NOT NULL,
`Comentario_Alumno` VARCHAR(500) NOT NULL,
`CarreraOU_Alumno` VARCHAR(100) NOT NULL,
`Universidad_Alumno` VARCHAR(100) NOT NULL,
102
PRIMARY KEY (`Cedula_Alumno`),
UNIQUE INDEX `Cedula_Alumno_UNIQUE` (`Cedula_Alumno` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `homologacion`.`Usuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `homologacion`.`Usuario` ;
CREATE TABLE IF NOT EXISTS `homologacion`.`Usuario` (
`Id_Usuario` INT NOT NULL AUTO_INCREMENT,
`Nombre_Usuario` VARCHAR(50) NOT NULL,
`Password_Usuario` VARBINARY(400) NOT NULL,
PRIMARY KEY (`Id_Usuario`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `homologacion`.`Coincidencias`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `homologacion`.`Coincidencias` ;
CREATE TABLE IF NOT EXISTS `homologacion`.`Coincidencias` (
`Id_Coincidencias` INT NOT NULL AUTO_INCREMENT,
`MateriaUTE_Coincidencias` VARCHAR(100) NOT NULL,
`Periodo_Coincidencias` VARCHAR(9) NOT NULL,
`Credito_Coincidencias` INT NOT NULL,
`PorcentajeContenido_Coincidencias` DOUBLE NOT NULL,
`PorcentajeCredito_Coincidencias` DOUBLE NOT NULL,
`Aprobado_Coincidencias` VARCHAR(2) NOT NULL,
`Cedula_Alumno` VARCHAR(10) NOT NULL,
PRIMARY KEY (`Id_Coincidencias`),
INDEX `Coincidencias1_idx` (`Cedula_Alumno` ASC),
CONSTRAINT `Coincidencias1`
FOREIGN KEY (`Cedula_Alumno`)
REFERENCES `homologacion`.`Alumno` (`Cedula_Alumno`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `homologacion`.`MateriaOU`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `homologacion`.`MateriaOU` ;
103
CREATE TABLE IF NOT EXISTS `homologacion`.`MateriaOU` (
`Id_MateriaOU` INT NOT NULL AUTO_INCREMENT,
`Nombre_MateriaOU` VARCHAR(100) NOT NULL,
`Credito_MateriaOU` INT NOT NULL,
`Periodo_MateriaOU` VARCHAR(9) NOT NULL,
`PorcentajeContenido_MateriaOU` DOUBLE NOT NULL,
`PorcentajeCredito_MateriaOU` DOUBLE NOT NULL,
`Id_Coincidencias` INT NOT NULL,
PRIMARY KEY (`Id_MateriaOU`),
INDEX `MateriaOU1_idx` (`Id_Coincidencias` ASC),
CONSTRAINT `MateriaOU1`
FOREIGN KEY (`Id_Coincidencias`)
REFERENCES `homologacion`.`Coincidencias` (`Id_Coincidencias`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `homologacion`.`TemaUTE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `homologacion`.`TemaUTE` ;
CREATE TABLE IF NOT EXISTS `homologacion`.`TemaUTE` (
`Id_TemaUTE` INT NOT NULL AUTO_INCREMENT,
`Nombre_TemaUTE` VARCHAR(200) NOT NULL,
`Porcentaje_TemaUTE` DOUBLE NOT NULL,
`Id_MateriaOU` INT NOT NULL,
PRIMARY KEY (`Id_TemaUTE`),
INDEX `TemaUTE1_idx` (`Id_MateriaOU` ASC),
CONSTRAINT `TemaUTE1`
FOREIGN KEY (`Id_MateriaOU`)
REFERENCES `homologacion`.`MateriaOU` (`Id_MateriaOU`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
104
ANEXO 2
DIAGRAMA DE CLASES Visualizado en el CD archivo: Diagrama_Clases.png
Figura 69: Diagrama de Clases
105