Diseño e implementación de un sistema que genera horarios de clases

Page 1

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É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É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É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É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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.