Documente Academic
Documente Profesional
Documente Cultură
TRABAJO DE GRADO
ESPECIALIZACIÓN EN PROYECTOS INFORMÁTICOS – INGENIERÍA DE
SOFTWARE
AUTORES:
DIRECTOR:
PH.D, MSC. ROBERTO FERRO ESCOBAR.
CODIRECTOR
JHON CASTELLANOS JIMENEZ
BOGOTÁ 2017
RESUMEN
En la actualidad, la tecnología ha pasado a ser parte de la vida de la sociedad y por ende del
sistema educativo introduciendo los avances tecnológicos en las instituciones educativas, a pesar
de la resistencia de los sistemas educativos para integrarlos (Blázquez, 2001). En este sentido, las
aplicaciones de software han implantado la gestión académica de diferentes centros educativos
como ayuda para administrativos, docentes y alumnos de los diferentes campos del saber
(Becker, 1999-2011).
Este trabajo tiene como meta el análisis del proceso de inscripción automática de espacios
académicos, existente dentro del sistema de gestión académica de la Universidad Distrital,
teniendo en cuenta sus componentes, comportamiento, rendimiento y efectividad en la tarea que
debe realizar, con la finalidad de proponer otra alternativa que permita la mejora en su
funcionamiento y la calidad de sus resultados, buscando así minimizar el impacto que puede
causar a los estudiantes y a la universidad, y los posibles problemas o deficiencias en la
inscripción automática de sus espacios académicos.
Palabras Clave
Sistema de gestión académica, espacios académicos, efectividad, calidad.
ABSTRACT
Nowadays, technology has become part of the life of society and therefore of the
educational system, introducing technological advances in educational institutions, despite the
resistance of educational systems to integrate them (Blázquez, 2001). In this sense, software
applications have implemented the academic management of different educational centers as an
aid to administrative staff, teachers and students of different fields of knowledge (Becker, 1999-
2011).
This work aims at analyzing the process of automatic enrollment of academic spaces,
existing within the academic management system of the District University, taking into account
its components, behavior, performance and effectiveness in the task that must be performed, with
the aim of To propose another alternative that allows the improvement in its operation and the
quality of its results, thus seeking to minimize the impact it can cause to students and the
university, and the possible problems or deficiencies in the automatic registration of their
academic spaces.
Considering the foregoing in this document, the process followed in the development of the
DESIGN OF A PROTOTYPE COMPONENT TO IMPROVE THE PROCESS OF
AUTOMATIC INSCRIPTION OF ACADEMIC SPACES, IN THE ACADEMIC
MANAGEMENT SYSTEM OF THE DISTRICT UNIVERSITY. First, a brief description of the
organization, structure and regulations in force with which the District University is being
carried out and which must be taken into account in the development of this project, followed by
the analysis of the current operation of the system Of academic management, in the process of
automatic registration and registration of data of academic spaces taking into account their
different variables, to determine the information necessary for its modeling, as well as the
information gathering, treatment, selection and purification of the same.
Later, the implementation is validated with the treatment of rules, execution, optimization,
storage, and construction of such design and its functional tests. Finally, the conclusions drawn
from this project are shown.
Keywords
RESUMEN ............................................................................................................................ 2
ABSTRACT .......................................................................................................................... 3
INTRODUCCIÓN .............................................................................................................. 11
PARTE I FUNDAMENTACIÓN DE LA INVESTIGACIÓN ....................................... 12
CAPÍTULO 1 DESCRIPCIÓN DE LA INVESTIGACIÓN .......................................... 12
1.1. Planteamiento Del Problema ..................................................................................... 12
1.2. Objetivos de la Investigación ..................................................................................... 13
1.2.1 Objetivo General .................................................................................................. 13
1.2.2 Objetivos Específicos ........................................................................................... 14
1.3 Justificación de la Investigación ................................................................................. 14
1.3.1 Justificación Teórica ............................................................................................ 14
1.3.2 Justificación Práctica ............................................................................................ 14
1.4 Hipótesis de la Investigación ...................................................................................... 15
1.5 Aspectos Metodológicos ............................................................................................. 15
1.5.1 Tipo De Estudio ................................................................................................... 15
1.5.2 Método de investigación ...................................................................................... 16
1.5.3 Fuentes y técnicas para la recolección de la información .................................... 16
1.5.4 Tratamiento de la información ............................................................................. 18
CAPÍTULO 2 MARCOS DE REFERENCIA ................................................................. 18
2.1 Marco Institucional ..................................................................................................... 18
2.1.1 Reseña Histórica de la Universidad Distrital ....................................................... 18
2.2 Marco Teórico ............................................................................................................. 19
2.2.1 Cobertura estudiantil ............................................................................................ 21
2.2.2 Aspectos Normativos ........................................................................................... 21
2.2.3 Sistema de Gestión Académica (SGA) – Cóndor .................................................... 23
2.2.4 Operación del sistema de gestión académica Cóndor .............................................. 24
2.2.5 Situación de la retención de estudiantes .................................................................. 24
2.2.6 La institución Educativa ....................................................................................... 25
2.2.7 Ejemplos de Sistemas de Gestión Académica en Colombia ................................ 26
2.2.8 Importancia de la gestión académica ................................................................... 29
2.3 Algoritmos de Optimización o Solución de Problemas ............................................. 30
2.4 Aspectos Legales ........................................................................................................ 32
6
5.2 Síntesis del Modelo Propuesto .................................................................................... 77
5.3 Aportes Originales ...................................................................................................... 77
CAPITULO 6 TRABAJOS O PUBLICACIONES DERIVADAS ................................ 77
6.1 Líneas de Investigación Futuras ................................................................................. 77
6.2 Trabajos de Investigación Futuros .............................................................................. 78
BIBLIOGRAFÍA ................................................................................................................ 79
PARTE V ANEXOS ........................................................................................................... 82
ANEXO A. ANÁLISIS Y SELECCIÓN DE LA INFORMACIÓN MEDIANTE LA
HERRAMIENTA DE AYUDA WEKA ............................................................................ 82
1. ¿Qué es la minería de datos? ..................................................................................... 83
2. Árbol de decisión ...................................................................................................... 85
3. Algoritmo J48............................................................................................................ 86
4. ¿Qué es la herramienta Weka? .................................................................................. 87
5. Fases del análisis de datos ......................................................................................... 87
5.1 Fase de Selección .................................................................................................... 87
6. Resultados ................................................................................................................. 89
ANEXO B. DICCIONARIO DE DATOS MODELO ORACLE ................................... 99
ANEXO C. DICCIONARIO DE DATOS MODELO MYSQL ................................... 109
ANEXO D. MANUAL TÉCNICO .................................................................................. 110
Objetivo .............................................................................................................................. 110
Alcance ............................................................................................................................... 110
1. Configuración de Kie-Workbench 6.5.0.................................................................. 110
2. Configuración del proyecto en Kie Workbench ...................................................... 115
3. Configuración de la aplicación para realizar el llamado del componente de reglas y
configuración de workbench. .......................................................................................... 124
4. Configuración de componente PreinscripcionAuto ................................................. 125
5. Configuración bases de datos PreinscripcionAuto .................................................. 126
Configuración nivel de logging ...................................................................................... 126
6. Configuración del solucionador .............................................................................. 127
7
TABLA DE FIGURAS
8
ÍNDICE DE TABLAS
9
Tabla 25 Detalle Tabla ACESTADO ................................................................................. 104
Tabla 26 Detalle Tabla ACHORARIOS ............................................................................ 105
Tabla 27 Detalle Tabla ACINS .......................................................................................... 106
Tabla 28 Detalle Tabla ACINSDEMANDA ...................................................................... 107
Tabla 29 Detalle Tabla ACINSPRE ................................................................................... 107
Tabla 30 Detalle Tabla ACTABLAHOMOLOGACION .................................................. 108
Tabla 31Detalle Tabla sga_clasificacion_estudiantes ....................................................... 109
Tabla 32 Detalle Tabla sga_ejecuta_inscripcion_auto ....................................................... 109
Tabla 33 Detalle Tabla sga_rankingpreinsdemanda ........................................................... 109
10
INTRODUCCIÓN
Las universidades e instituciones de educación superior se enfrentan en la actualidad a
un reto grande: garantizar la articulación de los procesos administrativos con el desarrollo
propio de la academia; es decir, la optimización de la administración de sus recursos y el
enfoque hacia la calidad en la prestación de sus servicios (De Alba, 1992).
Esto lleva a pensar en la necesidad que existe por parte de la universidad, de fortalecer
el funcionamiento eficiente de cada componente del sistema de gestión Académica Cóndor,
centrando la atención en el módulo de inscripción automática de espacios académicos y
como optimizarlo de forma tal que su funcionamiento sea el esperado y se solventen las
problemáticas que se presentan actualmente al realizar este proceso.
11
Por tal motivo el presente trabajo busca brindar una posible solución a este proceso, en
donde se hará un análisis previo de su funcionamiento y las mejoras que se pueden
implementar por medio de nuevas herramientas, teniendo en cuenta la información vigente
y los avances que ya se han hecho en el tema.
12
De esta forma el proceso de inscripción automática de espacios académicos presenta
inconvenientes en su operación, las cuales tienen repercusiones inmediatas en los
estudiantes, quienes no logran cursar los espacios académicos que pretenden durante los
diferentes periodos académicos o deben lidiar con horarios difíciles de administrar, ya sea
por falta de horarios compactos, o horas de clase que no pueden tomar, estas situaciones
impactan negativamente a los estudiantes, incrementando la cantidad de semestres
necesarios para terminar las materias, dificultando la asistencia a otras, generando
consecuencias institucionales en espacio físico y presupuestales, consecuencias para el
estudiante y consecuencias para la sociedad como lo afirma la oficina asesora de planeación
y control en su informes del año 2011.
Una alternativa que se plantea a las debilidades antes mencionadas, consiste en realizar
una mejora al proceso de inscripción automática de espacios académicos, mediante el uso
de un motor de planificación, que permita disminuir estas debilidades; aportando de esta
forma al buen funcionamiento del sistema de gestión académica Cóndor.
13
sistema de gestión académica de la universidad Distrital, mejorando la arquitectura,
mantenibilidad y capacidad de extensión mediante el uso de motores de planificación.
14
universidad Distrital; de manera tal que se logre el cumplimiento de sus funciones y alcance
un estado de madurez, en donde se considere que la optimización del uso de recursos es
satisfactoria.
15
estudio tendrán la mejor calidad y serán más relevantes en el proceso de análisis y
desarrollo del componente prototipo.
Como técnica inicial se usará la entrevista con los interesados del proyecto designados
por la OAS para el seguimiento, usaremos la documentación de las observaciones
16
realizadas en las distintas etapas del proceso investigativo, lo que permitirá no perder de
vista detalles importantes del proceso no documentados.
17
1.5.4 Tratamiento de la información
La Universidad Distrital fue fundada en 1948, por iniciativa del presbítero Daniel de
Caicedo quien además fue su primer rector (Villate, 2004) con el propósito de
ofrecer educación a los jóvenes de los sectores menos favorecidos de la ciudad, en
carreras de corta duración que apuntaban a resolver necesidades de la
modernización y la urbanización.
18
Caldas”. Posteriormente, al erigirse la ciudad de Bogotá como Distrito Especial,
recibió el nombre de Universidad Distrital Francisco José de Caldas.
El recorrido de los principales hitos de la Universidad Distrital indica que sus acciones
se han orientado a alcanzar una mayor pertinencia y calidad, asumiendo la formación de
profesionales comprometidos con la construcción de “conocimientos y saberes e
investigación de alto impacto para el desarrollo humano y social.
19
Misión
Visión
Con este Plan, la comunidad universitaria cuenta con la orientación estratégica que
guiará la acción universitaria en los próximos 10 años y será la base para la definición de
metodologías para la alimentación del Banco de Proyectos de la Universidad Distrital,
BPUD, para establecer la prioridad en la asignación de recursos y para la elaboración de los
Planes de Desarrollo Trianuales de las distintas unidades académicas y administrativas de la
Universidad y su desglose en planes de acción anuales.
20
internacionales, que generen condiciones para la inclusión social, bajo principios
de calidad y eficiencia.
d. Planear las estrategias para garantizar la adecuada asignación de los recursos por
parte del Estado, racionalizar su ejecución e incrementar y diversificar la
generación de ingresos.
e. Sentar las bases para alcanzar una gestión incluyente, pertinente transparente que
reconozca la participación y los aportes de los actores de comunidad académica,
soportada en una estructura orgánica, apropiada para desarrollo de las funciones
misionales y las diversas dimensiones de Universidad Distrital.
21
Acuerdo 027 de 1993 Acuerdo No. 7 de 2009 Acuerdo 004 de 2011
Cobija a los estudiantes matriculados activos y Cobija a los estudiantes matriculados activos y que Cobija a los estudiantes que se matriculen en 2012-1 en adelante.
que ingresaron de 2009-3 hacia atrás y que no se reingresaron de 2010-1 a 2011-3 y que no se acogieron al
acojan al acuerdo 004. acuerdo 004 de 2011.
Capítulo 5: Transferencias, Retiros y otras Que el Estatuto Estudiantil, Acuerdo 027 de diciembre Artículo Séptimo: Del registro de los espacios académicos. El
situaciones académicas. 23 de 1993, señala en su registro de los espacios académicos se realizará de la siguiente
artículo 22: “El estudiante no puede cursar una misma manera:
Artículo 29 Es el acto mediante, el cual el asignatura más de tres
estudiante registra las asignaturas que ha de (3) veces. El estudiante que haya cursado el setenta a. A los estudiantes que ingresen a primer semestre se les
cursar en un período académico. (70%) por ciento o más de registrará la totalidad de espacios académicos que deben
su plan de estudios, puede cursar hasta por cuarta vez la cursar según su plan de estudios.
El estudiante admitido por primera vez debe misma asignatura”. b. Los estudiantes antiguos deberían realizar preinscripción de
registrar todas las asignaturas del primer semestre los espacios académicos en el sistema de información
de su plan de estudios. El estudiante que pierda Artículo 7°. - Evaluación de las asignaturas con alto académica de la universidad dentro de los cinco (5) días
una o más asignaturas debe cursarlas en el nivel de repitencia o deserción. Con el fin de identificar calendario siguientes a la fecha final de cierra de notas
período inmediatamente siguiente. El estudiante las causas de los altos niveles de repitencia o deserción establecida en el calendario académico. Los espacios
de segundo semestre en adelante debe registrar y en asignaturas o programas que muestren índices académicos que cuenten con cupos disponibles, podrán ser
cursar por lo menos la mitad de las asignaturas superiores al promedio del Proyecto Curricular, los adicionados en los plazos establecidos, aunque no se haya
que esté obligado a tomar según su plan de coordinadores de proyectos curriculares, deberán realizado la preinscripción. El sistema de información
estudios. Los casos especiales son autorizados convocar semestralmente un comité de evaluación académico preinscribirá y registrara los espacios académicos
por el consejo de carrera. integrado por el reprobados por el estudiante a los cuales no pueden ser
coordinador, quien lo presidirá, un delegado de los cancelados. El estudiante debe preinscribir por lo menos la
profesores de la asignatura o programa que muestre estos mitad de los espacios académicos o créditos correspondientes
índices y los estudiantes que pertenezca al Consejo de al semestre que vaya a cursar.
Proyecto Curricular, con el fin de identificar las causas y c. El sistema de información académica asignara
recomendar los correctivos necesarios para superarlas. automáticamente franjas y jornadas de disponibilidad horario
Artículo 8°. Todo estudiante de la Universidad Distrital y número de grupos, según los cupos definidos por los
Francisco José de Caldas al matricularse, acepta las proyectos curriculares teniendo en cuenta las solicitudes
condiciones académicas definidas por la Universidad, y previamente realizadas en la preinscripción.
en particular las establecidas en el presente Acuerdo, d. El registro de espacios académicos y la aprobación de cargas
como parte integral del académicas se realizará dentro de los siguientes diez (10) días
Estatuto Estudiantil. hábiles de cumplido con el tiempo de preinscripción, bajo la
Artículo 9°. (Transitorio) Los estudiantes que se responsabilidad de las decanaturas, los proyectos curriculares
encuentren en prueba académica finalizada el periodo y la oficina asesora de sistemas, o las que hagan sus veces.
2009, bajo cualquiera de las modalidades, deberán e. Los estudiantes podrán registrar y cursar por primera vez o
superarla en el primer periodo del 2010. repetir espacios académicos teóricos en periodos intermedios
Artículo 10º. El presente Acuerdo rige a partir de la según lo establecido en su plan de estudios.
fecha de su expedición y deroga todas las normas que le
sean contrarias, en especial los artículos 22 y 23 del
Estatuto Estudiantil, Acuerdo 027 de 1993.
Tabla 2 Acuerdos Normativos Expedidos por el Consejo Superior Universitario. Fuente: Elaboración Propia
2.2.3 Sistema de Gestión Académica (SGA) – Cóndor
Según el Informe de Avance sobre el Plan Indicativo de Gestión (CBN 1013) del Plan
de Desarrollo 2008-2016 “Saberes, Conocimiento e Investigación de Alto Impacto para el
Desarrollo Humano y Social”, como avances del Sistema de Gestión Académica se
presenta el desarrollo del Módulo de configuración de planes de estudios de créditos para
los usuarios coordinador, asesor de Vicerrectoría Académica, 72 estudiantes.
1
Se tiene en cuenta para el estudio un semestre adicional, es decir, son estudiantes retenidos aquellos que
llevan más de 12 semestres para ciclo profesional y 8 para el tecnológico.
24
2.2.6 La institución Educativa
Ante este panorama, surgen conceptos como los servicios en línea que permiten que el
usuario acceda a diferentes prestaciones de la institución de manera virtual. El Manual para
la Implementación de la Estrategia de Gobierno en línea en las entidades del orden nacional
de la República de Colombia del Ministerio de Tecnologías de la Información y
Comunicaciones (2012) menciona que:
Si bien la penetración del internet en 2012 aún dista de ser la ideal, las conexiones de
banda ancha vienen incrementando gradualmente y en mayo de este año ya llegaban a 5,2
millones. De forma paralela los usuarios de las entidades cada vez más hacen parte la
generación digital (el 66% de los internautas son menores de 35 años2) y a su vez
reconocen en los medios electrónicos una oportunidad para obtener de forma ágil servicios
del Estado (el 88% de los ciudadanos y el 89% de las empresas sabe que puede relacionarse
con el Estado haciendo uso del internet. Por otra parte, el 47% de los ciudadanos y el 73%
de las empresas han hecho uso de trámites en línea) Manual para la implementación de la
Estrategia de Gobierno en línea en las entidades del orden nacional de la República de
Colombia, 2012.
25
(persona a persona) como la multidireccional (uno a muchos o muchos a muchos). Estas
herramientas desempeñan un papel sustantivo en la generación, intercambio, difusión,
gestión y acceso al conocimiento.
Algunos ejemplos de sistemas de gestión académico que han venido mejorando sus
procesos son:
26
asignatura, el número de créditos máximo a matricular evitando el cruce de horarios y
teniendo en cuenta la carga académica del estudiante para cada semestre (UNAL).
27
Como apoyo a este módulo y las actividades de la universidad de han creado los
siguientes:
28
profesores y personal administrativo, para que puedan realizar las labores académicas
propias de su actividad. La información y los servicios presentados en línea, se han ido
presentando bajo un solo menú de opciones de acuerdo con el perfil del usuario, evitándole
hacer recorridos por diferentes secciones del sitio web de la Universidad (UCATOLICA).
Este sistema permite a los usuarios de la comunidad universitaria realizar la mayor parte de
las actividades y de los trámites académicos vía Internet, a través un único punto de acceso,
agilizando su realización. De esta manera, los estudiantes, profesores y personal
administrativo, encontrarán en un sólo lugar las opciones que les permitirán ejecutar
procesos, así como, consultar la información que necesitan para su actividad diaria.
Acorde con las tendencias mundiales, las Instituciones de Educación Superior (IES),
han venido desarrollando sistemas de gestión de calidad, para lo cual utilizan diversos
modelos, destacándose por su reconocimiento internacional las Normas ISO, los sistemas
de acreditación de programas e instituciones que se han desarrollado particularmente en el
ámbito de la educación superior, y los premios (nacionales e internacionales) de calidad que
en algunos casos incluyen galardones de excelencia a la gestión escolar.
Pero hoy la principal ventaja competitiva de las organizaciones exitosas, no sólo radica
en los modelos de gestión de calidad que estén implementando, sino en la calidad de su
gestión, la cual involucra además de la gestión de la calidad, la de sus áreas clave: Talento
humano, financiera, comercial y tecnológica entre otras.
Dado lo anterior se puede decir que la gestión académica constituye el criterio clave de
la calidad de la gestión de las Instituciones de Educación Superior, tema de esta ponencia.
29
2.3 Algoritmos de Optimización o Solución de Problemas
Por otro lado, se tienen algoritmos de heurísticas y meta heurísticas para la resolución
de problemas de optimización de restricciones. A continuación, se definirán ciertos
términos antes de describir cada uno de los algoritmos usados:
Una Entidad de Planificación es un objeto del problema que puede cambiar durante la
planificación. Por ejemplo, un bloque de horario cambia constantemente salones,
profesores y materias durante la resolución del problema.
La Dificultad de una Entidad de Planificación viene dada por una función que estima
la dificultad de la entidad. En concreto, la dificultad de un bloque de horario puede estar
dada por el número de restricciones que posea.
30
Los métodos meta heurísticos son métodos aproximados diseñados para resolver
problemas difíciles de optimización combinatoria en que los métodos heurísticos clásicos
no son efectivos. Se sitúan conceptualmente por encima de los heurísticos y son
procedimientos iterativos que modifican o modulan la decisión heurística subordinada
durante el proceso de búsqueda para producir eficientemente soluciones de alta calidad
(Ruescas, 2014-2015) . Estas características hacen que los métodos meta heurísticos:
Tabú Search El objetivo de Tabú Search es evitar una heurística integrada que retorne
a ´áreas anteriormente visitadas del espacio de búsqueda, referido como realizar un
ciclo. La estrategia del enfoque es mantener una memoria a corto plazo de los cambios
específicos de movimientos hechos recientemente en el espacio de búsqueda y prevenir
movimientos futuros de deshacer dichos cambios (Brownlee, 2011).
Step Counting Hill Climbing Es una variación del algoritmo de Hill Climbing en
donde se mantiene un umbral del costo actual de la mejor solución por un número de
pasos determinados, durante ese tiempo pueden elegirse soluciones que empeoren el
puntaje, pero pasen el umbral. Después del número de pasos determinados se actualiza
el umbral y se sigue iterando (Petrovic, 2013)
31
2.4 Aspectos Legales
Desde los principios de la década de 1990, nuestro país no ha sido ajeno al desarrollo
del movimiento del software libre o de código abierto (Open Source), y es así como tanto
en el sector privado como en el sector público la adopción, implementación y usos exitosos
de este tipo de herramientas es una realidad latente.
El medio académico, científico y de investigación, han sido el medio propicio para que
el movimiento del Software Libre se abra paso en Colombia. La Universidad Nacional de
Colombia, la Pontificia Universidad Javeriana, la Universidad de los Andes, la Universidad
de Antioquia, la Universidad del Valle, la Escuela de Administración de Negocios, la
Universidad de Manizales, la Universidad de san Buena ventura, la Universidad Distrital
Francisco José de caldas, la Universidad Industrial de Santander y muchas más; se
constituyen en los escenarios donde el movimiento del software libre en Colombia ha
tenido una acogida y desarrollo real.
Por una iniciativa parlamentaria, presentada a principios del año 2002, Colombia
cuenta y discute en el seno del Congreso de la Republica, la posibilidad de adoptar a nivel
positivo una legislación que regule y establezca de manera imperativa las políticas de uso y
empleo del Software Libre en sus sistemas de información, al interior de las entidades e
instituciones del Estado y las empresas donde el estado posea mayoría accionaría.
El artículo primero del proyecto de Ley establece una serie de definiciones, y para tal
efecto entra a definir lo que es un programa o software como: “Instrucciones, reglas,
procedimientos y documentos almacenados electrónicamente de manera tal que un
32
dispositivo de procesamiento pueda utilizarlas para llevar a cabo una tarea específica o
resolver un problema determinado”.
El diseño del Componente Prototipo según las normas existentes de uso de software
libre es viable de desarrollar y usar desde el ámbito legal.
33
Pensum.
Área de vinculación.
Acuerdo académico en el que se encuentran los estudiantes.
Teniendo en cuenta el gran avance en los sistemas de minería de datos en los últimos
tiempos, las entidades educativas y empresariales han buscado maneras de explotar al
máximo la información existente en sus sistemas de información, esto basándose en
técnicas y software especializados que permiten la interpretación fácil y real de los
resultados. Es así que, para dar apoyo en la toma de decisiones a niveles administrativos o
gerenciales, se crean metodologías especializadas y técnicas de extracción adecuada de la
información, haciendo que el usuario final pueda ver los resultados con pocos pasos.
34
encontró que los hombres son más propensos a desertar y demorarse en terminar sus
carreras que las mujeres. (Sánchez, Márquez 2012)
Es por esta razón que se quiere realizar un análisis de la información y así lograr
obtener un diseño de un componente prototipo para mejorar el proceso de inscripción
automática de espacios académicos en el sistema de gestión académica de la Universidad
Distrital con el fin de poder disminuir parte de las problemáticas presentadas en los
estudiantes y sus carreras, pero así mismo se pretende determinar cuáles son las causas que
conllevan a que los estudiantes estén “retenidos” y permanezcan más de lo estipulado en la
Universidad y en algunos casos no culminen sus estudios, para ello se analizarán datos de
estudiantes de la Facultad de Ingeniería entre los años 2009 y 2015, y para realizar dicho
análisis se hará uso de una de las técnicas de análisis de datos más utilizada llamada
Minería de Datos. Ver Anexo A- Análisis y selección de la información mediante la
herramienta de ayuda Weka
3.3.2 Ventajas
Los sistemas expertos tienen como ventaja que trabajan rápidamente llegando a una
buena solución con un buen nivel de fiabilidad, y son capaces de manejar grandes
cantidades de datos. Además, estas técnicas pueden ser usadas en diferentes áreas (no solo
en el área de la computación) como economía, medicina, biología, etc. Otra de las ventajas
es su modularidad, es decir que se pueden ir añadiendo más reglas sin necesidad de realizar
un cambio en el resto de las reglas existentes.
35
solución mejor adaptada a las necesidades de la Universidad Distrital se consideraron
soluciones comerciales, libres, frameworks o librerías y lenguajes para la resolución de
restricciones.
Para tomar una decisión entre las alternativas libres encontradas se realizó una matriz
ponderada con los siguientes puntos: mantenibilidad, documentación, facilidad de integrar a
un sistema web, portabilidad y velocidad. Se usó una escala de 1 a 5 que indicaba si dicha
característica de la solución era buena (5) o mala (1). Se confió en la documentación de la
solución en lo que respecta a la velocidad.
Por otra parte, se tiene como lenguaje para la solución de problemas de restricciones a
EclipseCLP. Este lenguaje fue descartado ya que al ser un superconjunto del lenguaje
declarado Prolog hubiese dificultado la mantenibilidad del módulo. Así mismo realizar una
aplicación web escrita en EclipseCLP hubiese necesitado la incorporación de otro lenguaje
con mayor cantidad de librerías web que interactuara con el solucionador escrito en
EclipseCLP, como java o Ruby. Es importante señalar que la velocidad de retorno de
solución del lenguaje EclipseCLP depende del solver con quien interactúe.
36
el protocolo HTTP. Entre las alternativas encontradas se tienen: Optaplanner, Choco, jOpt
y JaCop.
Choco es una librería que java para la programación de restricciones, permite variar
entre distintas estrategias de búsqueda basadas en búsqueda local. El control que se tiene
sobre las estrategias de búsqueda no es tan explícito y la forma que provee la librería de
modelar las variables es complicado en comparación con otras alternativas.
JOpt fue descartado por su documentación y el hecho de que el código fuente no había
sido actualizado desde hacer 7 años. Se basa en algoritmo de arco consistencia para la
resolución de CSPs (Problemas de satisfacción de restricciones).
JaCop es una librería de java que ofrece métodos para encontrar una sola solución de
un CSP de manera eficiente, usa Depth First Search. Fue descartado por su documentación
y la dificultad de modelar el problema.
Integración Sistema
Solución Mantenibilidad Documentación Portabilidad Velocidad Web
FET 2 3 4 4 2
OptaPlanner 4 5 4 4 4
EclipseCLP 3 4 3 - 3
Unitime 4 3 5 4 4
Choco 3 3 5 4 3
JOpt 2 2 4 4 3
JaCop 3 3 5 4 3
Tabla 4 Tabla Comparativa de Soluciones y motores de planificación. Fuente: Elaboración Propia
3.3.4 Optaplanner
37
Optaplanner combina optimización heurística y meta heurísticas como (Búsqueda
Tabú, Recorrido Simulado y Aceptación Tardía) con un muy eficiente cálculo de puntaje
(Ruescas, 2014-2015). Está patrocinado por Red Hat como parte de la comunidad JBoss y
es muy cercano a otros proyectos como son Drools y jBMP en el KIE group.
3.3.5 Wildfly 10
Es una aplicación web que provee un entorno web genérico para creación y
administración de reglas. Puede ser usado también para probar y desplegar reglas.
Anteriormente llamado también Guvnor.
38
3.3.7 JBoss Drools
Teniendo en cuenta lo anterior el siguiente diagrama muestra los pasos que hacen parte
del proceso:
39
Figura 2 Diagrama de Procesos inscripción automática de espacios académicos. Fuente: Elaboración Propia
Una vez preinscritas las asignaturas por los estudiantes (llamada preinscripción por
demanda) cada coordinación se encargará de generar los horarios de los mismos basados en
su preinscripción de asignaturas ya realizada, una vez preinscritas los coordinadores puede
verificar con estadísticas el cumplimiento del mismo y publicar los horarios.
Por supuesto el proceso es mucho más complejo de lo que se ve, pero de forma
simplificada estas son las actividades que hacen parte del proceso de preinscripción
automática.
40
4.2 Análisis de documentación existente
41
El componente de preinscripción automática actual hace parte del sistema de gestión
académica, ofrece como punto de entrada a la funcionalidad una clase específica, y desde
dentro de su implementación posee acceso a las bases de datos de la universidad para
obtener la información que usara en su procesamiento.
funcionarios/academicopro/bloque/preinscripción/admin_inscripcionAutomaticaCoordin
ador
Bloque.php
Function.class.php
Esta es una clase gorda que contiene toda la lógica del algoritmo para generar los
horarios, es la clase con más participación en el proceso, desde ella se llama a sql.class para
hacer todas las operaciones que involucran a la base de datos, es el Core del algoritmo,
contiene la función más importante para la construcción de la preinscripción.
Sql.class.php
Contiene todas las consultas SQL a los diferentes motores de bases de datos, en este
caso realiza consultas hacia el motor de Oracle y MySql, de la preinscripción automática y
del sistema de gestión académica.
42
HorariosBinarios.class.php
Esta clase contiene los métodos necesarios para hacer la transformación de los horarios
normales a horarios binarios, una clase auxiliar que permite la rápida comparación para
detectar las colisiones o cruces de espacios académicos de los horarios.
El planteamiento básico para la creación de la clase es que teniendo los horarios en los
formatos binarios existe una mayor facilidad en su comparación.
Combinaciones.class
A continuación, se detalla un poco más la interacción entre las clases php mediante un
diagrama de secuencia.
43
44
Figura 4 Diagrama de secuencia componente actual. Fuente: Elaboración Propia
45
funcionales y que permitan hacerla extensible, de fácil modificación, simple para la
comprensión etc.
Dentro del diseño del nuevo componente existen ciertas características que se
buscaban entre ellas las siguientes:
Un nuevo componente puede basarse en una arquitectura sin estado que facilite su
escalamiento y potencie su capacidad de procesamiento, que podría mejorar los tiempos de
respuesta y la calidad de las salidas.
Dado que es necesario que el nuevo componente actué tal como el anterior sin afectar
sustancialmente la manera en la que se ejecuta el proceso por medio del SGA, es
importante establecer interfaces web claras desde las cuales se puedan ejecutar los procesos
de preinscripción automática, de una manera transparente para el usuario.
Este punto busca mejorar la implementación del algoritmo usado para el cálculo de
posibilidades y obtención de mejores respuestas, para esto en vez de implementar un
algoritmo de 0 se decide usar un motor de planificación con restricciones, llamado
Optaplanner, el cual brinda una amplia gama de algoritmos de solución configurables.
46
Se toma la decisión de confiar en un producto con más de 10 años de creado, el cual ha
sido implantado en cientos de organizaciones para solucionar problemas de planificación
específicos.
El nuevo componente posee una arquitectura modular, donde se subdividen las tareas
de cálculo y manipulación de reglas, en servidores o instancias diferentes.
47
En kie-workbench se almacenarán las reglas con la finalidad de desacoplar su
funcionamiento del sistema de gestión académica, para desplegar esta aplicación es
preferible contar con el servidor wildfly 10 donde está probado su funcionamiento. Kie-
workbench ofrece una interfaz amigable para la administración de las reglas de negocio
pertenecientes al componente de preinscripción automática.
48
configuración de Optaplanner que indica que algoritmos debe usar el planificador, tiempos
por defecto de ejecución, naturaleza y complejidad del puntaje de las reglas.
Los módulos que brindan web implementan una API Rest que permite acceder a los
servicios del planificador, la creación, solución, terminación temprana, externalización y
demás servicios que hacen parte de su funcionalidad.
49
Nombre: Obtener mejor solución
Ruta acceso: /rest/solution
Propósito Retorna en formato json un objeto de datos que contiene la
información de la mejor solución obtenida de la planificación
actual, puede accederse dentro de la planificación y una vez ha
finalizado.
Parámetros N/A
Retorno Objeto json con la solución de la planificación solicitada
Tipo de método http GET
Tabla 5 Descripción Método REST Obtener Mejor solución. Fuente: Elaboración Propia
Tabla 6 Descripción Método REST Solicitar Planificación de Asignaturas. Fuente: Elaboración Propia
50
lanzada, que se encuentra en curso, el sistema busca la
planificación asociada a la sesión http y si esta activa la termina
de forma anticipada sin importar su puntuación mínima. A pesar
de acabar con la planificación al salir el algoritmo realiza las
demás actividades de terminación común de manera normal.
Parámetros N/A
Retorno Objeto Json que retorna un mensaje del estado de la solicitud
Tipo de método http GET
Tabla 7 Descripción Método REST Terminar la planificación de forma temprana. Fuente: Elaboración Propia
Tabla 8 Descripción Método REST Consultar estado de planificación. Fuente: Elaboración Propia
51
codCoordinador: (Tipo long) contiene el valor del código del
coordinador
Retorno Objeto json que retorna un mensaje del estado de la solicitud
Tipo de método http GET
Los objetos de datos de las diferentes fuentes alimentan los hechos de la planificación
de la solución, la configuración del comportamiento del algoritmo y la publicación de
espacios académicos preinscritos de manera automática.
ACCALEVENTOS:
En esta tabla se registran los eventos que indican las planificaciones o ejecuciones del
algoritmo de solución, indica el estado de la planificación necesario para no realizar dos
ejecuciones con los mismos parámetros de año, periodo y carrera.
ACCRA:
ACCURSOS:
ACEST:
52
Contiene la información de los alumnos y los estados en los que se encuentran, estados
que determinan la participación en la planificación de asignaturas.
ACHORARIOS:
ACINS:
ACINSDEMANDA:
ACESTADO:
ACINSPRE:
ACTABLAHOMOLOGACION:
53
Figura 8 Modelo de Datos Oracle. Fuente: Elaboración Propia
4.7 Modelo De Datos Mysql
SGA_EJECUTA_INSCRIPCION_AUTO:
SGA_CLASIFICACION_ESTUDIANTES:
SGA_RANKINGPREINSDEMANDA:
56
Figura 10 Diagrama de despliegue componte preinscripción automática. Fuente: Elaboración Propia
57
La aplicación se configura en 3 subcomponentes que interactúan para brindar la
funcionalidad de planificación los cuales se describen así:
Kie-ci 6.5.0 Final: Api de los servicios de kie, usada en el desacople de las reglas de
negocio y configuración de solucionador desde kie workbench.
Mysql-connector-java 5.1.40: Driver de mysql para conexión con la base de datos de
Mysql de la universidad.
58
Ojdbc6 11.2.0: Driver de Oracle para conexión con la base de datos de oracle de la
universidad.
Lombok 1.16.10: Funcionalidades de lombok para la generación de getters y setters.
Logback-classic 1.1.7: Librería que brinda la funcionalidad de logging para la
aplicación.
Optaplanner-core 6.5.0. Final: Core del motor de planificación de optaplanner.
Siguiendo el diseño realizado para la base de datos, se desarrollaron una serie de clases
para modelar el dominio de la solución. A continuación, se describe:
Dominio de solución
59
Figura 12 Clases del dominio de solución de planificación. Fuente: Elaboración Propia
4.9.2 Componentes de integración o interoperabilidad
Para que las sesiones construidas en workbench puedan ser usadas se personaliza el
archivo kmodule dentro del artefacto de workbench, indicando el paquete base desde el
cual buscara y cargara las reglas en sesión.
4.9.3 Implementación de reglas de negocio
Representan escenarios que no pueden ser permitidos por el planificador, reglas que no
se pueden romper, por tal motivo las soluciones que causan que se activen restricciones
fuertes negativas, serán descartadas automáticamente por el motor.
Representan escenarios que no deberían romperse si se pueden evitar, las reglas que
contienen estas restricciones disminuyen el puntaje de las soluciones.
Dentro de las reglas escritas para cumplir el propósito de este proyecto se encuentran
las siguientes:
62
Reglas de restricción fuerte negativas
Regla Descripción Calculo Mapeo de Regla con Declaración de la Regla
Puntaje Acuerdo
Negativo
N/A Acuerdo Nº 027 de 1993. rule "setearVariablesGlobales"
salience 1000
setearVariables Esta es usada para establecer el Artículo 51 –
lock-on-active
Globales valor de los créditos máximos Reglamentación del sistema when
programables por los estudiantes. de créditos y eval(creditosMaximos == null)
Esta regla posee una precedencia ACUERDO N° 009 "Por el then
drools.getWorkingMemory().setGlobal("creditosMaximos",
de ejecución para contar con los cual se implementa el
Integer.valueOf(18) );
valores a la hora de ejecutar las Sistema de Créditos end
siguientes reglas. Académicos en la
Universidad Distrital
Francisco José de Caldas"
Acuerdo Nº 004- Artículo rule "asignaturasSoloProgramanUnavez"
asignaturasSolo Esta regla define que un El valor por Séptimo. Del registro de los when
$cursoIzq : EstudianteXCurso(curso != null, estudiante!=
ProgramanUnaVe estudiante no puede tener la defecto por espacios académicos. null, $codAsignatura : codigoAsignatura , $idAsignatura :
z misma asignatura especifica cada idAsignaturaGrupo , $codEstudiante : estudianteCodigo)
programada más de 1 vez asignatura $cursoDer : EstudianteXCurso(curso != null, estudiante!=
null, codigoAsignatura == $codAsignatura ,
repetida es de
estudianteCodigo == $codEstudiante , idAsignaturaGrupo !=
-2 $idAsignatura )
then
scoreHolder.addHardConstraintMatch(kcontext, - 2);
end
programarCurso Esta regla define que un El valor por N/A rule "programarCursoSoloUnaVez"
when
SoloUnaVez estudiante no puede tener un defecto por
$cursoIzq : EstudianteXCurso(curso != null, estudiante!=
curso programado más de una cada curso null, $idAsignatura : idAsignaturaGrupo , $codEstudiante
vez. repetida es de : estudianteCodigo)
-2 $cursoDer : EstudianteXCurso(curso != null, estudiante!=
null, idAsignaturaGrupo == $idAsignatura ,
estudianteCodigo == $codEstudiante)
eval($cursoIzq != $cursoDer)
then
scoreHolder.addHardConstraintMatch(kcontext, - 2);
end
ProgramarSolo Esta regla obliga a que el sistema El valor por Acuerdo Nº 004- Artículo rule "programarSoloMateriasPreinscritasPorDemanda"
when
MateriasPreinscrit solo pueda planificar asignaturas defecto por Séptimo. Del registro de los
$cursoIzq : EstudianteXCurso(curso != null, estudiante!=
as PorDemanda que hayan sido seleccionadas cada espacios académicos. null, $codAsignatura : codigoAsignatura,
durante la preinscripción por asignatura listaCodigosPorDemanda not contains $codAsignatura)
then
demanda. planeada que scoreHolder.addHardConstraintMatch(kcontext, -2);
no ha sido end
preinscrita por
demanda es de
-2.
N/A rule "noPermitirCursosMismoHorario"
noPermitirCursos Esta regla define que un Se determina when
$courseConflict : ConflictoCursos($leftCourse :
MismosHorarios estudiante no puede tener más de mediante el getLeftCourse(), $rightCourse : getRightCourse())
una asignatura con un mismo conteo de $leftEstudianteCurso : EstudianteXCurso(curso ==
horario en un mismo día, evita el conflictos de $leftCourse, curso != $rightCourse, $estudiante :
getEstudiante())
conflicto de horarios la clase
$rightEstudianteCurso : EstudianteXCurso(curso ==
ConflictoCurs $rightCourse, curso == $leftCourse, estudiante ==
os $estudiante )
then
scoreHolder.addHardConstraintMatch(kcontext, -
$courseConflict.getConflictCount());
end
noPermitirCursos Esta regla evita los conflictos El valor por Acuerdo Nº 004 de 2011 rule "noPermitirCursosHomologadoseEnConflicto"
HomologadoseEn entre materias homologables y defecto por Artículo Décimo Segundo. when
$leftEstudianteCurso : EstudianteXCurso(curso != null,
Conflicto homologadas, con la finalidad de cada conflicto Planes de transición y estudiante!= null, $leftCourseId : idAsignaturaGrupo,
que solo aparezca una de las dos. programado es Homologación Curricular. $codigoAlumno : estudianteCodigo )
de -2. $rightEstudianteCurso : EstudianteXCurso(curso != null,
estudiante!= null, $rightCourseId : idAsignaturaGrupo,
idAsignaturaGrupo != $leftCourseId, estudianteCodigo ==
$codigoAlumno )
eval($leftEstudianteCurso != $rightEstudianteCurso)
$mapa :
Map(this[buildKeyInverse($leftCourseId,$rightCourseId)] >
0);
then
scoreHolder.addHardConstraintMatch(kcontext, -2);
end
EstudianteNo Esta regla restringe la Cada Acuerdo Nº 027 de 1993. rule "estudianteNoPuedeExcederCreditos"
PuedeExceder planificación para que evite rompimiento Artículo 51 – when
$leftEstudianteCurso : EstudianteXCurso(curso != null,
Creditos planificar más de 18 créditos que de esta regla Reglamentación del sistema estudiante!= null, $estudianteRef : estudiante )
son el máximo de un estudiante. causa un de créditos y $sumaCreditosEstudiante : Number() from
puntaje ACUERDO N° 009 "Por el accumulate(EstudianteXCurso(curso != null, estudiante ==
$estudianteRef, $creditos : creditos ), sum($creditos))
negativo de -2 cual se implementa el
eval($sumaCreditosEstudiante > creditosMaximos)
Sistema de Créditos then
Académicos en la scoreHolder.addHardConstraintMatch(kcontext, -2);
64
Universidad Distrital end
Francisco José de Caldas"
65
Se asigna un N/A rule "peorPuntajeMateriasMenosCompactas"
peorPuntajeMaterias Define un puntaje puntaje negativo when
$estudianteRef : Estudiante()
MenosCompactas negativo para los espacios por cada espacio $sumaCreditosEstudiante : Integer() from
entre asignaturas, se usan en la accumulate(EstudianteXCurso(estudiante == $estudianteRef,curso != null,
las funciones de programación $cursoRef : getCurso()),
calcularHorariosNegativeScore($cursoRef.getHorarios()))
acumulación y luego se diaria.
then
verifican los horarios por scoreHolder.addSoftConstraintMatch(kcontext, -
día, obteniendo un valor $sumaCreditosEstudiante);
por cada espacio. end
66
4.10 Pruebas del componente
Casos de prueba
Información de la Planificación
Tabla 13 Descripción caso de prueba Ejecución del motor de planificación. Fuente: Elaboración Propia
68
Nombre: Consulta estado de planificación
Propósito:
Verificar el estado de la solicitud de planificación
Prerrequisitos N/A
1. Deben indicarse los siguientes parámetros:
Datos de Prueba anio: 2017
periodo:1
codCoordinador:25
Herramientas Postman
utilizadas en la
prueba
Dependiendo del estado del proceso (En ejecución, ya ejecutado o no existente)
Resultados puede retornar tres mensajes diferentes:
esperados 1. El proceso de planificacion para estas variables año:"+anio+"
periodo:<periodo> codigo carrera: <codCarrera> está en ejecución
2. Ya se ha ejecutado un proceso para las variables año: <anio>
periodo:<periodo> codigo carrera:<codCarrera
3. "No existe proceso para las variables año:<anio> periodo:<periodo>codigo
carrera: <codCarrera>
4. Terminado temprano
69
Proceso de planificación en ejecución
Tabla 14 Descripción Caso de prueba Consulta estado de planificación. Fuente: Elaboración Propia
Herramientas Postman
utilizadas en la prueba
Resultados esperados Dependiendo del estado del planificador se pueden obtener dos mensajes
diferentes
1. Que la planificación ha terminado de forma temprana o
2. Que el planificador ya ha terminado el proceso
En el primer caso el planificador debe detenerse inmediatamente después de
terminar el llamado al servicio, sin dejar de ejecutar las actividades definidas en
el proceso inicial.
En el segundo caso no hay ninguna repercusión adicional porque ya el
planificador se ha detenido.
70
Validación
Tabla 15 Descripción caso de prueba Terminado temprano de planificación. Fuente: Elaboración Propia
71
Validación
Publicación de Horarios
Solo se ejecutaron los experimentos una sola vez, teniendo en cuenta que la forma de
construcción pudiese tomar cualquier tipo de pasos. Por ejemplo, que los pasos tomados
solo bajasen los puntajes de las restricciones fuertes y suaves y cuando solo se podía tomar
72
valores negativos para puntajes de restricciones fuertes. Los algoritmos fueron ejecutados
con tiempos de:
Caso 1: 2 minutos
Caso 2: 4 Minutos
Caso 3: 6 minutos
Tabú Search
Simulated Annealing
Step Counting Hill Climbing
Late Acceptance Hill Climbing
Step Counting
Cada uno de los algoritmos fue probado teniendo en cuenta los casos de prueba de la
tabla 17 y los tiempos de ejecución definidos para cada caso.
Ítem Máquina
Procesador Intel Core i7 6700HQ (Skylate
Memoria 12Gb
(RAM)Duro
Disco 1 TB
Sistema Windows 10
Operativo
Versión Java Openjdk version ”1.8.0”
Tabla 18 Máquina usada para las pruebas. Fuente: Elaboración Propia
73
4.10.2.3 Resultados
Nota: se debe tener en cuenta que las pruebas se hacen en el nivel de logging de info.
Se tienen dos tipos de puntaje: uno hard o duro que representa el cumplimiento de las
reglas que son indispensables para tener un horario coherente y otro soft o suave que
representan el cumplimiento de las reglas que, a pesar de no ser indispensables, son
necesarias para representar un buen horario.
Se puede evidenciar que el algoritmo que mejor se adapta a la solución y brinda mejor
puntuación es el Hill Climbing el cual es una estrategia basada en optimización local. Sigue
la dirección de ascenso/descenso más empinada a partir de su posición y requiere muy poco
costo computacional, en este caso se evidencia que para los 3 casos da cumplimiento a las
reglas fuertes o indispensables mostrando una puntuación de 0 y en las suaves alcanza
valores altos positivos, lo que genera resultados óptimos.
Así mismo se realizó una página de prueba en angular que permite visualizar los
resultados obtenidos haciendo uso de los pluggins llamados UI Calendar y Full calendar los
cuales llaman a los servicios REST y construyen los calendarios de los alumnos según la
solución encontrada por el planificador como se evidencia a continuación.
74
Figura 14 Generación de calendarios. Fuente: Elaboración Propia
75
PARTE III CIERRE DE LA INVESTIGACIÓN
A continuación se describen las conclusiones, contraste de los objetivos con sus resultados
y líneas de investigación futuras del presente proyecto.
CAPITULO 5 CONCLUSIONES
En este apartado se plasmarán todas las conclusiones obtenidas a través del desarrollo
de los objetivos planteados, para la solución de este proyecto.
76
de modificación a nivel de usuario de negocio.
Diseñar un caso de estudio para verificar la Con la información suministrada por parte de la Oficina
validez del prototipo propuesto. Asesora de sistemas y las fuentes consultadas se logra
verificar la validez del componente prototipo, haciendo
uso de información real ofuscada.
Para las pruebas del panificador se hace uso de las tablas
del sga suministradas por la OAS con datos de una
carrera de la facultad de ingeniería.
Para el caso del análisis y selección de la información
mediante la herramienta de ayuda Weka, se analizó la
información de estudiantes desde un archivo. arff que
contenía el registro de las inscripciones de espacios
académicos, realizadas desde el año 2010 al 2016/I, sede
Bogotá, Facultad de Ingeniería.
Tabla 20 Contraste Objetivos Vs Evidencias Cumplimiento. Fuente: Elaboración Propia
77
realizar las tareas de programación de asignaturas, aulas y profesores de formas diferentes
que se adapten con facilidad a los cambios que ocurren en el mundo real.
Una de las líneas de investigación que se puede explorar es el uso de ontologías que
representen los actores de la información académica relacionada con la programación de
asignaturas, junto con el uso de técnicas de inteligencia artificial que brinden una
alternativa a la solución propuesta en el presente proyecto.
Mejorar el uso del planificador extendiendo el dominio de solución para que soporte
las construcciones heurísticas que no soportan el modelo actual.
Encontrar la mejor configuración de algoritmos de optimización mediante el uso del
módulo de benchmarking de Optaplanner.
Desarrollar un sistema computacional que utilice como optimizador el diseño del
prototipo propuesto incorporando diferentes opciones mediante una interfaz
amigable y que con su implementación sea posible automatizar el proceso de
generación de la programación de asignaturas, aulas, aumentando la calidad de las
programaciones, la flexibilidad ante cambios en los requerimientos, condiciones
deseables y la posibilidad de explorar múltiples escenarios.
Se espera que estas líneas de investigación futuras puedan ser desarrolladas dentro del
marco de un proyecto de grado para programas de pregrado o de especialización o como
tema de profundización para grupos de investigación.
78
BIBLIOGRAFÍA
Al-Barrak & Al-Razgan. (2016). Predicting Students Final GPA Using Decision Trees:
A Case Study. International Journal of Information and Education Technology. 528-
533.
Amaya Y. Barrientos E. & Heredia D. (2015). Student Dropout Predictive Model Using
Data Mining Techniques. IEEE LATIN AMERICA TRANSACTIONS, 13(9), 3127-
3134.
Crane, B. (2008). Using WEB 2.0 tools in the K-12 classroom. Neal-Schuman
Publishers, Inc.
Data Mining with Open Source Machine Learning Software in Java. (s.f.). Obtenido de
http://www.cs.waikato.ac.nz/ml/weka/index.html
De Alba, A. (1992). Evaluación Curricular conformación conceptual del campo.
México: Universidad Nacional Autónoma de México.
79
Fayyad y Otros. (1996). From Data Mining to Knowledge Discovery in Databases.
Lopez Guzman & Gonzalez. (2015). A Model to Predict Low Academic Performance at
a Specific Enrollment Using Data Mining. IEEE REVISTA IBEROAMERICANA DE
TECNOLOGIAS DEL APRENDIZAJE-IEEE RITA, 10(3), 119-125.
Pidd, M. (2009). Tools for Thinking: Modelling in Management Science, 3rd Edition.
Romero Ventura & García. (2008). Data mining in course management systems:
Moodle case study and tutorial. Computers & Education, 368-364.
Ros, N. (2015). Fundamentos de Ingeniería del Software. Obtenido de
http://froac.manizales.unal.edu.co/roap/uploads/4/12/145.pdf
80
RECONOCIMIENTO DE FORMAS E IMAGEN DIGITAL:
https://riunet.upv.es/bitstream/handle/10251/75028/TFM%20Aplicaci%C3%B3n%20de
%20t%C3%A9cnicas%20metaheur%C3%ADsticas%20para%20la%20asignaci%C3%
B3n%20de%20turnos%20de%20trabajo.pdf?sequence=1
81
PARTE V ANEXOS
Teniendo en cuenta el gran avance en los sistemas de minería de datos en los últimos
tiempos, las entidades educativas y empresariales han buscado maneras de explotar al
máximo la información existente en sus sistemas de información, esto basándose en
técnicas y software especializados que permiten la interpretación fácil y real de los
resultados. Es así que, para dar apoyo en la toma de decisiones a niveles administrativos o
gerenciales, se crean metodologías especializadas y técnicas de extracción adecuada de la
información, haciendo que el usuario final pueda ver los resultados con pocos pasos.
82
Es por esta razón que se quiere realizar un análisis de la información y así lograr
obtener un diseño de un componente prototipo para mejorar el proceso de inscripción
automática de espacios académicos en el sistema de gestión académica de la Universidad
Distrital con el fin de poder disminuir parte de las problemáticas presentadas en los
estudiantes y sus carreras, pero así mismo se pretende determinar cuáles son las causas que
conllevan a que los estudiantes estén “retenidos” y permanezcan más de lo estipulado en la
Universidad y en algunos casos no culminen sus estudios, para ello se analizarán datos de
estudiantes de la Facultad de Ingeniería entre los años 2009 y 2015, y para realizar dicho
análisis se hará uso de una de las técnicas de análisis de datos más utilizada llamada
Minería de Datos.
Según autores como (Vallejos, 2006) varios autores describen la minería de datos
como:
83
Las herramientas de la minería de datos se combinan fácilmente y pueden
analizarse y procesarse rápidamente.
Debido a la gran cantidad de datos, algunas veces resulta necesario usar
procesamiento en paralelo para la minería de datos.
Asociaciones.
Secuencias.
Clasificaciones.
Agrupamientos
Pronósticos.
84
Datos Educacional (EDM) por sus siglas en inglés, el cual consiste en la aplicación de un
conjunto de técnicas y herramientas de la minería de datos que permitan ayudar a mejorar
los procesos educativos, pedagógicos que mejoren los niveles de aprendizaje y las técnicas
de enseñanza. Dentro de la sociedad internacional de la minería de datos definen EDM
como una disciplina que emerge de la minería de datos tradicional que se preocupa por
desarrollar métodos que expliquen los fenómenos relacionados con el ámbito de la
educación, con el fin de utilizar estos métodos para entender el entorno en que los
estudiantes se desenvuelven y poder mejorar las condiciones de enseñanza y aprendizaje.
(Lopez Guzman & Gonzalez, 2015).
Se depuro la información para determinar cuáles son los datos o variables más
relevantes que brindarán la mejor calidad en el proceso de análisis y desarrollo del
modelo.
Para descubrir el conocimiento que tienen los datos analizados dentro de sí mismos, se
cuenta con dos técnicas de análisis de datos las cuales son las predictivas y descriptivas, sin
embargo, para el análisis realizado solo se tuvo en cuenta las técnicas predictivas (Pérez,
2014). Dentro de las técnicas predictivas se contemplan los modelos de regresión y la
clasificación ad hoc, que a su vez está compuesta por arboles de decisión y redes
neuronales, para este caso en particular se hizo énfasis en las técnicas relacionadas con los
arboles de decisión.
2. Árbol de decisión
85
técnica de clasificación más utilizada para poder realizar un análisis a un sistema o un
problema de orden predictivo. Es de los más utilizados debido a su facilidad para realizar el
análisis de los datos, los pasos de aprendizaje y clasificación del árbol de decisión son
sencillos y rápidos.
Un árbol de decisión tiene unas entradas las cuales pueden ser un objeto o una
situación descrita por medio de un conjunto de atributos y a partir de esto devuelve una
respuesta la cual en últimas es una decisión que es tomada a partir de las entradas.
Los valores que pueden tomar las entradas y las salidas pueden ser valores discretos o
continuos. Se utilizan más los valores discretos por simplicidad. Cuando se utilizan valores
discretos en las funciones de una aplicación se denomina clasificación y cuando se utilizan
los continuos se denomina regresión (Ros, 2015).
3. Algoritmo J48
Calcula el valor de la información proporcionada por una regla candidata (o rama del
árbol), con una rutina que se llama “info”.
Calcula la mejora global que proporciona una regla/rama usando una rutina que se
llama gain (beneficio).
El algoritmo J48 de WEKA es una implementación del algoritmo C4.5, uno de los
algoritmos de minería de datos más utilizado. Se trata de un refinamiento del modelo
generado con OneR22 Supone una mejora moderada en las prestaciones, y podrá conseguir
una probabilidad de acierto ligeramente superior al del anterior clasificador (Garcia, 2010).
El algoritmo J48 se basa en la utilización del criterio ratio de ganancia (gain ratio). De esta
manera se consigue evitar que las variables con mayor número de posibles valores salgan
2
Es un clasificador de los más sencillos y rápidos. Sus resultados pueden ser muy buenos en comparación
con algoritmos mucho más complejos. Selecciona el atributo que mejor “explica” la clase de salida.
86
beneficiadas en la selección. Además, el algoritmo incorpora una poda del árbol de
clasificación una vez que éste ha sido inducido (Collada, 2010).
Para tareas de clasificación, el algoritmo J48 resulta muy simple y potente, este
algoritmo representa a su vez una evolución del algoritmo ID3. El procedimiento para
generar el árbol consiste en seleccionar un atributo como raíz, y crear una rama con cada
uno de los valores posibles de dicho atributo; con cada rama resultante se realiza el mismo
proceso. En cada nodo se debe seleccionar un atributo para seguir dividiendo, y para ello se
selecciona aquel que mejor separe los ejemplos de acuerdo a la clase (Muñoz, 2010). Se ha
seleccionado los árboles de clasificación por la sencillez del modelo, su accesibilidad a ser
representados gráficamente, la explicación que aporta a la clasificación y por su rapidez a la
hora de clasificar nuevos patrones.
Muestreo estadístico
Muestreo aleatorio simple
Muestreo estratificado
Muestreo de conglomerados
87
5.2 Fase de Limpieza
Esta fase comprende el proceso mediante el cual los datos originales son
transformados con el fin de facilitar y ajustar los datos a los algoritmos que se quieren
ejecutar sobre dicha información, de tal manera que se obtenga un análisis correcto
mediante la aplicación del algoritmo que más se ajuste a la naturaleza de la información y
del problema, dando como resultado un modelo muy próximo a la situación real.(Romero et
al., 2008)
Para ello existen varios tipos de transformaciones, entre ellos se destacan los
siguientes:
Transformaciones Lógicas
Transformaciones Lineales
Transformaciones algebraicas
Transformaciones no lineales no monofónicas
88
modelo, por lo tanto lo que se busca es seleccionar las variables independientes que mayor
influencia tengan sobre la variable dependiente para así poder construir una regla de
decisión que permita clasificar a un elemento nuevo dentro de alguno de los grupos
resultantes.
6. Resultados
Para el presente análisis se tuvo como base, Información académica de los estudiantes,
desde el año 2009, información de materias inscritas, canceladas, pérdidas, pasadas,
información de docentes, información socioeconómica de los estudiantes y sus
competencias académicas, información de los estudiantes que han desertado en los últimos
años en la Universidad, información del plan de estudio de cada uno de los proyectos
curriculares y la información académica por materias:
Se crea una base de datos sobre el motor de bases de datos PostgreSql 9.3 con los
siguientes atributos:
89
espanol_literatura integer,
aptitud_matematica integer,
condicion_matematica integer,
filosofia integer,
idioma integer,
puntos_icfes integer,
codigo_estudiante bigint,
valor_matricula double precision,
acuerdo character varying(20),
asignatura character varying(100),
pensum character varying(20),
ingresos_anuales double precision,
estado_actual character varying(100),
edad double precision,
aprobo character varying(2),
veces_curso integer,
deserto character varying(2),
nota double precision,
nivel_asignatura character varying(8),
creditos_asignatura integer,
numero_asignaturas integer
)
WITH (
OIDS=FALSE
);
ALTER TABLE public."ProyectoSGA"
OWNER TO jenny;
90
Después de realizar el cargue de la información se procede a evaluar una por una las
variables cargadas, se hace una selección de las variables más relevantes, es decir, las que
se tuvieron en cuenta al momento de generar el modelo mediante la aplicación del
algoritmo J48.
Estrato: Esta variable también presenta una buena calidad de datos, aunque hay 452
registros que no registran información para esta variable, la mayoría de los registros se
encuentran en los estratos 2 y 3, lo que concuerda totalmente con la realidad, puesto que la
Universidad Distrital al ser una institución de orden público abarca este sector de la
población.
91
Género: Esta variable también tiene una buena calidad, puesto que sobre una cantidad
total de 81151 registros solo 10 no presentan un valor para ésta, al igual que la variable
proyecto curricular esta tiene una representación discreta por lo que es adecuada usarla en
las técnicas de clasificación puesto que los rangos o grupos de clasificación pueden ser bien
definidos por el modelo. En esta variable se destaca el hecho de que el mayor porcentaje de
los registros están en el género Masculino, lo que muestra claramente que en el caso de la
Universidad Distrital para la facultad de Ingeniería la mayoría de la población son hombres
y por ende sería este género el que en mayor proporción este influyendo en la retención y
deserción académica.
Otras de las variables que se tuvieron en cuenta para el análisis y selección fueron las
que están relacionadas con los puntajes y resultados obtenidos por los estudiantes en las
pruebas del ICFES, de estas variables se cuenta con toda la información para cada uno de
los registros debido a que la Universidad exige estas calificaciones como uno de sus
requisitos para poder ser admitido en cualquiera de los cursos, por lo tanto, presenta una
buena calidad.
Acuerdo: La variable acuerdo hace referencia a las políticas que rigen al estudiante
según el semestre o periodo en el que haya ingresado a estudiar por medio de las cuales se
definen cada una de las normativas referentes a la nota mínima requerida para aprobar una
asignatura, la cantidad máxima de repitencia de una asignatura, el tiempo máximo que tiene
el estudiante para culminar sus estudios, las modalidades de grado, las causas por las que
puede ser suspendido, sancionado o expulsado de la institución, entre otras más. Esta
variable es relevante dado que dependiendo del acuerdo el estudiante puede o no contar con
más recursos que le ayuden en su proceso educativo.
92
Figura 20 Detalle Variable Acuerdo
Localidad: Esta variable también tiene una representación discretizada, además tiene
una correlación directa con la variable estrato puesto que el lugar donde se habita determina
el estrato socioeconómico. Dentro de las 20 localidades con las que cuenta Bogotá se puede
observar que la mayor cantidad de estudiantes vive en las siguientes:
Kennedy
Engativá
Suba
Fuera de Bogotá
Otras de las variables que se tuvieron en cuenta para el análisis y selección fueron las
que están relacionadas con los puntajes y resultados obtenidos por los estudiantes en las
pruebas del ICFES, de estas variables se cuenta con toda la información para cada uno de
los registros debido a que la Universidad exige estas calificaciones como uno de sus
requisitos para poder ser admitido en cualquiera de los cursos, por lo tanto, presenta una
buena calidad.
93
Asignatura: Esta variable también es discreta y presenta una buena calidad pues todos
los registros tienen valor para ella, las asignaturas que mayor cantidad de registros
presentan son aquellas que se ven en los primeros semestres y son transversales a todos los
proyectos curriculares, se puede notar una tendencia en que en más avanzado sea el
semestre al que pertenece la materia hay menor es el número de estudiantes que la toman,
por un lado esto se debe a las profundizaciones propias de cada proyecto donde ya no se
comparten asignaturas entre los diferentes planes de estudio pero por otro lado esto puede
ser debido a que en los primeros semestres es cuando mayor cantidad de deserción se
presenta y los estudiantes pierden más materias.
94
Estado transitorio de carácter académico en el cual queda incurso un estudiante de la
Universidad que al cierre de notas del periodo cursado se encuentre en alguna de las
siguientes situaciones:
c. Tenga que cursar uno (1) o más espacios académicos por tercera (3ª) o por cuarta
(4ª) vez.
Y seguido a este se encuentra el estado de retiro voluntario, lo que demuestra una vez
más el problema de deserción. Esta variable es relevante dado que dependiendo del estado
en que se encuentre el estudiante puede o no contar con más recursos que le ayuden en su
proceso educativo.
Edad: Esta variable es altamente significativa y hace referencia a la edad que tiene un
estudiante al momento de cursar cierta asignatura y no solamente la a la edad con la que
ingreso a la institución. Se puede observar que tiene una distribución entre los 15 y 46 años
siendo el rango entre los 19 a 20 años el que registra la mayor cantidad, por lo tanto, este
será el rango de edad más significativo para el modelo.
95
Aprobó: En esta variable se registra SI, en caso de que el estudiante haya obtenido una
nota mayor a la mínima requerida según el acuerdo por el cual está regido, de no haber
alcanzado dicha nota mínima se registra un NO. Esta variable tiene una relación directa con
la variable veces_cursó que hace referencia a la cantidad de veces que un estudiante tuvo
que tomar una asignatura para poder aprobarla en caso de no haberla aprobado en la
primera vez.
Esta variable tiene buena calidad pues todos los registros cuentan con ella, además es
altamente relevante puesto que dependiendo de las veces que un estudiante curse una
materia y según el acuerdo que lo rige el estudiante está expuesto a perder la calidad de
estudiante; esta variable tiene una distribución entre 1 y 4 que es la máxima cantidad de
veces que según el acuerdo vigente un estudiante podría cursar una misma asignatura.
Por último se tuvo en cuenta la cantidad de materias que un estudiante cursa al mismo
tiempo y en un mismo periodo académico, la cal también tiene una buena calidad y tiene
una distribución entre 1 y 19 materias, hay que aclarar que la distribución en su gran
mayoría está concentrada entre 5 y 8 materias, en los casos que se tienen más de 8 materias
por lo general pertenecen a casos en los que se realizó una transferencia de un estudiante y
debido a las homologaciones realizadas se refleja una cantidad anormal de materias
cursadas; debido a que son muy pocas las ocurrencias de este fenómeno se concluye que la
variables es adecuada para ser analizada y tenida en cuenta en el momento de generar el
modelo.
96
Luego de tener la información que será analizada, se procede a realizar limpieza y
selección de datos, con el fin de depurarlos y así trabajar sobre las variables más relevantes
para evidenciar parte de la problemática planteada sobre la retención y deserción de los
estudiantes. Usando la herramienta WEKA la generación del modelo fue realizado usando
el algoritmo de asociación Apriori. Mediante algoritmos de asociación podemos realizar la
búsqueda automática de reglas que relacionan conjuntos de atributos entre sí. Son
algoritmos no supervisados, ya que no existen relaciones conocidas a priori con las que
contrastar la validez de los resultados, sino que se evalúa si esas reglas son estadísticamente
significativas.
97
Figura 29 Árbol de decisión generado bajo el algoritmo J48
Figura 30 Reglas encontradas con algoritmo de asociación weka.associations.Apriori -N 10 -T 0 -C 0.9 -D 0.05 -U 1.0 -
M 0.1 -S -1.0 -c -1
98
ANEXO B. DICCIONARIO DE DATOS MODELO ORACLE
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 ACE_COD_EVENTO P Y NUMERIC LT
2 ACE_CRA_COD P Y NUMERIC (3) LT
3 ACE_FEC_INI Date LT
4 ACE_FEC_FIN Date LT
5 ACE_TIP_CRA NUMERIC (2) LT
6 ACE_DEP_COD NUMERIC (3) LT
7 ACE_ANIO P Y NUMERIC (4) LT
8 ACE_PERIODO P Y NUMERIC (1) LT
9 ACE_ESTADO VARCHAR (1 BYTE) LT
10 ACE_HABILITAR_EX VARCHAR (1 BYTE) LT
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 CUR_ID P Y NUMERIC (10) LT
2 CUR_APE_ANO Y NUMERIC (4) LT
3 CUR_APE_PER Y NUMERIC (1) LT
4 CUR_ASI_COD Y NUMERIC (8) LT
5 CUR_GRUPO Y NUMERIC (5) LT
6 CUR_CRA_COD Y NUMERIC (3) LT
7 CUR_DEP_COD Y NUMERIC (4) LT
8 CUR_NRO_CUPO Y NUMERIC (3) LT
100
9 CUR_NRO_INS NUMERIC (3) LT
10 CUR_ESTADO VARCHAR (3 BYTE) LT
11 CUR_PAR1 NUMERIC (3) LT
12 CUR_PAR2 NUMERIC (3) LT
13 CUR_PAR3 NUMERIC (3) LT
14 CUR_PAR4 NUMERIC (3) LT
15 CUR_PAR5 NUMERIC (3) LT
16 CUR_PAR6 NUMERIC (3) LT
17 CUR_LAB NUMERIC (2) LT
18 CUR_EXA NUMERIC (2) LT
19 CUR_HAB NUMERIC (2) LT
20 CUR_CAP_MAX NUMERIC (3) LT
21 CUR_HOR_ALTERNATIVO NUMERIC (3) LT
22 CUR_TIPO NUMERIC (3) LT
Columns Comments
No Column Name Description Notes
1 CUR_ID CODIGO DEL CURSO. INCREMENTAL
2 CUR_APE_ANO ANIO
3 CUR_APE_PER PERIODO
4 CUR_ASI_COD ASIGNATURA
5 CUR_GRUPO GRUPO
6 CUR_CRA_COD CARRERA
7 CUR_DEP_COD FACULTAD
8 CUR_NRO_CUPO CUPO
9 CUR_NRO_INS INSCRITOS
10 CUR_ESTADO ESTADO DEL REGISTRO
11 CUR_PAR1 NOTAR PARCIAL 1
12 CUR_PAR2 NOTAR PARCIAL 2
13 CUR_PAR3 NOTAR PARCIAL 3
14 CUR_PAR4 NOTAR PARCIAL 4
15 CUR_PAR5 NOTAR PARCIAL 5
16 CUR_PAR6 NOTAR PARCIAL 6
17 CUR_LAB NOTAR LABORATORIO
101
18 CUR_EXA NOTAR EXAMEN
19 CUR_HAB NOTAR HABILITACION
20 CUR_CAP_MAX CAPACIDAD MAXIMA DEL CURSO
21 CUR_HOR_ALTERNATIVO 0 HORARIO UNICO. 1 VARIOS HORARIOS
22 CUR_TIPO TIPO DE CURSO
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 EST_COD P Y NUMERIC (11) LT
2 EST_CRA_COD F Y NUMERIC (3) LT
3 EST_NOMBRE Y VARCHAR (50 BYTE) LT
4 EST_NRO_IDEN NUMERIC (14) LT
5 EST_TIPO_IDEN VARCHAR (1 BYTE) LT
6 EST_LIB_MILITAR VARCHAR (14 BYTE) LT
7 EST_NRO_DIS_MILITAR NUMERIC (2) LT
8 EST_CORRESPONDENCIA VARCHAR (1 BYTE) LT
9 EST_DIRECCION VARCHAR (100 BYTE) LT
10 EST_TELEFONO NUMERIC (10) LT
11 EST_ZONA_POSTAL NUMERIC (6) LT
12 EST_EXENTO VARCHAR (1 BYTE) LT
13 EST_MOTIVO_EXENTO VARCHAR (2 BYTE) LT
14 EST_PORCENTAJE NUMERIC (3) LT
15 EST_RENTA_LIQUIDA NUMERIC (8) LT
16 EST_PATRIMONIO_LIQUIDO NUMERIC (10) LT
17 EST_VALOR_MATRICULA NUMERIC (8) LT
18 EST_ESTADO_EST F Y VARCHAR (1 BYTE) LT
19 EST_JORNADA VARCHAR (1 BYTE) LT
20 EST_ESTADO VARCHAR (1 BYTE) LT 'A'
102
21 EST_PEN_NRO NUMERIC (3) LT
22 EST_SEXO VARCHAR (1 BYTE) LT
23 EST_PBM NUMERIC (3) LT
24 EST_OPCION_MAT NUMERIC (1) LT
25 EST_INGRESOS_ANUALES NUMERIC (10) LT
26 EST_DIFERIDO VARCHAR (1 BYTE) LT 'N'
27 EST_IND_CRED CHAR (1 BYTE) LT 'N'
28 EST_NRO_IDEN_ANT NUMERIC LT
29 EST_TIPO_IDEN_ANT VARCHAR (1 BYTE) LT
30 EST_ACUERDO NUMERIC (7) LT 2011004
31 EST_FALLECIDO Y VARCHAR (1 BYTE) LT 'N'
Columns Comments
No Column Name Description Notes
1 EST_COD CODIGO DE ESTUDIANTE
2 EST_CRA_COD CODIGO DE CARRERA DEL ESTUDIANTE
3 EST_NOMBRE NOMBRE DE ESTUDIANTE
4 EST_NRO_IDEN NUMERO DE IDENTIFICACIÓN DEL ESTUDIANTE
5 EST_TIPO_IDEN TIPO DE IDENTIFICACIÓN DEL ESTUDIANTE
6 EST_LIB_MILITAR ESTADO LIBRETA MILITAR
7 EST_NRO_DIS_MILITAR NUMERI DISTRITO MILITAR
8 EST_CORRESPONDENCIA CORRESPONDENCIA
9 EST_DIRECCION DIRECCION DEL ESTUDIANTE
10 EST_TELEFONO NÚMERO DE TELÉFONO DEL ESTUDIANTE
11 EST_ZONA_POSTAL ZONA POSTAL
12 EST_EXENTO ESTADO EXENTO DE MATRICULA
13 EST_MOTIVO_EXENTO MOTIVO EXENTO
14 EST_PORCENTAJE ESTADO PORCENTAJE
15 EST_RENTA_LIQUIDA ESTADO RENTA LIQUIDADA
16 EST_PATRIMONIO_LIQUIDO PATRIMONIO LIQUIDADO
17 EST_VALOR_MATRICULA VALOR DE MATRICULA DEL ESTUDIANTE
18 EST_ESTADO_EST ESTADO ESTUDIANTE
19 EST_JORNADA JORNADA
20 EST_ESTADO ESTADO
103
23 EST_PBM ESTADO PBM
24 EST_OPCION_MAT ESTADO MOTIV
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 ESTADO_COD Y VARCHAR (1 BYTE) LT
2 ESTADO_NOMBRE VARCHAR (20 BYTE) LT
3 ESTADO_DESCRIPCION VARCHAR (50 BYTE) LT
4 ESTADO_ACTIVO VARCHAR (1 BYTE) LT 'N'
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 HOR_ID P Y NUMERIC (10) LT
2 HOR_ID_CURSO F Y NUMERIC (10) LT
3 HOR_DIA_NRO Y NUMERIC (1) LT
4 HOR_HORA Y NUMERIC (2) LT
5 HOR_ALTERNATIVA Y NUMERIC (3) LT
6 HOR_ESTADO VARCHAR (3 BYTE) LT
7 HOR_SAL_ID_ESPACIO VARCHAR (45 BYTE) LT
104
Tabla 26 Detalle Tabla ACHORARIOS
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 INS_CRA_COD F Y NUMERIC (3) LT
2 INS_EST_COD P F Y NUMERIC (11) LT
3 INS_ASI_COD P Y NUMERIC (8) LT
4 INS_GR Y NUMERIC (10) LT
5 INS_NOTA NUMERIC (2) LT
6 INS_OBS NUMERIC (2) LT
7 INS_SECUENCIA NUMERIC (4) LT
8 INS_ESTADO VARCHAR (1 BYTE) LT 'A'
9 INS_ANO P Y NUMERIC (4) LT
10 INS_PER P Y NUMERIC (1) LT
11 INS_NOTA_PAR1 NUMERIC (2) LT
12 INS_NOTA_PAR2 NUMERIC (2) LT
13 INS_NOTA_PAR3 NUMERIC (2) LT
14 INS_NOTA_PAR4 NUMERIC (2) LT
15 INS_NOTA_PAR5 NUMERIC (2) LT
16 INS_NOTA_LAB NUMERIC (2) LT
17 INS_NOTA_EXA NUMERIC (2) LT
18 INS_NOTA_HAB NUMERIC (2) LT
19 INS_NOTA_ACU NUMERIC (4,2) LT
20 INS_USUARIO VARCHAR (20 BYTE) LT
21 INS_CRED NUMERIC (3) LT
22 INS_NRO_HT NUMERIC (2) LT
23 INS_NRO_HP NUMERIC LT
24 INS_NRO_AUT NUMERIC LT
25 INS_CEA_COD NUMERIC (2) LT
26 INS_NOTA_PAR6 NUMERIC LT
105
27 INS_TOT_FALLAS Y NUMERIC (2) LT 0
28 INS_SEM NUMERIC (2) LT 0
29 INS_HOR_ALTERNATIVO Y NUMERIC (3) LT 0
Columns Comments
No Column Name Description Notes
1 INS_CRA_COD INSCRIPCION CÓDIGO DE CARRERA
2 INS_EST_COD INSCRIPCION CÓDIGO DEL ESTUDIANTE
3 INS_ASI_COD INSCRIPCION CÓDIGO DE ASIGNATURA
4 INS_GR INSCRIPCION GRADO
5 INS_NOTA INSCRIPCION NOTA
6 INS_OBS OBSERVACIONES
7 INS_SECUENCIA SECUENCIA
8 INS_ESTADO ESTADO
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 INSDE_ANO P Y NUMERIC (4) LT
2 INSDE_PER P Y NUMERIC (1) LT
3 INSDE_EST_COD P Y NUMERIC (11) LT
4 INSDE_ASI_COD P Y NUMERIC (8) LT
5 INSDE_CRA_COD Y NUMERIC (3) LT
6 INSDE_CRED NUMERIC (3) LT
7 INSDE_HTD NUMERIC (2) LT
8 INSDE_HTC NUMERIC (2) LT
9 INSDE_HTA NUMERIC (2) LT
10 INSDE_CEA_COD NUMERIC (2) LT
11 INSDE_PERDIDO VARCHAR (1 BYTE) LT
106
12 INSDE_ESTADO VARCHAR (1 BYTE) LT 'A'
13 INSDE_EQUIVALENTE NUMERIC (8) LT 0
14 INSDE_SEM NUMERIC (2) LT
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 INS_ANO P Y NUMERIC (4) LT
2 INS_PER P Y NUMERIC (1) LT
3 INS_CRA_COD P Y NUMERIC (3) LT
4 INS_EST_COD P Y NUMERIC (11) LT
5 INS_ASI_COD P Y NUMERIC (8) LT
6 INS_GR Y NUMERIC (10) LT
7 INS_SEM Y NUMERIC (2) LT
8 INS_ESTADO VARCHAR (1 BYTE) LT 'A'
9 INS_CRED NUMERIC (3) LT
10 INS_NRO_HT NUMERIC (2) LT
11 INS_NRO_HP NUMERIC LT
12 INS_NRO_AUT NUMERIC LT
13 INS_CEA_COD NUMERIC (2) LT
14 INS_HOR_ALTERNATIVO Y NUMERIC (3) LT
Columns
No Column Name PK FK M Data Type DT Domain Name Formula Security Abbreviation
kind (Default Value)
1 HOM_ID P Y NUMERIC (10) LT
107
2 HOM_CRA_COD_PPAL NUMERIC (3) LT
3 HOM_ASI_COD_PPAL NUMERIC (8) LT
4 HOM_CRA_COD_HOM NUMERIC (1) LT
5 HOM_ASI_COD_HOM NUMERIC (8) LT
6 HOM_TIPO_HOM NUMERIC (1) LT
7 HOM_ESTADO VARCHAR (1 BYTE) LT
8 HOM_FECHA_REG NUMERIC (10) LT
108
ANEXO C. DICCIONARIO DE DATOS MODELO MYSQL
sga_clasificacion_estudiantes
Column name DataType P N U BI U Z A Default Comment
K N Q N N F I
cle_id INT(11) ✔ ✔
cle_codEstudiante BIGINT(20) ✔ ✔
cle_codProyectoCurricular INT(11) NULL
cle_clasificacion INT(11) NULL
cle_tipoEstudiante VARCHAR(255) NULL
Tabla 31Detalle Tabla sga_clasificacion_estudiantes
sga_ejecuta_inscripcion_auto
ins_per INT(11) ✔ ✔
Tabla 32 Detalle Tabla sga_ejecuta_inscripcion_auto
sga_rankingpreinsdemanda
109
ANEXO D. MANUAL TÉCNICO
Objetivo
Alcance
http://wildfly.org/news/2016/01/29/WildFly10-Released/
110
Descargue y descomprima la versión de wildfly 10, ubique la carpeta bin del servidor,
dentro de la misma ubique la herramienta add-user.bat o add-user.sh.
Para configurar se debe ejecutar al menos 2 veces para agregar 2 usuarios, primero se
ejecuta para agregar el usuario administrador y luego se ejecuta para agregar un usuario de
aplicación que luego nos servida para ingresar como un usuario normal a la herramienta.
Luego la herramienta nos solicita ingresar los detalles del usuario ingresado, solicita el
nombre (username), password y grupos a los que pertenece el usuario.
111
Por último la herramienta nos cuestiona si se añade el usuario al realm de administración y
nos pregunta si la actual instancia servirá como esclavo en una conexión remota esclavo a
esclavo.
Una vez creado, tendremos usuario administrador del servidor wildfly 10.
Los mismos pasos deberemos hacer para agregar el usuario de aplicación para poder
ingresar al kie workbench.
112
Con esto ya tendremos configurados los usuarios de acceso.
Es posible configurar de 2 formas Wildfly 10, posee dos modos operativos, como
servidor autónomo (standalone), o como dominio administrado (management domain), para
este ejercicio usaremos la configuración de servidor autónomo.
kie-drools-wb-6.5.0.Final-wildfly10.war
113
ejecutar el archivo standalone.bat o standalone.sh dependiendo de si su sistema operativo es
Windows o Linux.
Para ingresar se debe digitar el usuario y password creado por medio de la opción (b)
de la herramienta de creación de usuarios.
114
2. Configuración del proyecto en Kie Workbench
Para poder desacoplar las reglas del aplicativo se debe configurar un nuevo proyecto
en kie workbench, inicialmente se debe configurar un nuevo repositorio de workbench.
Seleccionando Authoring/Administration
Se debe tener en cuenta que los datos de la unidad organizacional e id de grupo serán
usados por los aplicativos que deseen consultar el artefacto que se construirá.
115
Una vez creado necesitamos que nuestro repositorio aparezca como asociado, con esto
podremos tener un punto de partida dentro de las unidades organizacionales, que permitirán
compartir y guardar nuestra configuración de reglas.
116
Una vez están creadas las unidades administrativas podremos crear proyecto que
generara la configuración como un artefacto maven.
117
punto de acceso para el mismo ya que workbench se basa en maven para la persistencia de
los artefactos.
(ks.newReleaseId("edu.sga.udistrital.preinscripcionauto.solver","PreinscripcionAutoConfig
", "1.0"));
Dado que es allí donde se realiza la carga del componente proveniente de workbench.
118
Igualmente al subir las reglas a un paquete específico del componente hay que intentar
siempre que exista coherencia entre los recursos como reglas que expresan su paquete de
ubicación y el sitio donde se colocan estos recursos.
119
No sería lógico subir reglas a el paquete seleccionado y dentro de la regla en la
instrucción que indica el paquete indicar un paquete diferente. En la configuración
suministrada las reglas y la configuración quedara en el paquete
edu.udistrital.sga.preinscripcion.auto.solver.
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<kbase name="preinscripcionAutoKbase" default="false" eventProcessingMode="stream"
equalsBehavior="identity" packages="edu.udistrital.sga.preinscripcion.auto.solver">
<ksession name="preinscripcionAutoKsession" type="stateful" default="false"
clockType="realtime"/>
</kbase>
</kmodule>
Esta configuración crea una sesión statefull e indica cual es el paquete base desde
donde debe iniciar la búsqueda de las drl.
Una vez se suben los archivos de reglas aparecerán errores indicando que el sistema
desconoce el modelo usado dentro de las reglas, mostrando los mensajes en esta sección de
la pantalla.
120
Cuando ocurre esto se deben agregar las dependencias usadas por el proyecto para
nuestro caso se deben agregar 2 paquetes de clases a los que se hace referencia en las
reglas.
Los paquetes en cuestión son:
co.edu.udistrital.sga.preinscripcion.auto.domain
co.edu.udistrital.sga.preinscripcion.auto.drools.ext
Para que las reglas construidas pudieran implementar algunas reglas que exigían un
modelo más complejo de acumulación se extendió la funcionalidad de jboss drools,
extendiendo y creando 2 tipos de acumuladores especiales para la ejecución de las reglas.
drools.accumulate.function.calcularHorariosNegativeScore =
co.edu.udistrital.sga.preinscripcion.auto.drools.ext.HorariosScoreAcumulateFunction
drools.accumulate.function.acumularListaCodAsignatura =
co.edu.udistrital.sga.preinscripcion.auto.drools.ext.AsigPreinscritasEstudiantesAcumFunctio
n
121
Sin esta configuración especial, aunque se pase el dominio que contiene las clases
usadas en la parte de acumulación de las reglas, no lograra asociar la función de
acumulación creadas en el dominio.
122
Ahora para configurar las dependencias se abre el editor del proyecto y se selecciona la
opción de dependencias en la lista de configuraciones generales de proyecto.
123
3. Configuración de la aplicación para realizar el llamado del componente de
reglas y configuración de workbench.
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
<version>6.5.0.Final</version>
</dependency>
También debe registrar el repositorio dentro de su archivo POM para que sea incluido
al solicitar el componente de configuración, de esta forma agrege el repositorio a su POM
de esta manera:
<repository>
<id>guvnor-m2-repo</id>
<name>Guvnor M2 Repo</name>
<url>http://localhost:9290/kie-drools-wb/maven2/</url>
</repository>
Para obtener una mayor exactitud de la ruta en la que estará disponible su componente,
puede entrar al repositorio de artefactos de workbench y solicitar una descripción del POM.
124
En el código fuente gracias a la configuración echa en el archivo kmodule.xml no
haremos referencia a archivos de reglas como tal sino a una ksession, por este motivo tiene
tanta importancia que el componente compile y se construya de manera adecuada.
Para desplegar el componente basta con compilar y empaquetar en .war y situar el war
en la carpeta webapps del tomcat.
Preinscripción Automática es una aplicación realizada mediante java 1.8 hace uso de
las características del mediante spring data y el uso de lambdas para el manejo de
colecciones, por tal motivo recomendamos usar el servidor Tomcat 8.0 para su despliegue.
125
5. Configuración bases de datos PreinscripcionAuto
PreinscripcionAuto hace uso de spring-data para crear y configurar los datasources de
las bases de datos, posee solo una configuración de desarrollo, para modificar la
configuración se debe ingresar en el archivo application.properties y modificar los
siguientes bloques de código:
# -----------------------
# ORACLE DATABASE CONFIGURATION
# -----------------------
spring.oracle.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521/XE
spring.oracle.datasource.username=MNTAC
spring.oracle.datasource.password=mntac
spring.oracle.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.postgresql.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
# ------------------------------
# MYSQL DATABASE CONFIGURATION
# ------------------------------
spring.mysql.datasource.url=jdbc:mysql://localhost:3306/udistrital
spring.mysql.datasource.username=root
spring.mysql.datasource.password=admin
spring.mysql.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.postgresql.datasource.driverClassName=com.mysql.jdbc.Driver
#------------------------------------------------------------------------
Esta configuración puede realizarse a la medida que se desee, se puede usar el api de
logback para enviar la traza a archivos, limitar los archivos, añadir, crear diferentes según
las fechas etc.
error: registra los errores, excepto aquellos que son lanzados por el código de
llamada como RuntimeException.
warn: Registra circunstancias sospechosas
info: Registra cada fase de el planificador
debug: registra cada paso en cada dase del planificador.
trace: Registra cada movimiento de cada paso de cada fase del planificador.
126
Debe recordar que entre mayor sea el nivel de log hay menor rendimiento del
planificador, el nivel trace es 4 veces más lento que un log común, una vez estabilizado no
hay existe la necesidad de registrar con tal detalle los movimientos, en lugar de eso se
deben utilizar los niveles complejos para solucionar errores y analizar situaciones
excepcionales.
Para obtener una guía de que algoritmo funciona mejor se puede implementar la parte
de benchmarking de optaplanner, la cual permite comparar el funcionamiento de los
algoritmos en un set de datos de prueba. (La parte de benchmarking no fue abarcada por
este proyecto y queda propuesta como trabajos futuros de investigación).
127