UNIVERSIDAD TECNOLÓGICA...

130
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

Transcript of UNIVERSIDAD TECNOLÓGICA...

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

© Universidad Tecnológica Equinoccial. 2015

Reservados todos los derechos de reproducción

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

INTRODUCCIÓN

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

MARCO TEÓRICO

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

METODOLOGÍA

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

ANÁLISIS Y DISCUSIÓN DE RESULTADOS

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

Figura 68: Test Clase Convalidación

93

CONCLUSIONES Y RECOMENDACIONES

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

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

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

ANEXO 3

MANUAL DE USUARIO Visualizado en el CD archivo Manual_Usuario.pdf

106