PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO Dirección Académica – Escuela de Sistemas
DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA QUE GENERA HORARIOS DE CLASES, PARA LA PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO.
Disertación de Grado Previa la obtención del título de Ingeniero de Sistemas y Computación
Línea de Investigación:
Estudio, Diseño e Implementación de Software
Autores: LUIS ANIBAL CASTILLO CUENCA EDWIN JAVIER CRIOLLO PEREZ Asesor: ING. FAUSTO ERNESTO OROZCO IGUASNIA
Santo Domingo - Ecuador, Agosto 2014
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO Dirección Académica – Escuela de Sistemas HOJA DE APROBACION DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA QUE GENERA HORARIOS DE CLASES, PARA LA PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO. Autores: LUIS ANIBAL CASTILLO CUENCA EDWIN JAVIER CRIOLLO PEREZ
Línea de Investigación:
Estudio, Diseño e Implementación de Software
Fausto Ernesto Orosco Iguasnia, Ing. DIRECTOR DE LA DISERTACIÓN DE GRADO Margoth Elisa Guaraca Moyota, Ing. CALIFICADOR Marco Polo Silva Segovia, Mg. CALIFICADOR Rodolfo Sirilo Córdova Gálvez, Mg. DIRECTOR DE LA ESCUELA DE SISTEMAS
Santo Domingo – Ecuador Agosto 2014
iii
DECLARACIÓN DE AUTENTICIDAD Y RESPONSABILIDAD Nosotros, Luis Aníbal Castillo Cuenca portador de la cédula de ciudadanía No. 171810552-9 y Edwin Javier Criollo Pérez portador de la cédula de ciudadanía No. 171510174-5, egresados de la Escuela de Sistemas de la Pontificia Universidad Católica del Ecuador sede Santo Domingo; declaramos que el presente trabajo de investigación previo a la obtención del título de Ingenieros en Sistemas y Computación, es inédito por lo que liberamos de cualquier responsabilidad a la PUCE SD, siendo la disertación responsabilidad de los autores; y el patrimonio intelectual de la misma a la Pontificia Universidad Católica Sede Santo Domingo. En tal virtud, declaramos que el contenido, las conclusiones y los efectos legales y académicos que se desprenden del trabajo propuesto de investigación y luego de la redacción de este documento son y serán de mi sola y exclusiva responsabilidad legal y académica
………………………………….
………………………………….
Luis Aníbal Castillo Cuenca
Edwin Javier Criollo Pérez
C/I. 171810552-9
C/I. 171510174-5
iv
DEDICATORIA Gracias a esas personas importantes en nuestras vidas, que estuvieron listas para brindarnos todo su apoyo y motivarnos a continuar en nuestros objetivos de la vida. Con todo nuestro cari単o esta tesis se las dedicamos.
v
AGRADECIMIENTOS Son muchas las personas que han formado parte de nuestra vida profesional a las que nos encantaría agradecerles su amor, consejos, apoyo profesional y ánimos en momentos más difíciles de nuestras vidas. Quiero darles las gracias por formar parte de todos los logros que hemos obtenido junto a ustedes y por todas sus bendiciones.
vi
RESUMEN El presente proyecto de disertación de grado permite la Generación de Horarios de clases para la Pontificia Universidad Católica del Ecuador Sede Santo Domingo, mediante el uso del sistema informático SISGHC (Sistema Generador de Horarios de Clases) el cual ha sido desarrollado pensado en satisfacer los procesos específicos de elaboración de horarios de la universidad, de esta manera agilizar y automatizar el método utilizado actualmente. El Sistema Informático SISGHC se divide en 5 módulos: Módulo de Administración permite registrar la información inicial y básica para la elaboración del Horario; Módulo de Seguridad permite que el usuario Administrador del sistema, asigne usuarios con sus respectivos permisos; Modulo Docentes permite registrar los datos relacionados a los docentes; Modulo Materias permite registrar la información necesaria de las materias que van hacer asignadas y Módulo Horarios consta de dos partes: la primera permite registrar los datos previos a la generación de horarios y la segunda permita la generación de horarios de clases una vez se tenga ingresado los datos requeridos. Para el diseño e implementación del sistema se utilizó como herramienta de diseño el Visual Studio 2010, como herramienta de codificación Visual Basic, como manejador de base de datos Oracle DataBase10g Express Edition, y entre las principales herramientas complementarias se utilizaron Oracle SQL Developer, Oracle SQL Developer Data Modeler, Rational Rose, Erwin, Toad for Oracle.
vii
ABSTRACT The present thesis project allows the Generation of Class Schedules for the Pontifical Catholic University of Ecuador in Santo Domingo, through the use of the informatics system SISGHC (a System that generates Class Schedules) which has been developed thinking in satisfying the specific processes of schedule elaboration in the university, pretending to accelerate and automatize the method currently used. The informatics system SISGHC is divided in 5 modules: A Module of Administration which allows to register the initial and basic information for the Elaboration of the Schedule; a Security Module which allows the user who is also the administrator of the system to assign users with their respective permissions; a Teacher’s Module which allows to register the data related to the teachers; a Subjects Module which allows to register the needed information o the subjects that are going to be assigned and the Schedules Module which has two parts: the first allows to register the data previous to the schedules generation and the second one allows the generation of class schedules once the required date are set in. For the design and implementation of the system, as a design tool, Visual Studio 2010 was used; as coding tool, Visual Studio 2010 was used; as data Base manager, 10g Oracle Database Express Edition was used and among the main complementary tools Oracle SQL Developer Data Modeler, Rational Rose, Erwin; Toad for Oracle were used.
viii
ÍNDICE DE CONTENIDOS I
INTRODUCCION .......................................................................................................... 1
II.
PLANTAMIENTO DEL PROBLEMA ........................................................................... 3
2.1
Antecedentes ................................................................................................................... 3
2.2
Problematización. ............................................................................................................ 3
2.3
Justificación .................................................................................................................... 3
2.4
Objetivo .......................................................................................................................... 4
2.4.1
Objetivo general. ............................................................................................................. 4
2.4.2
Objetivos específicos....................................................................................................... 4
III.
MARCO REFENCIAL ................................................................................................... 5
3.1
Revisión de la literatura o fundamentos teóricos .............................................................. 5
3.1.1
Visual Studio 2010 Ultimate ........................................................................................... 5
3.1.2
Oracle Database 10g Express Edition .............................................................................. 6
3.1.3
Toad For Oracle .............................................................................................................. 6
3.1.4
Oracle SQL Developer .................................................................................................... 7
3.1.5
El Lenguaje de modelado unificado (UML) ..................................................................... 7
3.2
Caso de uso ..................................................................................................................... 8
3.2.1
Actores ........................................................................................................................... 9
3.2.1.1
Tipos de actores ............................................................................................................ 10
3.2.1.1.1
Primarios: ..................................................................................................................... 10
3.2.1.1.2
Secundarios:.................................................................................................................. 10
3.2.2
Casos de uso ................................................................................................................. 10
3.2.3
Relaciones..................................................................................................................... 11
3.2.3.1
Asociación .................................................................................................................... 11
3.2.3.2
Dependencia o Instanciación ......................................................................................... 11
ix
3.2.3.3
Generalización .............................................................................................................. 11
3.3.3
Métodos de búsqueda .................................................................................................... 12
3.3.4
Método de búsqueda secuencial:.................................................................................... 12
3.3.5
Método de búsqueda binaria: ......................................................................................... 13
3.4
Diagrama de Gantt ........................................................................................................ 13
3.5
Ingeniería de software ................................................................................................... 14
3.5.1
Modelo de desarrollo de software .................................................................................. 15
3.5.2
Diseño lógico, físico de base de datos ............................................................................ 16
3.5.3
Modelo entidad-relación................................................................................................ 16
3.5.3.1
Entidad ......................................................................................................................... 17
3.5.3.2
Relación ........................................................................................................................ 17
3.5.3.3
Atributo ........................................................................................................................ 18
3.5.4
Estándar de codificación................................................................................................ 18
3.5.5
Seguridad en base de datos ............................................................................................ 19
3.5.6
Arquitectura de software ............................................................................................... 19
3.5.6.1
Especificación de requerimientos de software (SRS) ..................................................... 20
3.5.6.2
Propuesta del proyecto .................................................................................................. 20
3.5.6.3
Requerimientos del usuario ........................................................................................... 20
3.5.6.4
Diseño .......................................................................................................................... 21
3.5.6.5
Plan de QA (aseguramiento de la calidad) ..................................................................... 21
3.5.7
Requerimiento de software ............................................................................................ 21
3.5.8
Arquitectura cliente/servidor ......................................................................................... 22
3.5.9
Herramientas case ......................................................................................................... 22
3.6
Investigación o experiencias empíricas vinculadas con el problema de investigación ..... 24
3.7
Proceso de elaboración manual de horarios de clases ..................................................... 25
x
3.7.1
Proceso de elaboración computacional de horarios de clases .......................................... 25
3.7.2
Generación de horarios a través de algoritmos genéticos ................................................ 25
3.7.3
Factores involucrados en la elaboración de horarios:...................................................... 26
3.7.4
AGH/iX (ayuda a la gestión de horarios) ....................................................................... 26
3.7.5
aScHorarios .................................................................................................................. 26
3.7.6
Timetab......................................................................................................................... 27
3.7.7
Generador de horarios para centros de enseñanza .......................................................... 27
3.8
Hipótesis ....................................................................................................................... 27
IV
METODOLOGÍA ......................................................................................................... 29
4.1
Diseño/tipo de investigación.......................................................................................... 29
4.2
Investigación diagnóstica .............................................................................................. 29
4.2.1
Objetivos diagnósticos .................................................................................................. 29
4.2.2
Variables diagnósticas ................................................................................................... 30
4.2.2.1
Indicadores ................................................................................................................... 30
4.3
Matriz de relación ......................................................................................................... 30
4.4
Mecánica operativa ....................................................................................................... 30
4.4.1
Población ...................................................................................................................... 30
4.4.2
Muestra ......................................................................................................................... 31
4.5
Instrumentos de recogida de datos ................................................................................. 31
4.5.1
Información primaria..................................................................................................... 31
4.5.2
Información secundaria ................................................................................................. 32
4.6
Técnica de análisis de los resultados .............................................................................. 32
V.
RESULTADOS ............................................................................................................ 33
5.1
Diagnóstico y análisis de los resultados ......................................................................... 33
5.1.1
Objetivo de diagnóstico ................................................................................................. 33
xi
5.1.1.1
Variables del diagnóstico.............................................................................................. 33
5.1.1.2
Indicadores ................................................................................................................... 33
5.1.2
Población y muestra ...................................................................................................... 34
5.1.2.1
Instrumentos de recogida de datos ................................................................................. 35
5.1.2.2
Fuentes primarias .......................................................................................................... 35
5.2
Análisis de herramientas de diseño ................................................................................ 35
5.2.2
Análisis de herramientas de base de datos...................................................................... 36
5.2.3
Análisis de herramientas codificación ............................................................................ 37
5.2.4
Análisis de métodos de ordenamiento ............................................................................ 38
5.3
Metodología de ingeniería de software. ......................................................................... 39
5.4
Metodología METSISGHC ........................................................................................... 40
I
FASE DE ANÁLISIS ................................................................................................... 40
1.1
Problema:...................................................................................................................... 40
1.2
Visión del proyecto ....................................................................................................... 40
1.3
Perfiles de usuarios ....................................................................................................... 41
1.4
Identificación de requerimiento ..................................................................................... 41
1.4.1
Análisis de impactos ..................................................................................................... 42
1.4.2
Marco institucional........................................................................................................ 47
1.4.3
Resumen de actividades. ............................................................................................... 48
1.4.4
Lista de requerimientos generales del SISGHC .............................................................. 48
1.4.4.1
Requerimiento del sistema............................................................................................. 48
1.5
Concepto de la solución................................................................................................. 49
1.6
Objetivo del proyecto .................................................................................................... 49
1.6.1
Objetivos del Diseño ..................................................................................................... 49
1.7
Factores críticos ............................................................................................................ 50
xii
1.7.1
Anรกlisis y reducciรณn de riesgos...................................................................................... 50
1.7.2
Introducciรณn .................................................................................................................. 50
1.7.3
Identificaciรณn de riesgo ................................................................................................. 50
1.7.4
Anรกlisis de riesgo .......................................................................................................... 51
1.7.5
Criterio de valoraciรณn de la probabilidad ....................................................................... 52
1.7.6
Criterio de valoraciรณn del impacto al riesgo: .................................................................. 53
1.7.7
Criterio de valoraciรณn de la exposiciรณn al riesgo: ........................................................... 53
1.7.8
Prioridad de los riesgos ................................................................................................. 54
1.7.9
Plan de reducciรณn, supervisiรณn y gestiรณn del riesgo ........................................................ 54
1.8
Planificaciรณn inicial ....................................................................................................... 62
1.8.1
Equipo de trabajo .......................................................................................................... 62
1.8.2
Figura : Diagrama de Gantt ........................................................................................... 63
1.8.3
Presupuesto ................................................................................................................... 63
II
FASE DE DISEร O ....................................................................................................... 64
2.1
Diseรฑo conceptual ......................................................................................................... 64
2.1.1
Especificaciรณn de requerimiento de software (SRS) ....................................................... 64
2.1.1.1
Objetivos del SRS ......................................................................................................... 64
2.1.1.2
Usuarios ........................................................................................................................ 64
2.1.1.3
Beneficios del sistema ................................................................................................... 65
2.1.1.4
Acrรณnimos y abreviaturas: ............................................................................................. 65
2.1.1.4.1
Acrรณnimos: ................................................................................................................... 65
2.1.1.4.2
Abreviaturas:................................................................................................................. 65
2.1.1.4.3
Referencias ................................................................................................................... 66
2.1.2
Visiรณn general ............................................................................................................... 67
2.1.3
El SRS estรก formado por 2 partes: ................................................................................. 67
xiii
2.1.3.1
Descripción general ....................................................................................................... 67
2.1.3.1.1
Perspectiva del producto................................................................................................ 67
2.1.3.1.2
Funciones del producto ................................................................................................. 68
2.1.4
Supuestos y dependencia ............................................................................................... 68
2.1.5
Requerimientos específicos ........................................................................................... 68
2.1.5.1
Requerimientos funcionales........................................................................................... 68
2.1.5.2
Requerimientos no funcionales. ..................................................................................... 72
2.1.6
Definir los casos de uso de alto nivel y esencial ............................................................. 73
2.1.7
Arquitectura del sistema: ............................................................................................... 79
2.1.8
Definir los diagramas de procesos ................................................................................. 81
2.1.9
Definir casos de uso esenciales en formato expandido. .................................................. 83
2.1.9.1
Definir los casos de uso reales. ...................................................................................... 86
2.2
Diseño lógico ................................................................................................................ 88
2.2.1
Tecnología a utilizar en el proyecto ............................................................................... 88
2.2.2
Definición del modelo conceptual: ................................................................................ 89
2.2.3
Refinar el modelo conceptual ........................................................................................ 89
2.2.4
Modelo lógico ............................................................................................................... 99
2.2.5
Diseño de interfaces de usuario ..................................................................................... 99
2.3
Diseño físico ............................................................................................................... 103
2.3.1
Diagrama de secuencias .............................................................................................. 103
2.3.2
Diagrama de datos ....................................................................................................... 105
2.3.3
Diagrama de clases...................................................................................................... 110
2.3.4
Diagrama de componentes........................................................................................... 110
2.3.5
Diagrama del sistema SISGHC .................................................................................... 111
2.3.6
Diagrama asignar materias a escuela............................................................................ 112
xiv
2.3.6.1
Diagrama de compontes generar horarios .................................................................... 113
2.3.7
Diagrama de implementación ...................................................................................... 114
2.3.8
Modelo físico de la base de datos ................................................................................ 115
2.3.9
Modelo entidad relación .............................................................................................. 116
III
FASE DE IMPLEMENTACIÓN................................................................................. 117
3.1
Nomenclatura para estándares para el desarrollo .......................................................... 117
3.2
Capa de presentación ................................................................................................... 117
3.2.1
Interfaces de usuario ................................................................................................... 117
3.2.2
Interfaz de pantalla principal ....................................................................................... 118
3.3
Capa de datos .............................................................................................................. 128
3.3.1
Implementación de la base de datos ............................................................................. 128
3.3.2
Implementación de acceso a datos ............................................................................... 131
3.4
Capa de negocios ........................................................................................................ 133
3.5
Especificaciones de seguridad ..................................................................................... 160
IV
FASES DE PRUEBA .................................................................................................. 162
4.1
Test del sistema ........................................................................................................... 162
4.1.1
Pruebas unitarias y de integración................................................................................ 162
4.2
Reporte de errores ....................................................................................................... 165
CONCLUSIONES .......................................................................................................................... 166 RECOMENDACIONES ................................................................................................................. 167 FUENTES DE REFERENCIA O INFORMACIÓN ........................................................................ 168 Bibliografías ................................................................................................................................... 168 Lincografías ……………………………………………………………………………………………………………………………………168 Glosario
………………………………………………………………………………………………………………………………..….169
INDICE DE ANEXOS.................................................................................................................... 172
xv
INDICE DE TABLAS ...................................................................................................................... xvi INDICE DE FIGURAS ..................................................................................................................... xix INDICE DE FIG. .............................................................................................................................. xxi
xvi
INDICE DE TABLAS Tabla 1: Matriz de Relación ............................................................................................ 34 Tabla 2: Detalle de Población .......................................................................................... 34 Tabla 3: Análisis de Herramientas de Diseño ................................................................. 35 Tabla 4: Análisis de herramienta de base de datos .......................................................... 36 Tabla 5: Análisis de herramientas de codificación .......................................................... 37 Tabla 6: Análisis de métodos de ordenamiento ............................................................... 38 Tabla 7: Perfiles de usuario ............................................................................................. 41 Tabla 8: Identificación de requerimiento......................................................................... 41 Tabla 9: Niveles de impacto ............................................................................................ 42 Tabla 10: Impacto educativo ........................................................................................... 43 Tabla 11: Impacto administrativo .................................................................................... 44 Tabla 12: Impacto tecnológico ........................................................................................ 45 Tabla 13: Impacto económico ......................................................................................... 46 Tabla 14: Impacto general ............................................................................................... 47 Tabla 15: Identificación de riesgo ................................................................................... 50 Tabla 16: Análisis de riesgo ............................................................................................ 51 Tabla 17: Criterio de valor de la prioridad ...................................................................... 52 Tabla 18: Criterio de valoración del impacto al riesgo ................................................... 53 Tabla 19: Criterio de valoración de la exposición al riesgo ............................................ 53 Tabla 20: Prioridad de los riesgos ................................................................................... 54 Tabla 21: Hoja de gestión del riesgo R7.......................................................................... 55 Tabla 22: Hoja de gestión del riesgo R9.......................................................................... 56 Tabla 23: Hoja de gestión del riesgo R2.......................................................................... 57 Tabla 24: Hoja de gestión del riesgo R3.......................................................................... 59
xvii
Tabla 25: Hoja de gestión del riesgo R5.......................................................................... 60 Tabla 26: Equipo de trabajo............................................................................................. 62 Tabla 27: Proceso global del SISGHC ............................................................................ 73 Tabla 28: Opciones del usuario administrador ................................................................ 75 Tabla 29: Ingreso de datos académicos ........................................................................... 76 Tabla 30: Opciones del usuario director .......................................................................... 77 Tabla 31: Opciones del usuario administrador ................................................................ 83 Tabla 32: Ingreso de datos académicos ........................................................................... 84 Tabla 33: Opciones del usuario director .......................................................................... 85 Tabla 34: Crear malla de materias transversales o afines ................................................ 86 Tabla 35: Asignar materias a las escuelas ....................................................................... 88 Tabla 36: Tecnología a utilizar en el proyecto ................................................................ 88 Tabla 37: Identificación de clases ................................................................................... 89 Tabla 38: Identificación de asociaciones ......................................................................... 91 Tabla 39: Identificación de relaciones ............................................................................. 91 Tabla 40: Identificación de atributos ............................................................................... 91 Tabla 41: Identificación de métodos ............................................................................... 93 Tabla 42: Definir el contrato de operación ...................................................................... 94 Tabla 43: Autentificarse el sistema ................................................................................. 95 Tabla 44: Asignar materias a las escuelas ....................................................................... 96 Tabla 45: Asignar materias a los docentes ...................................................................... 97 Tabla 46: Generar horarios de clases ............................................................................... 98 Tabla 47: Identificación de verbos ................................................................................ 103 Tabla 48: Nomenclatura para estándares para el desarrollo .......................................... 117 Tabla 49: Pruebas unitarias............................................................................................ 162
xviii
Tabla 50: Pruebas de integraci贸n................................................................................... 164 Tabla 51: Alcance del proyecto disertaci贸n de grado.................................................... 186
xix
INDICE DE FIGURAS Figura 1: Diagrama de Gantt ........................................................................................... 63 Figura 2: Presupuesto ...................................................................................................... 63 Figura 3: Proceso Global del SISGHC ............................................................................ 74 Figura 4: Inicio de sección............................................................................................... 75 Figura 5: Opciones del usuario administrador ................................................................. 76 Figura 6: Ingreso de datos académicos ............................................................................ 77 Figura 7: Opciones del usuario director .......................................................................... 79 Figura 8: Arquitectura del sistema .................................................................................. 80 Figura 9: Diagrama de subproceso cargar información................................................... 81 Figura 10: Diagrama de proceso del SISGHC ................................................................ 82 Figura 11: Definición del modelo conceptual ................................................................. 89 Figura 12: Modelo lógico ................................................................................................ 99 Figura 13: Crear usuario ................................................................................................ 105 Figura 14: Asignar materias para la escuela .................................................................. 106 Figura 15: Asignar materias para los docentes .............................................................. 107 Figura 16: Generar horarios de clases ........................................................................... 108 Figura 17: Asignar materias transversales ..................................................................... 109 Figura 18: Diagrama de clases....................................................................................... 110 Figura 19: Diagrama del sistema SISGHC .................................................................... 111 Figura 20: Diagrama asignar materias a escuela ........................................................... 112 Figura 21: Diagrama de compontes generar horarios .................................................... 113 Figura 22: Diagrama de implementación ...................................................................... 114 Figura 23: Modelo físico de la base de datos ................................................................ 115
xx
Figura 24: Modelo entidad relaci贸n............................................................................... 116
xxi
INDICE DE FIG. Fig. 1: Actor de caso de uso ............................................................................................ 10 Fig. 2: Caso de uso .......................................................................................................... 10 Fig. 3: Relaciones en casos de usos ................................................................................. 11 Fig. 4: Asociación en los casos de usos ........................................................................... 11 Fig. 5: Dependencia o Instancia de los casos de usos ..................................................... 11 Fig. 6: Diseño interfaces de usuario .............................................................................. 100 Fig. 7: Perfiles de usuario .............................................................................................. 100 Fig. 8: Presentación de formularios ............................................................................... 101 Fig. 9: Formulario de malla curricular .......................................................................... 101 Fig. 10: Asignación de materias para las escuelas......................................................... 102 Fig. 11: Formulario para registro de docentes ............................................................... 102 Fig. 12: Formulario registra información de sección, ciclo académico ........................ 103 Fig. 13: Interfaz de usuario ............................................................................................ 118 Fig. 14: Formulario de pantalla principal ...................................................................... 119 Fig. 15: Formulario de perfiles usuario ......................................................................... 119 Fig. 16: Formulario de perfil de administrador ............................................................. 120 Fig. 17: Formulario de tipo de contrato de docente ....................................................... 120 Fig. 18: Formulario de docente ..................................................................................... 121 Fig. 19: Formulario de disponibilidad de docente ......................................................... 121 Fig. 20: Formulario de asignación de código de materias afines y transversales .......... 122 Fig. 21: Formulario de malla transversales y afines ...................................................... 122 Fig. 22: Formulario de periodo académico.................................................................... 123 Fig. 23: Formulario de descripción de las secciones ..................................................... 123
xxii
Fig. 24: Formulario de las escuelas de la PUCESD ...................................................... 124 Fig. 25: Formulario de carreras de la PUCESD ............................................................ 124 Fig. 26: Formulario de malla curricular de la PUCESD................................................ 125 Fig. 27: Formulario de niveles ....................................................................................... 125 Fig. 28: Formulario asignar materias a escuelas............................................................ 126 Fig. 29: Formulario asignar materias a docentes ........................................................... 126 Fig. 30: Formulario de generador de horarios ............................................................... 127 Fig. 31: Formulario de visualizaci贸n de horarios .......................................................... 127
I
INTRODUCCION
La Pontificia Universidad Católica del Ecuador Sede Santo Domingo en la actualidad es una de las universidades que forma profesionales en diferentes áreas tecnológicas, comerciales, pedagógicas, para lo cual cuenta con siete escuelas como son: Ciencias Administrativas y Contables, Comunicación Social, Diseño Gráfico, Enfermería, Hotelería y Turismo, Sistemas y Ciencias de la Educación. En la universidad, la creación de horarios de clases de sus diferentes carreras se los realiza de forma manual. Este proceso inicia después de que el Departamento de Planificación y Currícula envía la malla de materias transversales y afines a cada carrera; el director de la carrera se encarga de elaborar en una hoja de Excel los horarios de clases, dicho proceso de elaboración es riguroso y propenso a errores debido a que requiere entrelazar varias condiciones como son:
Número de escuelas (Cuando un docente está asignado en más de una escuela).
Malla curricular.
Lista de profesores.
Disponibilidad de tiempo.
La carga horaria de cada jornada.
Con la elaboración de sistema SISGHC se debe mejorar el proceso de creación de horarios clase haciéndolos más rápidos y seguros para los involucrados en el proceso.
1
2
Para la elaboración del sistema se utilizara como herramienta de desarrollo Visual Studio 2010, por ser un programa que permite a los desarrolladores una interfaz completamente rediseñada para simplificar el flujo de trabajo además de ser un programa cuya licencia posee la universidad, como lenguaje de programación Visual Basic ya que es la herramienta con la que los programadores se sienten más familiarizados y como gestor de Dase de Datos Oracle Dadabase Express Edition 10g por ser una versión gratuita que permite reducir los costos de manejo y provee una alta calidad de servicios.
II. 2.1
PLANTAMIENTO DEL PROBLEMA
Antecedentes
La utilización de Sistemas Generadores de Horarios de Clases en las instituciones educativas del medio no está difundido, razón por la cual todavía se realizan estos procesos de forma manual. Actualmente el proceso de elaboración de horarios de clases que realiza la PUCE SD es en forma manual, este proceso se realiza semestralmente la misma que está a cargo de los respectivos Directores de cada escuela de la Universidad. 2.2
Problematización.
La asignación de horarios de clases es un problema complejo debido a la cantidad de restricciones que presenta y el criterio con el que se aplican. Esta disertación busca principalmente la resolución de un problema práctico de asignación de horarios de clases, frecuentemente presentado en la Universidad. Los problemas de asignación de horarios consisten, en generar horarios para tareas definidas, buscando cumplir de la mejor manera con condiciones y requerimientos específicos; para lo cual se necesita analizar la planificación de las materias que se dictan en un período académico determinado, considerando los profesores necesarios en cada asignatura, los días o períodos disponibles, de tal manera que se pueda optimizar un conjunto de restricciones relacionadas con la organización del sistema educativo. El problema de generar horarios manualmente es que se invierte mucho tiempo en su elaboración y se cometen errores en el cruce de horas con otras escuelas.
2.3
Justificación
Esta disertación
se realiza debido a que la generación de horarios de clases que
actualmente se hace por parte de la Universidad es manual lo cual implica una carga operativa extremadamente pesada para el personal que los elabora, además de estar propenso a errores. 3
4
La PUCE SD cuenta con siete escuelas y ocho carreras donde cada escuela cuenta con parámetros propios de generación de horarios. El proceso de generación de horarios de clases consiste en la asignación de una combinación materia-docente, en donde a un docente se le asignara una/s materia/s en una/s sección/es en un determinado intervalo definido de tiempo diario durante los días laborables teniendo en cuenta sus restricciones de disponibilidad y si dicho docente dará clases en más de una escuela; teniendo en cuenta que se debe evitar cualquier tipo de cruce de horas para los docentes, problemas que se presenta cuando a un docente se le asigna más de una materias a la misma hora en una escuela/s. Una alternativa para solucionar este problema es el desarrollo de un sistema informático que genere los horarios de clases, el mismo que contará con una plataforma tecnológica que garantice que el proceso de creación se realizará de forma confiable.
2.4 Objetivo 2.4.1
Objetivo general.
Implementar un Sistema Informático que genere Horarios de Clase para La Pontificia Universidad Católica Del Ecuador Sede Santo Domingo. 2.4.2
Objetivos específicos.
Seleccionar las mejores herramientas para el diseño y la implementación del Sistema Generador de Horarios de Clase.
Elaborar un sistema automático y de fácil manejo para los usuarios
Crear Horarios de Clases por carreras de acuerdo a las especificaciones requeridas por la PUCE SD.
III. 3.1 3.1.1
MARCO REFENCIAL
Revisión de la literatura o fundamentos teóricos Visual Studio 2010 Ultimate
Es un entorno de desarrollo integrado para sistemas operativos Windows y Linux. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, comprende un conjunto completo de herramientas de gestión del ciclo de vida de una aplicación para los equipos que garantizan unos resultados de calidad, desde el diseño hasta la implementación; creando nuevas soluciones o mejorando las aplicaciones existentes, Visual Studio 2010 Ultimate permite a los desarrolladores crear aplicaciones en un número creciente de plataformas y tecnologías, incluyendo sistemas informáticos en la nube y la computación paralela para obtener de manera automática características avanzadas de seguridad, rendimiento. Visual Basic ofrece un entorno de ejecución de aplicaciones, nuevos lenguajes de programación y compiladores, y permite el desarrollo de programas de consola o servicios Windows, aplicaciones para dispositivos móviles, aplicaciones de escritorio o para Internet entre otras funcionalidades. Visual Studio ha incluido herramientas para desarrollo de aplicaciones para Windows 7, como herramientas para el desarrollo de las características de Windows 7 System Windows Shell (ibid), proporcionan acceso de código administrado a la funcionalidad mejorada de la barra de tareas de Windows 7.
5
6
3.1.2
Oracle Database 10g Express Edition
Oracle Database 10G Express Edition es confiable para configuraciones de cluster, protección ante las fallas de servidor, fallas del sitio, erros humanos y reducción del tiempo de bajo programado. Es una base de datos para desarrolladores que trabaja con aplicaciones PHP, Java, .NET, XML y de código abierto. Solo podrán correr en servidores con un solo procesador, con un 1 de RAM y con un tamaño máximo de 4 GB de almacenamiento. Oracle Database XE, utiliza una interfaz intuitiva basada en navegador, para administrar la base de datos, crear tablas, vistas y otros objetos de esquema; los datos de importación, la exportación, y la vista de tabla. Esta versión incluye Oracle DB HTML 2.1, que es un entorno declarativo de desarrollo gráfico para crear aplicaciones web centradas en bases de datos, se la puede complementar con otros productos populares de Oracle para el desarrollo de aplicaciones o incluir aplicaciones de terceros para desarrollar aplicaciones más robustas. 3.1.3
Toad For Oracle
Es una herramienta que permite desarrollar y administrar bases de datos Oracle de forma eficiente y precisa, posee una navegación sencilla, así como un workflow cómodo y potente que le permite pasar con facilidad de una tarea a otra. Toad for oracle ofrece las siguientes características: Mayor eficiencia a la hora de realizar las tareas habituales. Mayor precisión a la hora de escribir, depurar y optimizar código. Flexibilidad para realizar muchas actividades de desarrollo y administración desde la misma herramienta. Amplias capacidades de generación de informes que producen datos cuantificables y documentación.
7
Acceso al conocimiento sobre Oracle a través de distintas comunidades de usuarios de Toad. 3.1.4
Oracle SQL Developer
El Oracle SQL Developer es una herramienta gráfica gratuita disponible para Windows, Mac y Linux que permite manipular bases de datos Oracle y de terceros, como DB2, Access o MySQL por medio de un driver JDBC; está construida en torno a un interfaz principal que permite navegar por un árbol jerárquico de objetos contenidos en bases de datos y realizar operaciones sencillas sobre ellos. Proporciona además alguna herramienta adicional, especialmente un área para ejecutar sentencias SQL y PL/SQL. Entre sus principales funciones están:
Visualizar objetos de base de datos
Ejecutar sentencias SQL y scripts SQL
Editar y depurar sentencias PL/SQL.
Ejecutar informes ya proporcionados o los creados y salvados por el usuario.
Simplificar y mejorar la productividad a la hora de trabajar sobre bases de datos Oracle.
3.1.5
El Lenguaje de modelado unificado (UML)
Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos a un sistema de software bajo desarrollo, así como para modelado de negocios y almacenamiento de datos. Los principales factores que motivaron la creación de UML fueron: – La necesidad de modelar sistemas. – Las tendencias en la industria de software.
8
– Unificar los distintos lenguajes y métodos existentes. – Innovar los modelos para adaptarse a la arquitectura distribuida. UML ofrece 9 tipos de diagramas con los cuales se pueden modelar sistemas:
Diagrama de Casos para Uso para modelar los procesos "business"
Diagrama de Secuencia para modelar el paso de mensajes entre objetos
Diagrama de Colaboración para modelar interacciones entre objetos
Diagrama de Estado para modelar el comportamiento de los objetos en el sistema
Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones.
Diagrama de Clases para modelar la estructura estática de las clases en el sistema
Diagrama de Objetos para modelar la estructura estática de los objetos en el sistema
Diagramas de Componentes para modelar componentes
Diagrama de Implementación para modelar la distribución del sistema
3.2
Caso de uso
Un caso de uso es la descripción de una secuencia de interacciones entre un sistema, subsistema o clase y uno o más actores, es decir es una técnica para la especificación de requisitos funcionales coherentes para capturar información de cómo dicho sistema trabaja actualmente, o de cómo se desea que trabaje. En la que se considera al sistema como una caja negra y en la que los actores obtienen el cálculo de resultados observables. Los casos de uso tienen una representación gráfica denominado diagramas de casos de uso, los mismos que nos sirve para proporcionar una visión global del conjunto de
9
dichos casos mediante la representación de cómo un Actor opera con el sistema en desarrollo, además del tipo y orden en como los elementos interactúan. Su ventaja principal es la facilidad para interpretarlos, lo que hace que sean especialmente útiles en la comunicación con el cliente. Elementos de un modelo de casos de uso:
Actores
Casos de uso
Relaciones
3.2.1
Actores
Un actor es una agrupación uniforme de personas, sistemas o máquinas que interactúan con el sistema de una forma externa al mismo, lo cual nos sirve para delimitarlo, y a definir su alcance Es importante tener en cuenta que un actor es una clase de rol, mientras que un usuario es una persona que, cuando usa el sistema, asume un rol. De esta forma, un usuario puede acceder al sistema como distintos actores. Los actores se representan con dibujos simplificados de personas, llamados en inglés “stick man” (hombres de palo), a veces resulta útil representar a otros sistemas con alguna representación más clara. Los actores siempre inician los casos de uso para: solicitar, modificar información del sistema; informar al sistema de que ha ocurrido algo en su entorno que le incumbe o concierne; ayudar a tomar una decisión necesaria para cumplir los objetivos del sistema y para delegar alguna responsabilidad.
10
Fig. 1: Actor de caso de uso
Elaborado por: Luis Castillo y Edwin Criollo
3.2.1.1 3.2.1.1.1
Tipos de actores Primarios:
Son actores que interaccionan con el sistema para explotar su funcionalidad; trabajan directa y frecuentemente con el software. Requiere al sistema el cumplimiento de un objetivo. 3.2.1.1.2
Secundarios:
Son actores que sirven de soporte del sistema para que los primarios puedan trabajar. El sistema necesita de ellos para satisfacer un objetivo. 3.2.2
Casos de uso
Es un conjunto de acciones realizadas por el sistema que producen un resultado observable, que se realiza tras una orden de alg煤n agente externo, sea desde una petici贸n de un actor o bien desde la invocaci贸n desde otro caso de uso. Se representan mediante una elipse. Cada caso de uso debe detallarse, habitualmente mediante una descripci贸n textual. Fig. 2: Caso de uso
Elaborado por: Luis Castillo y Edwin Criollo
11
3.2.3
Relaciones Fig. 3: Relaciones en casos de usos
Elaborado por: Luis Castillo y Edwin Criollo
3.2.3.1
Asociación
Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple. Fig. 4: Asociación en los casos de usos
Elaborado por: Luis Castillo y Edwin Criollo
3.2.3.2
Dependencia o Instanciación
Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada. Fig. 5: Dependencia o Instancia de los casos de usos
Elaborado por: Luis Castillo y Edwin Criollo
3.2.3.3
Generalización
Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>). Este tipo de relación está orientado exclusivamente para casos de uso (y no para actores).
12
Extends: Se recomienda utilizar cuando un caso de uso es similar a otro (características). Uses: Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica. De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde está la duda clásica de usar o heredar. 3.3.3
Métodos de búsqueda
Los métodos de búsqueda nos permiten recuperar información de un vector o un archivo, que contenga una lista de datos. Cuando se realizan búsquedas sobre vectores, se desea es encontrar la posición que ocupa el elemento buscado dentro de la lista de elementos que contiene el vector. Para la búsqueda de información en archivos es necesario realizar la búsqueda a partir de un campo clave dentro del archivo. Existen diferentes métodos de búsqueda y para seleccionar con cual método trabajar depende de la cantidad de elementos que existan en el vector. Para determinar si un elemento pertenece a un conjunto de elementos e indicar su posición dentro de un vector, se utiliza los métodos de búsqueda secuencial (lineal) y búsqueda binaria. 3.3.4
Método de búsqueda secuencial:
Este método se usa para buscar un elemento de un vector, es explorar secuencialmente el vector, es decir; recorrer el vector desde el primer elemento hasta el último. Si se encuentra el elemento buscado se debe visualizar un mensaje similar a “Fin de Búsqueda” o “Elemento encontrado” y otro que diga “posición=” en caso contrario, visualizar un mensaje similar a “Elemento no existe en la Lista”. Este tipo de búsqueda compara cada elemento del vector con el valor a encontrar hasta que este se consiga o se termine de leer el vector completo.
13
3.3.5
Método de búsqueda binaria:
Es un método que se basa en la división sucesiva del espacio ocupado por el vector en sucesivas mitades, hasta encontrar el elemento buscado. Con este método se examina primero el elemento central de la lista; si este es el elemento buscado entonces la búsqueda ha terminado. En caso contrario se determina si el elemento buscado está en la primera o segunda mitad de la lista y a continuación se repite el proceso anterior, utilizando el elemento central de esta sublista. Este tipo de búsqueda se utiliza en vectores ordenados.
3.4
Diagrama de Gantt
El Diagrama de Gantt es una herramienta que le permite al usuario mostrar el tiempo de dedicación previsto a diferentes actividades o tareas de la planificación de las necesarias para la realización de un proyecto. Debido a la relativa facilidad de lectura del Diagrama de Gantt, esta herramienta es utilizada por casi todos los directores de proyecto en todos los sectores. El Diagrama de Gantt es una herramienta para el director del proyecto que le permite realizar una representación gráfica del progreso del proyecto, pero también es un buen medio de comunicación entre las diversas personas involucradas en el proyecto. Este tipo de modelo es particularmente fácil de implementar con una simple hoja de cálculo. En un Diagrama de Gantt, cada tarea es representada por una línea, mientras que las columnas representan los días, semanas, o meses del programa, dependiendo de la duración del proyecto. El tiempo estimado para cada tarea se muestra a través de una barra horizontal cuyo extremo izquierdo determina la fecha de inicio prevista y el extremo derecho determina la fecha de finalización estimada. Las tareas se pueden colocar en cadenas secuenciales o se pueden realizar simultáneamente. Si las tareas son secuenciales, las prioridades se pueden confeccionar utilizando una flecha qué desciende de las tareas más importantes hacia las tareas menos importantes.
14
La tarea menos importante no puede llevarse a cabo hasta que no se haya completado la más importante. A medida que progresa una tarea, se completa proporcionalmente la barra que la representa hasta llegar al grado de finalización. Así, es posible obtener una visión general del progreso del proyecto rastreando una línea vertical a través de las tareas en el nivel de la fecha actual. Las tareas ya finalizadas se colocan a la izquierda de esta línea; las tareas que aún no se han iniciado se colocan a la derecha, mientras que las tareas que se están llevando a cabo atraviesan la línea. Si la línea está cubierta en la parte izquierda, la tarea está demorada respecto de la planificación del proyecto.
3.5
Ingeniería de software
La Ingeniería del software es una disciplina o área de la informática, que da un enfoque sistemático, disciplinado, y cuantificable al desarrollo, operación y mantenimiento de software que ofrece método y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo, cada vez se considera a la Ingeniería del software como un nueva área de la ingeniería. Ingeniería de software está formada por un conjunto de métodos, herramientas y técnicas para un desarrollo de programas informáticos; Estos procedimientos, reglas, documentación asociada y los datos que pertenecen a un sistema de cómputo, hacen que la ingeniería aplique los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo de software. El proceso de ingeniería de software define como un conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de calidad. Desarrollo de software es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo.
15
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define el alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios. El Desarrollo de Software actualmente está Orientado a Objetos (OO) como paradigma del desarrollo de sistemas de información. El Object Management Group (OMG) es un consorcio a nivel internacional que forma parte de los principales representantes de la industria de la tecnología de esta información. El OMG tiene como objetivo central la promoción, fortalecimiento e impulso de la industria OO. El OMG propone y adopta por consenso especificaciones entorno a dicha tecnología, una de las especificaciones más importantes es el Lenguaje de Modelado Unificado o UML como un estándar, que junto con el Proceso Unificado están consolidando en esta tecnología. 3.5.1
Modelo de desarrollo de software
Es una actividad en el proceso de desarrollo de software de análisis de requerimiento, especificaciones,
diseño,
programación,
verificación,
validación,
prototipaje,
integración y gestión de configuraciones, en la relación de modelo de desarrollo de software. Este proceso plantea un desarrollo interactivo incremental que permite un entendimiento progresivo de los requerimientos del sistema, permitiendo también que los riesgos del programa planteado sean identificados en cada etapa del desarrollo, ayudando a reducir significativamente.
16
La define la estructura de un proceso de desarrollo racional y controlable, no existe un modelo universal, no son rígidos, pero es una guía respecto al orden en que deben adelantarse las actividades; esto basado en que el software tiene un ciclo de vida. 3.5.2 3.5.2.1
Diseño lógico, físico de base de datos Diseño lógico
Transforma el esquema conceptual al modelo de datos en el que se apoya el SGBD (ibid), es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos que se van a utilizar en el sistema. La salida de esta etapa es el esquema lógico global y la documentación que lo describe. Todo ello es la entrada para la etapa que viene a continuación, el diseño físico. 3.5.2.2
Diseño físico
El diseño físico no es una etapa aislada, ya que algunas decisiones que se tomen durante su desarrollo, por ejemplo para mejorar las prestaciones, pueden provocar una reestructuración del esquema lógico, además consigue una instrumentación lo más eficiente posible del esquema lógico. Mientras que en el diseño lógico se especifica qué se guarda, en el diseño físico se especifica cómo se guarda. El objetivo de esta etapa es producir una descripción de la implementación de la base de datos en memoria secundaria. Esta descripción incluye las estructuras de almacenamiento y los métodos de acceso que se utilizarán para conseguir un acceso eficiente a los datos. 3.5.3
Modelo entidad-relación
Representa un esquema de la base de datos mediante entidades y asociaciones en forma sencilla y global, lo que permite interactuar al usuario y los desarrolladores para facilitar que se despejen dudas y se aclaren aspectos a diseñar.
17
Los principales elementos del modelo entidad-relación son las entidades con sus atributos y las relaciones entre entidades. 3.5.3.1
Entidad
Se trata de un objeto del que se recoge información de interés de cara a la base de datos. Gráficamente se representan mediante un rectángulo. Un ejemplo seria la entidad banco, donde se recogerían los datos relativos a ese banco, como puede ser el nombre, el número de sucursal, la dirección, etc. Dentro de las entidades pueden ser fuertes o débiles. Las fuertes son las que no dependen de otras entidades para existir, mientras que las entidades débiles siempre dependen de otra entidad sino no tienen sentido por ellas mismas. 3.5.3.2
Relación
Podemos definir la relación como una asociación de dos o más entidades. A cada relación se le asigna un nombre para poder distinguirla de las demás y saber su función dentro del modelo entidad-relación. Otra característica es el grado de relación, siendo las de grado 1 relaciones que solo relacionan una entidad consigo misma. Las de grado 2 son relaciones que asocian dos entidades distintas, y las de grado n que se tratan de relaciones que unen más de dos entidades. Las relaciones se representas gráficamente con rombos, dentro de ellas se coloca el nombre de la relación. Otra característica es el tipo de correspondencia entre dos relaciones;
1:1. Uno a uno, a cada ocurrencia de una entidad le corresponde como máximo una ocurrencia de la otra entidad relacionada.
1:N. Uno a Mucho, a cada ocurrencia de la entidad A le pueden corresponder varias de la entidad B.
18
N:M. Muchos a muchos, cada ocurrencia de una entidad puede contener varias de la otra entidad relacionada y viceversa.
Las características de la relación tenemos la cantidad que define el número máximo y mínimo de ocurrencias de cada tipo de entidad. Se representa con los valores máximo, mínimo encerrados entre paréntesis encima de la relación. 3.5.3.3
Atributo
Son campos de datos que pertenecen a un fichero pero no son parte de él. Se define también como cada una de las propiedades de la entidad -relación. Cada atributo tiene un nombre y todos los posibles valores que puede tener. Dentro de una entidad tiene que haber un atributo principal que identifica a la entidad y su valor tiene que ser único. 3.5.4
Estándar de codificación
El Estándar de Codificación es un estilo de programación semejante en un proyecto permitiendo a los usuarios lo puedan entender con facilidad; el estándar puede venir definido a nivel de institución, a nivel de proyecto o incluso a nivel de la universidad. Sirve como punto de referencia para los programadores.
Mantiene un estilo de programación.
Promover la intención del código.
Permitir que los programas se acerque lo mayor posible al lenguaje natural.
Ayuda a mejorar el proceso de codificación, haciéndolo entre otras cosas más eficientes.
Los estándares de codificación deben tener una arquitectura y un estilo consistente es decir fácil de entender y fácil de mantener.
19
3.5.5
Seguridad en base de datos
Consiste en asegurar que los recursos de un sistema de información sean utilizada de la manera que se decidió y que solo sea posible su acceso a las personas que estén autorizadas. Las aplicaciones de cliente de los SGBD deben ser diseñadas y desarrolladas con los niveles de seguridad adecuados. La información ha pasado a ser el activo más importante de las organizaciones, por encima incluso de los activos tradicionales económicos, humanos y materias primas, además, hay datos especiales, personales que están protegidos por leyes en casi todos los países.
Confidencialidad
Integridad
Disponibilidad
3.5.6
Arquitectura de software
La Arquitectura de software proporciona un marco referencial para construcción de un software, esto permite a los desarrolladores de software compartir una misma línea de trabajo y cubrir todas las restricciones y objetivos de la aplicación. Permite la adaptabilidad a los mercados cambiantes; La arquitectura de software es la columna vertebral para construir un sistema. A diferencia de los patrones de diseños, que son centenares, los estilos se ordenan en seis o siete clases fundamentales y unos veinte ejemplares, como máximo. Es digno de señalarse el empeño por subsumir todas las formas existentes de aplicaciones en un conjunto de dimensiones tan modestas. Las arquitecturas complejas o compuestas resultan del agregado o la composición de estilos más básicos. Algunos estilos típicos son las arquitecturas basadas en flujo de datos, las peer-to-peer, las de invocación
20
implícita, las jerárquicas, las centradas en datos o las de intérprete-máquina virtual. La aplicación de una estrategia sistemática, disciplinada y cuantificable al desarrollo, aplicación y mantenimiento del software; esto es, la aplicación de la ingeniería al software. 3.5.6.1
Especificación de requerimientos de software (SRS)
Define de forma precisa el producto de software que se va a desarrollar. Incluye un conjunto de casos de usos que describen las interacciones que tendrán los usuarios con el software. Las decisiones hechas escribiendo la SRS están basadas en información de los documentos de la propuesta del proyecto y requerimientos del usuario. El conjunto de requerimientos de SRS deben ser satisfechos en el diseño del sistema. La SRS es verificada y validada por la actividad marcada en el plan de QA. Está dirigido al cliente como a los desarrolladores. El lenguaje utilizado para su redacción debe ser informal y comprensible para todas las partes en el desarrollo. Según el estándar IEEE 830-1998 sus características de un buen SRS son: Completa, consistente, inequívoca, correcta, trazable, priorizable, modificable y verificable. 3.5.6.2
Propuesta del proyecto
Esta propuesta, junto con los preliminares de los documentos relacionados será usada por Administración para determinar si se aprobará o no trabajar en este proyecto. Un plan de proyecto claro y preciso ayuda a definir las expectativas que serán usadas más tarde para evaluar el éxito del proyecto. 3.5.6.3
Requerimientos del usuario
Establece los documentos con las necesidades del usuario y explica los deseos actuales de los inversionistas de forma breve en sus propias palabras. Qué es lo que desean nunca es exactamente los que el producto provee. Documentando las necesidades del usuario aquí, independientemente de la SRS, ayuda a mantener el SRS preciso y hace que las tareas de verificación y validación sean más efectivas. Este documento no es un borrador
21
informal del SRS, es un documento diferente con un propósito complementario. 3.5.6.4
Diseño
Este documento de diseño describe un sistema que satisfacer los requerimientos de la SRS. Las decisiones hechas creando este documento de diseño están basadas en esos requerimientos y en la comprensión de las tecnologías y los componentes disponibles. Una vez que el diseño se encuentre esbozado, pueden empezar el trabajo en la implementación del sistema y las pruebas unitarias. 3.5.6.5
Plan de QA (aseguramiento de la calidad)
Este documento especifica los objetivos de calidad, selecciona estrategias para asegurar que las metas se han logrado, y detalla un plan de acción para llevar a cabo las estrategias. 3.5.7
Requerimiento de software
Una especificación de requisitos software (SRS) es una descripción completa del comportamiento de un sistema a ser desarrollado y puede incluir un conjunto de casos de uso que describen las interacciones de los usuarios tendrán con el software. Además también contiene requisitos no funcionales. Los requerimientos no funcionales imponen restricciones en el diseño o ejecución y se refieren a veces como "utilidades". Requisitos de software es un subcampo de la ingeniería del software que se ocupa de la obtención, análisis, especificación y validación de requisitos de software. El requisito de software documento de especificación alista todos los requisitos necesarios para el desarrollo del proyecto. Para obtener los requisitos que necesitamos para tener una comprensión clara y completa de los productos a ser desarrollados. Se prepara después de las comunicaciones detalladas con equipo del proyecto y el cliente. Una organización general de un SRS es como sigue: Introducción: Contiene propósito, definiciones, vista general del sistema, referencias.
22
Descripción general: Contiene producto perspectiva, interfaces del sistema, interfaces de usuario, interfaces de hardware, interfaces de software, interfaces de comunicación, las limitaciones de memoria, operaciones, requisitos del sitio adaptación de funciones del producto, características del usuario, las limitaciones, supuestos y dependencias. Requisitos específicos: Contiene Requisitos Interfaz externa, Requisitos funcionales, Los requisitos de desempeño, Restricciones de diseño, estos a su vez contienen cumplimiento de los estándares, requisito lógico de base de datos, atributos del software del sistema, confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad. 3.5.8
Arquitectura cliente/servidor
En un entorno cliente/servidor, lo que significa que el equipo cliente que forma parte de una red se contacta con un servidor, este generalmente con una gran capacidad de entrada/salida que proporcionen servicios a los equipos clientes. Es una aplicación que trabaja en conjunto como nodos de información, donde el servidor está dispuesto a enviar la información cuando el cliente lo solicite. Los modelos de aplicación reparten tareas entre los proveedores de recursos o servicios y los demandantes llamados clientes. Esta idea se la puede aplicar a programas que se ejecutan sobre una sola computadora, los llamados sistemas operativos multiusuarios conectados en red de computadoras. La arquitectura cliente/servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico. 3.5.9
Herramientas case
La Herramienta CASE es la automatización del desarrollo de software para mejorar localidad de un sistema informático, estos métodos asociados proporcionan asistencia al proceso de desarrollo del software en su ciclo de vida.
23
Permite aplicaciones prácticas de metodología para agilizar el trabajo, realiza prototipos para aplicaciones conjuntas, simplifica el mantenimiento de los programas, facilita la restauración de componentes software y aumenta la portabilidad de las aplicaciones entre otros. Este tipos surgieron para dar solución a los problemas de los proyectos de aplicaciones informáticas: plazos y presupuestos incumplidos, satisfacción de usuarios, escaza productividad y baja calidad de los desarrolladores. Las Herramientas CASE en un futuro evolucionaran con diferentes estructuras de diccionario para el cambio de datos. Los beneficios esperados son: La facilidades para la revisión de aplicaciones, soporte para los prototipos de sistemas, generación de código, mejora la habilidad para satisfacer los requerimientos del usuario y soporte interactivo para el proceso de desarrollo. Como características de herramientas CASE tenemos: Que son dependientes de las metodologías, permiten a los usuarios que definan su propia metodología y soportan las metodologías más diseminadas. Entre las principales herramientas CASE tenemos: Oracle SQL Developer: El Oracle SQL Developer es una herramienta gráfica gratuita disponible para Windows, Mac y Linux que permite manipular bases de datos Oracle y de terceros, como DB2, Access o MySQL por medio de un driver JDBC; está construida en torno a un interfaz principal que permite navegar por un árbol jerárquico de objetos contenidos en bases de datos y realizar operaciones sencillas sobre ellos. Proporciona además alguna herramienta adicional, especialmente un área para ejecutar sentencias SQL y PL/SQL Oracle SQL Developer Data Modeler: Es una herramienta de modelado de base de datos completa de servicios, para ayudar a modelados de base de datos de Oracle: Puede
24
conectarse a cualquier base de datos compatible con Oracle y es independiente de la plataforma que se use. Erwin Data Modeler: proporciona un entorno de modelado de datos de colaboración para la gestión de datos empresariales a través de una interfaz gráfica intuitiva. Con una visión centralizada de las definiciones de datos claves y de manera más eficiente. Toad: Es una herramienta que permite desarrollar y administrar bases de datos Oracle de forma eficiente y precisa, posee una navegación sencilla, así como un workflow cómodo y potente que le permite pasar con facilidad de una tarea a otra. 3.6
Investigación o experiencias empíricas vinculadas con el problema de investigación
De la investigación que se ha podido realizar a nivel local no se ha podido encuentran referencias de Sistemas Generadores de Horarios de Clases; a nivel nacional la UTPL posee dos temas que pueden servir como base de sustentación del proyecto de disertación como son: Sistemas de Elaboración de Horarios para Colegios Fiscales y Diseño de una solución para la Generación de Horarios y Asignación de salas de clases de la modalidad presencial de la Universidad Técnica Particular de Loja, además la mayoría de Universidades que cuentan con un número elevado de estudiantes ya tienen implementado dichos sistemas entre las cuales están la PUCE sede Quito y la ESPOCH. A nivel mundial se puede tomar como referencia a Chile en donde la Universidad Diego Portales posee como tema de disertación la Programación de Horarios de Clases y asignación de salas para la Facultad de Ingeniería de la Universidad Diego Portales y también se puede hacer referencia a México en donde el Instituto Técnico de Nogales cuenta con el tema de Análisis e Implementación de un algoritmo de asignación para el diseño de Horarios en instituciones de Educación Superior. Como parte de la investigación realizada como fundamento de nuestra disertación analizamos dos tipos procesos de elaboración de horarios los cuales se van a describir a continuación.
25
3.7
Proceso de elaboración manual de horarios de clases
En la actualidad muchas Instituciones Educativas realizan el proceso de elaboración de horarios manualmente, los mismos que se basan en factores que se deben cumplir siguiendo una secuencia de pasos previos; a continuación se presenta algunos ejemplos de cómo se realizan el procedimiento de generar horarios de clases (ver Anexo 1) y (ver Anexo 2). 3.7.1
Proceso de elaboración computacional de horarios de clases
El proceso de elaboración de horarios mediantes programas de computación se basan en varios factores básicos que deben cumplir para que el software sea utilizable en cualquier Institución Educativa; para lo cual se analizara algunos ejemplos que permitirán un mejor entendimiento de cómo se generan los horarios de clases: 3.7.2
Generación de horarios a través de algoritmos genéticos
Se trata de un prototipo de sistema computacional para la generación de Horarios de clases de la Escuela de Ingeniería Informática de la UCAB “Universidad Católica Andrés Bello”, que permite su optimización, a través del uso de Algoritmos Genéticos (Son una técnica de representación que se basa en los mecanismos de selección que utiliza la naturaleza, donde los individuos más aptos de una población sobreviven, ya que pueden adaptarse más fácilmente a los cambios que se producen en su entorno. Son métodos sistemáticos para la resolución de problemas de búsqueda y selección), ya que el cálculo de horarios en una Institución de Educación Superior es un problema complejo debido a la cantidad de restricciones que presenta y el criterio con el que se aplican; para lo cual es necesario establecer los parámetros que lo conforman y la relación existente entre ellos. Por eso es importante determinar el número de secciones requeridas, la cantidad de alumnos en cada sección, el programa o pensum de estudios y los pre-requisitos de materias existentes por período semestral y entre semestres, la disponibilidad horaria de los profesores, números de créditos en que se impartirán las materias, entre otros factores, etc.
26
3.7.3
Factores involucrados en la elaboración de horarios:
Los factores que influyen en la asignación de horarios en una institución de Educación Superior son:
Pensum: Programa de estudios que comprende todas las materias que un estudiante debe cursar a lo largo de toda la carrera.
Disponibilidad Horaria del personal Docente: Horas disponibles y preferencias de un profesor para dictar las clases de una o más materias.
Número de Secciones a abrir para un período lectivo.
Número y Características de las Aula: Espacios físicos disponibles para dictar clases.
Horas Libres: Cantidad de horas sin asignación académica entre horas con carga académica.
3.7.4
AGH/iX (ayuda a la gestión de horarios)
Es un producto idóneo para la gestión del día a día de Centros de Enseñanza Superior ya que facilita la gestión de los espacios (aulas, laboratorios) y equipamientos integrados. Las tareas de planificación de un curso académico pueden realizarse con más eficacia y menos esfuerzo usando AGH/iX ya que permite generar cuadros horarios de modo automático en base a reglas que establece el usuario o según patrones de datos de años anteriores, para lo cual cuenta con procedimientos ágiles que ayudan a la elaboración de los nuevos horarios, además, facilita traspasar información desde un período a otro de un modo sencillo. 3.7.5
aScHorarios
Es un software que ayuda a asegurar el funcionamiento de una escuela durante todo el año, ya que reduce la complejidad administrativa de la creación de horarios debido que genera automáticamente el mejor horario a base de los datos provistos por el usuario
27
además permite la colocación, grabación y arreglos de los horarios existentes tomando en cuenta la utilización económica de las aulas, aulas especiales, otras instalaciones escolares; respetando las necesidades y capacidades del cuerpo docente, eliminado los huecos innecesarios de los profesores. 3.7.6
Timetab
Es un software que ayuda en el proceso de elaboración de horarios escolares sencillos de manejar, ya que cuenta con un asistente para introducción de datos que permite generar de forma rápida los horarios, ahorrando
tiempo y optimizando recursos,
cumpliendo con los requisitos que solicito el usuario. Timetab está diseñado para que se pueda aplicar en centros educativos con diferentes tipos de horarios, ciclos académicos y que compartan profesores. 3.7.7
Generador de horarios para centros de enseñanza
Es una aplicación Informática que permite crear horarios semanales para diferentes sitios de enseñanza, como colegios, institutos de educación secundaria, centro de formación profesional, escuelas de arte, escuelas superiores, educación primaria, etc. Tomando en cuenta que se cumplan todas las condiciones tanto estrictas como ponderables que ingrese el usuario; para ello se cuenta con tres perfiles de usuarios diferenciados adaptados a los distintos niveles educativos, su diseño está orientado a la obtención de resultado de forma automática para lo cual cuenta con herramientas que facilitan captación, la organización, configuración de datos iniciales as i como la presentación de los horarios resueltos. 3.8
Hipótesis
A mayor grado de complejidad en la creación de horarios de clases mayor será el tiempo invertido por las personas encargadas de elaborarlos. Unidades de análisis: Horarios de clases, personal académico Variables: Complejidad y tiempo
28
Término lógico: Se expresa como: “A mayor grado,……… mayor será……..”
IV
METODOLOGÍA
Es el camino más adecuado para lograr un fin. También podemos decir que el método es el conjunto de procedimientos lógicos a través de los cuales se plantean los problemas científicos y se ponen a prueba las hipótesis y los instrumentos de trabajo investigados. El método es un elemento necesario en la ciencia; ya que sin él no sería fácil demostrar si un argumento es válido.
4.1
Diseño/tipo de investigación
El tipo de investigación, aplicada para nuestro sistema es la investigación diagnostica, ya que nos permite determinar con mejor exactitud las necesidades y problemas que existen actualmente y que mediante el SISGHC serán resueltos.
4.2
Investigación diagnóstica
Es un “procedimiento por medio del cual se establece la magnitud de las necesidades y problemas que afectan a una comunidad, empresa o institución motivo de estudio (Posso Miguel. “Metodología para el trabajo de grado”. Página 122); comprende también el análisis
de éstas necesidades y problemas. La estructura de una investigación diagnóstica contiene: 4.2.1
Objetivos diagnósticos
Constituyen una guía para la investigación diagnóstica, y se relacionan directamente con el tema del proyecto que se está desarrollando.
29
30
4.2.2
Variables diagnósticas
Son los aspectos generales que desean investigarse, y están relacionados directamente con los objetivos diagnósticos. Para cada variable se deben determinar algunos indicadores. 4.2.2.1
Indicadores
Son los subaspectos que ofrecen información sobre cada variable diagnóstica.
4.3
Matriz de relación
La matriz de relación permite relacionar los objetivos, las variables y los indicadores, con la finalidad de determinar la técnica que permitirá recolectar la información requerida para cada indicador.
4.4
Mecánica operativa
Es una metodología de apoyo para la investigación diagnóstica, para la cual es necesario identificar los siguientes aspectos: 4.4.1
Población
"Es un conjunto de todos los elementos que estamos estudiando, acerca de los cuales intentamos sacar conclusiones" (Levin & Rubin (1996)). De acuerdo al número de elementos una población puede ser finita o infinita. La población finita está comprendida por un limitado número de elementos de estudio. La población infinita está comprendida por un número muy grande de elementos de estudio lo cual dificulta la investigación ya que implica mayor trabajo, tiempo y costo necesario para hacerlo. Para solucionar este inconveniente se utiliza una muestra.
31
4.4.2
Muestra
Constituye una porción representativa de la población; la información obtenida a partir de la muestra es válida para toda la población. Para determinar la muestra se utiliza la siguiente fórmula matemática.
En donde: n: es el tamaño de la muestra. N: es el tamaño de la población o universo. k: es una constante obtenida a partir del nivel de confianza asignado a la investigación, que indica la probabilidad de que los resultados sean ciertos. e: es el error muestral aceptado en la investigación. p: es la proporción de individuos de la población que poseen la característica del estudio. q: es la proporción de individuos de la población que no poseen la característica del estudio, es decir, es 1 - p.
4.5
Instrumentos de recogida de datos
4.5.1
Información primaria
Es la información recolectada de forma directa, a través del contacto directo con los individuos investigados, las técnicas de investigación primaria utilizadas en el presente proyecto son:
Observación.- Permite reconocer y anotar datos a través de una observación profunda y directa del medio en que se desarrolla la investigación.
32
Encuesta.- Conjunto de preguntas formuladas de manera sencilla y clara, que permiten obtener información cuantificable de los individuos objeto de la investigación.
Entrevista.- Conversación directa dirigida por un cuestionario, cuyo objetivo es obtener información del entrevistado.
4.5.2
Información secundaria
Es la información recolectada de otras investigaciones realizadas anteriormente, para lo cual no es necesario interactuar directamente con el objetivo de éstas. Las fuentes de información secundaria pueden ser libros revistas, manuales, periódicos, internet, etc.
4.6
Técnica de análisis de los resultados
En esta disertación no se puede aplicar técnicas de resultados debido a que su población es finita razón por la cual no se aplicó un muestreo, pero a continuación se va a detallar los aspectos más importantes de las entrevistas realizadas a los usuarios que van a utilizar el sistemas: Usuario administrador (CITIC): En las reuniones realizadas con el CITIC y el departamento de planificación se pudo desarrollar el alcance del Proyecto de disertación de Grado. Secretarias: Las reuniones realizadas con las secretarias de escuelas, nos permitió determinar el tipo de información que se necesita registrar para generar los horarios Planificador: De las reuniones realizadas, se pudo determinar cómo distinguir las materias transversales, las afines; para después crear la malla de transversales o afines, también obtener información de cómo elaborar horarios de clases Director: De la reunión realizada con cada uno de los diferentes directores, se determinaron las condiciones que se deben tener para elaborar los horarios de clases.
V. 5.1
RESULTADOS
Diagnóstico y análisis de los resultados
La PUCE SD cuenta con varias escuelas y carreras en las cuales la elaboración de horarios de clases se realiza de forma manual, esto conlleva una gran carga de tiempo para el personal que los realizan. El principal problema que se presentan en dicha elaboración, se da al momento de asignar materias a los docentes ya que pueden ocurrir cruces de horas clases en la misma escuela o entre ellas, la solución que suelen hacer es modificar el horario que se está creando o en el peor de los casos volver hacer uno nuevo o buscar otro docente. Por tal motivo es necesaria la implementación del sistema informático SISGHC el cual permitirá elaborar horarios en forma rápida y segura. 5.1.1
Objetivo de diagnóstico
Identificar la problemática existente en la elaboración de horarios de clases de la PUCE SD. 5.1.1.1
Variables del diagnóstico
Asignación de docentes
Asignación de materias
5.1.1.2
Indicadores
Disponibilidad del docente
Cantidad de materias asignadas al docente
33
34
Tipo de contrato del docente
Tipo de materias (normales, modulares, transversales, y afines) Matriz de Relación Tabla 1: Matriz de Relación
VARIABLES
INDICADORES
TÉCNICAS
Asignación de materias
docente
docentes
Asignación de
Tipo de contrato del
SD.
elaboración de horarios de clases de la PUCE
Identificar la problemática existente en la
OBJETIVO
Disponibilidad del docente Cantidad de materias asignadas al docente
FUENTES DE INFORMACIÓN
Entrevista
Planificación y Currícula
Entrevista
Secretarias
Entrevista
Director y Secretaria
Entrevista
Planificación y Currícula
Tipo de materias (normales, modulares, transversales, y afines)
Elaborado por: Luis Castillo y Edwin Criollo
5.1.2
Población y muestra
La población objeto de la investigación está conformada por los directores, planificador, secretarias de escuelas, departamento del CITIC. La información se muestra a continuación. Detalle de población Tabla 2: Detalle de Población POBLACIÓN DIRECTOR
7
SECRETARIAS
8
PLANIFICACIÓN
1
35
CITIC
2 TOTAL = 18
Elaborado por: Luis Castillo y Edwin Criollo
La población con la que cuenta nuestra disertación no se puede aplicada una muestra por ser una población finita. 5.1.2.1
Instrumentos de recogida de datos
Constituyen las fuentes de información primaria y secundaria mediante las cuales se recolectaron los datos necesarios para el desarrollo de la presente disertación. 5.1.2.2
Fuentes primarias
Las fuentes primarias utilizadas han sido las entrevistas y la observación, se realizó varias entrevistas con todas las personas que conforman la población antes y durante el proceso de elaboración del sistema para recopilar la información y entender cuál es proceso de generación de horarios; también se realizó una observación de los horarios ya generados por las escuelas para entender cómo se realiza y cuál debería ser el formato de los mismos. 5.2
Análisis de herramientas de diseño Tabla 3: Análisis de Herramientas de Diseño VENTAJAS
Visual
Basic 2010
Posee una curva de aprendizaje muy
Problemas con versiones asociado con
rápido.
varias librerías runtime DLL´s,
Integra el diseño e implementación de
conocidas como DLL Hell.
formularios de Windows.
DESVENTAJAS
entradas de registros COM.
Si bien permite desarrollar grandes y complejas aplicaciones, también provee un entorno adecuado para realizar
Dependencia de complejas y frágiles
Incapacidad para crear aplicaciones multadillos, sin tener que recurrir a
36
pequeños prototipos rápidos.
Fácilmente extensible mediante librerías
llamadas API de Windows.
No es factible exportar el código a otra
DLL y componentes ActiveX de otros
plataforma diferente a Windows.
lenguaje.
Es una fuente abierta los usuarios no tienen que luchar con impuestos de
Su sintaxis adolece de heredar de C++.
Carece de dinamismo de lenguaje como ruby o python.
patente cada año.
El poder de Java sea alcanzada por los
Su reflection API no es comparable a la facilidad que tienen estos lenguajes con
reveladores.
Java
su tipado dinámico y sus definiciones en
Usando JAVA podemos desarrollar
caliente.
aplicaciones web dinámicas.
Permite que se puedan crear programas
La comunidad no está muy volcada a este lenguaje.
modulares y código reutilizables.
JAVA realiza la colección de basura de
No permite pasar por referencia objetos,
las ayudas, así que la gerencia de
lo cual hace recurrir a técnicas más
memoria es automática.
complicadas.
Elaborado por: Luis Castillo y Edwin Criollo
Los diseñadores escogimos Visual Basic porque integra el diseño e implementación de formularios de Windows, además porque la Universidad posee el software con su respectiva licencia y es el lenguaje de programación con el cual estamos más acostumbrados. 5.2.2
Análisis de herramientas de base de datos Tabla 4: Análisis de herramienta de base de datos VENTAJAS
Oracle
express edition 10g
Oracle es el motor de base de datos
DESVENTAJAS
La inestabilidad de las primeras
relacional más usado a nivel mundial.
versiones, por lo que tiene que lanzar
Puede ejecutar en todas las plataformas,
otras más de correcciones para
desde una PC hasta un supercomputador.
alcanzarla estabilidad.
37
El software del servidor puede ejecutarse
Solo tiene una base de datos.
en multitud de sistema operativos.
No permite crear nuevas bases de
Permite el uso de particiones para la
mejor de la eficiencia.
datos.
Oracle soporta todas las funciones que se
Tiene un número limitado de almacenamiento.
espera de un servidor.
MySQL server
MySQL software es Open Source y usa la
licencia GPL.
de
Velocidad al realizar las operaciones,
documentados.
fiabilidad y facilidad de uso es lo que lo
convierte en uno de los gestores con
No
es
server
intuitivo,
no
están
como
otros
La
principal
desventaja MySQL
Bajo costo en requerimientos para la
server es la enorme cantidad de
elaboración de bases de datos, es decir
memoria RAM que utiliza para la
que puede ser ejecutado en una máquina
instalación y utilización del software.
con
MySQL
programas.
mejor rendimiento.
Un gran porcentaje de las utilidades
escasos
recursos
sin
ningún
Si deseas para practicas no va ha ser
problema.
útil porque restringe muchas cosas en
Facilidad de configuración e instalación.
lo particular.
Gran portabilidad entre distintos Sistemas
Elaborado por: Luis Castillo y Edwin Criollo
Los desarrolladores escogieron Oracle DataBase10g Express Edition porque es una versión gratuita de tipo estudiantil además de ser de fácil uso, se puede acoplar a la versión Oracle 11g que posee la universidad (Ver Anexo 4) 5.2.3
Análisis de herramientas codificación Tabla 5: Análisis de herramientas de codificación VENTAJAS
Visual Basic
Posee una afinidad de
DESVENTAJAS aprendizaje muy
Solo
genera
ejecutables
38
rápido.
apara Windows.
Se acostumbra los programadores.
Es un lenguaje de desarrollo rápido de
OO no permite sacar el
aplicaciones.
máximo
El código es fácil de migrar a otros
programación.
lenguajes.
Visual C++
Integrar
Lenguaje de programación orientado a
provecho
a
la
Los ejecutables generados son relativamente lentos
objetos
La ligera implementación de
Uso
de
DLL(librerías
Dinámicas) muy complejas.
Lenguaje muy didáctico, gracias a este
Elaborar un sistema en C++,
podría aprender otros con gran facilidad.
implica
Es muy potente en creación de sistemas
secuencial más complejo
complejos
un
proceso
No es recomendable para
Lenguaje muy robusto
desarrolladores de páginas
Es un lenguaje muy robusto
web
Elaborado por: Luis Castillo y Edwin Criollo
Los disertadores escogieron como herramienta de codificación Visual Basic, por ser un lenguaje acoplable a los requerimientos de la universidad (ver Anexo 4), además de ser en el que los desarrolladores están familiarizados trabajar 5.2.4
Análisis de métodos de ordenamiento Tabla 6: Análisis de métodos de ordenamiento
Método Burbuja
Características
Es un algoritmo muy sencillo y de ordenamiento; revisa cada elemento de la lista que va a ordenar con el siguiente y los va intercambiando de posición si están en orden equivocada
Quicksort
Se basa en la división en particiones de la lista a ordenar.
Tiene aparentemente la propiedad de trabajar mejor para elementos de entrada
39
desordenados completamente, que para elementos semi-ordenados
Elaborado por: Luis Castillo y Edwin Criollo
Los disertantes escogieron el método de ordenamiento de burbuja, ya que era el más apropiado para ordenar un vector, que almacenará la concatenación de la siguiente información: nivel, paralelo y código de la materia, que a partir de la disponibilidad del docente y la sección que pertenezca; va a ser asignados dentro del horario de clases, una vez que se haya separado en sus partes
5.3
Metodología de ingeniería de software.
La metodología aplicada para el ciclo de vida del sistema combina las fases del método de cascada como son: Fase de Análisis, Fase de Diseño, Fase de Implementación, Fase de Pruebas (Ver Anexo 5) y los aspectos fundamentales de la Metodología MSF. Los disertantes decidimos llamar a esta metodología: METODOLOGÍA METSISGHC.
5.4
Metodología METSISGHC I
1.1
FASE DE ANÁLISIS
Problema:
En la universidad, la creación de horarios de clases de sus diferentes carreras se los realiza de forma manual, este proceso se realiza semestralmente la misma que está a cargo de los respectivos Directores de cada escuela de la Universidad. La asignación de horarios de clases es un problema complejo debido a la cantidad de restricciones que presenta y el criterio con el que se aplican, además de invertirse mucho tiempo en su elaboración se cometen muchos errores en el cruce de horas con otras escuelas. Con la implementación del sistema SISGHC se debe mejorar el proceso de creación de horarios clase haciéndolos más rápidos para los involucrados en el proceso, además que contarán con una plataforma tecnológica que garantice que el proceso de creación se realizará de forma confiable y segura.
1.2
Visión del proyecto
El sistema informático SISGHC permitirá optimizar el tiempo de elaboración de horarios de clases, automatizando sus procesos y almacenándolos en forma segura.
40
41
1.3
Perfiles de usuarios Tabla 7: Perfiles de usuario USUARIO
FUNCIÓN
ADMINISTRADOR
Crear usuarios, y administrar la base de datos
SECRETARIAS
Ingresar información
PLANIFICADOR
Ingresar tipo de contrato de docente, crear malla de materias transversales y afines.
DIRECTORES
Crear horarios de clases
Elaborado por: Luis Castillo y Edwin Criollo
1.4
Identificación de requerimiento Tabla 8: Identificación de requerimiento LO QUE HARA EL SISTEMA
LO QUE NO HARA EL SISTEMA
Crear usuario, perfiles de usuarios, carreras, ciclos
Registrar las materias como transversales o afines,
académicos, escuelas, malla curricular, docentes,
ya que esta información es variable en cada
disponibilidad horaria de docente, tipo de contrato
semestre.
de docente, mallas transversales y afines, materias transversales y afines
Asignar materias a las escuelas, materias a los
Imprimir mediante reporte los horarios de clases.
docentes.
Debido a problemas presentados con Cristal Report y la versión de Windows, la impresión se realizará una vez se han exportados a Excel
Generar horarios de clases
Unificar automáticamente las materias, debido a que el sistema no cuenta con el número de estudiantes para tomar esa decisión Elaborado por: Luis Castillo y Edwin Criollo
42
1.4.1
Análisis de impactos
Los impactos son los aspectos positivos o negativos, que la ejecución del presente proyecto provocará en determinadas áreas. El análisis de impactos puede realizarse de forma prospectiva o retrospectiva, siendo prospectiva cuando el proyecto aún no ha finalizado, es decir, se describen los beneficios que aportará el proyecto cuando se encuentre en ejecución, y retrospectiva cuando el proyecto ha finalizado, es decir, se describen los beneficios que el proyecto aportó durante su ejecución. Para el caso del presente proyecto el análisis será prospectivo. Los impactos generados se analizarán en una matriz que consta de: niveles de impacto e indicadores de impacto. Los niveles de impacto permiten representar cuantitativamente la trascendencia del proyecto en cada área analizada. En la siguiente tabla se detallan los niveles de impacto: Tabla 9: Niveles de impacto
Nvel de Impacto
Descripciòn de Nivel de Impacto
-3
Impacto Alto Negativo
-2
Impacto Medio Negativo
-1
Impacto Bajo Negativo
0
No hay Impacto
1
Impacto Alto Positivo
2
Impacto Medio Positivo
3
Impacto Bajo Positivo Elaborado por: Luis Castillo y Edwin Criollo
Fuente: Metodología para el Trabajo de Grado, Autor: POSSO YÉPEZ, pág. 199
Los indicadores de impacto son los cambios mensurables que se generarán con la ejecución del proyecto.
43
Para cada área se determinan sus indicadores de impacto y a estos a su vez se les asigna un valor numérico de nivel de impacto, seguido se realiza el promedio de los niveles de impacto por área, mediante la siguiente fórmula.
El resultado obtenido se redondea al entero más cercano, por exceso o por defecto, finalmente se realiza el análisis. Las áreas de impacto más representativas para el presente proyecto se analizan en las siguientes matrices: Tabla 10: Impacto educativo IMPACTO EDUCATIVO INDICADOR
NIVEL
-3
-2
-1
Potenciación de otras investigaciones relacionadas a la generación de horarios de clases. Instauración de buenos hábitos de generación de horarios de clases Aplicable para otras instituciones educativas.
0
1
2
3
X X X
TOTAL Σ=8 Nivel de impacto educativo = 8 / 3 = 2,66 = 3 Nivel de impacto educativo = Impacto alto positivo
Elaborado por: Luis Castillo y Edwin Criollo
Análisis
El proyecto puede ser estudiado y tomado como guía para realizar otras investigaciones en base a Generación de Horarios de Clases, amplía el panorama existente sobre como la tecnología puede usarse para facilitar la creación de horarios.
Con el control de horarios se educa a los creadores buenos hábitos de uso de los mismos, principalmente en el proceso de creación de horarios a la organización.
44
La investigación e implementación de la generación de horarios puede ser aplicable en otras instituciones educativas que tengan el mismo problema de creación de horarios, con ligeros cambios de integración de la información académica que puede diferir de una institución a otra. Tabla 11: Impacto administrativo IMPACTO ADMINISTRATIVO INDICADOR
NIVEL
-3
-2
-1
Optimización en el proceso de creación de horarios de clases Optimización en el tiempo de creación de horarios de clases Distribución equitativa de tiempo de creacion de horarios de clases Incremento de soportes para sistemas informáticos TOTAL
0
1
2
3 X X X
X 1
9
Σ = 10 Nivel de impacto administrativo = 10 / 4 = 2,5 = 3 Nivel de impacto administrativo = Impacto alto positivo
Elaborado por: Luis Castillo y Edwin Criollo
Análisis
Se requerirá el personal mínimo para creación de horarios de clases, el sistema informático automatizará las actividades necesarias para esto, y lo realizará con mayor eficiencia. La información permanecerá centralizada en un solo lugar de almacenamiento.
El personal encargado invertirá menor tiempo en la creación y generación de horarios de clases.
Todos los usuarios podrán usar las computadoras ubicadas en los laboratorios de computación durante el período de tiempo designado para ello, el cual estará preestablecido en el sistema informático.
45
Se deberá designar a una persona del Área de Software del Departamento del CITIC para que de mantenimiento y soporte continuo al sistema informático, una vez entregado el proyecto a la Universidad. Tabla 12: Impacto tecnológico IMPACTO TECNOLÓGICO INDICADOR NIVEL -3 El uso convencional de la tecnología mantendría la rigidez de los horarios de clases El proceso de la generación de horarios es un sistema automatizado, que explora para encontrar una solución satisfactoria. TOTAL
-2
-1
0
1
2
3
X X 4
Σ=4 Nivel de impacto tecnológico = 4 / 2 = 2 Nivel de impacto tecnológico = Impacto medio positivo
Elaborado por: Luis Castillo y Edwin Criollo
Análisis
La generación de horarios se define como la existencia de una aplicación con la cual una computadora realice el proceso, en combinación con la interacción del usuario.
Esta institución no se cuenta con un sistema automatizado que realice el proceso de generación de horarios, por lo que existe la oportunidad de realizar un estudio acerca de la situación actual y proponer una solución al problema.
46
Tabla 13: Impacto económico IMPACTO ECONÓMICO INDICADOR
NIVEL
-3
-2
-1
Disminución de gastos de administración en el proceso de creacion de horarios de clases Aumento de costos de soporte para sistemas informáticos. Disminución gastos de material para creacion de horaios de clases TOTAL
0
1
2
3
X X X 2
2
Σ=4 Nivel de impacto económico = 4 / 3 = 1.33 = 1 Nivel de impacto económico = Impacto bajo positivo
Elaborado por: Luis Castillo y Edwin Criollo
Análisis
En función a la disminución de tiempos requeridos para la administración y creación de horarios de clases, disminuyen los costos asociados al personal encargado de estas actividades.
Se deberá designar a una persona del Área de Programación del CITIC para dar soporte continuo al sistema informático, con la finalidad de mantenerlo actualizado, lo que representa una mayor inversión de tiempo en el mantenimiento de software de la universidad, por lo que los costos de soporte también aumentan.
Debido a la optimización de tiempos para creación de horarios de clases, se espera que la gran mayoría de directores y usuarios puedan utilizarlos, solventando la aparente falta de un sistema informático.
El análisis de impactos finaliza con una matriz general, que sintetiza y visualiza los niveles de impacto de cada área, la misma que se detalla a continuación:
47
Tabla 14: Impacto general IMPACTO GENERAL INDICADOR
NIVEL
-3
-2
-1
0
1
2
Impacto Eduactivo Impacto Administrativo
3 X X
Impacto Tecnológico
X
Impacto Económico
X
TOTAL
1
2
6
Σ=9 Nivel de impacto general = 9 / 4 = 2,25 = 2 Nivel de impacto general = Impacto medio positivo
Elaborado por: Luis Castillo y Edwin Criollo
Análisis La implementación del presente proyecto contribuye positivamente al progreso educativo, administrativo, tecnológico y económico de la PUCE SD, y del resto de instituciones educativas que deseen tomar este trabajo como base para su propio beneficio. 1.4.2
Marco institucional
El presente Proyecto Informático tiene fines de servicio para la Pontificia Universidad Católica del Ecuador Sede Santo Domingo, se implantara dentro del:
Departamento de Planificación y Currícula
Departamento CITIC.
Dirección de Escuelas.
El proyecto se ejecutara en la Pontificia Universidad Católica del Ecuador sede Santo Domingo, Cantón Santo Domingo de los Colorados, Provincia de los Tsáchilas. El proceso de elaboración del sistema como su documentación va a estar a cargo de los disertantes, los mismos que se regirán a las normativas de disertación que posee la
48
universidad. Una vez entregado el sistema, será la PUCE SD la encargada del mantenimiento y buen uso del mismo. 1.4.3
Resumen de actividades.
1.- Capacitación en el proceso de desarrollo de la guía de diseño del proyecto. 2.- Recopilación información del proceso de generación de horarios de la PUCE SD. 3.- Análisis de la información recopilada y búsqueda de la solución al problema de la Generación de Horarios. 4.- Elaboración del modelo Entidad relación del sistema. 5.- Diseño del sistema Generador de Horarios. 6.- Pruebas del funcionamiento del sistema. 7.- Implementación del Sistema Generador de Horarios en la PUCE SD. 1.4.4 1.4.4.1
Lista de requerimientos generales del SISGHC Requerimiento del sistema
Req1. El sistema informático permitirá generar horarios de clases acorde a los requerimientos de la Universidad. Req2 El sistema informático permitirá la agilización en el proceso de ingreso de información Req3 El sistema informático contará con un entorno amigable para el usuario que utilizara el sistema. Req4 El sistema informático permitirá crear usuarios con sus respectivos perfiles. Requerimiento del Usuario
49
Req5 El usuario podrá generar horarios de clases Req6 El usuario podrá crear malla de transversales o afines Req7 El usuario podrá asignar materias a los docentes Req8 El usuario podrá crear los niveles y paralelos que se impartirán en las escuelas
1.5
Concepto de la solución
El Sistema Informático SISGHC se divide en 5 módulos: Módulo de Administración permite registrar la información inicial y básica para la elaboración del Horario; Módulo de Seguridad permite que el usuario Administrador del sistema, asigne usuarios con sus respectivos permisos; Modulo Docentes permite registrar los datos relacionados a los docentes; Modulo Materias permite registrar la información necesaria de las materias que van hacer asignadas y Módulo Horarios consta de dos partes: la primera permite registrar los datos previos a la generación de horarios y la segunda permita la generación de horarios de clases una vez se tenga ingresado los datos requeridos. El sistema SISGHC funcionara en los sistemas operativos Windows XP y Windows 7, fue desarrollado en Visual Studio 2010 con el lenguaje de programación Visual Basic y manejador de base de datos Oracle DataBase10g Express Edition.
1.6
Objetivo del proyecto
Reducir el tiempo de creación de los horarios de clases
Elaborar horarios de clases seguros y confiables
Sistematizar el proceso de elaboración de horarios de clase
1.6.1
Objetivos del Diseño
Permitir ingresar las materias que serán impartidas en un semestre
Permitir asignar materias a los docentes en función al número de créditos de su tipo de contrato
50
Permitir la elaboración de horario de acuerdo a la disponibilidad del docente
1.7
Factores críticos
1.7.1
Análisis y reducción de riesgos
1.7.2
Introducción
El realizar el análisis del riesgo nos servirá para identificar aquellos riesgos que con el tiempo puedan convertirán en grandes problemas, por lo que al identificar estos riesgos detallaremos las posibles soluciones de los mismos. A continuación presentamos la lista y análisis de los riesgos con su respectivo plan de reducción, supervisión y gestión de riesgo que en nuestro proyecto hemos visto que son los más importantes, es decir los que podrían convertirse en problemas serios en el desarrollo del mismo. 1.7.3
Identificación de riesgo Tabla 15: Identificación de riesgo
Identificación R1
Descripción del riesgo Mal diseño de la base de datos.
Categoría RP
Consecuencia - Retraso en la entrega del proyecto
R2
Falta de información por parte de los
RT
disertantes. R3
Datos de entrada sin controles, ingreso
- Retraso en el análisis del proyecto.
RP
- Ingreso de datos erróneos
RT
- Construcción del proyecto en
bajo responsabilidad del usuario R4
Equipos desactualizados.
una plataforma inadecuada R5
Interfaces no adecuadas.
RT
- Dificultad de manejo para el usuario
51
Usuarios finales se resisten a utilizar
R6
RN
- Perdida de recurso
el sistema. R7
Cambio del Director de la disertación.
RN
- Suspensión en el proyecto
R8
Inconformidad
RT
- Ambigüedades en la
de
las
salidas
de
información. Cambios
R9
especificación del proyecto en
las
políticas
- Aumento de tiempo en el
RP
administrativas de la Universidad R10
proyecto
Inconformidad entre desarrolladores
- Falta de comunicación entre
RP
desarrolladores del proyecto R11
Inadecuado ambiente de trabajo
- Retraso en el desarrollo hasta
RP
encontrar un local adecuado Mala distribución de las tareas a los
R12
- Excesivo trabajo para
RP
desarrolladores
determinadas personas
Desinterés en actualizar componentes
R13
- Desperdicio de recursos
RT
de programación
económicos
Elaborado por: Luis Castillo y Edwin Criollo
1.7.4
Análisis de riesgo Tabla 16: Análisis de riesgo Probabilidad
Impacto
Exposición al riesgo
Identificación %
Valor
Proba.
Valor
Impacto
Valor
Exposición
R1
25
1
BAJA
2
MODERADO
2
BAJA
R2
10
1
BAJA
1
BAJO
1
BAJA
R3
60
2
MEDIA
2
MODERADO
4
MEDIANA
52
R4
30
1
BAJA
1
BAJO
1
BAJA
R5
60
2
MEDIA
2
MODERADO
4
MEDIANA
R6
10
1
BAJA
1
BAJO
1
BAJA
R7
80
3
ALTA
4
CRITICO
12
ALTA
R8
25
1
BAJA
2
MODERADO
2
BAJA
R9
75
3
ALTA
3
ALTO
9
ALTA
R10
10
2
BAJA
1
BAJO
1
BAJA
R11
10
1
BAJA
1
BAJO
1
BAJA
R12
40
2
MEDIA
2
MODERADO
4
MEDIANA
R13
30
1
BAJA
2
MODEADO
2
BAJA
R14
20
1
BAJA
4
CRITICO
4
MEDIANA
Elaborado por: Luis Castillo y Edwin Criollo
1.7.5
Criterio de valoraci贸n de la probabilidad Tabla 17: Criterio de valor de la prioridad Rango de
Descripci贸n
Valor
1%-33%
Baja
1
34%-67%
Media
2
68%-99%
Alta
3
Probabilidades
Elaborado por: Luis Castillo y Edwin Criollo
53
1.7.6
Criterio de valoración del impacto al riesgo: Tabla 18: Criterio de valoración del impacto al riesgo
Impacto
Costo
Retraso
Impacto Técnico
Valor
Bajo
< 1%
1 semana
Ligero impacto en el desarrollo del proyecto
1
Moderado
< 5%
2 semanas
Moderado impacto en el desarrollo del proyecto
2
Alto
< 10%
1 mes
Severo impacto en el desarrollo del proyecto
3
Critico
> 10%
> 1 mes
Proyecto no puede ser culminado
4
Elaborado por: Luis Castillo y Edwin Criollo
1.7.7
Criterio de valoración de la exposición al riesgo: Tabla 19: Criterio de valoración de la exposición al riesgo
Exposición al riesgo
Valor
Color
Baja
1
Verde
Media
2
Amarillo
Alta
3
Rojo
Elaborado por: Luis Castillo y Edwin Criollo
54
1.7.8
Prioridad de los riesgos Tabla 20: Prioridad de los riesgos
Probabilidad
Impacto
Exposición
Prioridad
R7
3
4
12
1
R9
3
3
9
2
R2
2
2
4
3
R3
2
2
4
3
R5
2
2
4
3
R1
1
2
2
4
R8
1
2
2
4
R10
2
1
2
4
R13
1
2
2
4
R4
1
1
1
5
R6
1
1
1
5
R11
1
1
1
5
R14
1
1
1
5
ID
Línea de Corte
Elaborado por: Luis Castillo y Edwin Criollo
1.7.9
Plan de reducción, supervisión y gestión del riesgo
Continuación se detallan los riesgos que de acuerdo a la línea de corte son los que hay que dar prioridad para que estos no pasen a ser un problema.
55
Tabla 21: Hoja de gestión del riesgo R7 HOJA DE GESTION DEL RIESGO ID. DEL RIESGO:
R7
FECHA:
Probabilidad: ALTA
Impacto: CRITICO
Exposición: ALTA
Prioridad: ALTA
Valor : 3
Valor: 4
Valor:
Valor: 1
12
DESCRIPCION En la disertación hubieron dos directores anteriores al actual director (Ing. Fausto Orozco) REFINAMIENTO CAUSAS: -
Cambio por parte de los disertantes (Ing. José Luis Centeno).
-
Cuestiones personales Director renuncio (Ing. Renato Erazo).
CONSECUENCIA: -
Genero aplicación de prórroga, tomar materias de actualización para poder continuar con tema de disertación
REDUCCION DEL RIESGO -
Mantener al director vigente y aplicar sus conocimientos en el desarrollo de la disertación
SUPERVISION - Realizar reuniones constantes con nuestro director de disertación GESTION Las reuniones con nuestro director se realizan cada 15 días, en los cuales se sigue desarrollando el tema de disertación.
el
56
ESTADO ACTUAL Fase de Reducción iniciada : Fase de Supervisión iniciada : Gestionando el Riesgo : RESPONSABLES Ing. Fausto Orozco
Director de disertación
Egresado Luis Castillo
Disertantes
Egresado Edwin Criollo
Disertantes
Elaborado por: Luis Castillo y Edwin Criollo Tabla 22: Hoja de gestión del riesgo R9 HOJA DE GESTION DEL RIESGO ID. DEL RIESGO: R9
FECHA:
Probabilidad: ALTA
Impacto: ALTA
Exposición: ALTA
Prioridad: ALTA
Valor :3
Valor: 3
Valor: 9
Valor: 2
DESCRIPCION Los cambios administrativos que han existido en la universidad nos han retrasado en nuestra disertación, además se cambió la duración de hora clase de (45 minutos) a una hora REFINAMIENTO CAUSAS -
La universidad está acoplándose a los nuevos formatos de educación universitaria
CONSECUENCIA
57
-
Retraso en el desarrollo de la disertación
-
Acoplarse a las nuevas políticas implementadas
REDUCCION DEL RIESGO -
Tratar de terminar lo antes posible la disertación
SUPERVISION -
Director de escuela y Director de disertación
GESTION
ESTADO ACTUAL Fase de Reducción iniciada : Fase de Supervisión iniciada : Gestionando el Riesgo : RESPONSABLES
Elaborado por: Luis Castillo y Edwin Criollo Tabla 23: Hoja de gestión del riesgo R2 HOJA DE GESTION DEL RIESGO ID. DEL RIESGO: R2 Probabilidad: Media
FECHA Impacto: Moderado
Exposición: Media
Prioridad: Media
58
Valor : 2
Valor: 2
Valor: 4
Valor: 4
DESCRIPCION Durante el desarrollo del sistema se establecieron varias reuniones con los usuarios pero para la elaboraciรณn del alcance la disponibilidad de los usuarios hizo que las reuniones se realizaran durante rangos de tiempo muy largos entre unas y otras. REFINAMIENTO CAUSAS: -
Disponibilidad de los usuarios que proveen informaciรณn
CONSECUENCIAS - Retraso en el proceso de elaboraciรณn del sistema. REDUCCION DEL RIESGO SUPERVISION - Estar pendiente de que se cumplan las fechas establecidas para las reuniones GESTION
ESTADO ACTUAL Fase de Reducciรณn iniciada : Fase de Supervisiรณn iniciada : Gestionando el Riesgo : RESPONSABLES Usuarios Egresado Luis Castillo
Disertantes
59
Egresado Edwin Criollo
Disertantes
Elaborado por: Luis Castillo y Edwin Criollo Tabla 24: Hoja de gestión del riesgo R3 HOJA DE GESTION DEL RIESGO ID. DEL RIESGO: R3
FECHA:
Probabilidad: Media
Impacto: Moderado
Exposición: Media
Prioridad: Media
Valor : 2
Valor: 2
Valor: 4
Valor: 3
DESCRIPCION -
Existen datos a los cuales no se les puede añadir controles debido a que dependen de información que no cuenta el sistema ya que están fuera del alcance establecido de la disertación.
REFINAMIENTO CAUSAS -
Al no abrirse todos los niveles en las escuelas de la universidad, dificulta que el sistema pueda establecer con exactitud si una materia pueda ser transversal o afín
-
Base de datos que nos proveo la universidad cuenta con información no depurada y con problemas de digitación
CONSECUENCIA - Puede existir ingreso erróneo por parte del usuario
60
REDUCCION DEL RIESGO -
Crear ayudas en el programa que permitan reflejar la importancia de ingresar correctamente este tipo de informaciรณn
-
Mediante el manual de usuario, capacitar al usuario sobre la importancia del correcto ingreso de la informaciรณn.
SUPERVISION GESTION Informar al personal encargado de administrar la Base de Datos de la Universidad, sobre los inconvenientes encontrados en su base de datos
ESTADO ACTUAL Fase de Reducciรณn iniciada : Fase de Supervisiรณn iniciada : Gestionando el Riesgo : RESPONSABLES Egresado Luis Castillo
Disertantes
Egresado Edwin Criollo
Disertantes
Elaborado por: Luis Castillo y Edwin Criollo
Tabla 25: Hoja de gestiรณn del riesgo R5 HOJA DE GESTION DEL RIESGO ID. DEL RIESGO: R5
FECHA:
61
Probabilidad: Media
Impacto: Moderado
Exposición: Media
Prioridad: Media
Valor : 2
Valor: 2
Valor: 4
Valor: 4
DESCRIPCION - Luego de ser concluido con el sistema surge que los usuarios finales se resisten a utilizar el mismo.
REFINAMIENTO CAUSAS -
El sistema no cumple con las expectativas que tenía la Universidad
-
El interfaz de usuario no posee un entorno amigable.
CONSECUENCIA - Perdida de todo el dinero y tiempo invertido en el sistema de SISGHC. REDUCCION DEL RIESGO Crear interfaces fáciles, agradables y amigables para el usuario. SUPERVISION -
Supervisar que el producto se desarrolle con interfaces amigables, fáciles de aprender por parte de los usuarios directos del sistema y cumplir con el alcance del sistema
GESTION Reunirse con los usuarios y buscar soluciones a los inconvenientes con el sistema
ESTADO ACTUAL Fase de Reducción iniciada : Fase de Supervisión iniciada : Gestionando el Riesgo :
62
RESPONSABLES Egresado Luis Castillo
Disertantes
Egresado Edwin Criollo
Disertantes
Usuarios
Elaborado por: Luis Castillo y Edwin Criollo
1.8 1.8.1
Planificación inicial Equipo de trabajo Tabla 26: Equipo de trabajo
Disertante
Función
Luis Aníbal Castillo Cuenca
Líder del proyecto. Programador Principal.
Edwin Javier Criollo Pérez
Programador Secundario.
Elaborado por: Luis Castillo y Edwin Criollo
63
1.8.2
Figura : Diagrama de Gantt Figura 1: Diagrama de Gantt
Elaborado por: Luis Castillo y Edwin Criollo
1.8.3
Presupuesto Figura 2: Presupuesto
Elaborado por: Luis Castillo y Edwin Criollo
II 2.1
Diseño conceptual
2.1.1 2.1.1.1
FASE DE DISEÑO
Especificación de requerimiento de software (SRS) Objetivos del SRS
Utilizar el documento de alcance del proyecto de disertación de grado, donde las dos partes (primera parte: Los desarrolladores del sistema SISGHC, segunda parte: responsable del Departamento de Planificación y Curricula, y responsables del Departamento del CITIC) quedaron en mutuo acuerdo de todo lo que se implantará en el sistema.
Elaborar el requerimiento de software para el sistema SISGHC.
Implementar las especificaciones dentro del sistema a desarrollar.
2.1.1.2
Usuarios
Administrador
Director
Planificador
Secretaria
64
65
2.1.1.3
Beneficios del sistema
Reducir la complejidad administrativa de la creación de horarios de clases.
Permite manejar todas las variables requeridas para generar los horarios.
Optimizar el tiempo de los usuarios en la obtención de horarios de clases.
Mejorar el ambiente y relaciones interpersonales entre escuelas.
Consideración de los requerimientos específicos de cada uno de los directores, respetando las necesidades y capacidades del cuerpo docente.
La información que contiene el horario de clases puede utilizarse de múltiples maneras como informe, reportes.
Restringir el acceso a los datos por parte de los encargados del sistema, esto ayudará a preservar el control de los datos dentro de cada escuela.
2.1.1.4 2.1.1.4.1
Acrónimos y abreviaturas: Acrónimos:
SISGHC: Sistema Generador de Horario de Clases
DER: Diagrama entidad relación.
PUCE SD: Pontificia Universidad Católica del Ecuador Sede Santo Domingo
DD: Enlace dinámico con otros programas
DBMS: Sistema manejador de Base de datos.
SRS: Especificación de Requerimientos Software
2.1.1.4.2
Abreviaturas:
OO. Orientación a Objetos
66
BD: Base de datos
MD: Modulo
PR: Procesos
RE: Reporte
ME: Menú
OP: Operativos
LI: Librerías
Pa: Pantalla
PI: Pantalla e impresora
EX: Excel
2.1.1.4.3
Referencias
Para la realización de nuestro documento de especificación de requerimientos nos basaremos en:
Estándar 830 SRS
Estándar de procesos de elaboración de horarios de clases de la PUCE SD
Requerimientos de rendimiento Limitaciones de Diseño
Obediencia a los estándares
Limitaciones Hardware
Atributos
67
Requisitos de Interfaces Externas
Interfaces de usuario
Interfaces Software
Interfaces de Comunicación
Otros Requerimientos 2.1.2
Visión general
Nuestra Especificación de requerimiento de Software está regida al formato general del (SRS) ya que este nos presenta aspectos importantes que se generalizan de una manera adecuada y concreta, para ser entendida por los usuarios y los desarrolladores. 2.1.3
El SRS está formado por 2 partes:
La primera parte con lleva la descripción general, en la cual nos especificara las perspectivas del proyecto. Las funciones del sistema, las limitaciones generales y los supuestos y dependencias. En la segunda parte nos detalla los Requerimientos específicos, el cual abarca aspectos importantes como los Requerimientos Funcionales, los requerimientos de interfaces externas, los requerimientos de rendimiento, las limitaciones de diseño, sus atributos, y otros requerimientos complementarios. 2.1.3.1 2.1.3.1.1
Descripción general Perspectiva del producto Tabla : Perspectiva del producto
Sistema Académico
Datos de los Horarios Generados por el SISGHC
Datos necesarios del Sistema Académico
Sistema Generador de Horarios de Clases para la PUCESD (SISGHC)
68
Elaborado por: Luis Castillo y Edwin Criollo
El sistema propuesto pasará a formar parte de los sistemas que actualmente tiene la PUCE SD pero para su funcionamiento necesitará utilizar datos del Sistema Académico y el SISGHC proveerá información a dicho sistema. 2.1.3.1.2
Funciones del producto
La aplicación del sistema permitirá la elaboración de los Horarios de Clases para la Universidad, por lo que requerirá del Sistema Académico de la PUCE SD, para suministrar información básica para la base de datos que utiliza el SISGHC. Manejo de programas informáticos. Tabla : Funciones del producto
BD
Sistema Generador de Horarios de Clases
(SISGHC)
Información necesaria de la Base de Datos Elaborado por: Luis Castillo y Edwin Criollo
2.1.4 -
Supuestos y dependencia
Nuevos requerimientos por parte del cliente datos
2.1.5 2.1.5.1
Requerimientos específicos Requerimientos funcionales
Req.1.- El sistema deberá generar los horarios de clases Introducción
Sistema Académico
69
El sistema podrá elaborar los horarios de clases una vez se haya definido los parámetros necesarios de generación Entradas -
Nombre de la Escuela
-
Nombre de la Carrera
-
Previamente se necesita tener registrado los siguientes datos: materias, niveles, secciones, docentes, tener asignado las materias a los docentes, tener asignado las materias a la escuela, tener asignado las mallas de transversales y afines entre otras
Procesos -
El usuario escogerá la escuela y carrera correspondiente
-
El sistema verificara que todos los datos necesarios estén ingresados
-
El sistema determinara, si con los datos ingresados se puede o no generar los horarios a partir de mensajes que le indicaran en el caso de no poder generar el horario, cuál sería el problema.
Salidas -
Hoja de Excel del horario generado
-
Mensaje de error, debido a que no pudo generar el horario o mensaje informando que ya se generó el horario
Req.2.- El sistema podrá imprimir los horarios de clases Introducción El sistema podrá imprimir los horarios de clases una vez se haya generado el mismo, siempre y cuando se halla exportado a Excel. Entradas
70
-
Los mismos datos del Req.1
Procesos -
Los mismos procesos del Req.1.
Salidas -
Hoja de Excel con el horario generado
-
Impresión de los horarios de clases
Req.3.-El sistema realizará un control para que no exista cruce de horas al elaborar los horarios Introducción El sistema podrá controlar que no existan cruces de horas al momento de generar los horarios. Entradas -
Los parámetros requeridos de generación de horarios
Procesos -
El usuario seleccionara los parámetros de generación
-
El sistema elaborara los horarios de clases de la escuela seleccionada, en función a la/s sección/es asignadas a la escuela, a los niveles que tenga la misma y la disponibilidad horaria del docente y sus respectivas materias asignadas en donde se controlara que no se produzca dichos cruces.
Salidas -
Un mensaje informando que el horario de clases se realizó correctamente
71
-
Un mensaje de error cuando el sistema a determinado que con esos parámetros de generación no se puede elaborar un horario de clases sin que existan cruce de docentes
Req.4.- El sistema permitirá reservar días específicos para la asignación de materias transversales Introducción El sistema podrá reservar días específicos para asignar las materias transversales, actualmente estos días son los Martes, Miércoles y Jueves Entradas -
Las materias transversales.
-
Días específicos para la asignación.
-
Hora y sección.
Procesos -
El usuario Planificador escogerá de una lista de materias normales cuales pueden ser materias transversales o Afines.
-
El usuario asignara los días, las horas y la sección en la que se registran dichas materias.
Salidas -
Malla de materias transversales o afines
Req.5.- El sistema permitirá unificar materias transversales o afines. Introducción El sistema podrá dar la opción de unificación cuando se cumpla con las siguientes condiciones:
72
De acuerdo al número de estudiantes que tengan cada materia (Se escogerá las materias transversales o afines cuya suma total de estudiantes no exceda la capacidad permitida por aula)
Salida -
Materias unificadas
2.1.5.2
Requerimientos no funcionales.
Req.6.- El sistema deberá permitir crear usuarios. Introducción El sistema podrá dar la opción de crear nuevos usuarios, tomando en cuenta sus perfiles. Entradas -
Nombre del usuario.
-
Clave
-
Perfil de usuario
-
Estado
Proceso -
Para crear un usuario en el sistema primero debe estar creado el perfil que va a ser asignado.
-
A través del perfil el sistema puede controlar a que formularios puede ingresar el usuario, una vez comience a utilizar el sistema.
Salida -
Mensaje de “Usuario Registrado”
-
Mensaje de “Debe ingresar datos en los campos”
73
2.1.6
Definir los casos de uso de alto nivel y esencial
Caso de Uso 1: Proceso global del SISGHC Tabla 27: Proceso global del SISGHC Identificador Caso de Uso
cu-pro_gSISGHC.
Nombre del Caso de Uso
Proceso Global del SISGHC
Actores
Usuario (Administrador, Secretaria, Planificador, Director)
Propรณsito
Descripciรณn visual de las funcionalidades del Sistemas.
Visiรณn General
El sistema inicia con el usuario administrador y la creaciรณn del resto de usuarios, luego el usuario planificador ingresa los datos requeridos para dar paso al usuario director quien finaliza con la creaciรณn de horarios de clases.
Tipo
Alto Nivel
Elaborado por: Luis Castillo y Edwin Criollo
74
Figura 3: Proceso Global del SISGHC
Elaborado por: Luis Castillo y Edwin Criollo
Caso de Uso 2: Inicio de sesión Figura 1: Inicio de sesión Identificador Caso de Uso
cu-ids
Nombre del Caso de Uso
Iniciar sesión
Actores
Usuario (Administrador, Secretaria, Planificador, Director)
Propósito
Iniciar una sesión en el sistema por parte de los distintos usuarios
Visión General
El usuario para hacer uso del sistema primeramente debe ingresar su login y su password para autentificarse en el
75
sistema y de esta manera poder utilizar el mismo. Primario, Esencial
Tipo
Elaborado por: Luis Castillo y Edwin Criollo Figura 4: Inicio de secci贸n
Elaborado por: Luis Castillo y Edwin Criollo
Caso de Uso 3: Opciones del Usuario Administrador Tabla 28: Opciones del usuario administrador Identificador Caso de Uso
Cu-op-us_Ad
Nombre del Caso de Uso
Opciones del usuario Administrador
Actores
Administrador
Prop贸sito
Mostrar las funciones principales que tiene que realizar dicho usuario
76
El usuario Administrador tiene acceso a todo el sistema pero
Visión General
primordialmente sus funciones radican en asignar usuarios, establecer permisos y cargar información del sistema Académico al SISGHC Primario, Esencial
Tipo
Elaborado por: Luis Castillo y Edwin Criollo Figura 5: Opciones del usuario administrador
Elaborado por: Luis Castillo y Edwin Criollo
Caso de Uso 4: Ingreso de datos académicos Tabla 29: Ingreso de datos académicos Identificador Caso de Uso
Cu_ing_Acad
Nombre del Caso de Uso
Ingreso de Datos Académicos
Actores
Planificador y Secretarias
Propósito
Ingreso de información necesaria para el proceso de Generación de Horarios
77
El Usuario Secretaria será la encargada de ingresar la
Visión General
información básica para la elaboración del proceso de Generación de Horarios para lo cual dependerá de la información provista por el Usuario Planificador Primario, Esencial
Tipo
Elaborado por: Luis Castillo y Edwin Criollo Figura 6: Ingreso de datos académicos
Elaborado por: Luis Castillo y Edwin Criollo
Caso de Uso 5: Opciones del usuario director Tabla 30: Opciones del usuario director Identificador Caso de Uso
Cu_Op_UsuDir
78
Nombre del Caso de Uso
Opciones del Usuario Director
Actores
Planificador y Director
Propósito
Mostrar las funciones principales que tiene que realizar usuario Director
Visión General
El Usuario Director está a cargo del control de docentes y su disponibilidad y que materias se van a asignar en el periodo académico para luego delegar funciones de ingreso de dicha información a la secretaria. Dentro del Sistema la función principal del Director es la de generar horarios de clases
Tipo
Primario, Esencial
Elaborado por: Luis Castillo y Edwin Criollo
79
Figura 7: Opciones del usuario director
Elaborado por: Luis Castillo y Edwin Criollo
2.1.7
Arquitectura del sistema:
Los desarrolladores sugieren que el sistema SISGHC sea implementado en una sola maquina ya que se pueden presentar problemas si dos o mรกs usuarios estรกn elaborando horarios simultรกneamente.
80
Figura 8: Arquitectura del sistema
Base de Datos SISGHC
Terminal
Elaborado por: Luis Castillo y Edwin Criollo
81
2.1.8
Definir los diagramas de procesos Figura 9: Diagrama de subproceso cargar informaci贸n
Elaborado por: Luis Castillo y Edwin Criollo
82
Figura 10: Diagrama de proceso del SISGHC
Elaborado por: Luis Castillo y Edwin Criollo
83
2.1.9
Definir casos de uso esenciales en formato expandido. Tabla 31: Opciones del usuario administrador
Identificador de Caso de Uso:
CUUA
Nombre de Caso de Uso:
Opciones del Usuario Administrador
Actores :
Planificador, Director, Administrador, Secretaria
Propósito:
Detallar las actividades que el usuario administrador puede realizar en el sistema El usuario Administrador crear los perfiles de los usuarios, a
Visión General:
continuación crea los usuarios, a los que le asigna un perfil de acuerdo a sus funciones
Tipo:
Principal y Esencial
Referencias:
Req(6)
CURSO TIPICO DE EVENTOS ACCION DEL ACTOR
RESPUESTA DEL SISTEMA
1.
2.
Los usuarios deben autenticarse en el sistema.
El sistema valida si ese usuario se encuentra habilitado(si existe en la tabla usuarios), si está habilitado verifica si los datos están ingresados correctamente
3.
El usuario ingresa al Sistema SISGHC
4.
El usuario podrá ingresar solo a las opciones habilitadas a su perfil
CURSOS ALTERNATIVOS Línea 1. Si el usuario no existe en el sistema pues no iniciara sesión, aquí se verifican el login y el password en la tabla de usuarios.
Elaborado por: Luis Castillo y Edwin Criollo
84
Tabla 32: Ingreso de datos académicos Identificador de Caso de Uso:
CUIDA
Nombre de Caso de Uso:
Ingreso de datos Académicos
Actores :
Planificador y Secretarias
Propósito:
Ingreso de datos requeridos por el sistema para la generación de horarios El Planificador crea la malla de transversales o afines y las
Visión General:
secretarias se encargan de ingresar el resto de información requerida por el sistema como materias, niveles, docentes, etc. Tipo:
Primario y Esencial
Referencias:
Req(4), Req(5) CURSO TIPICO DE EVENTOS
ACCION DEL ACTOR
RESPUESTA DEL SISTEMA
1.- El Planificador ingresa al sistema
2.- Presenta tipo de contrato del docente, la selección de materias transversales o afines y el ingreso de dichas materias
3.- Planificador escoge la opción
4.- Presenta la pantalla correspondiente
5.- Planificador Selecciona tipo de contrato
6.- El sistema permite crear el tipo de contratos en donde se determina, el número de horas que puede dictar un docente de acuerdo a su contrato asignado
7.- Planificador Selecciona materias transversales o
8.- El sistema permite seleccionar el tipo de materia
afines
que se desea registrar, creando un código y permitiendo
seleccionar
las
materias
que
pertenecerán a dicho código 9.- Planificador ingresa materias transversales o
10.- El sistema permitirá crear la malla de
afines
transversales o afines, esta información servirá para
85
la creación de horarios Elaborado por: Luis Castillo y Edwin Criollo Tabla 33: Opciones del usuario director Identificador de Caso de Uso:
CUUD
Nombre de Caso de Uso:
Opciones del usuario director
Actores :
Director y Secretarias
Propósito:
Detallas las actividades que están a cargo del usuario director de escuela El usuario director de escuelas puede delejar funciones al
Visión General:
usuario secretaria, además de estar a cargo de la generación de horarios Tipo:
Principal y Esencial
Referencias:
Req(1), Req(2), Req(3) CURSO TIPICO DE EVENTOS
ACCION DEL ACTOR 1.
El director controla la creación de niveles, la
RESPUESTA DEL SISTEMA 2.
El usuario secretaria es el encargado de
búsqueda de docentes y la unificación de
registrar la información requerida para generar
materias
horarios
3. El director es el encargado de generar horarios de
4. El sistema permitirá crear los horarios de clases
clases
una vez se haya escogido la escuela, la carrera y la asignación de créditos diarios CURSOS ALTERNATIVOS
Línea 2. El sistema no podrá generar el horario, si no tiene toda la información requerida Línea 2. El sistema no podrá generar horarios si se producen cruces de horas con los docentes.
86
Elaborado por: Luis Castillo y Edwin Criollo
2.1.9.1
Definir los casos de uso reales.
NOMBRE: Crear malla de materias transversales o afines SIGLAS: cu_crear_malla_transv_afin TIPO: Caso de uso real AUTOR: Planificador REFERENCIAS: Req (4), Req (5) OBJETIVO: Describir el escenario
real del proceso de creación de materias
transversales o afines DESCRIPCIÓN: Planificador crea las materias transversales o afines de las listas de materias que el sistema sugiere, luego selecciona el tipo de materia que desea registrar, selecciona el código de la materia transversal o afín, selecciona la sección, selecciona el día, se escoge la materia-docente a la cual se le va a registrar la hora inicio y la hora fin. Tabla 34: Crear malla de materias transversales o afines
Acción del Usuario 1.- Este caso de uso empieza cuando el usuario secretaria ingresa al formulario de materias transversales o afines 4.- El usuario seleccionara las materias que pertenecerán a dicho código
Respuesta del Sistema
2.- El sistema permitirá cargar el tipo de materia, creando automáticamente un código que lo agrupa,
3- Visualizara una lista de materias
5.- Si las materias no se encuentran en la lista el sistema permite buscarlo fuera en el resto de
87
materias 6.- El usuario registra las materias Malla de transversales o afines 7.- El usuario selecciona: el tipo de materias, el código de la materia, la sección, día, se escoge la
8.- El sistema cargara el tipo de materia, el código de
materia-docente y se ingresa la hora inicio y la hora materia, la sección y el día fin 9.- El sistema verifica si puede asignar dicho rango horario. 10.- Si existe problemas con el rango horario el sistema visualiza un mensaje de error y finaliza el proceso de asignación 11.- Si no hay problemas el sistema registrara el rango horario 12.- Si existe más créditos de asignar el sistema
12.- El usuario sale del sistema
preguntará si desea continuar asignandolos
Elaborado por: Luis Castillo y Edwin Criollo
NOMBRE: Asignar materias a las escuelas SIGLAS: cu_asignar_materia_escuelas TIPO: Caso de uso real AUTOR: Secretarias REFERENCIAS: OBJETIVO: Describir el escenario real del proceso de asignación de materias para la escuela
88
DESCRIPCIÓN: Secretaria selecciona la escuela, carrera y el nivel al cual asignar las materias Tabla 35: Asignar materias a las escuelas Acción del Usuario 1.- Este caso de uso empieza cuando el usuario secretaria selecciona la escuela, carrera, nivel y escoger las materias
Respuesta del Sistema
2.- El sistema permitirá cargar la escuela, carrera, nivel y visualizar las materias
3.- El usuario guardara las materias 4.- El usuario podrá modificar las materias
5.- El sistema visualizara las materias ya escogidas
6.- El usuario sale del formulario
Elaborado por: Luis Castillo y Edwin Criollo
2.2 2.2.1
Diseño lógico Tecnología a utilizar en el proyecto Tabla 36: Tecnología a utilizar en el proyecto
Tecnología
Descripción
Herramienta de Diseño
Visual Studio 2010 Ultimate
Herramientas de Base de Datos
Oracle DataBase10g Express Edition
Herramienta de Codificación
Visual Basic
Herramientas Varias
CA Erwin, Ration Rose, Oracle SQL Developer, Toad for Oracle, Oracle SQL Developer Data Modeler
89
Elaborado por: Luis Castillo y Edwin Criollo
2.2.2
Definición del modelo conceptual: Figura 11: Definición del modelo conceptual Director
Generador de Horarios
Usuarios Secretarias Administrador (CITIC)
SISGHC Planificador
Elaborado por: Luis Castillo y Edwin Criollo
2.2.3
Refinar el modelo conceptual Tabla 37: Identificación de clases CLASES
Administrador
CONCEPTO Persona que administra la base de datos además de ser el encargado de crear usuarios
Director
Persona que se encarga de generar los horarios y controlar diferentes aspectos relacionados a la escuela que dirige
Secretaria
Persona encargada de registrar información requerida por el sistema
Planificador
Persona encargada de determinar el tipo de contrato de los docentes y asignar las materias transversales o afines
Crédito
Equivale a una hora semanal de actividad educativa programada por semestre
Sección
Es un intervalo de tiempo semanal de actividad educativa programada, que por lo general está dividido en tres partes: Matutino, Vespertino y Nocturno.
Docente
Persona encargada de impartir clases a los estudiantes
90
Usuarios
Personas que acceden a la aplicación mediante cuentas de usuarios (autenticarse).
Malla Curricular
Es el cronograma de las materias con las que cuenta todas las escuelas y que se deben seguir para alcanzar un título de tercer nivel dentro de la Universidad.
Materias Normales
Son las diferentes materias con las que cuentan todas las escuelas dentro de su malla curricular, las cuales se dictaran durante todo el semestre académico
y
están sujetas a procesos normales de
generación de horarios. Materias Modulares
Son materias que poseen algunas escuelas y cuya característica principal es que son dictadas en forma secuencial en algunos días de la semana durante un rango de tiempo específico de acuerdo al número de créditos asignados
Unificación
Es un concepto que se aplica dentro de la universidad para especificar el proceso de unir más de una materia transversal o afín de acuerdo al número de estudiantes que posea cada una.
Materias Transversales
Son materias normales que se imparten en todas las escuelas, las cuales tienen como características el mismo: nombre, contenido académico y docente, razón por la cual se las ha organizado en días específicos las mismas que están sujetas a unificaciones.
Materias Afines
Son materias normales que se imparten en algunas escuelas, las cuales tienen como características el mismo: contenido académico, docente; nombre (puede ser opcional). Entre los principales casos de materias afines se pueden presentar están: entre un nivel y paralelo/s de una misma escuela o entre paralelos de diferentes escuelas.
Cruce de horas
Es un error que puede producirse cuando un docente se le asigna más de una materia a la misma hora
Elaborado por: Luis Castillo y Edwin Criollo
91
Tabla 38: Identificación de asociaciones ASOCIACION Horarios
CONCEPTO En la cual se asocian las materias con el docente además de determinarse a que escuela pertenece Elaborado por: Luis Castillo y Edwin Criollo Tabla 39: Identificación de relaciones
RELACIONES
CONCEPTO Significa que el proceso de creación de horarios se está
Genera
realizando Acredita_Malla_Transversales_Afines
El usuario Planificador creara la malla de materias transversales o afines, la misma que servirá como base para la creación de horarios.
Elaborado por: Luis Castillo y Edwin Criollo
Tabla 40: Identificación de atributos CLASES Docente
ATRIBUTOS Cedula Nombres Apellidos teléfono Titulo e_mail
Escuela
Codigo Nombre
92
Estado Carrera
Codigo Nombre Escuela Titulo Estado
Sección
ID Nombre Hora inicio y Hora Fin de Lunes a Viernes Hora inicio y Hora Fin del día Sabado
Materias
Código Nombre Escuela Carrera Nivel Número de créditos Categoría
Nivel
ID Escuela Carrera Nivel Paralelo
93
Seccion Horarios
Cedula Código de Materia Ciclo Académico Asignación de escuela con nivel Dias laborables Hora Inicio Hora fin
Elaborado por: Luis Castillo y Edwin Criollo Tabla 41: Identificación de métodos CLASES Director
METODOS Crear Consultar Modificar Generar
Materias
Crear Modificar
Docentes
Crear Modificar Eliminar
Disponibilidad del docente
Crear
94
Modificar Horarios
Crear Guardar Visualizar en Excel
Usuarios
Crear Modificar Habilitar Deshabilitar
Elaborado por: Luis Castillo y Edwin Criollo Tabla 42: Definir el contrato de operaci贸n Nombre:
Crear usuario
Responsabilidades:
Crear los usuarios con sus respectivos perfiles
Tipo:
Operaci贸n del Sistema
Referencias cruzadas:
CUUA
Notas:
Algoritmo: 1.-Crear Perfil 1.1 Ingresar Nombre 1.2 Agregar los permisos a los formularios 2.- Crear Usuario 2.1.-Ingresar Nick 2.2 Ingresar Nombre
95
2.3 Ingresar Clave 2.4 Seleccionar perfil 3.-Fin Excepciones:
2.1. – Si los datos no son correctos ingresar de nuevo.
Salidas:
Permite crear usuarios
Pre-condiciones:
Tener creado el perfil
Post-condiciones:
Elaborado por: Luis Castillo y Edwin Criollo Tabla 43: Autentificarse el sistema Nombre:
Autenticarse_ sistema (Login, password)
Responsabilidades:
Verificar que los datos por el usuario sean correctos para acceder a la aplicación
Tipo:
Operación del Sistema
Referencias cruzadas: Notas:
Algoritmo: 1.-Ingresar Login 2.-Ingresar Password 3.- Seleccionar Periodo Académico 3.-Verificar datos (Login, password) 4.-Fin
Excepciones:
Si los datos no son correctos ingresar de nuevo.
96
Salidas:
Permite ingresar a la aplicaci贸n.
Pre-condiciones:
Ser usuario del sistema
Post-condiciones:
Elaborado por: Luis Castillo y Edwin Criollo Tabla 44: Asignar materias a las escuelas Nombre:
Asignar materias a las escuelas
Responsabilidades:
Asignar las materias que se van a impartir en la escuela
Tipo:
Operaci贸n del Sistema
Referencias cruzadas:
CUIDA
Notas:
Algoritmo: 1.-Crear Escuela 2.-Crear Carrera 3.- Crear Nivel 4.-Crear Materias 5.- Seleccionar Escuela 6.- Seleccionar Carrera 7.- Seleccionar Nivel 8.- Escoger Materias 9.-Fin
Excepciones: Salidas:
Permite asignar las materias a la escuela
97
Pre-condiciones:
Tener creado escuela, carrera, nivel, materias
Post-condiciones:
Elaborado por: Luis Castillo y Edwin Criollo Tabla 45: Asignar materias a los docentes Nombre:
Asignar materias a los docentes
Responsabilidades:
Asignar las materias que el docentes va impartir
Tipo:
Operación del Sistema
Referencias cruzadas:
CUIDA
Notas:
Algoritmo: 1.-Crear Docentes 2.-Ingresar cedula/seleccionar los apellidos y nombres 3.- Seleccionar Escuela 4.- Seleccionar Carrera 5.- Seleccionar Nivel 6.- Escoger Materias 8.-Fin
Excepciones:
No se puede ingresar más materias al docente si sobrepasa el número de créditos asignados de acuerdo al tipo de contrato
Salidas:
Permite asignar las materias a los docentes
Pre-condiciones:
Tener creado escuela, carrera, nivel, materias, docentes
Post-condiciones:
Se puede unificar las materias si se presentan las condiciones necesarias
98
Elaborado por: Luis Castillo y Edwin Criollo Tabla 46: Generar horarios de clases Nombre:
Generar horarios de clases
Responsabilidades:
Elaborar los horarios de clases
Tipo:
Operaci贸n del Sistema
Referencias cruzadas:
CUUD
Notas:
Algoritmo: 1.- Seleccionar Escuela 2.- Seleccionar Carrera 5.- Ingresar el n煤mero de cr茅ditos diarios 6.- Guardar 7.- Reporte 8.-Fin
Excepciones:
No se puede generar los horarios si no se tiene todos los datos requeridos o si existen cruces de horas asignadas al docentes
Salidas:
Horarios Generados
Pre-condiciones:
Tener las informaci贸n requerida para elaborarlos
Post-condiciones:
Una vez generado el horario se puede guardar o visualizarlo. Elaborado por: Luis Castillo y Edwin Criollo
99
2.2.4
Modelo l贸gico Figura 12: Modelo l贸gico
Elaborado por: Luis Castillo y Edwin Criollo
2.2.5
Dise帽o de interfaces de usuario
Ventana en la cual usuario tendr谩 que registrarse con su respectivo login y password para que el sistema permita o rechace el ingreso al sistema.
100
Fig. 6: Dise帽o interfaces de usuario
Elaborado por: Luis Castillo y Edwin Criollo
A continuaci贸n se presenta el m贸dulo de seguridad para el respectivo control de ingreso de los usuarios, compuesto por los formularios: Asignaci贸n de Opciones de Perfil de Usuario, Perfil y Usuario. Fig. 7: Perfiles de usuario
Elaborado por: Luis Castillo y Edwin Criollo
101
Presentaciรณn de formularios con informaciรณn bรกsica sobre escuelas, carreras, niveles. Fig. 8: Presentaciรณn de formularios
Elaborado por: Luis Castillo y Edwin Criollo
Formulario de malla curricular permite registrar los datos relacionados a la creaciรณn de la malla curricular. Fig. 9: Formulario de malla curricular
102
Elaborado por: Luis Castillo y Edwin Criollo
El formulario de Asignaci贸n de Materias para las Escuelas, muestra como ingresar las materias para una escuela. Fig. 10: Asignaci贸n de materias para las escuelas
Elaborado por: Luis Castillo y Edwin Criollo
Formulario para registrar datos de los docentes. Fig. 11: Formulario para registro de docentes
103
Elaborado por: Luis Castillo y Edwin Criollo
Formularios que registran información de sección, ciclo académico. Fig. 12: Formulario registra información de sección, ciclo académico
Elaborado por: Luis Castillo y Edwin Criollo
2.3 2.3.1
Diseño físico Diagrama de secuencias Tabla 47: Identificación de verbos Verbos
Concepto
Autentificar
Significa que el usuario ingresa al sistema
Crear
Significa la opción de crear dentro del formulario.
Guardar
Significa la opciñon de guardar dentro del formulario.
Ingresar
Significa que se ingresa al formulario o se ingresa
104
datos al formulario Seleccionar
Significa que se seleccionará los datos que se encuentra dento de un ComboBox
Escoger
Significa que se escogerá diferentes datos de un CheckedListBox
Añadir
Significar dar click sobre un Button
Mostrar
Significa que se mostrará en alguna parte del formulario información que servira de control
Visualizar
Significa que se visualizará un formulario o un CheckedListBox
Buscar
Significa que el sistema buscará información en función a los datos suminstrados
Elaborado por: Luis Castillo y Edwin Criollo
105
2.3.2
Diagrama de datos Figura 13: Crear usuario
Administrador
SISGHC 1: Autentificar 2: Ok 3: Ingresar Usuario 4: Crear nuevo usuario
5: Visualizar opciones de ingreso 6: Ingresar Nick, Nombre, Clave 7: Seleccionar Tipo, Estado 8: Guardar Usuario 9: Ok
Elaborado por: Luis Castillo y Edwin Criollo
106
Figura 14: Asignar materias para la escuela
Secretarias
SISGHC 1: Autentificar 2: Ok
3: Ingresar Asignaci贸n de Materias para Escuelas 4: Seleccionar Escuela, Carrera, Nivel, Paralelo 5: Visualizar Materias a escoger 6: Escoger Materias 7: Guardar Asignaci贸n de Materias para Escuelas 8: Ok
Elaborado por: Luis Castillo y Edwin Criollo
107
Figura 15: Asignar materias para los docentes
Secretarias
SISGHC 1: Autentificar 2: Ok
3: Ingresar Asignación de Materias para Docentes 4: Crear asignación de materias para docentes 5: Ingresar Cédula o Seleccionar Apellidos y Nombres 6: Ok 7: Mostrar Créditos de acuerdo al tipo de contrato 8: Seleccionar Escuela, Carrera, Nivel, Paralelo 9: Añadir Cargar Materias 10: Visualizar Cargar Materias 11: Escoger Materias 12: Ok 13: Guardar asignación 14: Ok
Elaborado por: Luis Castillo y Edwin Criollo
108
Figura 16: Generar horarios de clases
Director
SISGHC 1: Autentificar 2: Ok 3: Ingresar Generador de Horarios 4: Seleccionar Escuelas, Carreras, Créditos diarios 5: Añadir Generar 6: Buscar Seccion 7: Determinar orden de prioridad de elaboración 8: Determinar cédula de docente de acuerdo a su prioridad 9: Determinar nivel, paralelo, materia asignado al docente 10: Asignar día, hora inicio y hora fin 11: Repetir conforme se llene el horario, los paso 10, 9, 8, 7, 6 12: Mensaje Horario Generado 13: Ok 14: Guardar Horario de clase 15: Ok
Elaborado por: Luis Castillo y Edwin Criollo
109
Figura 17: Asignar materias transversales
Elaborado por: Luis Castillo y Edwin Criollo
110
2.3.3
Diagrama de clases Figura 18: Diagrama de clases
Elaborado por: Luis Castillo y Edwin Criollo
2.3.4
Diagrama de componentes
El Diagrama de Componentes nos podrรก mostrar de forma grรกfica la forma como nuestro sistema quedara implementado ya que nos permitirรก enfocar de mejor manera la organizaciรณn y dependencia entre el conjunto de componentes, interfaces, relaciones, paquetes e instancias de algunas clases.
111
2.3.5
Diagrama del sistema SISGHC Figura 19: Diagrama del sistema SISGHC
Usuario
Rutinas de conexion
Rutinas de conexion
Acceso a la Base de Datos
Acceso a los datos
Interfaz de usuario
Acceso a la Base de Datos
Acceso a los datos
Elaborado por: Luis Castillo y Edwin Criollo
112
2.3.6
Diagrama asignar materias a escuela Figura 20: Diagrama asignar materias a escuela
Secretaria
Interfaz de usuario
Asignar Materias a la escuela
Rutinas de conexion
Acceso a la Base de Datos
Ingresar Datos
Acceso a los datos
Elaborado por: Luis Castillo y Edwin Criollo
113
2.3.6.1
Diagrama de compontes generar horarios Figura 21: Diagrama de compontes generar horarios
Director
Interfaz de usuario
Generar Horario de clases
Rutinas de conexion Ingresar los Datos
Buscar, seleccionar, filtrar y asignar datos de generacion
Acceso a la Base de Datos
Acceso a los datos
Elaborado por: Luis Castillo y Edwin Criollo
114
2.3.7
Diagrama de implementación Figura 22: Diagrama de implementación
Usuario Administrador SISGHC 0
Opciones-Perfil 1 Perfil Usuario Usuarios: 1.5 Administrador Secretarias Planificador Director
Módulo de Seguridad
Módulo de Administración Módulo Materias
Ciclo Académico Sección 2 Escuela Carrera Nivel
Materia 3 Materia-escuela Opciones de 8 Sección Horarios
Módulo Horarios
Módulo Docentes
Usuario Secretarias Docente Disponibilidad 5 Materia-Docente
Usuario Director
Malla Transversales o 7 Afines
Tipo de 4 Contrato de Docente
Materias Transversales 6 o Afines
Usuario Planificador
Elaborado por: Luis Castillo y Edwin Criollo
115
2.3.8
Modelo fĂsico de la base de datos Figura 23: Modelo fĂsico de la base de datos
Elaborado por: Luis Castillo y Edwin Criollo
116
2.3.9
Modelo entidad relaci贸n Figura 24: Modelo entidad relaci贸n
Elaborado por: Luis Castillo y Edwin Criollo
III 3.1
FASE DE IMPLEMENTACIÓN
Nomenclatura para estándares para el desarrollo Tabla 48: Nomenclatura para estándares para el desarrollo Nombre
Estándar
TABLE
TBL_
FORM
frm_
LABEL
lbl_
COMBOBOX
cmb_
CHECKEDLISTBOX
chk_
BUTTON
btn_
LISTBOX
lst_
DATAGRIDVIEW
dtg_
Elaborado por: Luis Castillo y Edwin Criollo
3.2
Capa de presentación
3.2.1
Interfaces de usuario
La siguiente pantalla es la interfaz de INICIO de SECCION donde nos permite a distintos usuarios ingresar a la aplicación de forma segura, para ello pide los siguientes parámetros:
Usuario
117
118
Contraseña
Periodo Académico Fig. 13: Interfaz de usuario
Elaborado por: Luis Castillo y Edwin Criollo
3.2.2
Interfaz de pantalla principal
Los formularios permitirán las opciones: crear, editar, guardar y solo algunos específicos eliminar. El Usuario tendrá en la pantalla principal, el menú de las aplicaciones que son:
Archivo
Administrador
Docentes
Horarios
Materias
Seguridad
Ayuda
119
Fig. 14: Formulario de pantalla principal
Elaborado por: Luis Castillo y Edwin Criollo
El formulario Perfiles, permite crear perfiles que serรกn asignados a los usuarios, para que puedan ingresar al sistema. Fig. 15: Formulario de perfiles usuario
Elaborado por: Luis Castillo y Edwin Criollo
120
Fig. 16: Formulario de perfil de administrador
Elaborado por: Luis Castillo y Edwin Criollo
El formulario Tipo de Contrato de Docentes, permite crear los tipos de contratos con los que se ingresaran los docentes en funci贸n a su disponibilidad. Fig. 17: Formulario de tipo de contrato de docente
Elaborado por: Luis Castillo y Edwin Criollo
121
Fig. 18: Formulario de docente
Elaborado por: Luis Castillo y Edwin Criollo Fig. 19: Formulario de disponibilidad de docente
Elaborado por: Luis Castillo y Edwin Criollo
El formulario asignaci贸n de c贸digo de materias transversales o afines, permite al sistema asignar un c贸digo, a un grupo de materias que cumplen las respectivas condiciones de ser transversales o afines.
122
Fig. 20: Formulario de asignaci贸n de c贸digo de materias afines y transversales
Elaborado por: Luis Castillo y Edwin Criollo
En el formulario malla de transversales o Afines, permite asignar
las materias
transversales o afines, base en donde se empezar谩 a elaborar los horarios de clases. Fig. 21: Formulario de malla transversales y afines
Elaborado por: Luis Castillo y Edwin Criollo
A continuaci贸n se visualizara el proceso secuencial que se debe seguir para asignar los niveles a las respectivas escuelas y carreras.
123
Fig. 22: Formulario de periodo acad茅mico
Elaborado por: Luis Castillo y Edwin Criollo Fig. 23: Formulario de descripci贸n de las secciones
Elaborado por: Luis Castillo y Edwin Criollo
124
Fig. 24: Formulario de las escuelas de la PUCESD
Elaborado por: Luis Castillo y Edwin Criollo Fig. 25: Formulario de carreras de la PUCESD
Elaborado por: Luis Castillo y Edwin Criollo
125
Fig. 26: Formulario de malla curricular de la PUCESD
Elaborado por: Luis Castillo y Edwin Criollo Fig. 27: Formulario de niveles
Elaborado por: Luis Castillo y Edwin Criollo
El Formulario Asignar materias a escuelas, como su nombre lo dice permite determinar que materias se van a habilitar de la malla curricular para el respectivo periodo acadĂŠmico.
126
Fig. 28: Formulario asignar materias a escuelas
Elaborado por: Luis Castillo y Edwin Criollo
El formulario asignar materias a docentes, permite como su nombre lo dice asignar Materias a docentes en funci贸n a su tipo de contrato. Fig. 29: Formulario asignar materias a docentes
Elaborado por: Luis Castillo y Edwin Criollo
127
El formulario Generador de Horarios, permite adem谩s de generar los horarios de clases, nos permite guardarlo, visualizarlo (Reporte) para luego si el usuario desea exportar a Excel. Fig. 30: Formulario de generador de horarios
Elaborado por: Luis Castillo y Edwin Criollo Fig. 31: Formulario de visualizaci贸n de horarios
Elaborado por: Luis Castillo y Edwin Criollo
128
3.3 3.3.1
Capa de datos Implementaci贸n de la base de datos
A continuaci贸n se muestra un fragmento del script de la base datos del SISGHC, correspondiente a la tabla TBL_HORARIOS, en donde se registrara los Horarios Normales,
generados
por
el
sistema
y
tambi茅n
se
incluye
las
tablas
TBL_HORARIOS_MOD, TBL_FECHAS_MOD que son las que permiten registrar el otro tipo de Horarios que genera el sistema, Horarios Modulares. CREATE TABLE TBL_HORARIOS ( CED_PROF
VARCHAR2(10 BYTE)
COD_MAT
VARCHAR2(10 CHAR)
NULL, NOT NULL,
ID_ASIG_SEMEST NUMBER(38,2) ID_DIAS_LAB
NOT NULL,
NUMBER(10)
NOT NULL,
HORA_INIC
VARCHAR2(10 BYTE)
NOT NULL,
HORA_FIN
VARCHAR2(10 BYTE)
NOT NULL,
ID_CICLO_ACAD VARCHAR2(10 BYTE) NUM_CRED
NUMBER(10)
NOT NULL,
NOT NULL,
COD_UNIF
VARCHAR2(10 BYTE)
NULL,
CAT_MAT
VARCHAR2(10 BYTE)
NOT NULL,
CODIGO
VARCHAR2(2 BYTE)
) TABLESPACE SYSTEM
NULL
129
LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; CREATE TABLE TBL_HORARIOS_MOD ( ID_HORARIOS_MOD NUMBER(10) ID_CICLO_ACAD VARCHAR2(10 BYTE) CED_PROF
VARCHAR2(10 CHAR)
ID_ASIG_SEMEST NUMBER(38,2)
NOT NULL, NOT NULL, NOT NULL, NOT NULL,
COD_MAT
VARCHAR2(10 CHAR)
NOT NULL,
CAT_MAT
VARCHAR2(10 CHAR)
NOT NULL
) TABLESPACE SYSTEM LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING;
130
CREATE TABLE TBL_FECHAS_MOD ( ID_FECHAS_MOD
NUMBER(10)
NOT NULL,
ID_HORARIOS_MOD NUMBER(10)
NOT NULL,
ID_CICLO_ACAD VARCHAR2(10 BYTE) DIA_1
NUMBER(10)
NOT NULL,
DIA_2
NUMBER(10)
NOT NULL,
NOT NULL,
FECHA_DIA1
DATE
NOT NULL,
FECHA_DIA2
DATE
NOT NULL,
HORAS
NUMBER(10)
SEMANAS
NUMBER(10)
) TABLESPACE SYSTEM LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; ALTER TABLE TBL_HORARIOS ADD ( CONSTRAINT PK_TBL_HORARIOS PRIMARY KEY
NOT NULL, NOT NULL
131
(CED_PROF, COD_MAT, ID_CICLO_ACAD, ID_ASIG_SEMEST, ID_DIAS_LAB, HORA_INIC, HORA_FIN) USING INDEX TABLESPACE SYSTEM); ALTER TABLE TBL_HORARIOS_MOD ADD ( CONSTRAINT PK_TBL_HORARIOS_MOD PRIMARY KEY (ID_HORARIOS_MOD,
ID_CICLO_ACAD,
CED_PROF,
ID_ASIG_SEMEST,
COD_MAT) USING INDEX TABLESPACE SYSTEM); ALTER TABLE TBL_FECHAS_MOD ADD ( CONSTRAINT PK_TBL_FECHAS_MOD PRIMARY KEY (ID_FECHAS_MOD, ID_HORARIOS_MOD, ID_CICLO_ACAD) USING INDEX TABLESPACE SYSTEM); SET DEFINE OFF; 3.3.2
Implementaci贸n de acceso a datos
A continuaci贸n se pone el c贸digo de control de ingreso al sistema. Try Catch ex As Exception
132
msg(ex.Message, , 1) End Try If txt_usuario.Text <> "" And txt_contrasena.Text <> "" And cmb_ciclo.Text <> "" Then Try cno = New OracleConnection("Data Source = xe; User Id = System; Password = sa; Unicode = True;") cno.Open() Catch ex As Exception MsgBox("Usuario no registrado", 16) Exit Sub End Try cad = "Select * from tbl_usuarios where nick='" & txt_usuario.Text & "' and clave = '" & txt_contrasena.Text & "' and estado='A'" oraclec.CommandText = cad oraclec.Connection = cno oracledr = oraclec.ExecuteReader '
'Verifica el usuario y contrase単a
If oracledr.Read() Then nombre_usuario = oracledr("nick") CurProfile = oracledr("Perfil_ID") clave_usuario = oracledr("clave") oracledr.Close() cno.Close()
133
id_ciclo = consultar("Select id_ciclo_acad from tbl_ciclos_acad where desciclo='" & cmb_ciclo.Text & "'", "id_ciclo_acad") nuevo_frm = New MDIPrincipal Envio_padre() nuevo_frm.Show() Me.Hide() Else MsgBox("Usuario desactivado o contraseña incorrecta", 16) End If Else msg("No se ha ingresado datos de usuario o contraseña o ciclo académico", "Información") End If
3.4
Capa de negocios
A continuación se va a colocar el código fuente de un formulario que contiene un DataGridView que permitirá visualizar los horarios normales y/o modulares ya generados en su respectivo formato. Dim escuela As String, carrera As String, tabla As String, reporte As Integer, categoria As Integer
dtg_Horarios.Font = New System.Drawing.Font("Arial", 6.0!, System.Drawing.FontStyle.Regular) For i = 0 To 10 dtg_Horarios.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
134
Next escuela = smnuHorarioG.EscuelaTextBox.Text carrera = smnuHorarioG.CarreraTextBox.Text reporte = Val(consultar("select count(cod_mat) total from tbl_horarios where id_ciclo_acad='" & id_ciclo & "' and codigo='G' and id_asig_semest in (select id_asig_semest from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "')", "total")) If reporte > 0 Then tabla = "tbl_horarios" Else tabla = "tbl_temporal" End If categoria = Val(consultar("select count(id_horarios_mod) as total from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest in (select id_asig_semest from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "')", "total")) If categoria > 0 Then Me.Height = 652 Me.StartPosition = FormStartPosition.CenterScreen dtg_Horarios_mod.Font = New System.Drawing.Font("Arial", 6.0!, System.Drawing.FontStyle.Regular) For im = 0 To 6 dtg_Horarios_mod.Columns(im).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter Next
135
dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows(0).Height = 50 dtg_Horarios_mod.Item(4, 0).Value = "HORARIO ACADĂ&#x2030;MICO PERIODO " & id_ciclo & "" dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows(2).Height = 50 dtg_Horarios_mod.Item(0, 2).Value = "CARRERA: " & consultar("select des_car from tbl_carreras where cod_esc='" & escuela & "' and cod_car='" & carrera & "'", "des_car") & "" dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows(4).Height = 50 dtg_Horarios_mod.Item(0, 4).Value = "TITULO: " & consultar("select tit_obt from tbl_carreras where cod_esc='" & escuela & "' and cod_car='" & carrera & "'", "tit_obt") & "" dtg_Horarios_mod.Rows.Add() im = 6 lm = Val(consultar("select
count(distinct o.des_semest || ' ' ||
p.paralelo) total from tbl_enum_semestre o, tbl_nivel p where o.id_semest=p.id_semest and p.id_ciclo_acad='" & id_ciclo & "' and p.id_asig_semest in (select id_asig_semest from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest in (select id_asig_semest from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "'))", "total")) ReDim nivelm(lm) ReDim asig_nivelm(lm)
136
jm = 0 Call abrir() oracled.CommandText = "select distinct o.id_semest,o.des_semest, p.paralelo
,o.des_semest || ' ' || p.paralelo total,p.id_asig_semest from
tbl_enum_semestre o, tbl_nivel p where o.id_semest=p.id_semest and p.id_ciclo_acad='" & id_ciclo & "' and p.id_asig_semest in (select id_asig_semest from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest in (select id_asig_semest from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "')) order by o.id_semest,p.paralelo" Debug.Print(oracled.CommandText) oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) nivelm(jm) = oracledr1("total") asig_nivelm(jm) = oracledr1("id_asig_semest") jm += 1 End While oracledr1.Close() cno.Close() For km = 0 To jm - 1 seccm = Val(consultar("select id_seccion from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & "", "id_seccion")) dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows(im).Height = 50 dtg_Horarios_mod.Item(0, im).Value = nivelm(km)
137
dtg_Horarios_mod.Rows.Add() im += 1 dtg_Horarios_mod.Rows(im).Height = 50 dtg_Horarios_mod.Rows(im).DefaultCellStyle.Font = New Font(dtg_Horarios_mod.DefaultCellStyle.Font, FontStyle.Bold) dtg_Horarios_mod.Item(0, im).Value = "CRĂ&#x2030;DITOS" dtg_Horarios_mod.Item(1, im).Value = "ASIGNATURAS" dtg_Horarios_mod.Item(2, im).Value = "DOCENTES"
cdia1 = Val(consultar("select max(count(dia_1)) total from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod in (select id_horarios_mod from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ") group by dia_1", "total")) cdia2 = Val(consultar("select max(count(dia_2)) total from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod in (select id_horarios_mod from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ") group by dia_2", "total"))
dia1 = Val(consultar("select dia_1 total from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod in (select id_horarios_mod from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ") group by dia_1 having count(dia_1)=" & cdia1 & " ", "total")) dia2 = Val(consultar("select dia_2 total from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod in (select id_horarios_mod from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ") group by dia_2 having count(dia_2)=" & cdia2 & "", "total"))
138
desc_dia1 = consultar("select desc_dias from tbl_dias_lab where id_dias_lab=" & dia1 & "", "desc_dias") desc_dia2 = consultar("select desc_dias from tbl_dias_lab where id_dias_lab=" & dia2 & "", "desc_dias") dtg_Horarios_mod.Item(3, im).Value = desc_dia1 dtg_Horarios_mod.Item(4, im).Value = desc_dia2 dtg_Horarios_mod.Item(5, im).Value = "HORAS" dtg_Horarios_mod.Item(6, im).Value = "SEMANAS" dtg_Horarios_mod.Rows.Add() im += 1 dtg_Horarios_mod.Rows(im).Height = 50
lm = Val(consultar("select count(des_mat) total from tbl_materias where id_ciclo_acad='" & id_ciclo & "' and cod_mat in (select distinct cod_mat from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ")", "total")) ReDim materiasm(lm) ReDim cod_matm(lm) ReDim credm(lm) ReDim profesorm(lm) lm = 0 Call abrir() oracled.CommandText = "select cod_mat,des_mat,num_cred from tbl_materias where id_ciclo_acad='" & id_ciclo & "' and cod_mat in (select distinct cod_mat from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & ") order by cod_mat" Debug.Print(oracled.CommandText)
139
oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) cod_matm(lm) = oracledr1("cod_mat") materiasm(lm) = oracledr1("des_mat") credm(lm) = oracledr1("num_cred") lm += 1 End While oracledr1.Close() cno.Close() '/hasta aqui sm = 0 For om = im To (lm + im) - 1 dtg_Horarios_mod.Rows.Add() dtg_Horarios_mod.Rows(om).Height = 50 dtg_Horarios_mod.Item(0, om).Value = credm(sm) dtg_Horarios_mod.Item(1, om).Value = materiasm(sm) profesorm(sm) = consultar("select titulo || ' ' || prim_apell || ' ' || prim_nomb total from tbl_profesores where ced_prof in (select ced_prof from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & " and cod_mat='" & cod_matm(sm) & "')", "total") dtg_Horarios_mod.Item(2, om).Value = profesorm(sm) id_hm = Val(consultar("select id_horarios_mod from tbl_horarios_mod where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(km) & " and cod_mat='" & cod_matm(sm) & "'", "id_horarios_mod"))
140
'/Ingreso del DataGrid dia 1 mm = Val(consultar("select count(to_char(fecha_dia1 ,'mm')) total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia1 ", "total")) ReDim mes(mm) mm = 0 Call abrir() oracled.CommandText = "select to_char(fecha_dia1 ,'mm') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia1" oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) mes(mm) = oracledr1("total") mm += 1 End While oracledr1.Close() cno.Close() nm = 0 mesm = 0 rango = "" carac = ", "
diam = Val(consultar("select distinct dia_1 from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod=" & id_hm & "", "dia_1"))
141
desc_diam = consultar("select desc_dias from tbl_dias_lab where id_dias_lab=" & diam & "", "desc_dias") For pm = 0 To mm - 1 If mesm <> mes(pm) Then Call abrir() oracled.CommandText = "select to_char(fecha_dia1 ,'dd') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " and to_char(fecha_dia1 ,'mm')=" & mes(pm) & " order by fecha_dia1" oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) diat = oracledr1("total") If rango = "" Then If diam = dia1 Then rango = CStr(diat) + carac Else rango = desc_diam + " " + CStr(diat) + carac End If Else rango = rango + CStr(diat) + carac End If End While oracledr1.Close() cno.Close()
142
mesn = consultar("select to_char(to_date(" & mes(pm) & ",'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia1 ", "total") rango = rango + " de " + Trim(mesn) + ". " End If mesm = mes(pm) Next n_form = Val(consultar("select count(valor_inic) total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(k) & " and id_dias_lab=" & diam & " ", "total")) If n_form > 0 Then rangof = consultar("select valor_inic || '-' || valor_fin total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(k) & " and id_dias_lab=" & diam & " ", "total") Else rangof = consultar("select valor_inic || '-' || valor_fin total from tbl_seccion where id_seccion=" & seccm & " and id_dias_lab=" & diam & " ", "total") End If rango = rango + " " + rangof dtg_Horarios_mod.Item(3, om).Value = rango '/Ingreso del DataGrid dia 2 mm = Val(consultar("select count(to_char(fecha_dia2 ,'mm')) total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia2 ", "total")) ReDim mes(mm) mm = 0
143
Call abrir() oracled.CommandText = "select to_char(fecha_dia2 ,'mm') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia2" oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) mes(mm) = oracledr1("total") mm += 1 End While oracledr1.Close() cno.Close() nm = 0 mesm = 0 rango = "" carac = ", "
diam = Val(consultar("select distinct dia_2 from tbl_fechas_mod where id_ciclo_acad='" & id_ciclo & "' and id_horarios_mod=" & id_hm & "", "dia_2")) desc_diam = consultar("select desc_dias from tbl_dias_lab where id_dias_lab=" & diam & "", "desc_dias")
For pm = 0 To mm - 1 If mesm <> mes(pm) Then
144
Call abrir() oracled.CommandText = "select to_char(fecha_dia2 ,'dd') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " and to_char(fecha_dia2 ,'mm')=" & mes(pm) & " order by fecha_dia2" oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) diat = oracledr1("total") If rango = "" Then If diam = dia2 Then rango = CStr(diat) + carac Else rango = desc_diam + " " + CStr(diat) + carac End If Else rango = rango + CStr(diat) + carac End If End While oracledr1.Close() cno.Close() mesn = consultar("select to_char(to_date(" & mes(pm) & ",'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH') total from tbl_fechas_mod where id_horarios_mod=" & id_hm & " order by fecha_dia2 ", "total") rango = rango + " de " + Trim(mesn) + ". " End If
145
mesm = mes(pm) Next n_form = Val(consultar("select count(valor_inic) total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(k) & " and id_dias_lab=" & diam & " ", "total")) If n_form > 0 Then rangof = consultar("select valor_inic || '-' || valor_fin total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivelm(k) & " and id_dias_lab=" & diam & " ", "total") Else rangof = consultar("select valor_inic || '-' || valor_fin total from tbl_seccion where id_seccion=" & seccm & " and id_dias_lab=" & diam & " ", "total") End If rango = rango + " " + rangof dtg_Horarios_mod.Item(4, om).Value = rango dtg_Horarios_mod.Item(5, om).Value = CStr(Val(consultar("select horas from tbl_fechas_mod where id_horarios_mod=" & id_hm & "", "horas"))) dtg_Horarios_mod.Item(6, om).Value = CStr(Val(consultar("select semanas from tbl_fechas_mod where id_horarios_mod=" & id_hm & "", "semanas"))) sm += 1 Next dtg_Horarios_mod.Rows.Add() im = im + lm + 1 Next
146
Else Me.Height = 428 Me.StartPosition = FormStartPosition.CenterScreen End If dtg_Horarios.Rows.Add() dtg_Horarios.Rows(0).Height = 50 dtg_Horarios.Item(4, 0).Value = "HORARIO ACADĂ&#x2030;MICO PERIODO " & id_ciclo & "" dtg_Horarios.Rows.Add() dtg_Horarios.Rows.Add() dtg_Horarios.Rows(2).Height = 50 dtg_Horarios.Item(0, 2).Value = "CARRERA: " & consultar("select des_car from tbl_carreras where cod_esc='" & escuela & "' and cod_car='" & carrera & "'", "des_car") & "" dtg_Horarios.Rows.Add() dtg_Horarios.Rows.Add() dtg_Horarios.Rows(4).Height = 50 dtg_Horarios.Item(0, 4).Value = "TITULO: " & consultar("select tit_obt from tbl_carreras where cod_esc='" & escuela & "' and cod_car='" & carrera & "'", "tit_obt") & "" dtg_Horarios.Rows.Add() i = 6 l = Val(consultar("select
count(distinct o.des_semest || ' ' ||
p.paralelo) total from tbl_enum_semestre o, tbl_nivel p where o.id_semest=p.id_semest and p.id_ciclo_acad='" & id_ciclo & "' and p.id_asig_semest in (select id_asig_semest from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest in (select id_asig_semest
147
from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "'))", "total")) ReDim nivel(l) ReDim asig_nivel(l) j = 0 Call abrir() oracled.CommandText = "select distinct o.id_semest,o.des_semest, p.paralelo
,o.des_semest || ' ' || p.paralelo total,p.id_asig_semest from
tbl_enum_semestre o, tbl_nivel p where o.id_semest=p.id_semest and p.id_ciclo_acad='" & id_ciclo & "' and p.id_asig_semest in (select id_asig_semest from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest in (select id_asig_semest from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and cod_esc='" & escuela & "' and cod_car='" & carrera & "')) order by o.id_semest,p.paralelo" Debug.Print(oracled.CommandText) oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) nivel(j) = oracledr1("total") asig_nivel(j) = oracledr1("id_asig_semest") j += 1 End While oracledr1.Close() cno.Close()
148
For k = 0 To j - 1 cont_sab = 0 secc = Val(consultar("select id_seccion from tbl_nivel where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & "", "id_seccion")) dtg_Horarios.Rows.Add() dtg_Horarios.Rows(i).Height = 50 dtg_Horarios.Item(0, i).Value = nivel(k) dtg_Horarios.Rows.Add() i += 1 dtg_Horarios.Rows(i).Height = 50 dtg_Horarios.Rows(i).DefaultCellStyle.Font = New Font(dtg_Horarios.DefaultCellStyle.Font, FontStyle.Bold) cont_sab = Val(consultar("select count(id_dias_lab) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=6", "total")) dtg_Horarios.Item(0, i).Value = "ASIGNATURAS" dtg_Horarios.Item(1, i).Value = "CRĂ&#x2030;DITOS" dtg_Horarios.Item(2, i).Value = "DOCENTES" dtg_Horarios.Item(3, i).Value = "HORAS" dtg_Horarios.Item(4, i).Value = "LUNES" dtg_Horarios.Item(5, i).Value = "MARTES" dtg_Horarios.Item(6, i).Value = "MIERCOLES" dtg_Horarios.Item(7, i).Value = "JUEVES" dtg_Horarios.Item(8, i).Value = "VIERNES" If cont_sab > 0 Then
149
dtg_Horarios.Item(9, i).Value = "HORAS" dtg_Horarios.Item(10, i).Value = "Sテ。ADO" End If dtg_Horarios.Rows.Add() i += 1 dtg_Horarios.Rows(i).Height = 50 l = Val(consultar("select count(des_mat) total from tbl_materias where id_ciclo_acad='" & id_ciclo & "' and cod_mat in (select distinct cod_mat from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & ")", "total")) ReDim materias(l) ReDim cod_mat(l) ReDim cred(l) ReDim profesor(l) l = 0 Call abrir() oracled.CommandText = "select cod_mat,des_mat,num_cred from tbl_materias where id_ciclo_acad='" & id_ciclo & "' and cod_mat in (select distinct cod_mat from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & ") order by cod_mat" oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) cod_mat(l) = oracledr1("cod_mat") materias(l) = oracledr1("des_mat") cred(l) = oracledr1("num_cred")
150
l += 1 End While oracledr1.Close() cno.Close() n = Val(consultar("select count(distinct hora_fin) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab<6", "total")) ReDim hor_fin(n) ReDim hor_inicf(n) ReDim hor_finf(n) ReDim dhor_inicf(n) ReDim dhor_finf(n) ReDim hor_inic(n) ReDim hor_temp(n) ReDim cont_hora(n) ReDim orden_hora(n) ReDim des_hora(n) n = 0 Call abrir() oracled.CommandText = "select distinct hora_inic,hora_fin,hora_inic || ' - ' || hora_fin total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab<6 hora_inic" Debug.Print(oracled.CommandText) oracled.Connection = cno oracledr1 = oracled.ExecuteReader
order by
151
While (oracledr1.Read) hor_inic(n) = oracledr1("hora_inic") hor_fin(n) = oracledr1("hora_fin") hor_temp(n) = oracledr1("total") n += 1 End While oracledr1.Close() cno.Close() n_form = Val(consultar("select distinct count(valor_inic) total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=1", "total")) If n_form > 0 Then n_form = Val(consultar("select count(id_asig_semest) total from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and recr_valor_inic is not null", "total")) If n_form > 0 Then hf_rec = Hour(consultar("select distinct RECR_VALOR_FIN from tbl_formato where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=1 ", "RECR_VALOR_FIN")) Else hf_rec = "" End If Else n_form = Val(consultar("select
count(distinct RECR_VALOR_FIN)
total from tbl_seccion where id_seccion=" & secc & " and id_dias_lab=1", "total")) If n_form > 0 Then
152
hf_rec = Hour(consultar("select distinct RECR_VALOR_FIN from tbl_seccion where id_seccion=" & secc & " and and id_dias_lab=1", "RECR_VALOR_FIN")) Else hf_rec = "" End If End If n = 0 Call abrir() oracled.CommandText = "select hora_fin,count(hora_fin) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab<6 group by hora_fin order by hora_fin" Debug.Print(oracled.CommandText) oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read) cont_hora(n) = oracledr1("total") n += 1 End While oracledr1.Close() cno.Close() p = 0 q = 0 For m = 0 To n - 1
153
If m < n - 1 Then If Hour(hor_inic(m + 1)) = Hour(hor_fin(m)) Then orden_hora(p) = hor_temp(m) hor_inicf(p) = hor_inic(m) hor_finf(p) = hor_fin(m) p += 1 If p = n - 1 Then orden_hora(p) = hor_temp(m + 1) hor_inicf(p) = hor_inic(m + 1) hor_finf(p) = hor_fin(m + 1) m += 1 End If Else If hf_rec <> "" Then If hf_rec = Hour(hor_inic(m + 1)) Then orden_hora(p) = hor_temp(m) hor_inicf(p) = hor_inic(m) hor_finf(p) = hor_fin(m) 'm += 1 p += 1 orden_hora(p) = hor_temp(m + 1) hor_inicf(p) = hor_inic(m + 1) hor_finf(p) = hor_fin(m + 1) m += 1
154
End If Else If Hour(hor_inic(m)) = Hour(hor_inic(m + 1)) Then If cont_hora(m) > cont_hora(m + 1) Then orden_hora(p) = hor_temp(m) hor_inicf(p) = hor_inic(m) hor_finf(p) = hor_fin(m) p += 1 des_hora(q) = hor_temp(m + 1) dhor_inicf(q) = hor_inic(m + 1) dhor_finf(q) = hor_fin(m + 1) q += 1 Else orden_hora(p) = hor_temp(m + 1) hor_inicf(p) = hor_inic(m + 1) hor_finf(p) = hor_fin(m + 1) p += 1 des_hora(q) = hor_temp(m) dhor_inicf(q) = hor_inic(m) dhor_finf(q) = hor_fin(m) q += 1 m += 1 End If
155
Else If cont_hora(m) > cont_hora(m + 1) Then orden_hora(p) = hor_temp(m) hor_inicf(p) = hor_inic(m) hor_finf(p) = hor_fin(m) p += 1 des_hora(q) = hor_temp(m + 1) dhor_inicf(q) = hor_inic(m + 1) dhor_finf(q) = hor_fin(m + 1) q += 1 Else orden_hora(p) = hor_temp(m + 1) hor_inicf(p) = hor_inic(m + 1) hor_finf(p) = hor_fin(m + 1) p += 1 des_hora(q) = hor_temp(m) dhor_inicf(q) = hor_inic(m) dhor_finf(q) = hor_fin(m) q += 1 m += 1 End If End If End If End If
156
Else If n - 1 = 0 Then orden_hora(p) = hor_temp(m) hor_inicf(p) = hor_inic(m) hor_finf(p) = hor_fin(m) p += 1 End If End If Next r = Val(consultar("select count(distinct hora_fin) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=6", "total")) ReDim ord_sh(r) ReDim hor_sinic(r) ReDim hor_sfin(r) If r > 0 Then r = 0 Call abrir() oracled.CommandText = "select distinct hora_inic,hora_fin,hora_inic || ' - ' || hora_fin total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=6
order by hora_inic" Debug.Print(oracled.CommandText) oracled.Connection = cno oracledr1 = oracled.ExecuteReader While (oracledr1.Read)
157
hor_sinic(r) = oracledr1("hora_inic") hor_sfin(r) = oracledr1("hora_fin") ord_sh(r) = oracledr1("total") r += 1 End While oracledr1.Close() cno.Close() End If s = 0 For o = i To (l + i) - 1 dtg_Horarios.Rows.Add() dtg_Horarios.Rows(o).Height = 50 dtg_Horarios.Item(0, o).Value = materias(s) dtg_Horarios.Item(1, o).Value = cred(s) profesor(s) = consultar("select titulo || ' ' || prim_apell || ' ' || prim_nomb total from tbl_profesores where ced_prof in (select ced_prof from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and cod_mat='" & cod_mat(s) & "')", "total") dtg_Horarios.Item(2, o).Value = profesor(s) If p >= s Then dtg_Horarios.Item(3, o).Value = orden_hora(s) Debug.Print(orden_hora(s)) For t = 1 To 5 inic = Val(consultar("select count(cod_mat) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" &
158
asig_nivel(k) & " "' and
and id_dias_lab=" & t & " and (hora_inic = '" & hor_inicf(s) &
hora_fin = '" & hor_finf(s) & "')", "total")) If inic = 1 Then cod_mater = consultar("select cod_mat from " & tabla
& " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & "
and id_dias_lab=" & t & " and (hora_inic = '" & hor_inicf(s) & "' and
hora_fin = '" & hor_finf(s) & "')", "cod_mat") mater = consultar("select des_mat from tbl_materias where cod_mat='" & cod_mater & "' and id_ciclo_acad='" & id_ciclo & "'", "des_mat") Debug.Print(mater) Debug.Print(t) dtg_Horarios.Item(3 + t, o).Value = mater ElseIf q > 0 Then If s <= q - 1 Then inic = Val(consultar("select count(cod_mat) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " & "' and
and id_dias_lab=" & t & " and (hora_inic = '" & dhor_inicf(s)
hora_fin = '" & dhor_finf(s) & "')", "total")) If inic = 1 Then cod_mater = consultar("select cod_mat from "
& tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " & "' and
and id_dias_lab=" & t & " and (hora_inic = '" & dhor_inicf(s)
hora_fin = '" & dhor_finf(s) & "')", "cod_mat") mater = consultar("select des_mat from
tbl_materias where cod_mat='" & cod_mater & "' and id_ciclo_acad='" & id_ciclo & "'", "des_mat") + " " + des_hora(s) Debug.Print(mater) Debug.Print(t)
159
dtg_Horarios.Item(3 + t, o).Value = mater 'Exit For End If Else s -= 1 inic = Val(consultar("select count(cod_mat) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " & "' and
and id_dias_lab=" & t & " and (hora_inic = '" & dhor_inicf(s)
hora_fin = '" & dhor_finf(s) & "')", "total")) If inic = 1 Then cod_mater = consultar("select cod_mat from "
& tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " & "' and
and id_dias_lab=" & t & " and (hora_inic = '" & dhor_inicf(s)
hora_fin = '" & dhor_finf(s) & "')", "cod_mat") mater = consultar("select des_mat from
tbl_materias where cod_mat='" & cod_mater & "' and id_ciclo_acad='" & id_ciclo & "'", "des_mat") + " " + des_hora(s) Debug.Print(mater) Debug.Print(t) dtg_Horarios.Item(3 + t, o).Value = mater 'Exit For End If s += 1 End If End If Next End If
160
If r > s Then dtg_Horarios.Item(9, o).Value = ord_sh(s) inic = Val(consultar("select count(cod_mat) total from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & "
and id_dias_lab=6 and (hora_inic between '" & hor_sinic(s) &
"' and '" & hor_sfin(s) & "' or hora_fin between '" & hor_sinic(s) & "' and '" & hor_sfin(s) & "') and hora_inic<>'" & hor_sfin(s) & "' and hora_fin<>'" & hor_sinic(s) & "'", "total")) If inic > 0 Then cod_mater = consultar("select cod_mat from " & tabla & " where id_ciclo_acad='" & id_ciclo & "' and id_asig_semest=" & asig_nivel(k) & " and id_dias_lab=6 and (hora_inic between '" & hor_sinic(s) & "' and '" & hor_sfin(s) & "' or hora_fin between '" & hor_sinic(s) & "' and '" & hor_sfin(s) & "') and hora_inic<>'" & hor_sfin(s) & "' and hora_fin<>'" & hor_sinic(s) & "'", "cod_mat") mater = consultar("select des_mat from tbl_materias where cod_mat='" & cod_mater & "' and id_ciclo_acad='" & id_ciclo & "'", "des_mat") dtg_Horarios.Item(10, o).Value = mater End If End If s += 1 Next dtg_Horarios.Rows.Add() i = i + l + 1 Next
3.5
Especificaciones de seguridad
La seguridad aplicada en el sistema SISGHC radica en la designaci贸n de un Usuario
161
Administrador que va ser el encargado de definir y controlar la base de datos, ademรกs de crear usuarios con restricciรณn de ingreso de acuerdo al perfil asignado. El sistema contarรก con su respectivo formulario de ingreso que permitirรก que solo usuarios registrados puedan utilizarlo.
IV 4.1
FASES DE PRUEBA
Test del sistema
4.1.1
Pruebas unitarias y de integración
Las pruebas unitarias se realizaron en base a las historias de usuario, cada tarea fue verificada durante y después del desarrollo: Tabla 49: Pruebas unitarias HISTORIA DE USUARIOS CONFIGUIRACIÓN
DEL
ORACLE
10G
DATABASE
EXPRESS EDITION DISEÑO DE BASE DE DATOS
TAREAS
VERIFICADO
Instalar Oracle DataBase 10g Express Edition
SI
Configuración de Base de Datos
SI
Analizar el documento de requisitos del sistema
SI
informático. Crear los scripts para la creación de la base de
SI
datos Crear la estructura de la base de datos
162
SI
163
INICIO DE SESION
Crear formulario de inicio de sesión.
SI
Crear campos para usuario y contraseña.
SI
Cargar combo Periodo Académico Crear control de autenticación del usuario y su
SI SI
contraseña.
MODULO DE SEGURIDAD
MODULO DE
Crear Botones de Aceptar y Cancelar
SI
Crear formulario de Opciones de Perfil
Si
Crear formulario de Perfil
SI
Crear Formulario Usuario
SI
Menú Nuevo, Editar, Guardar, Salir
SI
Crear formulario Ciclo Académico
SI
Crear formulario Sección
SI
Crear formulario Escuela
SI
Crear formulario Carrera
SI
Crear formulario Nivel
SI
Menú Nuevo, Editar, Guardar, Salir
Si
Crear formulario de Malla Curricular
SI
Crear formulario Asignación de Materias para la
SI
ADMINISTRACIÓN
MODELO MATERIAS
escuela Crear formulario Materias de Transversales o
SI
Afines MODELO DE DOCENTES
Crear formulario Docente
SI
Crear formulario Tipo de Contrato del Docente
SI
164
Crear formulario Disponibilidad del Docente
SI
Crear formulario Asignación de Materias para
SI
Docentes MODELO DIRECTOR
Crear formulario formato de sección
SI
Crear formulario Malla de transversales o Afines
SI
Crear formulario Generar Horarios
SI
Elaborado por: Luis Castillo y Edwin Criollo
Las pruebas de integración se realizaron en base a las iteraciones, cada iteración fue verificada por los desarrolladores Tabla 50: Pruebas de integración ITERACION
HISTORIA DE USUARIOS
VERIFICADO
PRIMERA ITERACION
Configuración de la Base de Datos
SI
Inicio de sesión
SI
Control de Ingreso de usuarios
SI
Administración de Datos de Administración como
SI
escuelas, carreras, entre otras Administración de Datos de Materias como son
SI
materias, su asignación a la escuela, materias transversales/afines SEGUNDA ITERACIÓN
Administración de Datos de Docentes como son docentes,
su
asignación
de
materias,
SI
su
disponibilidad y su tipo de contrato Administración de formato de sección, malla de transversales o afines y la generación de horarios
SI
165
Elaborado por: Luis Castillo y Edwin Criollo
4.2
Reporte de errores
El sistema informรกtico indicara mediante mensajes si la informaciรณn ingresada es correcta, si cuenta con la informaciรณn necesaria para generar horarios, si se producen errores cuando se guarda la informaciรณn, si ha habido cruces de horas en la elaboraciรณn de horarios de clases, si se ha ingresado correctamente su login o password, entre otros.
166
CONCLUSIONES
El Sistema SISGHC ha sido desarrollada para satisfacer las necesidades específicas que tiene la Universidad en la elaboración de horarios de clases.
La implementación de este proyecto permitirá solucionar los problemas actuales de Generación de Horarios de Clases que existen en la Universidad
El sistema informático SISGHC cuenta con una interfaz amigable, para un mejor manejo del mismo.
El sistema informático SISGHC fue desarrollado en herramientas de gran desempeño que permiten una respuesta ágil a las necesidades del usuario.
167
RECOMENDACIONES
Seleccionar un usuario administrador para que sea el encargado de dar mantenimiento a la base de datos y la creación de usuarios.
Capacitar a los usuarios, en las funcionalidades del sistema y cuáles serán sus restricciones de uso
Socializar el uso del sistema en base a sus módulos y a los usuarios asignados.
Instalar el Sistema SISGHC en un una sola terminal para evitar posibles problemas en el proceso de elaboración de horarios de clases
168
FUENTES DE REFERENCIA O INFORMACIÓN Bibliografías
Pelland, P.; Paré, P. y Haines, K. (2011) Moving to Microsft Visual Studio 2010. United State Of America: Microsoft Press
Gomez, A. (2010). Seguridad Informática Básica. Madrid: Starbook Editorial. S.A.
Willis, T. y Newsome, B. (2011). Beginning Microsoft Visual Basic 2010. United State of America: Wrox Books
Del Sole, A. (2010) Visual Basic 2010 Unleashed. United State Of America: SAMS
Foxall, J. (2010) SAMS Teach Yourself Visual Basic 2010 in 24 Hours. United State Of America: SAMS
Sheldon, B.; Hollis, B.; Sharkey, K.; Marbutt, J.; Windsor, R. y Hillar, G. (2010) Professional Visual Basic and .Net 4. United State Of America: Wiley Publishing. Inc.
Lincografías
Rugel,
G.
(06/02/2013).
Visual
Basic
2010.
disponible
en
URL:
http://www.slideshare.net/maxferleon/visual-studio-2010-16386300
Oracle Database 10g Express Edition Tutorial. (s.f.) disponible en URL: http://www.lawebdelprogramador.com/cursos/Oracle/3179Oracle_Database_10g_Express_Edition_Tutorial.html
Espino,
J.
(15/08/2011).
Base
de
Dato
Oracle
disponible
en
URL:
http://www.slideshare.net/joseantonioespino/base-de-dato-oracle
Toad for Oracle. (s.f.) disponible en URL: http://www.questsoftware.com.mx/toadfor-oracle/
Fernandez,
C.
Oracle
Sql
Developer.
(s.f.)
disponible
en
URL:
http://www.dataprix.com/oracle-sql-developer
Velásquez,
Y.
Presentación
UML.
(s.f.)
http://es.scribd.com/doc/212763458/Presentacion-UML
disponible
en
URL::
169
Romero, B. y Giraldo, C. (03/04/2012) Métodos de Búsqueda. disponible en URL:
http://www.slideshare.net/brayan000/mtodos-de-bsqueda-12273970
Hernández, A.; Pérez, L.; Villa, E.; Villegas, J. y Ríos, J. (29/10/2013) Búsqueda binaria
y
secuencial.
disponible
en
URL:
http://www.slideshare.net/luisigoodbad/busquedas-binarias-y-secuenciales
Zavala, J. (12/04/2012). ¿Qué es la Ingeniería de Software? disponible en URL: http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html
Diseño
Físico
de
una
base
de
datos.
(s.f.)
disponible
en
URL:
http://1136080181.blogspot.com/2010/05/diseno-fisico-de-una-base-de-datos.html
Cardozo, L. (2013/01/01) Diseño Base de Datos. disponible en URL: http://proflauracardozo.files.wordpress.com/2013/01/normalizacic3b3n.pdf
Modelo de Base de Datos. (s.f.) disponible en URL:
http://www-
oei.eui.upm.es/Asignaturas/BD/BD/docbd/tema/tema2.pdf
Arquitectura
de
Software.
(s.f.)
disponible
en
URL:
http://www.ecured.cu/index.php/Arquitectura_de_software
Herramientas
Case.
(s.f.)
disponible
en
URL:
http://www.ecured.cu/index.php/Herramienta_CASE
Revista Ingeniería de Sistemas (01/09/2008). Programación de Horarios de Clases y Asignación de Salas para la Facultad de Ingeniería de la Universidad Diego Portales Mediante un Enfoque de Programación Entera. disponible en URL: http://www.dii.uchile.cl/ris/tabla.php
Glosario
SISHC: Sistema Generador de Horario de Clases
PUCE SD: Pontificia Universidad Católica del Ecuador Sede Santo Domingo
SRS: Especificación de Requerimientos Software.
MSF: Microsoft Solution Framework, es una metodología ágil, está enfocada en proyectos o soluciones de innovación a lograr impactos deseados.
170
CITIC: Centro de Investigación de las Tecnologías de la Información y Comunicación, cuyo objetivo central es promover y consolidar una cultura de investigación y desarrollo tecnológico en la PUCE SD, conformado por tres áreas de acción; Soporte Técnico, Redes y Programación.
Administrador: Persona que administra la base de datos además de ser el encargado de crear usuarios.
Director: Persona que se encarga de generar los horarios y controlar diferentes aspectos relacionados a la escuela que dirige.
Secretaria: Persona encargada de registrar información requerida por el sistema.
Planificador: Persona encargada de determinar el tipo de contrato de los docentes y asignar las materias transversales o afines.
Crédito: Equivale a una hora semanal de actividad educativa programada por semestre.
Sección: Es un intervalo de tiempo semanal de actividad educativa programada, que por lo general está dividido en tres partes: Matutino, Vespertino y Nocturno.
Docente: Persona encargada de impartir clases a los estudiantes
Usuarios: Personas que acceden a la aplicación mediante cuentas de usuarios (autenticarse).
Malla curricular: Es el cronograma de las materias con las que cuenta todas las escuelas y que se deben seguir para alcanzar un título de tercer nivel dentro de la Universidad.
Materias normales: Son las diferentes materias con las que cuentan todas las escuelas dentro de su malla curricular, las cuales se dictaran durante todo el semestre académico y están sujetas a procesos normales de generación de horarios.
171
Materias modulares: Son materias que poseen algunas escuelas y cuya característica principal es que son dictadas en forma secuencial en algunos días de la semana durante un rango de tiempo específico de acuerdo al número de créditos asignados.
Unificación: Es un concepto que se aplica dentro de la universidad para especificar el proceso de unir más de una materia transversal o afín de acuerdo al número de estudiantes que posea cada una.
Materias transversales: Son materias normales que se imparten en todas las escuelas, las cuales tienen como características
el mismo: nombre, contenido
académico y docente, razón por la cual se las ha organizado en días específicos las mismas que están sujetas a unificaciones.
Materias afines: Son materias normales que se imparten en algunas escuelas, las cuales
tienen como características
el mismo: contenido académico, docente;
nombre (puede ser opcional). Entre los principales casos de materias afines se pueden presentar están: entre un nivel y paralelo/s de una misma escuela o entre paralelos de diferentes escuelas.
Cruce de horas: Es un error que puede producirse cuando un docente se le asigna más de una materia a la misma hora.
172
INDICE DE ANEXOS Anexo 1: Programación del plan académico semestral del instituto tecnológico superior de puerto peñasco ........................................................................................................... 173 Anexo 2: Planificación de la docencia de la CFT UTEM .............................................. 176 Anexo 3: Diccionario de datos ....................................................................................... 178 Anexo 4: Alcance del proyecto disertación de grado..................................................... 186 Anexo 5: Metodología METSISGHC ............................................................................ 190
173
Anexo 1: Programación del plan académico semestral del instituto tecnológico superior de puerto peñasco NOMBRE DEL PROCEDIMIENTO: Programación del plan académico semestral OBJETIVO DEL PROCEDIMIENTO Programar y coordinar los recursos humanos y materiales requeridos para asegurar el proceso de enseñanza – aprendizaje. ALCANCE Aplica semestralmente a todos los departamentos que participan en la programación del semestre en el Instituto Tecnológico Superior de Puerto Peñasco. DESCRIPCIÓN DE LA OPERACIÓN DEL PROCEDIMIENTO RESPONSABLE Jefe
de
Departamento
de
Ciencias Básicas y
DESCRIPCIÓN DE ACTIVIDADES
REGISTRO
1.- Identificación de las asignaturas a cursar
Estructura académica
1.1.- Identifica asignaturas que correspondan al semestre
semestral
próximo.
Económico Administrativas Jefe
de
2.- Asignación de las asignaturas a cursar y Proyecto
Tabla
Departamento
de
Académico a desarrollar
competencia de
Ciencias Básicas y
asignación 2.1.- Solicita a los Docentes Coordinadores de Carrera
Económico
de
de
materias
Propuesta de asignación de materias
Administrativas
Concentrado de Jefe
de
División
2.2.- Asigna materias a los docentes, de acuerdo a las características de las materias y del perfil del docente.,
Académica Jefe
de
Departamento
de
Ciencias Básicas y
carga académica
2.3- Asigna horas Proyectos Académicos 2.4.- Concentra y Elabora propuesta de carga académica de asignaturas y Proyectos Académicos
Económico Administrativas Jefe
de
3.- Presentación de Propuesta
Concentrado de
174
Departamento
de
Ciencias Básicas y
3.1.- Integra propuesta de todas las carreras, elabora
carga
presentación y entrega al Jefe de División Académica
académica
Económico 3.2- Presenta al Director General para su revisión y
Administrativas
autorización. Jefe
de
División 3.3.- Autoriza el plan académico para el semestre inmediato, el
Académica
cual consiste en la carga académica para cada docente Director General Docente
4.- Elaboración de Carga Académica y Horarios
Coordinador
de carga académica autorizada y asigna aula.
Jefe
de
División 4.2.-Concentra horarios de todas las carreras y elabora
Académica.
asignación de carga académica y horario por docente. Jefe
de
División
Académica. Jefe
de
Departamento
de
de
carga 4.1.- Elabora horarios de clase, por carrera de acuerdo a la
Carrera
Asignación
académica horario
y por
docente. Horarios
4.3. Elabora horarios por grupo.
grupo
4.4.- Entrega Asignación de Carga Académica y horario de
Programa
clase al docente.
/Proyecto
por
desarrollar
Ciencias Básicas y
4.5 – Entrega programa (s), de asignatura al docente. y Formato
Económico
de Proyecto Académico a desarrollar en caso de que se le hayan
Avance
Administrativas
asignado horas para este.
programático
Docente
4.6- Entrega formatos al docente de: Avance Programático,
Laboratorio
Prácticas de laboratorio, Solicitud de conferencias y/o visitas y
Solicitud
calendario oficial.
conferencias
Prácticas Coordinador
de
Carrera
a
4.7.- Solicita a los docentes que elaboren el Avance
de
de o
visitas
programático y la solicitud de visitas y/o conferencias si las hay. Entregando este al Presidente de Academia para su aprobación Presidente
de
5.- Planificación de clases
Academia
Avance programático
5.1.- Recibe los Avances programáticos y aprueba su Docente
contenido.
Seguimiento de
175
Coordinador
de
Carrera
5.2. Aprobado el Avance Programático por la Academia, el
Planes
coordinador lo tendrá físicamente para el seguimiento del
Programas
y
programa y enviará una copia electrónica al Jefe de Jefe
de
Departamento
de
Departamento de CBEA.
Visitas
Ciencias Básicas y
5.3. Informa al Jefe de Departamento de CBEA sobre las visitas
Económico
y/o conferencias solicitadas. 5.4 Elabora concentrado de Visitas y /o Conferencias para
de
Reporte
de
actividades
Administrativas Jefe
Concentrado de
División
Académica
aplicadas
autorización del Jefe de División Académica y entrega al departamento de Comunicación y Difusión.
Reporte
de
calificaciones Jefe
de
5.5. Recibe del docente con Proyecto Académico reporte de
Departamento
de
actividades aplicadas y entrega al Jefe de División Académica Constancia
de
5.6 Da seguimiento a las actividades del Proyecto Académico
liberación
de
Docente
Actividades
Ciencias Básicas y Económico Administrativas
por periodo
Docentes 5.7.- Da seguimiento a los planes y programas de estudio 5.8.- Se entrega constancia al personal docente que cumplió con las actividades de la planeación semestral. Fin del procedimiento
176
Anexo 2: Planificación de la docencia de la CFT UTEM NOMBRE DEL PROCEDIMIENTO: Planificación de la Ddocencia OBJETIVO DEL PROCEDIMIENTO Establecer una metodología para la planificación académica lectiva de los programas académicos, Diplomados o cursos de capacitación que ofrece el CFT UTEM. ALCANCE El procedimiento es aplicable a las CTNS, Diplomados y Cursos de Capacitación. DESCRIPCIÓN DE LA OPERACIÓN DEL PROCEDIMIENTO ACTIVIDADES
NOTAS
RESPONSABLE
1.- Elaborar Calendario Académico: esta elaboración
Directora
considera la programación semestral y/o anual, fecha de
Académica
inicio - término, período de matrículas, semanas lectivas para dar cumplimiento a las horas programadas de cada asignatura. 2.- Enviar Oficio a Rector: Se remite al
Rector el
Directora
Calendario Académico para su aprobación.
Académica
3.- Elaboración de los horarios de clases: Una vez
Directora
establecido el Calendario Académico y autorizado, se
Académica
confeccionan el horario de clases de cada carrera. Jefes de Carrera 4.-
Difusión
a
Docentes
y
Alumnos
Regulares:
Elaboración
Corresponde a la comunicación del Calendario Académico
Circular
y horarios a la comunidad educativa.
Informativa
de
Directora Académica Jefes de Carrera
5.- Planificación Clase a Clase: Luego de haber recibido por parte del Jefe de Carrera la asignación horaria de la
Directora
respectiva asignatura, el Docente remite al Jefe de Carrera
Académica
la Planificación Clases a Clase para su revisión y posterior envío a la Dirección Académica, donde el Coordinador
177
Académico la imprime y la anexa al Libro de Clases. 6.- Libro de Clases: El Coordinador Académico confecciona el Libro de Clases con los siguientes formularios: Portada
Luego
de
(Antecedentes Generales), Datos de Alumnos, Planilla de
confeccionar
el
Asistencia, Planilla de Calificaciones, Registro de Avance
Libro
la
Programático, Planificación Clase a Clase. Si se trata de una
Lista de revisión
Coordinador
asignatura de primer semestre o Actividad de Capacitación
del Libro de Clases
Académico
se utilizará el registro “Nomina de Alumnos Matriculados”;
para
de tratarse de una asignatura de segundo semestre y
este se encuentra
superior, se utilizarán los registros “Nómina de Alumnos
completo
Matriculados” y “Avance Curricular” Fin del procedimiento
utiliza
verificar
si
178
Anexo 3: Diccionario de datos NOMBRE
DESCRIPCI
DE
ÓN DE
LA TABLA
LA TABLA
TBL_ASIG_
NOMBRE
TIPO DE
OPCIÓN
DESCRIPCI
PK
FK
No
No
ÓN DEL
DATO Y
NULL
CAMPO
LONGITUD
CAT_MAT
VARCHAR2( NULL
DEL
MATERIAS
CAMPO
10) COD_MAT
NOT NULL
Yes
ID_ASIG_SE NUMBER(10 MEST
)
ID_CICLO_A VARCHAR2( CAD TBL_CARR
10)
COD_CAR
ERAS COD_ESC DES_CAR
VARCHAR2(
No
80) ESTADO
CHAR(1)
TIT_OBT
VARCHAR2( 100)
TBL_CAT_M
COD_CAT_
VARCHAR2( NULL
AT_AT
AT
10)
DESCRIPCI
VARCHAR2(
ON
50)
TBL_CAT_P
DESC_CAT
ROF
_PROF
NOT NULL
EXC_CRED
NUMBER
ID_CAT_PR
NUMBER(10
OF
)
ID_CICLO_A VARCHAR2(
Yes
No
179
CAD
10)
MAX_CRED
NUMBER
SUB_CAT_P NUMBER(10 NULL
TBL_CICLO
ROF
)
DESCICLO
VARCHAR2( NOT NULL
S_ACAD
50) FECHA_FIN
DATE
FECHA_INI CIO ID_CICLO_A VARCHAR2( CAD TBL_CODIG
Yes
10)
COD_BAS
O DESCRIPCI
VARCHAR2(
ON
50)
OPCION_ID TBL_DIAS_L
DESC_DIAS
AB
Yes VARCHAR2(
No
15) ID_DIAS_LA
NUMBER(10
B
)
TBL_DIAS_
DESCRIPCI
VARCHAR2(
MT
ON
15)
ID_DIAS_M
NUMBER(10
T
)
CED_PROF
VARCHAR2(
TBL_DISPO
No
NIBILIDAD
Yes
No
Yes
10) HORA_FIN
No
HORA_INICI O ID_CAT_PR
NUMBER(10
OF
)
Yes
180
ID_CICLO_A VARCHAR2( CAD
10)
ID_DIAS_LA
NUMBER(10
B
)
ID_SECCIO N TBL_ENUM
DES_SEME
VARCHAR2(
_SEMESTR
ST
10)
ID_SEMEST
NUMBER(10
No
E Yes
) TBL_ESCUE
COD_ESC
LAS
VARCHAR2( 10)
DES_ESC
VARCHAR2(
No
50)
TBL_FECHA
ESTADO
CHAR(1)
DIA_1
NUMBER(10
S_MOD
) DIA_2 FECHA_DIA
DATE
1 FECHA_DIA 2 HORAS
NUMBER(10 )
ID_CICLO_A VARCHAR2( CAD
10)
ID_FECHAS
NUMBER(10
_MOD
)
ID_HORARI OS_MOD
Yes
181
SEMANAS
No
TBL_FORM
ID_ASIG_SE NUMBER(38
Yes
ATO
MEST
,2)
ID_CICLO_A VARCHAR2( CAD
10)
ID_DIAS_LA
NUMBER(10
B
)
RECR_VAL
VARCHAR2( NULL
OR_FIN
10)
No
RECR_VAL OR_INIC VALOR_FIN
NOT NULL
VALOR_INI C TBL_HORA
CAT_MAT
RIOS CED_PROF
Yes
COD_MAT COD_UNIF CODIGO
NULL
No
VARCHAR2( 2)
HORA_FIN
VARCHAR2( NOT NULL 10)
HORA_INIC ID_ASIG_SE NUMBER(38 MEST
,2)
ID_CICLO_A VARCHAR2( CAD
10)
ID_DIAS_LA
NUMBER(10
B
)
Yes
182
NUM_CRED TBL_HORA
CAT_MAT
RIOS_MOD
No VARCHAR2( 10)
CED_PROF
Yes
COD_MAT ID_ASIG_SE NUMBER(38 MEST
,2)
ID_CICLO_A VARCHAR2(
TBL_MAT_A
CAD
10)
ID_HORARI
NUMBER(10
OS_MOD
)
CAT_MAT
VARCHAR2(
FTR
No
10) COD_AFTR
Yes
COD_MAT DESCRIPCI
VARCHAR2(
ON
50)
ID_ASIG_SE NUMBER(38 MEST
No
Yes
,2)
ID_CICLO_A VARCHAR2( CAD TBL_MATE
10)
CAT_MAT
No
COD_CAR
Yes
RIAS
COD_ESC COD_MAT DES_MAT
VARCHAR2(
No
80) ID_CICLO_A VARCHAR2( CAD
10)
Yes
183
ID_SEMEST
NUMBER(10 )
NUM_CRED TBL_MATE
CED_PROF
RIAS_PROF
No VARCHAR2(
Yes
10) COD_MAT COD_UNIF
NULL
ID_ASIG_SE NUMBER(10 NOT NULL MEST
No Yes
)
ID_CICLO_A VARCHAR2( CAD TBL_NIVEL
10)
COD_CAR
No
COD_ESC ID_ASIG_SE NUMBER(38 MEST
Yes
,2)
ID_CICLO_A VARCHAR2( CAD
10)
ID_SECCIO
NUMBER(10 NULL
N
)
ID_SEMEST
TBL_OPCIO
NOT NULL
PARALELO
CHAR(1)
OPCION_ID
VARCHAR2(
NES
No
Yes
50) OPCION_N
No
OMBRE OPCION_PA
NULL
DRE TBL_OPCIO NES_PERFI L
OPCION_ID
NOT NULL
Yes
184
OPCION_LO NUMBER(38 CK
,2)
PERFIL_ID
NUMBER(10
No
Yes
) TBL_PERFI
ESTADO
CHAR(1)
No
PERFIL_ID
NUMBER(10
Yes
LES
)
TBL_PROFE
PERFIL_NO
VARCHAR2(
MBRE
50)
CED_PROF
VARCHAR2(
SORES
No
Yes
10) CORREO_E
VARCHAR2( NULL
LEC
50)
ESTADO
CHAR(1)
PRIM_APEL
VARCHAR2(
L
50)
No
NOT NULL
PRIM_NOM B SEG_APELL
NULL
SEG_NOMB TELEFONO TITULO
VARCHAR2( NOT NULL 10)
TBL_SECCI
DESC_SEC
VARCHAR2(
ON
C
50)
ID_DIAS_LA
NUMBER(10
B
)
Yes
ID_SECCIO N RECR_VAL
VARCHAR2( NULL
No
185
OR_FIN
10)
RECR_VAL OR_INIC VALOR_FIN
NOT NULL
VALOR_INI C TBL_TEMP
CAT_MAT
ORAL CED_PROF
Yes
COD_MAT COD_UNIF
NULL
No
HORA_FIN
NOT NULL
Yes
HORA_INIC ID_ASIG_SE NUMBER(38 MEST
,2)
ID_CICLO_A VARCHAR2( CAD
10)
ID_DIAS_LA
NUMBER(10
B
)
NUM_CRED TBL_USUA
CLAVE
RIOS
No VARCHAR2( 15)
ESTADO
CHAR(1)
NICK
VARCHAR2(
Yes
50) NOMBRE PERFIL_ID
No NUMBER(10 )
Yes
186
Anexo 4: Tabla 51: Alcance del proyecto disertaci贸n de grado
187
188
189
190
Anexo 5: Metodología METSISGHC
I
FASE DE ANÁLISIS ................................................................................................... 40
1.1
Problema: ...................................................................................................................... 40
1.2
Visión del proyecto ....................................................................................................... 40
1.3
Perfiles de usuarios........................................................................................................ 41
1.4
Identificación de requerimiento ..................................................................................... 41
1.4.1
Análisis de impactos ...................................................................................................... 42
1.4.2
Marco institucional ........................................................................................................ 47
1.4.3
Resumen de actividades................................................................................................. 48
1.4.4
Lista de requerimientos generales del SISGHC .............................................................. 48
1.4.4.1
Requerimiento del sistema ............................................................................................. 48
1.5
Concepto de la solución ................................................................................................. 49
1.6
Objetivo del proyecto .................................................................................................... 49
1.6.1
Objetivos del Diseño ..................................................................................................... 49
1.7
Factores críticos ............................................................................................................ 50
1.7.1
Análisis y reducción de riesgos ...................................................................................... 50
1.7.2
Introducción .................................................................................................................. 50
1.7.3
Identificación de riesgo ................................................................................................. 50
1.7.4
Análisis de riesgo .......................................................................................................... 51
1.7.5
Criterio de valoración de la probabilidad ....................................................................... 52
1.7.6
Criterio de valoración del impacto al riesgo: .................................................................. 53
1.7.7
Criterio de valoración de la exposición al riesgo: ........................................................... 53
1.7.8
Prioridad de los riesgos.................................................................................................. 54
1.7.9
Plan de reducción, supervisión y gestión del riesgo ........................................................ 54
191
1.8
Planificación inicial ....................................................................................................... 62
1.8.1
Equipo de trabajo .......................................................................................................... 62
1.8.2
Figura : Diagrama de Gantt ........................................................................................... 63
1.8.3
Presupuesto ................................................................................................................... 63
II
FASE DE DISEÑO ....................................................................................................... 64
2.1
Diseño conceptual ......................................................................................................... 64
2.1.1
Especificación de requerimiento de software (SRS) ....................................................... 64
2.1.1.1
Objetivos del SRS ......................................................................................................... 64
2.1.1.2
Usuarios ........................................................................................................................ 64
2.1.1.3
Beneficios del sistema ................................................................................................... 65
2.1.1.4
Acrónimos y abreviaturas: ............................................................................................. 65
2.1.1.4.1
Acrónimos: ................................................................................................................... 65
2.1.1.4.2
Abreviaturas: ................................................................................................................. 65
2.1.1.4.3
Referencias ................................................................................................................... 66
2.1.2
Visión general ............................................................................................................... 67
2.1.3
El SRS está formado por 2 partes:.................................................................................. 67
2.1.3.1
Descripción general ....................................................................................................... 67
2.1.3.1.1
Perspectiva del producto ................................................................................................ 67
2.1.3.1.2
Funciones del producto.................................................................................................. 68
2.1.4
Supuestos y dependencia ............................................................................................... 68
2.1.5
Requerimientos específicos ........................................................................................... 68
2.1.5.1
Requerimientos funcionales ........................................................................................... 68
2.1.5.2
Requerimientos no funcionales. ..................................................................................... 72
2.1.6
Definir los casos de uso de alto nivel y esencial ............................................................. 73
192
2.1.7
Arquitectura del sistema: ............................................................................................... 79
2.1.8
Definir los diagramas de procesos.................................................................................. 81
2.1.9
Definir casos de uso esenciales en formato expandido.................................................... 83
2.1.9.1
Definir los casos de uso reales. ...................................................................................... 86
2.2
Diseño lógico ................................................................................................................ 88
2.2.1
Tecnología a utilizar en el proyecto ............................................................................... 88
2.2.2
Definición del modelo conceptual:................................................................................. 89
2.2.3
Refinar el modelo conceptual ........................................................................................ 89
2.2.4
Modelo lógico ............................................................................................................... 99
2.2.5
Diseño de interfaces de usuario...................................................................................... 99
2.3
Diseño físico ............................................................................................................... 103
2.3.1
Diagrama de secuencias............................................................................................... 103
2.3.2
Diagrama de datos ....................................................................................................... 105
2.3.3
Diagrama de clases ...................................................................................................... 110
2.3.4
Diagrama de componentes ........................................................................................... 110
2.3.5
Diagrama del sistema SISGHC .................................................................................... 111
2.3.6
Diagrama asignar materias a escuela ............................................................................ 112
2.3.6.1
Diagrama de compontes generar horarios .................................................................... 113
2.3.7
Diagrama de implementación ...................................................................................... 114
2.3.8
Modelo físico de la base de datos................................................................................. 115
2.3.9
Modelo entidad relación .............................................................................................. 116
III
FASE DE IMPLEMENTACIÓN ................................................................................. 117
3.1
Nomenclatura para estándares para el desarrollo .......................................................... 117
3.2
Capa de presentación ................................................................................................... 117
193
3.2.1
Interfaces de usuario .................................................................................................... 117
3.2.2
Interfaz de pantalla principal ....................................................................................... 118
3.3
Capa de datos .............................................................................................................. 128
3.3.1
Implementaci贸n de la base de datos ............................................................................. 128
3.3.2
Implementaci贸n de acceso a datos ............................................................................... 131
3.4
Capa de negocios......................................................................................................... 133
3.5
Especificaciones de seguridad ..................................................................................... 160
IV
FASES DE PRUEBA .................................................................................................. 162
4.1
Test del sistema ........................................................................................................... 162
4.1.1
Pruebas unitarias y de integraci贸n ................................................................................ 162
4.2
Reporte de errores ....................................................................................................... 165