universidad de guayaquil facultad de ciencias matemáticas ...repositorio.ug.edu.ec › bitstream...

273
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales Desarrollo de aplicaciones con plataforma Oracle “Modulo de Evaluaciones del Aula Virtual” PROYECTO DE TESIS DE GRADO SEXTO CURSO DE GRADUACIÓN Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autores: Alexandra del Rocío Cabrera Cueva Irlhona Fernanda Ladines Bermeo Alberto Geovanny Mena Santana GUAYAQUIL-ECUADOR Año: 2009

Upload: others

Post on 03-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

Desarrollo de aplicaciones con plataforma Oracle

“Modulo de Evaluaciones del Aula Virtual”

PROYECTO DE TESIS DE GRADO

SEXTO CURSO DE GRADUACIÓN

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Alexandra del Rocío Cabrera Cueva

Irlhona Fernanda Ladines Bermeo

Alberto Geovanny Mena Santana

GUAYAQUIL-ECUADOR

Año: 2009

Page 2: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

AGRADECIMIENTO

Agradezco a Dios por permitirme

culminar esta anhelada meta, a mis

padres por haber sido incondicionales

con su ayuda en todo momento, a mi

esposo por su apoyo incondicional, a

mis compañeros de tesis por haber

compartido conmigo esta dura pero a la

vez satisfactoria tarea, a todas las

personas que de una u otra forma

estuvieron involucrados y colaboraron

con el desarrollo de este proyecto.

Alexandra Cabrera C.

Page 3: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

Quiero expresar un profundo

agradecimiento y dedicar este trabajo a

todos aquellos que con su amor y

apoyo incondicional, contribuyeron a la

culminación de mi carrera profesional; a

Dios, quien me bendijo dándome la

oportunidad de trabajar y estudiar en

pro de mi país y mis seres queridos, a

mis padres quienes lo han dado todo

por mi y a quienes les debo lo que soy,

a mi esposo e hijas por comprender que

no les pude dedicar mucho tiempo en

estos momentos y a mis colegas de

trabajo que con sus conocimientos me

supieron dar una mano.

Fernanda Ladines B.

Page 4: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

Gracias a mis padres por permitir que

llegara este momento, cuando estamos

tan cerca de terminar nuestra

preparación académica y nos

encontramos en el punto culminante; la

presentación del conocimiento adquirido

plasmado en la elaboración de este

documento.

Alberto Mena S.

Page 5: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

DEDICATORIA

A Dios por estar conmigo en todo

momento apoyándome en las buenas y

las malas, permitiéndome estar aquí en

uno de los mejores momentos de mi

vida.

A mis padres Wilfer y Teresa por

siempre estar a mi lado apoyándome en

todo momento.

Alexandra Cabrera C.

Page 6: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

A mis padres de quien he aprendido a

luchar hasta en las condiciones más

difíciles. Él con su amor, ejemplo y

carácter me ha mostrado que la vida es

un collar de pequeños logros y

pequeñas perlas de felicidad.

Fernanda Ladines B.

Page 7: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

Todo el tiempo, empeño y esfuerzo

invertidos en esta tesis; van dedicados

exclusivamente a aquellos seres tan

queridos que me han brindado su

apoyo. Quienes comparten a nuestro

lado, la satisfacción del deber cumplido;

a ellos, con todo el corazón ofrecemos

los frutos de nuestro trabajo.

Alberto Mena S.

Page 8: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

TRIBUNAL DE GRADUACION

Page 9: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

DECLARACION EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente a los suscritos,

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”.

(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas

Computacionales, Art. 26).

_______________________ _________________________

Alexandra Cabrera C. Fernanda Ladines B.

0920623949 0919802595

Alberto Mena A.

0920623949

Page 10: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

RESUMEN EJECUTIVO

Un punto importante para la Carrera de Ingeniería en Sistemas

Computacionales es precisamente con miras a cumplir estos principios que

se debe poner en marcha una estrategia de calidad, que tiene como centro

de implementación un sistema de Aula de Formación Virtual que, haciendo

uso las Nuevas Tecnologías, permita la gestión de acciones formativas

encaminadas a la mejora de la ocupabilidad de las personas usuarias de sus

servicios. Teniendo en cuenta el ámbito de la problemática en el proceso de

evaluaciones manuales, hemos optado por crear un Modulo de Evaluaciones

para el Sistema Aula Virtual, orientado a docentes y estudiantes; ofreciendo

un mejor servicio de calidad, fácil uso con interfaces claras y amigables, con

un manejo de datos de forma real y seguro. El modulo de evaluaciones del

proyecto del aula virtual tiene el propósito de administrar la información que

es ingresada para llevar a cabo todas las evaluaciones que son desarrolladas

por los alumnos.

Page 11: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

1

CAPÍTULO 1

1. INTRODUCCION

1.1. Antecedentes

Un proyecto nace a partir de las necesidades que existen en la

sociedad, ya sea para satisfacerlas, incursionar en algo novedoso que

revolucione el mercado, sustituir una tecnología obsoleta, lanzar un

nuevo producto o servicio, o para darle solución a un problema, etc.

Cada una de las variantes mencionadas anteriormente tienen que ser

investigadas minuciosamente con la finalidad de analizar las

posibilidades, ventajas y desventajas que tiene dicho proyecto. Todo

esto antes de poner en marcha el mismo.

Page 12: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

2

La Misión de las Instituciones Académicas en general, es formar a

profesionales en varias ramas de las ciencias, altamente calificados en

el ámbito académico, científico, tecnológico, humanista y cultural con

sólidos valores éticos y morales. Su objetivo básico es contribuir a

lograr que se formen profesionales de calidad y favorecer un mercado

de trabajo que coadyuve a la cohesión social y territorial.

Entre los principios generales que rigen el funcionamiento de las

Instituciones Académicas se encuentra la orientación a personas que

deseen obtener un grado de madures en el ámbito académico a

través de una enseñanza de primer nivel y proyectos innovadores

usando las Nuevas Tecnologías de la Información y Comunicación,

permitiendo la creación y puesta en marcha de nuevos servicios con

unos costes de funcionamiento menores.

Es precisamente con miras a cumplir estos principios que se debe

poner en marcha una estrategia de calidad, que tiene como centro de

implementación un sistema de Aula de Formación Virtual que,

haciendo uso las Nuevas Tecnologías, permita la gestión de acciones

formativas encaminadas a la mejora de la ocupabilidad de las

personas usuarias de sus servicios.

Page 13: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

3

Hoy en día los controles y manejos de notas y asistencias de los

estudiantes de una Institución Académica se la realiza manualmente,

desperdiciando recursos tecnológicos, humanos y materiales.

Mediante nuestro proyecto buscamos mejorar la ejecución del

proceso, haciéndolo rápido y eficiente, estando en cualquier lugar

donde se encuentre; mientras tenga acceso a la red Internet.

1.2. Ámbito y Problemática

El proceso de las evaluaciones en las diferentes Instituciones

Académicas tienen que seguir un proceso manual desarrollando

la misma para proceder a sacar fotocopias de cada una de las

evaluaciones; el mismo que tiene que ser resuelto por el

evaluado donde el evaluador corre el riesgo de pérdida del

documento, mal interpretación del mismo y ocupa un espacio

físico.

Algunas instituciones cuentan con un módulo básico, en donde

no siempre el Docente puede acceder directamente, y si lo hace

de igual manera está obligado a llenar las Actas de manera

manual, lo que le genera más carga operativa y mayor tiempo

de espera a la entrega de notas al evaluado.

Page 14: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

4

1.3. Solución de la Problemática

Teniendo en cuenta el ámbito de la problemática en el proceso

de evaluaciones manuales, hemos optado por crear un Modulo

de Evaluaciones para el Sistema Aula Virtual, orientado a

docentes y estudiantes; ofreciendo un mejor servicio de calidad,

fácil uso con interfaces claras y amigables, con un manejo de

datos de forma real y seguro.

1.4. Visión y Misión del Proyecto

1.4.1. Visión

Proporcionar una herramienta confiable, segura, utilitaria,

basada en los nuevos estándares de desarrollo tecnológicos

con el objetivo de optimizar recursos y agilizar los procesos de

elaboración y ejecución de evaluaciones académicas y

docentes y que además sirva de base para la creación de

nuevas formas de apoyo a la educación. Que el sistema sea

flexible para futuras versiones y actualizaciones.

1.4.2. Misión

Nuestra misión es ofrecer a la carrera una herramienta eficaz,

óptima y capaz de evaluar a un estudiante o profesor, midiendo

sus conocimientos académicos, profesionales y pedagógicos.

Page 15: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

5

Esta herramienta es un gestor permanente de calidad y

excelencia, con implementaciones que se adapten y satisfagan

las necesidades de los usuarios en general.

1.5. Definición del Proyecto

El modulo de evaluaciones del proyecto del aula virtual tiene el

propósito de administrar la información que es ingresada para

llevar a cabo todas las evaluaciones que son desarrolladas por

los alumnos.

También se encarga de administrar las diferentes acciones que

este modulo realiza como el ingreso de los exámenes según su

categoría, registros de exámenes, proporcionando información

consistente para el usuario según lo requiera.

1.6. Objetivos del Proyecto

1.6.1. Objetivos Generales del Proyecto

Proveer una herramienta fácil de usar que permita

a diferentes entes administrar de forma correcta

las diferentes tareas que intervienen en el proceso

de evaluaciones

Page 16: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

6

Disminuir el tiempo que se requiere para la

preparación de material, así mismo el factor

dinero, ya sea sacando fotocopias o imprimiendo.

Garantizar la seguridad de los datos ante cualquier

pérdida o alteración de la información.

En nuestro caso nos concentraremos en la

elaboración y ejecución de evaluaciones a

docentes y alumnos, tomando en consideración

todos los puntos y actividades relevantes que

permitan una gestión viable de la solución.

1.6.2. Objetivos Específicos del Proyecto

Evaluar constantemente al personal docente en el

menor tiempo posible.

Aprovechar los avances tecnológicos que existen en la

actualidad por periodo de tiempo indefinido.

Evitar a nivel administrativo tener archiveros llenos de

documentos, dependiendo de las políticas internas de la

entidad educativa.

Page 17: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

7

Realizar la búsqueda de evaluaciones específicas y por

grupos en el menor tiempo posible.

1.7. Alcance del Proyecto

Considerando los requerimientos de los futuros usuarios de la

aplicación, tenemos como resultado la implementación de

diferentes opciones que facilitan y a su vez agilizan la

elaboración de evaluaciones y el control de notas de

catedráticos; entre ellas podemos mencionar las siguientes.

Información de entrada

Información Descripción

MATERIAS INSCRITAS Se requiere obtener las materiasque fueron inscritas por cadaestudiante.

DATOS DEL USUARIO Se requiere obtener lascredenciales del usuario

INFORMACIÓN DEL EXAMEN Se requiere obtener los datosgenerales de la Evaluación

PREGUNTAS Y RESPUESTAS Se requiere obtener laspreguntas y respuestas porEvaluación

CATEGORÍA DE EVALUACIÓN Se requiere obtener lasCategorías

TIPO DE EVALUACIÓN Se requiere obtener los Tipos deEvaluación

ACTIVACIÓN DE EVALUACIÓN Se requiere obtener el listado deestudiantes inscritos a laEvaluación

DESARROLLO DE LAEVALUACIÓN

Se requiere obtener la plantilla dela Evaluación

Page 18: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

8

CULMINACIÓN DE LAEVALUACIÓN

Se requiere obtener el evento deCulminación

CALIFICACIÓN DE LAEVALUACIÓN

Se requiere obtener el evento deCalificación

REPORTE DE EVALUACIÓN Se requiere obtener el evento deReportes

Trabajos a realizar

Trabajo DescripciónCONSULTA DE MATERIASPOR USUARIO

Con la información de lasmaterias inscritas, se crearía unanueva estructura que registre lasmaterias para el usuario según elTipo de Examen

VERIFICACION ROLES DEUSUARIO

Permite consultar informaciónnecesaria para acceder a losdiversos procesos según el niveldel grupo de rol asignado

MANTENIMIENTO DEPLANTILLAS DE EXAMEN

Registrar y actualizar los datosdel examen, tales como duraciónde la prueba, usuario autorizado,tipo, categoría, fecha de ingreso.

DETALLE DE LA CABECERA DELA PLANTILLA

Registrar y actualizar cada unade las preguntas y respuestas dela evaluacion

MANTENIMIENTO DECATEGORIAS

Registrar y actualizar laestructura de Categorías

MANTENIMIENTO DE TIPOS Registrar y actualizar laestructura de Tipos

CONTROL DE ACTIVACION Permite al Administrador/Docenteactivar el respectivo examen oevaluación correspondiente a losestudiantes inscritos según losparámetros establecidos

CONTROL DE DESARROLLODE EXAMEN

El estudiante efectuara elexamen según los términos ycondiciones dados por elAdministrador/Docente, almomento de activar el examen.Las respuestas serán registradasen tiempo real, en el momentoque son efectuadas.

CONTROL DE CULMINACION Se realizaran 3 procesos de

Page 19: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

9

DEL EXAMEN forma concurrente que permitanvalidar la terminación delexamen:

Terminación voluntariaantes de la duración de laevaluación.

Terminación abrupta porparte delAdministrador/Docente

Terminación por elvencimiento de la duracióndel examen

CONTROL DE CALIFICACION Este proceso de formaautomática evaluará cada una delas respuestas del Estudiante ycalificara el examen según losresultados registradospreviamente en la plantilla de laEvaluación. Se creara un registrode la información contenida endicho examen.

Resultados esperados

Entregable DescripciónPRESENTACIÓN DE LASMATERIAS ASIGNADAS

Presentar el listado de materiasinscritas en la matriculación delestudiante según el Tipo deEvaluación.

PRESENTACIÓN DE LOSEXÁMENES ACTIVADOS

Este reporte mostrará losexámenes que están listos paraser evaluados.

PRESENTACIÓN DE LOSPARÁMETROS, CONDICIONESY TÉRMINOS DE LAEVALUACIÓN DEL EXAMEN

Información previa al inicio de laevaluación.

PRESENTACIÓN DELDESARROLLO DEL EXAMEN

Permitirá mostrar cada una de laspreguntas de la evaluación consus respectivas respuestasmúltiples. Además mostrara unreloj de secuencia según la

Page 20: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

10

duración de la prueba.

PRESENTACIÓN DE LOSRESULTADOS DE LACALIFICACIÓN

Una vez terminado la evaluacion,mostrara el resultado de formaporcentual.

EXÁMENES O EVALUACIONESPOR TIPO O CATEGORÍA

Presentará las evaluacionessegún la especificación dada

PRESENTACIÓN DE TIPOS YCATEGORÍAS

Listado de categorías y subcategorías registradas

PRESENTACIÓN DEESTUDIANTES ACTIVOS

Listado de estudiantes habilitadosen el sistema agrupados por losdiferentes exámenes a los quetienen accesos.

PRESENTACIÓN DEPREGUNTAS Y RESPUESTAS

Reporte con las respuestascorrectas e incorrectas de unaevaluación de docente o alumno,por estudiante, por profesor y porfecha.

PRESENTACIÓNCRONOLÓGICA DE EXÁMENES

Reporte de todas lasevaluaciones realizadas porrangos de fecha.

PRESENTACIÓN EN TIEMPO

REAL DE EVALUACIÓN

Reporte de records en tiempo de

ejecución de la evaluación, por

tipo y categoría.

1.8. Contribución tecnológica

El desarrollo de esta aplicación es con la intención de brindar

una ayuda a las personas encargadas de la elaboración de las

evaluaciones, así como una utilidad para el fácil control del las

evaluaciones a los docentes mediante la información generada

por la solución a través de los diversos reportes que

proporciona la misma.

Page 21: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

11

Así también entregar un producto de fácil manejo, amigable y

que refleje la información de forma rápida y en un formato de

fácil entendimiento para la rápida toma de acciones en un caso

determinado.

1.9. Arquitectura del Proyecto

La arquitectura de una aplicación es la vista conceptual de la

estructura de los componentes del software, sus propiedades e

interacciones. Toda aplicación contiene código de presentación,

código de procesamiento de datos y código de almacenamiento

de datos. Y Dado que existen algunos tipos de arquitecturas,

para nuestro proyecto optamos conveniente el uso de una

Arquitectura de 3-capas.

Capa de presentación: Es la que ve el usuario, presenta el

sistema al usuario, le comunica la información y captura la

información del usuario en un mínimo de proceso. Esta capa se

comunica únicamente con la capa de negocio. También es

conocida como interfaz grafica y debe tener la característica de

ser "amigable" para el usuario.

Page 22: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

12

Capa de negocio: Es donde residen los programas que se

ejecutan, se reciben las peticiones del usuario y se envían las

respuestas tras el proceso. Se denomina capa de negocio (e

incluso de lógica del negocio) porque es aquí donde se

establecen todas las reglas que deben cumplirse. Esta capa se

comunica con la capa de presentación, para recibir las

solicitudes y presentar los resultados, y con la capa de datos,

para solicitar al gestor de base de datos para almacenar o

recuperar datos de él.

Capa de datos: Es donde residen los datos y es la encargada

de acceder a los mismos. Está formada por uno o más gestores

de bases de datos que realizan todo el almacenamiento de

datos, reciben solicitudes de almacenamiento o recuperación de

información desde la capa de negocio.

Page 23: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

13

Figura 1.1. Arquitectura del Proyecto

1.10. Arquitectura de Datos

Un administrador de Bases de Datos tiene que saber a la

perfección como es la arquitectura de su servidor. En el caso de

Oracle es necesario saber que procesos, archivos, estructuras,

etc. están involucrados en su entorno. Nos vamos a enfocar en

conocer la arquitectura de Oracle de una manera muy sencilla.

Un servidor Oracle consiste de dos entidades: La instancia y la

base de datos (independientes pero conectados). Durante el

proceso de creación de una base de datos, se crea primero la

instancia, y de ahí se crea la base de datos.

Una instancia de Oracle consta tiene estructuras de memoria y

procesos; su existencia es pasajera ya que se halla en la RAM y

el CPU, es decir, su tiempo de vida de la instancia durará

Page 24: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

14

mientras exista en memoria. Por otro lado, la base de datos

consta de archivos físicos localizados en el disco duro, y una

vez creada existirá indefinidamente (hasta que deliberadamente

los archivos sean eliminados).

Oracle define esta arquitectura para garantizar una abstracción e

independencia entre las estructuras lógicas (que ven los

programadores) de las estructuras físicas (que ven los

administradores de sistemas); únicamente el DBA conoce las dos

partes de la historia.

Instancia:

La instancia de Oracle consta de un área de memoria compartida

conocida como SGA (System Global Area). Esta área de memoria

consta de menos tres estructuras básicas:

Shared Pool: Incluye la Library Cache (área de memoria

que almacena código recientemente ejecutado) y el Data

Dictionary Cache (área que almacena las definiciones de

objetos usados recientemente)

Database Buffer Cache: Área de trabajo para la ejecución

de SQL

Page 25: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

15

Log Buffer: Área que almacena todos los cambios que son

realizados en el Database Buffer Cache

A parte de estas tres estructuras principales, también existen otras

3 que son opcionales:

Large Pool: Área utilizada para mejorar el rendimiento en

servidores compartidos (multithreaded) o para procesos I/O

de disco y cinta

Java Pool: Área utilizada si se tiene una aplicación que va a

ejecutar procedimientos Java (ya que Oracle maneja sus

APIs con Java muchos administradores consideran a esta

área de memoria como obligatoria)

Streams Pool: Utilizado para manejo de Streams

A parte del SGA, la instancia de Oracle tiene 5 procesos conocidos

como Background process:

SMON: Habilita la conexión entre la instancia y la base de

datos. Permite la recuperación de la base de datos después

de una falla

Page 26: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

16

PMON: Se encarga de gestionar las sesiones de usuario.

Cuando un proceso de usuario falla, se encarga de limpiar

los procesos restantes

CKPT: Se asegura que la instancia esté sincronizada con la

base de datos.

LGWR: Escribe todos los cambios a los datos que se

realizaron en el Database Buffer Cache en los Redo Log

Files del disco

DBWn: Escribe los bloques modificados desde el Database

Buffer Cache a los archivos de disco

Base de datos:

La base de datos abarca las estructuras físicas que se encuentran

en disco. Estos archivos se dividen en dos: Requeridos y Externos.

Entre los archivos requeridos están:

Control File: Almacena el status de las estructuras físicas

de la base de datos.

Online Redo Log Files: Almacenan un registro de los

cambios realizados a la base de datos mientras estos de van

dando

Page 27: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

17

Datafiles: Son el repositorio de la información

En cambio, los archivos externos son:

Parameter File: Define la instancia y los parámetros de

inicialización. Hay de dos tipos Dinámico (binario, que no se

puede ejecutar y se actualiza constantemente) y estático

(que se lo puede editar mediante un editor ASCII y que

solamente es leído una sola vez cuando la instancia se

inicia.)

Password File: Archivo de sistema que almacena los

nombres de usuario y contraseña (encriptadas) para poder

autenticar a un usuario sin la necesidad del diccionario de

datos.

Archive Log Files: Copias de los Online Redo Log Files

llenos

Desarrollar e implantar aplicaciones empresariales más

escalables, fiables y seguras.

Optimizar la productividad de los departamentos de

Tecnología de Información reduciendo la complejidad en la

creación, implantación y administración de las aplicaciones

de bases de datos.

Page 28: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

18

Compartir datos a través de múltiples plataformas,

aplicaciones y dispositivos para facilitar la interconexión

entre sistemas internos y externos.

Ofrecer soluciones de inteligencia empresarial que ayuden a

tomar decisiones con fundamento y aumentar la

productividad por toda la empresa; y

Controlar los costes sin sacrificar el rendimiento, la disponibilidad ni la

fiabilidad.

1.11. Infraestructura Tecnológica.

En hardware de estaciones de trabajo, todos los requerimientos

mínimos para la implantación de sistemas basados en Windows

XP o superiores.

En hardware de servidores, servidores con la capacidad de

trabajar y soportar la base de datos y servicios WEB y además,

La infraestructura necesaria para lograr el rendimiento y la

disponibilidad de la información entre los diferentes

componentes o elementos que la utilizan.

1.12. Metodología del Proyecto

Page 29: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

19

De acuerdo a las expectativas creadas por parte del equipo de

trabajo para la realización del proyecto de seminario “Aula

Virtual”, optamos por seguir el “MODELO EN ESPIRAL”.

Este es un modelo de proceso de software evolutivo para la

ingeniería de software donde el software se desarrolla en una

serie de versiones incrementales, permitiendo al desarrollador y

al cliente entender y reaccionar a los riesgos en cada nivel

evolutivo.

Utilizando la creación de prototipos como un mecanismo de

reducción de riesgo, pero, lo que es más importante permite a

quien lo desarrolla aplicar el enfoque de creación de prototipos

en cualquier etapa de la evolución de prototipos.

Con cada iteración alrededor de la espiral, se construyen

sucesivas versiones del software, cada vez más completa y, al

final, al propio sistema operacional que es el objetivo deseado.

Este modelo Consta de cuatro etapas o fases:

Page 30: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

20

Planificación: Se determinan los objetivos principales

del proyecto, las alternativas y los inconvenientes que

pueda presentar el proyecto.

Análisis de Riesgo: Se determinan los riesgos que se

pueden presentar en la elaboración del proyecto, y se

analizan las posibles alternativas de solución de los

mismos, es de anotar que una vez elaborado el prototipo

y si los riesgos son altos y no existen posibles

alternativas de solución el proyecto se puede dar por

terminado.

Ingeniería: Se realiza el desarrollo del siguiente nivel.

Evaluación del Cliente: Una vez se ha realizado el

modelo es revisado por el usuario final para determinar

las fallas y se continua con el ciclo hasta tener el

producto final.

1.13. Recursos necesarios del proyecto

1.13.1. Recurso Humano

El recurso humano necesario para el desarrollo e

implementación de la solución, está constituido por tres

Page 31: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

21

personas, las mismas que tendrán a su cargo tareas y

actividades detalladas en el cronograma de trabajo del

proyecto, y que en general se denotan específicamente por:

Creación de estructuras y objetos de base de datos.

Desarrollo de interfaces y pantallas del sistema.

Codificación y programación de la lógica del negocio.

Desarrollo de consultas y reportería.

Documentación, pruebas y certificaciones de la

aplicación

Integración e implementación de la solución.

1.13.2. Recurso Tecnológico

En hardware de servidores, equipos de computo con la

capacidad de trabajar y soportar la base de datos Oracle 10g

sobre Sistema Operativo Linux.

En hardware de estaciones de trabajo, todos los requerimientos

mínimos para la implantación de sistemas basados en

arquitectura Web usando herramientas de desarrollo como

JDeveloper y Oracle Developer 6i.

Page 32: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

22

En general, la infraestructura necesaria para lograr el

rendimiento y la disponibilidad de la información entre los

diferentes componentes o elementos que la utilizan.

Nota. Los requerimientos de Hardware de los equipos

dependerá de la plataforma Oracle y Java usada con el

objetivo de que la aplicación trabaje de manera adecuada

y se definirán de acuerdo a las especificaciones técnicas

dadas por cada uno de los proveedores de los programas

señalados.

1.14. Para la implementación del proyecto.

Por estación a ser instalada

250 MB de RAM o superior

40 GB de disco duro o superior

Procesador P IV de 2.8 Ghz

Monitor de 15’

Sistema Operativo Windows XP o superior

Para el servidor de Base de Datos

Page 33: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

23

512 MB de RAM

80 GB de disco duro (con preferencia disco SCSI)

Procesador PIV de 3 Ghz o superior

Monitor 15’

Sistema Operativo Linux

1.15. Cronograma de Tiempo del Proyecto

La duración y el cronograma de trabajo se detallan en el Anexo

A.

DURACION: 10 meses.

Ver Anexo A

Page 34: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

24

CAPÍTULO 2

2. ANÁLISIS

2.1. Levantamiento de Información

En base a un análisis detallado de los mecanismos normales

correspondientes a las evaluaciones de los usuarios

(estudiantes, docentes, personal de administración), dentro de

la carrera de Ingeniería en Sistemas Computacionales de la

Universidad de Guayaquil, encontramos un sin número de

complicaciones al momento que mencionaremos a

continuación:

Page 35: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

25

DOCENTE:

Elaboración de evaluaciones, las mismas que siempre son

escritas independientemente que sean pruebas objetivas o

teóricas.

En algunos casos las evaluaciones son fotocopiadas y esto es

un gasto para el docente.

Mal interpretación de caligrafía del estudiante en la mayoría de

los casos, lo que lleva a no calificar de una manera eficiente.

En evaluaciones teóricas se corre el riesgo de que el estudiante

altere el examen al momento de la revisión.

Debido al manejo físico de las evaluaciones existe la posibilidad

de extravió de las mismas.

ESTUDIANTE:

El desarrollo de evaluaciones son escritas las mismas que

pueden ser objetivas o teóricas, donde involucra tiempo en el

caso de que el docente dicte las preguntas de las evaluaciones

donde se requiere de tiempo y materiales, como es el caso de

plumas, lápices y hojas.

Page 36: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

26

PERSONAL ADMINISTRATIVO:

Al momento de evaluar a los profesores por parte de los

alumnos es tedioso calificar un sin número de evaluaciones

escritas, debido a la gran cantidad de estudiantes que existen

en la carrera.

El personal administrativo es el encargado de programar las recalificaciones

en los casos de inconformidad de notas de parte de los estudiantes.

2.2. Analisis de Requerimientos

Debido a las complicaciones anteriormente detalladas, hemos

propuesto una solución orientada al internet que permita

automatizar el proceso de evaluación que actualmente los

usuarios (estudiantes, docentes, personal de administración) en

general llevan a cabo, de tal forma que la herramienta permitirá

optimizar tiempo y recursos en todas las actividades y tareas

incluyentes en este proceso.

Registro de Exámenes

El sistema debe permitir la creación de un tipo de evaluación

y deberá asignarle una categoría o subcategoría al mismo.

También debe registrar información referencial como el

administrador o el personal administrativo que generó la

Page 37: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

27

evaluación del docente, tiempo disponible para cada prueba

(sólo para exámenes), número máximo de opciones

múltiples por cada pregunta, etc.

La herramienta debe permitir generar y registrar las

preguntas para cada examen. Cada pregunta debe tener un

detalle de posibles respuestas, de las cuales el usuario debe

indicar en el sistema cuál es la respuesta válida. El

instructor o personal administrativo debe registrar el número

máximo de respuestas que tiene la pregunta.

La herramienta debe tener la opción de habilitar los

exámenes o deshabilitarlo para un usuario en particular.

El módulo debe registrar con datos encriptados (que no se

pueda descifrar) la respuesta válida por cada pregunta.

Ejecución de los Exámenes

En este módulo se debe permitir que un estudiante válido (con

los permisos necesarios) pueda ingresar a ejecutar los

exámenes o evaluación de docentes que estén autorizados a

resolver. Esta ejecución cumple con los siguientes

requerimientos:

Validación del estudiante antes de ejecutar la prueba.

Page 38: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

28

Visualización de los exámenes autorizados y habilitados

para el estudiante.

Antes de comenzar a resolver el examen, el sistema debe

mostrar la siguiente información:

1. Categoría y subcategoría del examen

2. Número de preguntas que tiene el examen

3. El tiempo que dispone el estudiante para contestar el

examen

4. Un ejemplo de la modalidad que tiene el examen con

las opciones múltiples. Este ejemplo debe presentar

un ejercicio muy sencillo.

Durante la ejecución del examen, el usuario va a ir

contestando las preguntas seleccionando las diferentes

opciones múltiples. La pregunta debe especificar el número

de respuestas válidas que tiene esa pregunta y el usuario

sólo puede escoger un número menor o igual al total de

respuestas que tiene la pregunta.

En el momento que el examen comienza se debe

contabilizar el tiempo que va ocupando el examen, puesto

que la prueba termina o bien cuando el usuario contesta

Page 39: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

29

correctamente todas las preguntas o bien cuando transcurre

el tiempo máximo de la prueba.

Al final de la prueba, el sistema debe indicar el porcentaje

(sobre 100) de respuestas contestadas correctamente y no

debe permitir el cambio o modificación de ninguna pregunta.

Adicionalmente cada prueba va a generar un número único

que será el código del examen. Este número no puede

repetirse puesto que una persona puede hacer un examen

varias veces y una misma persona puede realizar varios

exámenes (si está definido en los permisos del instructor o

personal administrativo).

Reportes

Este módulo debe permitir la generación de reportes sobre

la siguiente información:

Listado de exámenes creados en el sistema con su

información básica (profesor o personal

administrativo)

Listado de estudiantes habilitados en el sistema

agrupados por los diferentes exámenes a los que

tienen accesos.

Page 40: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

30

Reporte con las respuestas correctas e incorrectas de

un examen o evaluación de docente por un estudiante

o por profesor. Para este caso se debe ingresar el

código del estudiante y el sistema debe mostrar todos

los exámenes (nombres y fechas) que realizó el

estudiante. (profesor)

Reporte de todos los exámenes realizados en un

determinado periodo. El sistema debe solicitar un

rango de fechas y buscar en el sistema todas las

pruebas realizadas en ese rango y mostrar todas las

pruebas.

Los últimos reportes tienen la misma estructura y diseño, sólo

cambia la modalidad de búsqueda.

2.3. Análisis de Riesgos

En casos de incidentes tales como, cuando se cae la base de

datos cuando falla el equipo remoto donde se esta elaborando la

evaluación en el momento de la evaluación, tomar en

consideración que debe registrar el tiempo transcurrido de la

evaluación y automáticamente se debe guardar hasta el ultimo

cambio realizado.

Page 41: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

31

Vulnerabilidad contra ataques de piratas informáticos, la

herramienta debe manejar todos los estandares de seguridad

para evitar incursiones no deseadas.

Portabilidad, se deben realizar todas lãs pruebas para verificar

que el sistema funcione em cualquier navegador.

2.4. Diagrama de Flujo de Procesos

2.4.1. Flujo de Procesos

El Diagrama de Flujo de Procesos es una representación

gráfica de la secuencia de todas las operaciones, secuencias,

esperas y los almacenamientos que ocurren durante el proceso

de ingreso, registro, inscripción, consultas e impresión de datos

al visitar nuestro Portal. Incluye, además, la información que se

considera deseable para el análisis, por ello se ha considerado

importante los siguientes Flujos de Procesos:

2.4.2. Procesos del Portal Web

Registro de Evaluación Administrador / Docente

Ingreso al Portal Web

Visualización del Sitio

Autenticación del Usuario

Presentación del Menú Principal

Page 42: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

32

Consulta de materias asignadas

Registro de Examen-Plantilla

Ingreso de datos (ingreso al formulario de

registro)

Verificación de la Plantilla-Borrador

Confirmación de Registro

Activación de la Evaluación

Activacion de Evaluación Administrador / Docente

Ingreso al Portal Web

Visualización del Sitio

Autenticación del Usuario

Presentación del Menú Principal

Consulta de evaluaciones registradas

Consulta de usuarios inscritos al curso

Selección de usuarios

Activación de Evaluación

Proceso de Evaluación

Proceso Evaluación Estudiante

Ingreso al Portal Web

Visualización del Sitio

Autenticación del Usuario

Presentación del Menú Principal

Consulta de Evaluaciones Activadas

Page 43: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

33

Selección de Evaluación

Confirmación de Inicio

Proceso Evaluativo

Validación de Preguntas

Terminación de Evaluación

Revisión de Evaluación

Registro de Resultados

Ver Anexo B

2.5. Modelo de la aplicacion

La aplicación está basada en la metodología UML. UML

(Lenguaje de Modelado Unificado) es una especificación de

notación orientada a objetos, el cual se compone de diferentes

diagramas, que representan las diferentes etapas del desarrollo

del proyecto, detallamos los más importantes y los usados en

nuestra etapa de análisis.

2.6. Diagrama de Casos de Uso

El Diagrama de Casos de Uso va a representar gráficamente el

comportamiento de nuestro Portal Web presentando como el

mismo es visto y utilizado por los usuarios.

2.6.1. Casos de Uso

Page 44: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

34

Ver Anexo C

2.6.2. Descripción de Casos de Uso

Nombre: Crear registro de evaluaciónAutor: G5 EvaluacionesFecha 26/11/2008Descripción:Permite crear el registro de una evaluación.Actores:Usuario de Internet logeado.

Precondiciones:El usuario debe haberse logeado en el sistema

Flujo Normal:1. El actor pulsa sobre el botón para crear un nuevo registro de

evaluación.2. El sistema muestra varias cajas de texto, para introducir

datos como: tipo, categoría, tiempo de duración, valor de lanota.

3. El actor introduce el tipo, categoría, tiempo de duración,valor de la nota.

4. El sistema comprueba la validez de los datos y losalmacena.

Flujo Alternativo:4. El sistema comprueba la validez de los datos, si los datos no

son correctos, se avisa al actor de ello permitiéndole que loscorrija.

Pos condiciones:El registro ha sido almacenado en el sistema.

Nombre: Crear detalle de preguntas de la evaluaciónAutor: G5 EvaluacionesFecha 26/11/2008Descripción:Permite crear el registro de las preguntas de una evaluación.

Page 45: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

35

Actores:Usuario de Internet logeado.

Precondiciones:1. El usuario debe haberse logeado en el sistema2. Debe existir un registro previo de la evaluación

Flujo Normal:1. El actor pulsa sobre el botón para crear un nuevo registro de

preguntas.2. El sistema muestra varias cajas de texto, para introducir

datos como: descripción, cantidad de respuestas correctas,valoración.

3. El actor introduce el descripción, cantidad de respuestascorrectas, valoración.

4. El sistema comprueba la validez de los datos y los almacena.Flujo Alternativo:

4. El sistema comprueba la validez de los datos, si los datos noson correctos, se avisa al actor de ello permitiéndole que loscorrija

Pos condiciones:El registro ha sido almacenado en el sistema.

Nombre: Crear detalle de respuestas evaluaciónAutor: G5 EvaluacionesFecha 26/11/2008Descripción:Permite crear el registro de las respuestas de las preguntas deuna evaluación.Actores:Usuario de Internet logeado.

Precondiciones:1. El usuario debe haberse logeado en el sistema2. Debe existir un registro previo de la evaluación3. Debe existir por lo menos una pregunta

Page 46: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

36

Flujo Normal:1. El actor pulsa sobre el botón para crear un nuevo registro

de respuestas.2. El sistema muestra una caja de texto, para introducir la

descripción de la respuesta, además un casilla deverificación para indicar si la respuesta es verdadera ofalsa.

3. El actor introduce la descripción y selecciona la casilla deverificación.

4. El sistema comprueba la validez de los datos y losalmacena.

Flujo Alternativo:1. El sistema comprueba la validez de los datos, si los datos

no son correctos, se avisa al actor de ello permitiéndole quelos corrija.

Pos condiciones:El registro ha sido almacenado en el sistema.

Nombre: Activación de Evaluaciones

Autor: G5 Evaluaciones

Fecha 26/11/2008

Descripción:Permite registrar la activación de la evaluación a los estudiantes.

Actores:Usuario de Internet logeado.

Precondiciones:1. El usuario debe haberse logeado en el sistema2. Debe existir un registro previo de la evaluación

Flujo Normal:1. El actor pulsa sobre el botón para consultar los estudiantes

inscritos al curso.2. El sistema muestra una caja de texto, para introducir la

Page 47: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

37

fecha/ hora del inicio de la evaluación, además se presentauna casilla de verificación por cada estudiante registrado enla asignatura.

3. El actor introduce la fecha/hora del inicio y selecciona lacasilla de verificación por cada estudiante que se va aactivar la evaluación.

4. El sistema comprueba la validez de los datos y losalmacena.

Flujo Alternativo:4. El sistema comprueba la validez de los datos, si los datos

no son correctos, se avisa al actor de ello permitiéndole quelos corrija.

Pos condiciones:El registro ha sido almacenado en el sistema.

Nombre: Registro del Inicio de la Evaluación

Autor: G5 Evaluaciones

Fecha 26/11/2008

Descripción:Permite registrar el inicio de la evaluación del estudiante.

Actores:Usuario de Internet logeado.

Precondiciones:1. El usuario debe haberse logeado en el sistema2. Visualización de los exámenes autorizados y habilitados

para el estudiante.

Page 48: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

38

Flujo Normal:1. El actor pulsa sobre el link para consultar la información

detallada de la evaluación.2. El sistema muestra un encabezado con los datos

informativos de la evaluación: categoría y subcategoría delexamen, Número de preguntas que tiene el examen, Eltiempo que dispone el estudiante para contestar el examen.

3. El actor pulsa sobre el botón para iniciar la evaluación.4. El sistema comprueba la validez de los datos y los

almacena.Pos condiciones:El registro ha sido almacenado en el sistema.

Nombre: Desarrollo de EvaluacionesAutor: G5 EvaluacionesFecha 26/11/2008Descripción:Permite registrar las respuestas de las preguntas de la evaluaciónde los estudiantes.Actores:Usuario de Internet logeado.

Precondiciones:1. El usuario debe haberse logeado en el sistema.2. Debe existir un registro previo del inicio de la evaluación.

Flujo Normal:1. El actor pulsa sobre el link de la evaluación iniciada2. El sistema muestra un listado de preguntas con sus

respectivas respuestas en casillas de verificación.3. El actor selecciona la casilla de verificación por cada

respuesta múltiple, según crea conveniente.4. El sistema comprueba la validez de los datos y los almacena.5. El actor selecciona el botón de terminar examen.6. El sistema muestra la calificación porcentual de la revisión del

examen

Page 49: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

39

Flujo Alternativo:4. El sistema comprueba la validez de los datos, si los datos no

son correctos, se avisa al actor de ello permitiéndole que loscorrija.

Pos condiciones:El registro ha sido almacenado en el sistema.

2.7. Diagrama Entidad Relación

El Diagrama Entidad Relación representa las relaciones entre

los Objetos de Datos, es la notación que se usa para realizar la

actividad de Modelado de Datos, los atributos de cada objeto de

datos señalados en el DER se pueden describir mediante una

descripción de Objetos de Datos.

Para nuestro Diagrama Entidad Relación se ha considerado las

siguientes Entidades con sus respectivos campos:

Ver Anexo D

2.8. Diagrama de Contexto de Arquitectura yFuncionalidad.

Page 50: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

40

Figura 2.1. Arquitectura del Proyecto

Page 51: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

41

CAPÍTULO 3

3. DISEÑO

3.1. Diseño de Datos

La actividad principal del diseño de datos es seleccionar

representaciones lógicas de objetos de datos (estructuras de datos)

identificada durante la fase de definición y especificación de requisitos.

El proceso de selección puede incluir el análisis de estructuras

alternativas para determinar el diseño más eficaz o puede incluir

simplemente el empleo de un conjunto de módulos que proporcione

las operaciones deseadas sobre alguna representación de un objeto.

Unos datos bien diseñados pueden conducir a una mejor estructura y

modularidad del programa, y a una menor complejidad procedimental.

Page 52: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

42

Al diseñar nuestras estructuras de datos eficazmente debemos considerar

todas las operaciones que se van ha realizar sobre dichas estructuras,

como consultas, reportes y actualizaciones. Es esencial una clara

definición de la información para el éxito del desarrollo del proyecto.

A continuación se nombran y detallan las estructuras de datos definidas

para el proyecto:

3.1.1 Descripción de las Tablas

Tabla: TIPO_EXAMEN

Nombre Descripción TipoDato Long. Permite

Nulo?

id_tipo_examen Código del tipo de examen. Number 5 N

Descripción Descripción del tipo de examen. varchar2 50 N

usuario_ingresa Código del usuario del sistema que ingresael registro. Number 5 N

fecha_ingreso Fecha en la que el usuario ingresa elregistro Date N

usuario_modifica Código del usuario del sistema quemodifica el registro.

Number 5 S

fecha_ultima_modificacion Fecha en la que el usuario modifica elregistro Date S

Descripción: tabla de catálogo que contiene información de los tipos

de exámenes con los que cuenta el Sistema para realizar la

evaluación.

Page 53: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

43

Tabla: CATEGORIA_PREGUNTA

Nombre Descripción TipoDato Long. Permite

Nulo?

id_categoria_preguntaCódigo de la categoría de la preguntausada en el examen Number 5 N

id_padre Código de la sub-categoría de lapregunta. Number 5 N

Nombre Nombre de la categoría de la pregunta. varchar2 50 N

Descripción Detalle de la categoría. varchar2 100 S

usuario_ingresaCódigo del usuario del sistema queingresa el registro. Number 5 N

fecha_ingreso Fecha en la que el usuario ingresa elregistro Date N

usuario_modificaCódigo del usuario del sistema quemodifica el registro. Number 5 S

fecha_ultima_modficacion Fecha en la que el usuario modifica elregistro Date S

Descripción: tabla de catálogo que almacena la información de

las categorías y subcategorías de las preguntas que son

utilizadas en el desarrollo de la evaluación.

Tabla: EXAMEN

Nombre Descripción TipoDato Long. Permite

Nulo?

id_examen Código del examen realizado. number 5 N

Page 54: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

44

id_tipo_examen Código del tipo de examen. number 5 N

Introducción Breve descripción en donde se indica elobjetivo del examen. Varchar2 1500 N

is_permite_abrir Indica si un examen está disponiblepara el alumno. varchar2 1 N

is_permite_cerrar Indica si un examen puede sercancelado por el alumno. varchar2 1 N

fecha_inicio Almacena la fecha en la que se activael examen. date N

fecha_fin Almacena la fecha en la que sedesactiva el examen. date N

is_limite_tiempo Indica si el examen posee límite detiempo para su desarrollo. varchar2 1 N

is_habilita_tiempoRegistra si se ha activado o no lacorrida del tiempo para la elaboraciónde la evaluación

varchar2 1 N

tiempo_primero_segundo varchar2 5 N

Num_max_preguntas Número máximo de preguntas que tieneun examen. number 5 N

is_pregunta_aleatoria Indica si el examen contiene preguntasgeneradas aleatoriamente. varchar2 1 N

is_respuesta_aleatoriaIndica si el examen contiene opcionesde respuestas generadasaleatoriamente.

varchar2 1 N

is_aplica_penalizacion varchar2 1 N

is_ventana_segura Indica si el examen se abre en unaventana con acceso seguro. varchar2 1 N

is_requiere_contraseñaDetalla si para acceder un examen esnecesaria una contraseña. varchar2 1 N

calificación_maxima Calificación máxima que se obtiene enla evaluación. number 5 N

id_estado Código del estado del registro. number 5

usuario_ingresa Código del usuario del sistema queingresa el registro. number 5 N

Page 55: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

45

usuario_modificaCódigo del usuario del sistema quemodifica el registro. number 5 S

fecha_ingresa Fecha en la que el usuario ingresa elregistro date N

fecha_ultima_modificacion Fecha en la que el usuario modifica elregistro date S

id_parcial Código del parcial number 5 N

id_periodo_lectivo Código del periodo lectivo number 5 N

id_materia Código de la materia number 5 N

Id_contraseña Detalle de la contraseña para abrir elexamen Varchar2 32 N

Descripción: en esta tabla se almacenará la información

general (parámetros de visualización, calificación, entre otros)

del examen que es elaborado para realizar la evaluación de una

materia en un paralelo específico.

Page 56: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

46

Tabla: PREGUNTA

Nombre Descripción TipoDato Long. Permite

Nulo?

id_pregunta Código de la pregunta number 5 N

id_categoria_preguntaCódigo de la categoría a la quepertenece la pregunta. number 5 S

id_tipo_pregunta Código del tipo de pregunta. number 5 N

Descripción Enunciado de la pregunta. varchar2 500 N

Calificación Valor de la pregunta cuando es correcta. number 5 N

Msg_general Mensaje general que es mostrado aldesarrollar la pregunta. varchar2 500 S

factor_penalizacion Valor del factor de penalización aplicadaa la pregunta. number 5 N

usuario_ingresa Código del usuario del sistema queingresa el registro.

number 5 N

usuario_modifica Código del usuario del sistema quemodifica el registro. number 5 S

fecha_ingreso Fecha en la que el usuario ingresa elregistro date N

fecha_ultima_modificacion Fecha en la que el usuario modifica elregistro date S

Bin Campo que guarda imagen de lapregunta blob S

Nombre_archivo La ruta y nombre del archivo de laimagen Varchar2 255

Descripción: tabla de catálogo que registra la información delas preguntas y sus características.

Tabla: RESPUESTA

Page 57: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

47

Nombre Descripción TipoDato Long. Permite

Nulo?

id_respuesta Código de la respuesta de la pregunta. number 5 N

id_pregunta Código de la pregunta. number 5 S

Respuesta Texto de la respuesta. varchar2 500 N

Calificación Valor numérico de la respuesta. number 5 N

margen_error Valor del margen de error de larespuesta. number 10 N

respuesta_correcta Indica si la respuesta es la valida. varchar2 1 N

usuario_ingresa Código del usuario del sistema queingresa el registro. number 5 N

usuario_modifica Código del usuario del sistema quemodifica el registro. number 5 S

fecha_ingresa Fecha en la que el usuario ingresa elregistro date N

fecha_ultima_modificacion Fecha en la que el usuario modifica elregistro date S

Descripción: tabla de catálogo en la que se ingresan las

respuestas por cada pregunta con características propias para

cada tipo de pregunta.

Tabla: PREGUNTA_EXAMEN

Nombre Descripción TipoDato Long. Permite

Nulo?

id_examen Código del examen. number 5 N

id_pregunta Código de la pregunta. number 5 N

usuario_ingresa Código del usuario del sistema que number 5 N

Page 58: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

48

ingresa el registro.

usuario_modifica Código del usuario del sistema quemodifica el registro. number 5 S

fecha_ingreso Fecha en la que el usuario ingresa elregistro date N

fecha_ultima_modificacionFecha en la que el usuario modifica elregistro date S

Calificación Valor de la pregunta Number 5 S

Descripción: en esta tabla se registran todas las preguntas que

son asignadas por el profesor para ser visualizadas en un

examen en particular.

Tabla: EXAMEN_ALUMNO

Nombre Descripción TipoDato Long. Permite

Nulo?

id_secuencia Secuencia del examen tomado a un alumno. number 5 N

id_examen Código del examen. number 5 N

id_usuario Código del alumno que realiza laevaluación. number 5 N

Nota_total Suma total de los valores de las respuestasde las preguntas hechas en el examen. number 5 N

fecha_inicio Fecha en la que el alumno inicia el examen. date S

fecha_termina Fecha en la que el alumno finaliza elexamen. date S

fecha_public Fecha en la que se publica la nota delexamen obtenida por el alumno. date S

Page 59: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

49

fecha_venceFecha en la que un examen se establececomo vencido. date N

id_estado Código del estado del registro. number 5 S

usuario_ingresa Código del usuario del sistema que ingresael registro. number 5 N

usuario_modifica Código del usuario del sistema que modificael registro. number 5 S

fecha_ingreso Fecha en la que el usuario ingresa elregistro date N

fecha_ modifica Fecha en la que el usuario modifica elregistro date S

cont_penaliza Contador de las penalizaciones number 5 S

suma_penaliza Suma de las penalizaciones number 5 S

Nota_parcial Nota del examen obtenido Number 5 S

observación Instrucciones de las reglas del examen varchar2 50 S

Descripción: tabla en la cual se registra la información de la

asignación de exámenes por alumno, así como registrar la nota

demás parámetros con los resultados obtenidos por la

resolución del examen.

Tabla: RESPUESTA_EXAMEN

Nombre Descripción TipoDato Long. Permite

Nulo?

id_examen Código del examen. number 5 N

Page 60: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

50

id_pregunta Código de la pregunta. number 5 N

id_secuencia Secuencia del registro del examen asignadopor alumno.

number 5 N

id_respuesta Código de la respuesta seleccionada por elalumno.

number 10 N

descripcion Texto de descripción de la respuesta. varchar2 500 N

respuesta Texto de la respuesta seleccionada por elalumno. varchar2 1 S

Nota_parcial Valor parcial de la pregunta de acuerdo a larespuesta seleccionada. number 5 N

valoración Número que indica la valoración de larespuesta. number 5 N

usuario_ingresa Código del usuario del sistema que ingresael registro. number 5 N

usuario_modifica Código del usuario del sistema que modificael registro. number 5 S

fecha_ingresaFecha en la que el usuario ingresa elregistro date S

fecha_modifica Fecha en la que el usuario modifica elregistro

Descripción: tabla en la cual se registran todas las respuestas

a las preguntas que fueron asignadas en el examen que es

realizado por el alumno.

3.2. Diseño de la Interfaz

Page 61: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

51

El diseño de la interfaz Describe como se comunica el Software

consigo mismo, con los sistemas que operan junto con el y con

los operadores y usuarios que lo emplean.

La interfaz grafica de un software es el límite y espacio común

en el que interactúan el usuario y el software. Esta misma

versatilidad obliga a ser muy cuidadosos, y tener en cuenta que

buena estética no significa buena usabilidad, es por esto que

nos esforzamos por brindar lo mejor en diseño web para así

hacer mas usable y fácil nuestro sistema.

Es muy frecuente encontrar interfaces para el WEB en las que

no se considero que el usuario no es en la mayoría de los casos

un experto en computación, sino que la aplicación puede ser

usada por un público diverso, que puede incluir personas con

características especiales, al parecer es fácil olvidar que es el

usuario quien determina el éxito o fracaso de una aplicación de

software. Incluir solamente características estéticas en una

interfaz sin considerar seriamente la usabilidad de la misma

provoca un fuerte desaliento en el usuario.

Page 62: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

52

Lo deseable es que las interfaces de aplicaciones para el WEB

sean fáciles de usar, fáciles de navegar, agradables al usuario,

que contengan elementos bien distribuidos, de tal forma que no

se haga una saturación de la página y que la Interfaz realmente

contenga la información que el usuario espera de ella además

de que por supuesto, debe ser agradable visualmente.

3.2.1 Pagina Inicial

Antes de ingresar a la pantalla principal, tenemos que acceder

al Sistema del Aula Virtual con un código de usuario y según

este código se mostraran las diferentes opciones en el árbol.

Figura 3.1. Inicio sesión Administrador

Page 63: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

53

Esta pantalla le muestra al usuario en primera instancia todas

las opciones que tiene con respecto a la Página, opciones

como: Página Principal, y las diferentes opciones que se

despliegan en este menú para el desarrollo de las evaluaciones,

las mismas que mostramos a continuación:

Figura 3.2. Pantalla Principal Administrador

3.2.2 Pantalla Categoría de Preguntas

La siguiente pantalla me permite darle mantenimiento a la

categoría de preguntas, el mismo que me permite guardar,

consultar individual y grupal los registros, eliminar, recorrer los

registros uno a uno, salir etc.

Page 64: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

54

Figura 3.3. Categoría Preguntas

3.2.3 Pantalla de Mantenimiento de Preguntas

Las siguientes pantallas son de mantenimiento de preguntas, en

esta pantalla manejamos dos pestañas donde tenemos que

registrar los datos para la pregunta en la primer pestaña y en la

segunda las respuestas que se asignará a la pregunta que se

esta creando.

Esta pantalla me permite guardar, consultar, recorrer los

registros, borrar pantalla, etc.

Cuando registramos datos en la pregunta tenemos la ventaja de

poder cargar imágenes .gif las mismas que tienen que estar

guardadas en una dirección especifica, en nuestro caso en :

c:\AulaVirtual\Imagen001.gif.

Page 65: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

55

Figura 3.3. Pestaña Pregunta

Figura 3.4. . Pestaña Respuestas.

En la pestaña de las respuestas tenemos que registrar las

respuestas probables incluida la verdadera o verdaderas, según

Page 66: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

56

sea el caso, es decir dependiendo de la pregunta que se ha

creado.

3.2.4 Pantalla de Mantenimiento de Evaluaciones

Las evaluaciones que se le designan a los alumnos que tienen

asignada la tarea, deben resolver una Evaluación, el mismo que

vamos a describir como se lo crea.

Figura 3.5 Pestaña Evaluación

Page 67: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

57

Como observamos la pantalla anterior para la creación de

evaluaciones es necesario seguir un orden de pasos para lograr

con éxito la creación de un examen en este módulo.

Luego tenemos la pestaña donde manejamos las preguntas

que vamos a escoger para agregar a la evaluación.

Figura 3.6 Pestaña Banco de Preguntas

Y la siguiente pantalla Mostrará todas las preguntas que se

escogieron previamente en la pantalla de Banco de Preguntas.

Page 68: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

58

Figura 3.7 Pestaña Preguntas Seleccionadas

La siguiente pantalla Mostrará todos los alumnos que están

inscritos, para dar la evaluación en esta materia.

Page 69: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

59

Figura 3.8 Pestaña Alumnos Autorizados

3.2.5 Pantalla de Reporte de Evaluaciones por Alumno

Figura 3.9 Reporte de Evaluaciones por Alumno

Page 70: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

60

3.2.6 Pantalla de Reportes de Evaluaciones por Materia

Figura 3.10 Reporte de Evaluaciones por Alumno

3.2.7 Pantalla de Reporte de Lista de Categorías

Figura 3.11 Reporte de Evaluaciones por Alumno

3.2.8 Pantalla de Reporte de Alumnos activos por Evaluación

Page 71: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

61

Figura 3.12 Reporte de Evaluaciones por Alumno

3.2.9 Pantalla Evaluación al Docente

Figura 3.13 Reporte de Evaluaciones por Alumno

Page 72: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

62

CAPÍTULO 4

4. DESARROLLO Y PRUEBA DEL SISTEMA

Desarrollo del Sistema

Creación de la base de datos

La primera tarea que tendrá que realizar un Administrador de Base

de Datos es la creación correcta de la Base de Datos. Físicamente

hablando, una base de datos no es más que un conjunto de

archivos que son almacenados en un dispositivo de

almacenamiento y a la que se definen un conjunto de propiedades.

Esta definición constituye la primera perspectiva utilizada para

definir una base de datos. Oracle 10g provee de la primera

infraestructura completa e integrada para potenciar el grid

computing.

Page 73: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

63

Oracle 10g recoge los atributos fundamentales de esta tecnología

de computación:

Implementar uno a partir de muchos (Implement One from Many)

: Se trata de conseguir que un número indeterminado de máquinas

funcionen como una sola. Para ello, se tiene que aplicar un proceso

de virtualización en todas las capas del sistema y una zona común

donde se almacenen los recursos (resource pooling).

Administrar Muchos como si fueran Uno (Manage Many as One):

Para conseguirlo debemos contar con un software a medida y de un

sistema de administración centralizado.

Los dos puntos anteriores deben aplicarse a cada elemento del grid:

sistemas de almacenamiento, bases de datos, servidores de

aplicación y aplicaciones.

Figura 4.1 Estructura de Oracle

Page 74: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

64

Como se puede comprobar, la apuesta de Oracle por la tecnología

Grid Computing se basa en sus tres productos fundamentales:

Oracle 10g Database.

Oracle 10g Application Server.

Oracle Enterprise Manager 10g Grid Control.

Oracle Database 10g

Esta construida sobre el éxito de la versión anterior, Oracle 9i, y

añade muchas nuevas características enfocadas al Grid

Computing. Mientras otros fabricantes implementan ciertas

secciones de una tecnología grid, como por ejemplo una zona de

almacenamiento común, Oracle es la primera compañía en ofrecer

una base de datos para grid real. Oracle 10g se basa en Real

Application Clusters, una opción incluida ya en Oracle 9i, y muchos

clientes en producción sirven para asegurar la utilidad y fiabilidad

de esta herramienta.

Real Application Clusters (RAC)

Oracle Real Application Clusters permite que una única base de

datos se expanda por múltiples nodos en un grid o red, uniendo los

Page 75: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

65

recursos de varias máquinas. Esto que requería un proceso en

versiones anteriores del servidor se puede hacer inmediatamente

en Oracle 10g, y se puede empezar a balancear el flujo de trabajo

hacia la nueva máquina que se incorpora al grid, a la vez que

"abandonarla" cuando ya no es necesaria. Otros Sistemas de

Bases de Datos no pueden hacer esto dinámicamente cuando la

BD se encuentra ejecutándose.

El nuevo software de cluster en Oracle 10g simplifica el proceso

eliminando la necesidad de adquirir, instalar y configurar estas

herramientas de terceros. Se pueden añadir servidores a la vez

que eliminarlos en un cluster Oracle sin tiempo de inactividad, es

decir, sin detener la BD, sin importar tampoco la plataforma donde

se encuentra instalado el servidor.

Administración Automática del Espacio de

Almacenamiento (Automatic Storage Management, ASM)

Esta nueva herramienta trata de simplificar la administración del

espacio para las BDs Oracle. En vez de manejar numeroso

archivos para una base de datos, el Administrador de la BD sólo

gestiona un pequeño número de grupos de disco .

Un grupo de disco es un conjunto de dispositivos físicos de disco

que Oracle maneja como una única unidad lógica. Un DBA puede

definir un disk group como el predefinido para una base de datos, y

Oracle automáticamente gestiona ese espacio para crear y eliminar

Page 76: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

66

los ficheros relacionados con los objetos de la Base de Datos.

También permite la integración con sistemas de almacenamiento

tipo RAID o Logical Volume Managers (LVMs). Otra ventaja de

ASM es que está concebido por Oracle, con lo cual su integración

con el resto de productos es mucho mayor.

Ubicación de los datos

Dependiendo del volumen de información y la frecuencia de acceso,

puede resultar necesario mover los datos desde donde se encuentran

ubicados y compartirlos entre varias Bases de Datos. Oracle 10g

añade nuevas características en este sentido como las herramientas

Import/Export Data Pump o los Tablespaces Transportables.

También tenemos la opción de Oracle Streams , que permite la

migración de datos entre dos BDs mientras ambas están online y sin

importar el SO donde se encuentren.

Base de Datos Auto-Administrada

El primer paso a dar para pasar a una estructura de grid es intentar

que cada sistema individual requiera de menos atención humana.

Oracle 10g incluye estructuras inteligentes que toman instantáneas de

las estadísticas del sistema y las almacenan para que sean analizadas

por los "consejeros" (advisors) y se tomen medidas correctivas

automáticamente sin intervención del administrador.

Page 77: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

67

Problemas que se pueden identificar automáticamente son por

ejemplo, sentencias SQL mal construidas, problemas de red, o

retardos demasiado grandes debido a los bloqueos. Otros problemas u

alertas pueden ser enviados al DBA vía e-mail.

Oracle Application Server 10g

Oracle Application Server 10g proporciona una plataforma para

desarrollar y ejecutar aplicaciones empresariales, integrando muchas

funciones por ejemplo un entorno de ejecución para Web Services y

J2EE, complementos de Business Intelligence o una web caché entre

otras, aparte de características especialmente enfocadas al grid.

Application Server Clusters

Los servicios que proporciona Oracle Application Server 10g (HTTP,

J2EE, Web Cache, Web Services, LDAP, portales) se pueden abstraer

o virtualizar a través de los clusters de Application Servers. Estos

servicios pueden ser distribuidos en varias máquinas del grid. Como

nueva característica interesante indicar que se pueden fijar umbrales

de rendimiento para decidir si automáticamente se añaden o se

eliminan nuevas instancias de Application Server al grid ("Capacity on

demand").

Page 78: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

68

Con Oracle 10g, un DBA puede definir un conjunto de políticas o

reglas de negocio que afectan a como se distribuye el trabajo entre los

diferentes nodos del grid. Por ejemplo, la carga de trabajo puede variar

en función de los usos de cpu o memoria, o también puede variar en

función de las horas del día, teniendo en cuenta los picos de trabajo.

Hay que tener en cuenta que con la estructura de grid conseguimos

otro importante objetivo: la reducción del tiempo de caída de los

sistemas. Es más, si tenemos en cuenta que si uno de los servidores

de aplicación falla, simplemente las peticiones serán redireccionadas

hacia otro nodo, se tendrían que caer todos los nodos para que el

sistema dejase de funcionar.

También hay que indicar que Oracle Application Server 10g

proporciona un sitio centra de administración, para dar acceso o

revocarlo a los usuarios de las aplicaciones. Esto es muy importante si

tenemos en cuenta que podemos tener un alto número de servidores

en nuestro grid. Los usuarios y demás identidades también pueden

gestionarse a través de Oracle Internet Directory , un sistema

basado en directorio LDAP.

Entorno para el desarrollo de Aplicaciones

Firmemente integradas con el servidor de aplicaciones Oracle 10g

están las herramientas de desarrollo que permiten generar

Page 79: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

69

aplicaciones a medida por Internet para luego fácilmente desplegarlas

en el servidor de aplicaciones. No es necesario ningún proceso extra:

las aplicaciones que se coloquen en un servidor de aplicaciones que

esté en un grid se beneficiaran inmediatamente de la distribución

transparente de la carga de trabajo, balanceo de carga y la eficiente

coordinación del trabajo en los servidores.

Para conseguir las capacidades de grid computing es interesante que

las aplicaciones sean capaces de compartir información entre ellas y a

la vez con las herramientas de gestión. Por ello se recomienda la

adopción de estándares para reducir el tiempo de desarrollo y los

costes de uintegración.

Oracle Enterprise Manager 10g Gris Control

Oracle Enterprise manager 10g Grid Control es la consola central de

administración y el entorno que automatiza las tareas administrativas

para el conjunto de sistemas implicados en un entorno grid. Esta

consola ayuda a reducir los costes de administración; con ella, los

DBAs pueden agrupar múltiples nodos hardware como bases de

datos, servidores de aplicación, servidores web etc. como si fueran

unidades lógicas. Ejecutando trabajos, diseñando políticas,

monitorizando el rendimiento y automatizando muchas otras tareas

Page 80: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

70

sobre un conjunto de destinos en vez de sobre muchos sistemas

individuales, la OEM Grid Control permite escalar un grid fácilmente.

Debido a esta característica, la existencia de muchas pequeñas

máquinas no incrementa la complejidad de la administración.

Debido al gran número potencial de nodos físicos en un grid, es

especialmente importante que la instalación y configuración del

software de esas máquinas sea rápida y no requiera intervención

humana. Pensemos que instalar manualmente cientos de nodos

requeriría un gran consumo de tiempo o que puede llegar a ser

imposible si las máquinas están dispersas geográficamente. Con OEM

Grid Control, Oracle 10g automatiza la instalación, configuración y

clonación de servidores de aplicación y de bases de datos sobre

múltiples nodos. Este entorno puede utilizarse tanto para la adición de

nuevos sistemas como para aplicar parches o añadir utilidades a

sistemas ya existentes. También mantiene la sincronía entre los

nodos.

Estándares de Gris

Con Oracle 10g, las compañías pueden empezar a implementar sus

estructuras de Grid Computing, pero el estándar abierto fue

Page 81: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

71

concebido primeramente por el GGF (Global Grid Forum). Este

organismo ha definido un estándar (Open Grid Services Architecture,

OGSA ) para asentar los servicios generales y estándares de

programación que mejor se adaptan al grid computing.

Creación de los objetos de la base de datos

La segunda perspectiva que tenemos para definir una base de

datos es la manera lógica. Lógicamente, una base de datos es un

conjunto de datos que se encuentran estructurados en tablas y

otros objetos que ayudan a definir los mecanismos que mantienen

la integridad entre los datos. En la tabla siguiente se describen los

objetos de una base de datos SQL.:

Objeto Descripción

Tablas Define un conjunto de filas que tienecolumnas asociadas.

Tipos de datos definidos por elusuario

Los tipos de datos definidos por el usuario sebasan en los tipos de datos del sistema deOracle Database 10g. Se pueden utilizarcuando varias tablas deben almacenar elmismo tipo de datos en una columna y deseaasegurarse de que dichas columnas tienenexactamente el mismo tipo de datos, longitudy condición que la aceptación de valoresNULL.

RestriccionesDefine reglas relativas a los valorespermitidos en las columnas y es elmecanismo estándar para exigir la integridad

Page 82: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

72

de los datos. Es preferible utilizarlos endesencadenadores, reglas y valorespredeterminados.

Índices

Un índice de una base de datos es una listade los valores de una tabla con las posicionesde almacenamiento de las filas de la tabladonde se encuentra cada valor. Se puedencrear índices en una sola columna o en unacombinación de columnas de una tabla.

Claves

Una clave principal es un conjunto decolumnas de una tabla que tienen la garantíade poseer valores únicos para cada fila dedicha tabla.

Procedimientos almacenados

Los procedimientos almacenados son unacolección precompilada de instrucciones SQLe instrucciones de control de flujo opcionalesalmacenadas bajo un solo nombre yprocesadas como una unidad. Losprocedimientos almacenados se guardan enuna base de datos; se pueden ejecutar desdeuna aplicación y permiten variablesdeclaradas por el usuario, ejecucióncondicional y otras funciones eficaces deprogramación.

Desencadenadores

Un desencadenador es un tipo especial deprocedimiento almacenado que entra en vigorcuando se modifican datos en una tablaespecificada utilizando una o másoperaciones de modificación de datos:UPDATE (actualización), INSERT (inserción)o DELETE (eliminación)

Page 83: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

73

Funciones definidas por elusuario

Las funciones, en los lenguajes deprogramación, son subrutinas que se utilizanpara encapsular lógica que se ejecutafrecuentemente. Un código que deba ejecutarla lógica incorporada en una función puedellamarla en vez de tener que repetir toda lalógica de la función.

Vistas

Una vista es tan sólo una consulta deselección (SELECT) guardada en la base dedatos. Por tanto, la mayoría de lasoperaciones que se pueden realizar enconsultas también se pueden realizar envistas. No obstante, hay algunas operacionesque sólo se pueden aplicar a consultas o avistas pero no a ambas.

Valor predeterminadoLos valores predeterminados especifican quévalores se utilizan en una columna si no seespecifica un valor al insertar las filas.

Creación de los componentes

Para la creación de cada uno de los componentes la carga de trabajo

fue distribuida en los siguientes 6 módulos:

Administración de Evaluaciones

Generación de Evaluaciones

Administración de Preguntas y Respuestas

Procesos de Evaluaciones Docente y Alumnos

Reportes

Estos módulos fueron distribuidos entre los 3 miembros del grupo de

desarrollo de la siguiente manera:

Page 84: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

74

Módulos Desarrolladores

Administración de EvaluacionesAlberto Mena

Alexandra Cabrera

Generación de EvaluacionesAlberto Mena

Alexandra Cabrera

Adm. de Preguntas y RespuestasFernanda Ladinez

Alexandra Cabrera

Evaluaciones Docente y AlumnosAlberto Mena

Fernanda Ladinez

ReportesAlexandra Cabrera

Fernanda Ladinez

Seguridad

Dado que la seguridad de la información es un factor de alta prioridad

para toda institución, nuestro software proporciona alto nivel de

seguridad en la información almacenada por los usuarios, haciendo

muy difícil la alteración y/o modificación inapropiada de la misma.

Las características de seguridad descritas a continuación se

encuentran implementadas en la nuestra solución, y estas son:

Registros de auditoría (Log de transacciones)

Page 85: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

75

Lo cual permitirá auditar y hacer seguimiento de los últimos

accesos y modificaciones realizados por los usuarios a la

información del sistema.

Contraseñas de usuarios enmascaradas (Encriptación)

Todas las contraseñas de usuarios se encuentran

enmascaradas haciendo uso de un algoritmo HASH

(conocido por su efectividad en transformación de claves), lo

cual impedirá que los intrusos puedan copiar o alterar las

contraseñas de los usuarios del sistema.

Encriptación de datos

El sistema mantiene claves privadas para efectos de

encriptación de información críticos en la base de datos.

Pruebas del Sistema

Modelo de Prueba

Los ingenieros, analistas y desarrolladores de sistemas a menudo

tratan las pruebas del sistema como un factor sin mucha importancia,

desarrollando casos reprueba con poca garantía de ser completos y

efectivos. La solución entregada se la puede comprobar de las

siguientes 2 maneras:

Conociendo la función específica para la que fue diseñado el

proyecto, llevando a cabo pruebas que demuestre que cada

Page 86: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

76

función es completamente operativa, y al mismo tiempo

buscando errores en cada función.

Conociendo el funcionamiento del producto, se pueden

desarrollar pruebas que aseguren que la función interna se

ajusten a las especificaciones y que todos los componentes

internos se han comprobado de forma adecuada.

Los métodos utilizados para el desarrollo de las pruebas por los

miembros de esta tesis son:

Prueba de caja negra

Prueba de caja blanca

Prueba de la Caja Negra

Se centran en los requisitos funcionales del sistema, permitiéndonos

obtener conjuntos de condiciones de entrada que ejerciten

completamente todos los requisitos funcionales de un programa. Con

este método de prueba se busca encontrar errores en las siguientes

categorías:

Funciones incorrectas o ausentes.

Errores de interfaz.

Errores en estructuras de datos o accesos a base de datos

externas.

Errores de rendimiento

Errores de inicialización de terminación.

Page 87: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

77

Prueba de la Caja Blanca

Se basa en el minucioso examen de los detalles procedimentales. Se

comprueban los caminos lógicos del sistema proponiendo casos de

prueba que ejerciten conjuntos específicos de condiciones y/o bucles.

Se puede examinar el estado del programa en varios puntos para

determinar si el estado real coincide con el esperado. Con este

método se busca encontrar casos de prueba que:

Garanticen que se ejercita por lo menos una vez todos los

caminos independientes de cada módulo.

Ejerciten todas las decisiones lógicas en sus vertientes

verdadera y falsa

Ejecuten todos los bucles en sus límites y con sus límites

operacionales, y

Ejerciten las estructuras internas de datos para asegurar su

validez.

Calidad del Sistema

En nuestro sistema la calidad esta en función de los alcances definidos en

la etapa de análisis, y como los estos fueron cumplidos en su totalidad

podemos concluir que el proyecto cumple con la calidad esperada por

todos nosotros, haber cumplido los propósitos planteados al inicio.

Page 88: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

78

Además debemos tomar en consideración que utilizar un modelo de

programación orienta a objetos permite la reutilización de métodos, clases

y componentes; sean estos existentes o desarrollados por nosotros, un

punto muy importante, ya que el modelo permitirá una actualización de

toda la información que se manipula debido a la independencia de los

procesos.

Page 89: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

79

CAPÍTULO 5

5. IMPLEMENTACIÓN DEL SISTEMA

5.1. Elementos Físicos

Entre los elementos físicos que se necesitan para la correcta

implementación del sistema podemos mencionar los siguientes que no

podrían ser los definitivos pero si los mínimos necesarios para el buen

funcionamiento de la misma.

Por estación a ser instalada

250 MB de RAM o superior

40 GB de disco duro o superior

Procesador P IV de 2.8 Ghz

Monitor de 15’

Sistema Operativo Windows 2000 o superior

Para el servidor de Base de Datos

512 MB de RAM

Page 90: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

80

80 GB de disco duro (con preferencia disco SCSI)

Procesador PIV de 3 Ghz o superior

Monitor 15’

Sistema Operativo Linux

5.2. Elementos Lógicos

Sistema operativo instalado en las maquinas destinadas para la

utilización del sistema (Windows XP ó Superior).

Como Base de Datos Oracle 10g Express Edition

5.3. Elementos Humanos

Administrador de la aplicación, encargado de dar soporte al

sistema y a los usuarios cuando estos lo ameriten.

Administrador encargado de la tarea de la “Generación de

Evaluaciones” otra de las funcionalidades que brinda el

sistema.

5.4. Infraestructura

Los equipos en los cuales se va a utilizar el sistema deben

estar en un lugar seguro, con todas las seguridades

respectivas para la prevención en el caso de que ocurre algún

problema.

Page 91: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

81

El administrador central del sistema deberá aplicar las políticas

de seguridad que el crea necesarias para el buen manejo de la

información, a través de al generación reportes, sacar

respaldos de las Bases de Datos los mismo que de4berian ser

guardados en un lugar ajeno a la empresa, etc.

5.5. Capacitación de los usuarios.

La capacitación de los usuarios estará dirigida por personal de

la carrera pero con la colaboración nuestra, valiéndose del

conocimiento nuestro como desarrolladores y con la ayuda de

los manuales previamente elaborados por nosotros (Manual

Técnico, Manual de Usuario, etc).

Esperamos contar con el apoyo del personal administrativo para

que designe al personal más adecuado para la capacitación del

sistema.

Page 92: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

82

CAPÍTULO 6

6. RECOMENDACIONES Y CONCLUSIONES DE LA

TESIS

Recomendaciones

A continuación detallaremos ciertas recomendaciones básicas que

tienen que ser tomadas en cuenta para lograr tener un

funcionamiento eficaz de la solución aplicada para esta tesis.

Tenga en cuenta las siguientes recomendaciones al diseñar una

aplicación o servicio.

6.1.1. Hardware

Tomando en consideración que la solución brindada se basa

en su gran parte en la ejecución de algoritmos y procesos

complejos con una continua conexión a la base de datos, razón

por la cual los equipos sobre los que funcione la aplicación

deberán poseer una gran capacidad de procesamiento y

memoria.

Bajo este contexto recomendamos que los requerimientos

básicos mínimos que deben tener estos equipos son:

Page 93: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

83

Procesador Pentium IV de 2.4 GB o superior.

512 MB de memoria RAM en adelante.

Considerar el uso de equipos de respaldo nos daría la

seguridad de la información ante cualquier falla del equipo

donde este instalada la base de datos.

6.1.2. Software

El software del equipo debe estar previamente instalado y debe

contar con sus propios esquemas de seguridades, basados en el

nivel de sus componentes, y que en la mayoría de los casos está

dada por la herramienta que se use para el desarrollo de las

aplicaciones, bajo estas condiciones denotamos a continuación:

Sistema Operativo Windows XP o superior para los

equipos donde esté instalada la solución.

Servidor de Base de Oracle 10g Express Edition;

tomando en cuenta que la aplicación maneja las

Interfaces con la Base de Datos a través de

procedimientos almacenados, lo que ofrece la

oportunidad de migrar a otro motor de datos sin

necesidad de tener que realizar cambios en las

aplicaciones.

Page 94: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

84

6.1.3. Seguridades

Las interfaces de los programas que forman parte de la solución

son aplicación mediante el navegador web, e Intranet razón por la

cual no están abiertas ante los piratas informáticos a través de

Internet, las seguridades a nivel del equipo se manejan

directamente por el Sistema Operativo, mientras que las

seguridades dentro de la aplicación se definen dentro de los

programas de seguridad del mismo. Se recomienda crear varios

perfiles para tener varios niveles de usuarios lo que permitirá tener

un mejor control sobre las opciones y procesos vitales de la

solución.

Ofrece la aplicación además un módulo de auditoría y un módulo

de encriptación de claves que me ayudan a llevar un control sobre

el uso debido de cambios en datos y transacciones como la

confidencialidad de la información almacenada en la Base de

Datos.

Conclusiones

La tecnología avanza cada vez con más frecuencia en nuestro país

y hoy en día es muy común ver que la mayoría de las empresas

Page 95: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

85

implementen sistemas de información con el propósito de

sistematizar los procesos de sus negocios.

Siguiendo esa tendencia las instituciones educativas no se han

quedado atrás y la automatización de sus operaciones es un logro

que ha ido evolucionando a pasos agigantados.

Bajo este esquema la solución presentada en esta tesis confluye

con los aspectos mencionados y cumple con el objetivo primordial

de reemplazar procesos manuales y tediosos con una herramienta

útil capaz de realizarlos de forma automática en forma rápida y

eficaz ahorrando de esta forma tiempo y recursos.

Page 96: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

86

GLOSARIO

Acción:

Indica las diferentes acciones que se pueden realizar en una

determinada pantalla, estas pueden ser Nuevo, Modificar, Consultar,

entre otras.

Administrador:

Usuario con un conjunto definido de privilegios administrativos.

Alumno:

Tipo de usuario final de la aplicación, el mismo que tendrá entre otrasopciones, la ejecución de las evaluaciones autorizadas.

Archivo de Configuración:

Archivo que contiene los parámetros de configuración de un

componente específico del sistema de mensajería.

Arquitectura:

Diseño que muestra los bloques de construcción física y lógica de una

aplicación distribuida (u otro sistema de software) y las relaciones que

se establecen entre sí.

Base de Datos:

Page 97: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

87

Termino genérico que se utiliza para designar el sistema de

administración de base de datos relacionales (RDBMS). Paquete de

software que permite crear y manipular grandes cantidades de datos

relacionados y organizados.

Componente:

Es un pequeño programa u objeto binario que realiza una función

específica y está diseñado de modo que pueda operar fácilmente con

otros componentes y aplicaciones.

Consulta:

Sinónimo de búsqueda que utiliza los parámetros especificados para

ordenar los datos.

Clientes:

Máquinas en las que el usuario realiza su trabajo y que utilizan para

ello y en parte, los servicios proporcionados por los servidores.

Desencriptar:

Proceso inverso a la encriptación, usar algoritmos para retornar texto

cifrado a su formato normal.

Edificio:

Hace referencia al o los edificios físicos que posee la Carrera de

Ingeniería de Sistemas.

Encriptar:

Page 98: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

88

Proteger archivos expresando su contenido en un lenguaje cifrado.

Los lenguajes cifrados simples consisten, por ejemplo, en la

sustitución de letras por números mediante complejos algoritmos.

Evaluacion:

Hace referencia a las plantillas creadas en base a un banco de

preguntas, las mismas que deben ser resueltas eligiendo la(s)

opcion(es) correcta(s), por parte del usuario

Forma:

Indica una referencia a la pantalla de la aplicación de evaluaciones.

Mensaje de Error:

Mensaje que informa de un error o alguna otra situación. La finalidad

de los mensajes denominados “errores de notificación” es meramente

informativo.

Nivel:

Indica los diferentes semestres que se abren en un determinado

periodo lectivo, tales como: primer semestre, segundo semestre, entre

otros.

Paralelo:

Entidad formada por un aula física, un nivel las materias por ese nivel

y los estudiantes asignados al mismo. (Ej.: S1A : Primer Nivel

Paralelo A)

Page 99: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

89

Parámetro:

Dato o factor que se toma como necesario para hacer referencia a un

tipo de información tal como días de la semana, tipos de tarjeta, entre

otros.

Periodo:

Hace referencia a los ciclos que se cursan durante un año lectivo, por

ejemplo Periodo 2009-2010 CICLO I.

Permisos:

Conjunto de privilegios concedidos o denegados a un usuario o un

grupo de estos.

Perfil:

Hace referencia a un tipo específico de usuario limitado por lasacciones definidas a él.

Profesor:

Hace referencia a los tipos de usuario final de la aplicación, el mismoque tienen entre otras opciones la creación y autorización deevaluaciones.

Registro de Evento:

Indica el registro de todas las acciones realizadas por el usuario encada uno de los entes de la aplicación tal como: actualizaciones,

Page 100: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

90

eliminaciones de estudiantes, profesores, aulas, niveles, paralelos,jornadas, entre otros.

Solución:

Conjunto de programas y procedimientos implementados para laresolución de un problema.

Usuario:

Persona o servicio que utiliza una aplicación. Un usuario está definidode forma programática por un nombre de usuario, una contraseña y unconjunto de atributos que permiten a una aplicación reconocerlos.

Page 101: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

91

Bibliografía

1. Oracle Database 10g Manual Del Administradort

T McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S.A.U.)

1ª edición (26/11/2005)

2. Oracle 10g. Administración Y Análisis De Bases De Datos. 2ª Edición

PEREZ, C. (Editorial Ra-ma)

(12/2007).

3. Oracle Application Server 10g Essentials

Stackowiak, Robert; Bales, Donald; Greenwald, Rick (O'Reilly Vlg. GmbH

& Co.)

4. Oracle Database 10g Linux-administration

Wahlen, Edward (Hanser Fachbuchverlag)

5. Oracle Pl/sql Programming: A Developer's Workbook

Steven Feuerstein, Andrew Odewahn (O'REILLY & ASSOCIATES)

(05/2000).

Page 102: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

92

6. Oracle Pl/sql Best Practices

Steven Feuerstein (O'REILLY & ASSOCIATES)

(05/2001).

7. Oracle Application Server 10g Essentials

Greenwald, Rick y Stackowiak, Robert y Bales, Donald

8. Using Moodle

Cole, Jason y Foster, Helen

Page 103: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

93

CONTENIDO

CAPÍTULO 1 ............................................................................................................................... 1

1. INTRODUCCION............................................................................................................ 1

1.1. Antecedentes ...................................................................................................... 1

1.2. Ámbito y Problemática........................................................................................ 3

1.3. Solución de la Problemática ............................................................................... 4

1.4. Visión y Misión del Proyecto ............................................................................... 4

1.4.1. Visión............................................................................................................... 4

1.4.2. Misión ............................................................................................................. 4

1.5. Definición del Proyecto ....................................................................................... 5

1.6. Objetivos del Proyecto ....................................................................................... 5

1.6.1. Objetivos Generales del Proyecto .................................................................. 5

1.6.2. Objetivos Específicos del Proyecto ................................................................. 6

1.7. Alcance del Proyecto........................................................................................... 7

1.8. Contribución tecnológica .................................................................................. 10

1.9. Arquitectura del Proyecto................................................................................. 11

1.10. Arquitectura de Datos....................................................................................... 13

1.11. Infraestructura Tecnológica. ............................................................................. 18

1.12. Metodología del Proyecto................................................................................. 18

1.13. Recursos necesarios del proyecto..................................................................... 20

1.13.1. Recurso Humano........................................................................................... 20

1.13.2. Recurso Tecnológico ..................................................................................... 21

1.14. Para la implementación del proyecto. .............................................................. 22

Page 104: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

94

1.15. Cronograma de Tiempo del Proyecto ............................................................... 23

CAPÍTULO 2 ............................................................................................................................. 24

2. ANÁLISIS..................................................................................................................... 24

2.1. Levantamiento de Información .................................................................... 24

2.2. Analisis de Requerimientos........................................................................... 26

2.3. Análisis de Riesgos ........................................................................................ 30

2.4. Diagrama de Flujo de Procesos..................................................................... 31

2.4.1. Flujo de Procesos...................................................................................... 31

2.4.2. Procesos del Portal Web........................................................................... 31

Registro de Evaluación Administrador / Docente ............................................. 31

Activacion de Evaluación Administrador / Docente.......................................... 32

Proceso Evaluación Estudiante ......................................................................... 32

2.5. Modelo de la aplicacion................................................................................ 33

2.6. Diagrama de Casos de Uso............................................................................ 33

2.6.1. Casos de Uso............................................................................................. 33

Ver Anexo C................................................................................................................. 34

2.6.2. Descripción de Casos de Uso.................................................................... 34

2.7. Diagrama Entidad Relación........................................................................... 39

2.8. Diagrama de Contexto de Arquitectura y Funcionalidad. ............................ 39

CAPÍTULO 3 ............................................................................................................................. 41

3. DISEÑO ........................................................................................................................ 41

3.1. Diseño de Datos ............................................................................................ 41

3.1.1 Descripción de las Tablas.......................................................................... 42

3.2. Diseño de la Interfaz ..................................................................................... 50

Page 105: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

95

3.2.1 Pagina Inicial ............................................................................................. 52

3.2.2 Pantalla Categoría de Preguntas .............................................................. 53

3.2.3 Pantalla de Mantenimiento de Preguntas................................................ 54

3.2.4 Pantalla de Mantenimiento de Evaluaciones........................................... 56

3.2.5 Pantalla de Reporte de Evaluaciones por Alumno ................................... 59

3.2.6 Pantalla de Reportes de Evaluaciones por Materia ................................. 60

3.2.7 Pantalla de Reporte de Lista de Categorías.............................................. 60

3.2.8 Pantalla de Reporte de Alumnos activos por Evaluación......................... 60

3.2.9 Pantalla Evaluación al Docente................................................................ 61

CAPÍTULO 4 ............................................................................................................................. 62

4. DESARROLLO Y PRUEBA DEL SISTEMA........................................................................ 62

4.1. Desarrollo del Sistema ...................................................................................... 62

4.1.1. Creación de la base de datos.................................................................... 62

4.2. Oracle Database 10g ......................................................................................... 64

4.3. Real Application Clusters (RAC)......................................................................... 64

4.4. Administración Automática del Espacio de Almacenamiento (AutomaticStorage Management, ASM)........................................................................................... 65

4.5. Ubicación de los datos ...................................................................................... 66

4.6. Base de Datos Auto-Administrada .................................................................... 66

4.7. Oracle Application Server 10g........................................................................... 67

4.8. Application Server Clusters ............................................................................... 67

4.9. Entorno para el desarrollo de Aplicaciones ...................................................... 68

4.10. Oracle Enterprise Manager 10g Gris Control .................................................... 69

4.11. Estándares de Gris............................................................................................. 70

4.12. Creación de los objetos de la base de datos ..................................................... 71

Page 106: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

96

4.12.1. Creación de los componentes .................................................................. 73

4.12.2. Seguridad.................................................................................................. 74

4.13. Pruebas del Sistema .......................................................................................... 75

4.13.1. Modelo de Prueba .................................................................................... 75

4.13.2. Prueba de la Caja Negra ........................................................................... 76

4.13.3. Prueba de la Caja Blanca .......................................................................... 77

4.14. Calidad del Sistema ........................................................................................... 77

CAPÍTULO 5 ............................................................................................................................. 79

5. IMPLEMENTACIÓN DEL SISTEMA................................................................................ 79

5.1. Elementos Físicos .............................................................................................. 79

5.2. Elementos Lógicos............................................................................................. 80

5.3. Elementos Humanos ......................................................................................... 80

5.4. Infraestructura .................................................................................................. 80

5.5. Capacitación de los usuarios. ............................................................................ 81

CAPÍTULO 6 ............................................................................................................................. 82

6. RECOMENDACIONES Y CONCLUSIONES DE LA TESIS.................................................. 82

6.1. Recomendaciones ............................................................................................. 82

6.1.1. Hardware .................................................................................................. 82

6.1.2. Software ................................................................................................... 83

6.1.3. Seguridades .............................................................................................. 84

6.2. Conclusiones ..................................................................................................... 84

GLOSARIO................................................................................................................................ 86

Bibliografía .............................................................................................................................. 91

INDICE DE FIGURAS

Page 107: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

97

Figura 1.1. Arquitectura del Proyecto..................................................................................... 13

Figura 2.1. Arquitectura del Proyecto..................................................................................... 40

Figura 3.1. Inicio sesión Administrador................................................................................... 52

Figura 3.2. Pantalla Principal Administrador .......................................................................... 53

Figura 3.3. Categoría Preguntas.............................................................................................. 54

Figura 3.3. Pestaña Pregunta .................................................................................................. 55

Figura 3.4. . Pestaña Respuestas............................................................................................. 55

Figura 3.5 Pestaña Evaluación ................................................................................................ 56

Figura 3.6 Pestaña Banco de Preguntas.................................................................................. 57

Figura 3.7 Pestaña Preguntas Seleccionadas.......................................................................... 58

Figura 3.8 Pestaña Alumnos Autorizados ............................................................................... 59

Figura 3.9 Reporte de Evaluaciones por Alumno.................................................................... 59

Figura 3.10 Reporte de Evaluaciones por Alumno.................................................................. 60

Figura 3.11 Reporte de Evaluaciones por Alumno.................................................................. 60

Figura 3.12 Reporte de Evaluaciones por Alumno.................................................................. 61

Figura 3.13 Reporte de Evaluaciones por Alumno.................................................................. 61

Figura 4.1 Estructura de Oracle .............................................................................................. 63

Page 108: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXOS

Page 109: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO A

CRONOGRAMA DETRABAJO

Page 110: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO B

FLUJO DE DATOS

Page 111: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO C

DIAGRAMA DE CASOSDE USO

Page 112: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO D

DIAGRAMA DEENTIDAD RELACION

Page 113: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ADMINISTRADOR

REGISTRAREVALUACION

ACTIVAREVALUACION

DETALLE DEPREGUNTAS

DETALLE DERESPUESTAS

REGISTRARINICIO DE

EVALUACION

DESARROLLODE

EVALUACIONDOCENTE

ESTUDIANTE

Page 114: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución
Page 115: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución
Page 116: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

A

A

SI

SI

SI

SI

NO

NO

NO

NO

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONARCONSULTA DE

MATERIAS

CONSULTA DEMATERIAS

ASIGNADAS

SELECCIÓN DEMATERIA AREGISTRAR

EXISTENMATERIAS

EXISTEREGISTRO

PRESENTACIONDE PLANTILLAS

VERIFICACION DEESTADO

VERIFICAESTADO DE LAEVALUACION

CREAR REGISTRODE EVALUACION

INGRESARPREGUNTAS YRESPUESTAS

GUARDARREGISTRO DEEVALUACION

ACTUALIZACIONDE REGISTRO DE

EVALUACION

A

Figura 1.1 Proceso de Registro de Evaluación (Administrador/Docente)

Page 117: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONARACTIVACION DE

EVALUACION

CONSULTA DEUSUARIOS

REGISTRADOS

SELECCIÓN DEUSUARIOS

EXISTENUSUARIOS

S

PROCESOCORRECTO

ACTIVACION DEEVALUACION

CONFIRMARREGISTRO DE

USUARIOS

CREARREGISTROS DEEVALUACION

GUARDARREGISTRO DEEVALUACION

A A

A

A

SI

SISI

NO

NO

NO

SINO

Figura 1.2 Proceso de Activación de Evaluación (Administrador/Docente)

Page 118: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONAREVALUACIONES

ACTIVADAS

CONSULTA DEMATERIASACTIVADAS

SELECCIÓN DEMATERIA

EXISTENMATERIAS

CONFIRMACION

PRESENTACIONINFORMACION

PREVIA

CONFIRMACIONDE INICIO DEEVALUACION

ACTIVACION DELINICIO DE

EVALUACION

REGISTRO DERESPUESTAS

PRESENTACIONDE PREGUNTAS

A

Figura 1.3 Proceso de Evaluación (Estudiante)

A

NO

A

A

SI

SI SI

NO

NO

NO

TERMINAEVALUACION

REVISION DEEVALUACION

REGISTRO DERESULTADOS

PRESENTACIONDE RESULTADOS

SI

NO

Page 119: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

1

CAPÍTULO 1

1. MANUAL TECNICO

IntroducciónEste documento esta diseñado y orientado al personal técnico y los

analistas, que van a ser los encargados de darle mantenimiento al

sistema, en él encontrará todo lo relacionado con el diseño de

datos y componentes más importantes utilizados por el aplicativo.

Sin embargo por tratarse de algo muy extenso aquí solo encontrará

los aspectos más relevantes; pero para darle una mejor ayuda, se

dará referencia de documentos digitales que son parte de ésta

tesis donde podrán profundizar más el contexto técnico que no se

abarque en este documento.

Diagramas

Page 120: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

2

Detallamos a continuación cada uno de las representaciones

gráficas utilizadas en el diseño de esta solución.

Diagramas de Flujo de DatosEl diagrama de flujo de datos (DFD), es una herramienta que

permite visualizar un sistema como una red de procesos

funcionales, conectados entre sí por "conductos" y "tanques de

almacenamiento" de datos. Siendo éste, una de las herramientas

más comúnmente usadas, sobre todo por sistemas operacionales

en los cuales las funciones del sistema son de gran importancia y

son más complejos que los datos que éste maneja.

Para poder ver los diagramas de flujo de datos, ir al ANEXO A

Diagrama Entidad RelaciónDenominado por sus siglas como: E-R; Este modelo representa a

la realidad a través de un esquema gráfico empleando los

terminología de entidades, que son objetos que existen y son los

elementos principales que se identifican en el problema a resolver

con el diagramado y se distinguen de otros por sus características

particulares denominadas atributos, el enlace que rige la unión de

las entidades esta representada por la relación del modelo.

Para poder ver los diagramas entidad relación, ir al ANEXO B

Page 121: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

3

Creación de Objetos de la Base de DatosLa base de datos cuenta con un sinnúmero de objetos entre los

que podemos nombrar:

Tablas

Paquetes

Triggers

Secuencias, entre otos.

Detallaremos a continuación los “scripts” o códigos SQL que

permiten la creación de dichos objetos.

Script de creación de Tablascreate table CATEGORIA_PREGUNTA(

ID_CATEGORIA_PREGUNTA NUMBER(5) not null,ID_PADRE NUMBER(5),NOMBRE VARCHAR2(500),DESCRIPCION VARCHAR2(100),USUARIO_INGRESA NUMBER(5),FECHA_INGRESO DATE,USUARIO_MODIFICA NUMBER(5),FECHA_ULTIMA_MODIFICACION DATE

);alter table CATEGORIA_PREGUNTA add constraintCATEGORIA_PREGUNTA_P primary key (ID_CATEGORIA_PREGUNTA);alter table CATEGORIA_PREGUNTAadd constraint CATEGORIA_PREGUNTA_N3check ("NOMBRE" IS NOT NULL);alter table CATEGORIA_PREGUNTAadd constraint CATEGORIA_PREGUNTA_N5check ("USUARIO_INGRESA" IS NOT NULL);alter table CATEGORIA_PREGUNTAadd constraint CATEGORIA_PREGUNTA_N6check ("FECHA_INGRESO" IS NOT NULL);

create table EXAMEN(

ID_EXAMEN NUMBER(5) not null,ID_TIPO_EXAMEN NUMBER(5),

Page 122: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

4

INTRODUCCION VARCHAR2(1500),IS_PERMITE_ABRIR VARCHAR2(1) default '0',IS_PERMITE_CERRAR VARCHAR2(1) default '0',FECHA_INICIO DATE,FECHA_FIN DATE,IS_LIMITE_TIEMPO VARCHAR2(1) default '0',IS_HABILITA_TIEMPO VARCHAR2(1) default '0',TIEMPO_PRIMERO_SEGUNDO NUMBER(5),NUM_MAX_PREGUNTAS NUMBER(5),IS_PREGUNTA_ALEATORIA VARCHAR2(1) default '0',IS_RESPUESTA_ALEATORIA VARCHAR2(1) default '0',IS_APLICA_PENALIZACION VARCHAR2(1) default '0',IS_VENTANA_SEGURA VARCHAR2(1) default '0',IS_REQUIERE_CONTRASENIA VARCHAR2(1) default '0',CALIFICACION_MAXIMA NUMBER(5,2),ID_ESTADO NUMBER(5),USUARIO_INGRESA NUMBER(5),USUARIO_MODIFICA NUMBER(5),FECHA_ULTIMA_MODIFICACION DATE,FECHA_INGRESO DATE,ID_PARCIAL NUMBER(5),ID_PERIODO_LECTIVO NUMBER(5),ID_PARALELO NUMBER(5),ID_MATERIA NUMBER(5),CONTRASENIA VARCHAR2(32)

);alter table EXAMEN

add constraint EXAMEN_P primary key (ID_EXAMEN);alter table EXAMEN

add constraint EXAMEN_N22 foreign key (ID_ESTADO)references ESTADO (ID_ESTADO);

alter table EXAMENadd constraint EXAMEN_R2 foreign key (ID_TIPO_EXAMEN)references TIPO_EXAMEN (ID_TIPO_EXAMEN);

alter table EXAMENadd constraint EXAMEN_R22 foreign key (ID_PARALELO)references PARALELO (ID_PARALELO);

alter table EXAMENadd constraint EXAMEN_R25 foreign key (ID_MATERIA)references MATERIA (ID_MATERIA);

alter table EXAMENadd constraint EXAMEN_N10check ("IS_LIMITE_TIEMPO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N11check ("IS_HABILITA_TIEMPO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N12check ("TIEMPO_PRIMERO_SEGUNDO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N14check ("NUM_MAX_PREGUNTAS" IS NOT NULL);

Page 123: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

5

alter table EXAMENadd constraint EXAMEN_N15check ("IS_PREGUNTA_ALEATORIA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N16check ("IS_RESPUESTA_ALEATORIA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N17check ("IS_APLICA_PENALIZACION" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N19check ("IS_VENTANA_SEGURA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N20check ("IS_REQUIERE_CONTRASENIA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N21check ("CALIFICACION_MAXIMA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N23check ("USUARIO_INGRESA" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N24check ("FECHA_INGRESO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N28check ("ID_PERIODO_LECTIVO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N5check ("INTRODUCCION" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N6check ("IS_PERMITE_ABRIR" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N7check ("IS_PERMITE_CERRAR" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N8check ("FECHA_INICIO" IS NOT NULL);

alter table EXAMENadd constraint EXAMEN_N9check ("FECHA_FIN" IS NOT NULL);

create table EXAMEN_ALUMNO(

ID_SECUENCIA NUMBER(5) not null,ID_EXAMEN NUMBER(5) not null,ID_USUARIO NUMBER(5) not null,NOTA_TOTAL NUMBER(5,2),FECHA_INICIO DATE,FECHA_TERMINA DATE,FECHA_PUBLICA DATE,

Page 124: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

6

FECHA_VENCE DATE,ID_ESTADO NUMBER(5),USUARIO_INGRESA NUMBER(5),USUARIO_MODIFICA NUMBER(5),FECHA_MODIFICA DATE,FECHA_INGRESO DATE,CONT_PENALIZA NUMBER(5) default 0,SUMA_PENALIZA NUMBER(5,2) default 0,NOTA_PARCIAL NUMBER(5,2),OBSERVACION VARCHAR2(50),PORCENTAJE_ACEPTADAS NUMBER(5,2),ID_SOLICITUD NUMBER(5),TIEMPO_TRANSC NUMBER(5)

);alter table EXAMEN_ALUMNO

add constraint EXAMEN_ALUMNO_P primary key (ID_SECUENCIA,ID_EXAMEN, ID_USUARIO);alter table EXAMEN_ALUMNO

add constraint EXAMEN_ALUMNO_R10 foreign key (ID_ESTADO)references ESTADO (ID_ESTADO);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_R2 foreign key (ID_EXAMEN)references EXAMEN (ID_EXAMEN);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_R3 foreign key (ID_USUARIO)references USUARIO (ID_USUARIO);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_N11check ("USUARIO_INGRESA" IS NOT NULL);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_N12check ("FECHA_INGRESO" IS NOT NULL);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_N5check ("NOTA_TOTAL" IS NOT NULL);

alter table EXAMEN_ALUMNOadd constraint EXAMEN_ALUMNO_N9check ("FECHA_VENCE" IS NOT NULL);

create table PREGUNTA_EXAMEN(

ID_EXAMEN NUMBER(5) not null,ID_PREGUNTA NUMBER(5) not null,USUARIO_INGRESA NUMBER(5),FECHA_INGRESO DATE,USUARIO_MODIFICA NUMBER(5),FECHA_ULTIMA_MODIFICACION DATE,CALIFICACION NUMBER(5,2)

);alter table PREGUNTA_EXAMEN

Page 125: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

7

add constraint PREGUNTA_EXAMEN_P primary key (ID_EXAMEN,ID_PREGUNTA);alter table PREGUNTA_EXAMEN

add constraint PREGUNTA_EXAMEN_R1 foreign key (ID_EXAMEN)references EXAMEN (ID_EXAMEN);

alter table PREGUNTA_EXAMENadd constraint PREGUNTA_EXAMEN_N4check ("USUARIO_INGRESA" IS NOT NULL);

alter table PREGUNTA_EXAMENadd constraint PREGUNTA_EXAMEN_N5check ("FECHA_INGRESO" IS NOT NULL);

create table RESPUESTA(

ID_RESPUESTA NUMBER(5) not null,ID_PREGUNTA NUMBER(5),RESPUESTA VARCHAR2(500),CALIFICACION NUMBER(5,2),MARGEN_ERROR NUMBER(10),RESPUESTA_CORRECTA VARCHAR2(1) default '0',USUARIO_INGRESA NUMBER(5),USUARIO_MODIFICA NUMBER(5),FECHA_ULTIMA_MODIFICACION DATE,FECHA_INGRESO DATE

);alter table RESPUESTA

add constraint RESPUESTA_P primary key (ID_RESPUESTA);alter table RESPUESTA

add constraint RESPUESTA_N10check ("RESPUESTA_CORRECTA" IS NOT NULL);

alter table RESPUESTAadd constraint RESPUESTA_N11check ("USUARIO_INGRESA" IS NOT NULL);

alter table RESPUESTAadd constraint RESPUESTA_N12check ("FECHA_INGRESO" IS NOT NULL);

alter table RESPUESTAadd constraint RESPUESTA_N4check ("RESPUESTA" IS NOT NULL);

alter table RESPUESTAadd constraint RESPUESTA_N5check ("CALIFICACION" IS NOT NULL);

alter table RESPUESTAadd constraint RESPUESTA_N7check ("MARGEN_ERROR" IS NOT NULL);

create table RESPUESTA_EXAMEN(

ID_EXAMEN NUMBER(10) not null,ID_PREGUNTA NUMBER(10) not null,ID_SECUENCIA NUMBER(5) not null,

Page 126: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

8

ID_RESPUESTA NUMBER(10) not null,DESCRIPCION VARCHAR2(500),RESPUESTA VARCHAR2(1) default '0',NOTA_PARCIAL NUMBER(5,2),VALORACION NUMBER(5,2),USUARIO_INGRESA NUMBER(5),USUARIO_MODIFICA NUMBER(5),FECHA_MODIFICA DATE,FECHA_INGRESO DATE,ID_USUARIO NUMBER(5) not null

);alter table RESPUESTA_EXAMEN

add constraint RESPUESTAS_USUARIO_P primary key (ID_EXAMEN,ID_PREGUNTA, ID_SECUENCIA, ID_RESPUESTA, ID_USUARIO);alter table RESPUESTA_EXAMEN

add constraint RESPUESTA_EXAMEN_R1 foreign key (ID_EXAMEN)references EXAMEN (ID_EXAMEN);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_R4 foreign key (ID_RESPUESTA)references RESPUESTA (ID_RESPUESTA);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_N10check ("FECHA_INGRESO" IS NOT NULL);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_N7check ("NOTA_PARCIAL" IS NOT NULL);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_N8check ("VALORACION" IS NOT NULL);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_N9check ("USUARIO_INGRESA" IS NOT NULL);

alter table RESPUESTA_EXAMENadd constraint RESPUESTA_EXAMEN_R5check ("DESCRIPCION" IS NOT NULL);

prompt Creating TIPO_PREGUNTA...create table TIPO_PREGUNTA(

ID_TIPO_PREGUNTA NUMBER(5) not null,DESCRIPCION VARCHAR2(50)

);alter table TIPO_PREGUNTA

add constraint TIPO_PREGUNTA_P primary key (ID_TIPO_PREGUNTA);alter table TIPO_PREGUNTA

add constraint TIPO_PREGUNTA_N2check ("DESCRIPCION" IS NOT NULL);

create table PREGUNTA

Page 127: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

9

(ID_PREGUNTA NUMBER(5),ID_CATEGORIA_PREGUNTA NUMBER(5),ID_TIPO_PREGUNTA NUMBER(5),DESCRIPCION VARCHAR2(500),CALIFICACION NUMBER(5,2),MSG_GENERAL VARCHAR2(500),FACTOR_PENALIZACION NUMBER(5,2),USUARIO_INGRESA NUMBER(5),USUARIO_MODIFICA NUMBER(5),FECHA_ULTIMA_MODIFICACION DATE,FECHA_INGRESO DATE,NOMBRE_ARCHIVO VARCHAR2(255),CANTIDAD_VALIDAS NUMBER(5)

);alter table PREGUNTA

add constraint PREGUNTA_R2 foreign key (ID_CATEGORIA_PREGUNTA)references CATEGORIA_PREGUNTA (ID_CATEGORIA_PREGUNTA);

alter table PREGUNTAadd constraint PREGUNTA_N11check ("USUARIO_INGRESA" IS NOT NULL);

alter table PREGUNTAadd constraint PREGUNTA_N12check ("FECHA_INGRESO" IS NOT NULL);

alter table PREGUNTAadd constraint PREGUNTA_N3check ("ID_TIPO_PREGUNTA" IS NOT NULL);

alter table PREGUNTAadd constraint PREGUNTA_N4check ("DESCRIPCION" IS NOT NULL);

Page 128: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

10

Paquete PCK_EVALUACION

ACTUALIZA_CATEGORIA_PREGUNTA

POS. NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1LN_ID_CATEGORIA_PREGUNTA NUMBER IN

código de la tablacategoríapregunta

2 LN_ID_PADRE NUMBER INcódigo delid_padre

3 LV_NOMBRE VARCHAR2 IN

nombre de lacategoría de lapregunta

4 LV_DESCRIPCION VARCHAR2 INdetalle de lacategoría

5 LV_USUARIO NUMBER IN código de usuario

6 COD_RET NUMBER IN/OUTcódigo de retornode error

7 MSG_RET VARCHAR2 IN/OUTmensaje deretorno de error

ACTUALIZA_ESTADO_EXAMEN_ALUMNO

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_USUARIO NUMBER IN código del usuario

3 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

4 PV_ESTADO VARCHAR2 IN estado del examen

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

Page 129: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

11

ENVIAR_INFORME_CORREO

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

3 PN_ID_USUARIO NUMBER IN código del usuario

4 PV_PROFESOR VARCHAR2 IN nombre del profesor

5 PV_ALUMNO VARCHAR2 IN nombre del alumno

6 PV_PARCIAL VARCHAR2 INdescripción del parcialdel examen

7 PV_PARALELO VARCHAR2 INdescripción delparalelo del alumno

8 PV_MATERIA VARCHAR2 IN nombre de la materia

9 PV_CORREO VARCHAR2 INdescripción del correodel alumno

10 COD_RET NUMBERIN/OUT

código de retorno deerror

11 MSG_RET VARCHAR2IN/OUT

mensaje de retorno deerror

ACTUALIZA_RESPUESTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_PREGUNTA NUMBER IN código de la pregunta

3 PN_ID_SECUENCIA NUMBER IN código de la secuencia

4 PN_ID_RESPUESTA NUMBER IN código de la respuesta

5 PV_DESCRIPCION VARCHAR2 INdescripción de lapregunta

6 PV_RESPUESTA VARCHAR2 INdescripción de larespuesta

7 PN_NOTA_PARCIAL NUMBER INValor de la nota delparcial

8 PN_VALORACION NUMBER INValoración de larespuesta.

9 PN_USUARIO NUMBER IN Código del usuario.

10 COD_RET NUMBER IN/OUTcódigo de retorno deerror

11 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

Page 130: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

12

FINALIZAR_EVALUACION

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_SECUENCIA NUMBER IN código del examen

3 PN_ID_USUARIO NUMBER IN código del usuario

4PV_TIPO_FINALIZACION VARCHAR2 IN

descripción del tipo definalización

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

ACTUALIZA_TIEMPO_EXAMEN_ALUMNO

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION1 PN_ID_EXAMEN NUMBER IN código del examen2 PN_ID_USUARIO NUMBER IN código del usuario3 PN_ID_SECUENCIA NUMBER IN código de la secuencia

4 PN_TIEMPO NUMBER INvalor del tiempo delexamen

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

ELIMINA_CATEGORIA_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1LN_ID_CATEGORIA_PREGUNTA NUMBER IN

código de la categoríade la pregunta

2 COD_RET NUMBER

IN/OUT

código de retorno deerror

3 MSG_RET VARCHAR2

IN/OUT

mensaje de retorno deerror

Page 131: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

13

ACTUALIZA_TIPO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

1 LN_ID_TIPO_EXAMEN NUMBER INcódigo del tipo delexamen

2 LV_DESCRIPCION VARCHAR2 INdescripción del tipo deexamen

3 LV_USUARIO NUMBER IN código del usuario.

4 COD_RET NUMBER IN/OUTcódigo de retorno deerror

5 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

CONSULTA_CATEGORIA_PREGUNTAS

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1PN_ID_CATEGORIA_PREGUNTA NUMBER IN

código de lacategoría de lapregunta

2 PV_NOMBRE VARCHAR2 IN

nombre de lacategoría de lapregunta

3 INDICE NUMBER IN

4 O_CURSORREFCURSOR IN/OUT valor del cursor

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET NUMBER IN/OUTmensaje de retornode error

CONSULTA_TIPO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_TIPO_EXAMEN NUMBER INcódigo del tipo delexamen

2 PV_NOMBRE VARCHAR2 INnombre del tipo deexamen

3 INDICE NUMBER IN

Page 132: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

14

4 O_CURSOR REF CURSOR IN/OUT valor del cursor

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET NUMBER IN/OUTmensaje de retornode error

CUENTA_CATEGORIA_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1PN_ID_CATEGORIA_PREGUNTA NUMBER IN

código de la categoríade la pregunta

2 PV_NOMBRE VARCHAR2 INnombre de la categoríade la pregunta

3 PN_REGISTROS NUMBERIN/OUT

Número de registrosingresados.

4 COD_RET NUMBERIN/OUT

código de retorno deerror

5 MSG_RET NUMBERIN/OUT

mensaje de retorno deerror

CUENTA_TIPO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1 PN_ID_TIPO_EXAMEN NUMBER INcódigo del tipo delexamen

2 PV_NOMBRE VARCHAR2 INnombre del tipo deexamen

3 PN_REGISTROS NUMBER

IN/OUT

Número de registrosingresados.

4 COD_RET NUMBER

IN/OUT

código de retorno deerror

5 MSG_RET NUMBER

IN/OUT

mensaje de retorno deerror

ELIMINA_RESPUESTA_EXAMEN

Page 133: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

15

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_PREGUNTA NUMBER INcódigo de lapregunta

3 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

4 PN_ID_RESPUESTA NUMBER INcódigo de larespuesta

5 COD_RET NUMBERIN/OUT

código de retornode error

6 MSG_RET VARCHAR2IN/OUT

mensaje de retornode error

ELIMINA_TIPO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 LN_ID_TIPO_EXAMEN NUMBER INcódigo del tipo delexamen

2 COD_RET NUMBER IN/OUTcódigo de retornode error

3 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

GET_CALIFICACION_RESPUESTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

0 NUMBER OUT

1 PN_ID_RESPUESTA NUMBER INcódigo de larespuesta

2 PN_ID_PREGUNTA NUMBER INcódigo de lapregunta

3 PN_VALORACION NUMBER INvalor obtenido de larespuesta

4PV_RESPUESTA_USUARIO VARCHAR2 IN

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

Page 134: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

16

GET_DATOS_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 O_CURSOR REF CURSOR IN/OUT valor del cursor

3 COD_RET NUMBER IN/OUTcódigo de retornode error

4 MSG_RET NUMBER IN/OUTmensaje de retornode error

GET_DATOS_EXAMEN_ALUMNO

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

3 PN_ID_USUARIO NUMBER IN código del usuario

4 O_CURSOR REF CURSOR IN/OUT valor del cursor

5 COD_RET NUMBER IN/OUTcódigo de retornode error

6 MSG_RET NUMBER IN/OUTmensaje de retornode error

GET_EXAMEN_ALUMNO

POSNOMBRE_PARAMETRO TIPO_DATO

ENT /SAL DESCRIPCION

1 PN_ID_PERIODO NUMBER INcódigo del periodolectivo

2 PN_ID_USUARIO NUMBER IN código del usuario

3 PN_REGISTROS NUMBER IN/OUTvalor de los registrosingresados

4 O_CURSORREFCURSOR IN/OUT valor del cursor

5 COD_RET NUMBER IN/OUTcódigo de retorno deerror

6 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

Page 135: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

17

GET_EXAMEN_PROFESOR

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_PERIODO NUMBER INcódigo del periodolectivo

2 PN_ID_USUARIO NUMBER IN código del usuario

3 PN_REGISTROS NUMBERIN/OUT

valor de los registrosingresados

4 O_CURSORREFCURSOR

IN/OUT valor del cursor

5 COD_RET NUMBERIN/OUT

código de retorno deerror

6 MSG_RET VARCHAR2IN/OUT

mensaje de retornode error

GET_PREGUNTAS_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PB_ALEATORIAPL/SQLBOOLEAN IN

3 PN_REGISTROS NUMBER IN/OUTvalor del registroingresados

4 O_CURSORREFCURSOR IN/OUT valor del cursor

5 COD_RET NUMBER IN/OUTcódigo de retornode error

6 MSG_RET NUMBER IN/OUTmensaje de retornode error

GET_RESPUESTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

0 VARCHAR2 OUT1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

3 PN_ID_USUARIO NUMBER IN código del usuario

4 PN_ID_RESPUESTA NUMBER INcódigo de larespuesta

5 PN_ID_PREGUNTA NUMBER IN código de la pregunta

6 COD_RET NUMBER IN/OUTcódigo de retorno deerror

Page 136: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

18

7 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

GET_RESPUESTAS_DOCENTES

POSNOMBRE_PARAMETRO TIPO_DATO

ENT /SAL DESCRIPCION

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

3 PN_ID_USUARIO NUMBER IN código del usuario

4 PN_CONTADOR NUMBERIN/OUT

5 O_CURSORREFCURSOR

IN/OUT valor del cursor

6 COD_RET NUMBERIN/OUT

código de retorno deerror

7 MSG_RET VARCHAR2IN/OUT

mensaje de retornode error

GET_RESPUESTA_PREGUNTAS

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_PREGUNTA NUMBER IN código de la pregunta

2 O_CURSOR REF CURSOR IN/OUT valor del cursor

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

4 MSG_RET NUMBER IN/OUTmensaje de retornode error

GET_VALORACION_RESPUESTA

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION

0 NUMBER OUT

1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_PREGUNTA NUMBER IN código de la pregunta

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

4 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

Page 137: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

19

INGRESA_RESPUESTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION1 PN_ID_EXAMEN NUMBER IN código del examen2 PN_ID_PREGUNTA NUMBER IN código de la pregunta3 PN_ID_SECUENCIA NUMBER IN código del examen

4 PN_ID_RESPUESTA NUMBER INcódigo de larespuesta

5 PV_DESCRIPCION VARCHAR2 INdescripción de larespuesta

6 PV_RESPUESTA VARCHAR2 IN7 PN_USUARIO NUMBER IN código del usuario

8 COD_RET NUMBER IN/OUTcódigo de retorno deerror

9 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

INGRESA_CATEGORIA_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 LN_ID_PADRE NUMBER IN

2 LV_NOMBRE VARCHAR2 IN

nombre de lacategoría de lapregunta

3 LV_DESCRIPCION VARCHAR2 INdescripción de lapregunta

4 LV_USUARIO NUMBER IN código del usuario

5 COD_RET NUMBER IN/OUTcódigo de retornode error

6 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

7 LN_CODIGO NUMBER OUT

código de lacategoría de lapregunta

INSERTA_TIPO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 LV_DESCRIPCION VARCHAR2 INdescripción del tipo deexamen

2 LV_USUARIO NUMBER IN código del usuario

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

Page 138: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

20

4 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

5 LN_CODIGO NUMBER OUTcódigo del tipo delexamen

IS_EXAMEN_ALUMNO_BLOQUEADO

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

0 PL/SQL BOOLEAN OUT

1 PN_ID_EXAMEN NUMBER INcódigo delexamen

2 PN_ID_USUARIO NUMBER IN código del usuario

3 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

4 COD_RET NUMBER IN/OUTcódigo de retornode error

5 MSG_RET VARCHAR2 IN/OUTmensaje deretorno de error

IS_EXAMEN_A_TIEMPO

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

0 PL/SQL BOOLEAN OUT1 PN_ID_EXAMEN NUMBER IN código del examen

2 COD_RET NUMBER IN/OUTcódigo de retornode error

3 MSG_RET VARCHAR2 IN/OUTmensaje deretorno de error

IS_PREGUNTA_CONTESTADA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

0 PL/SQL BOOLEAN OUT1 PN_ID_EXAMEN NUMBER IN código del examen

2 PN_ID_PREGUNTA NUMBER INcódigo de lapregunta

3 PN_ID_SECUENCIA NUMBER INcódigo de lasecuencia

4 PN_ID_USUARIO NUMBER IN código del usuario

5 COD_RET NUMBER IN/OUTcódigo de retornode error

6 MSG_RET VARCHAR2 IN/OUTmensaje deretorno de error

Page 139: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

21

Paquete PCK_EVALUACION_1

ACTUALIZA_ESTADO_EXAMEN_ALUMNO

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1 PV_EXAMEN_ALUMNOPL/SQLRECORD IN código del examen

1 ID_SECUENCIA NUMBER INcódigo de lasecuencia

2 PV_ERROR VARCHAR2OUT

descripción del errorencontrado

2 ID_EXAMEN NUMBER IN código del examen3 ID_USUARIO NUMBER IN código del usuario

3 PN_ERROR NUMBEROUT

descripción del errorencontrado

4 NOTA_TOTAL NUMBER IN valor del examen

5 FECHA_INICIO DATE INfecha de iniciacióndel examen

6 FECHA_TERMINA DATE INfecha en la quetermina el examen

7 FECHA_PUBLICA DATE IN

8 FECHA_VENCE DATE INfecha en la quevence el examen

9 ID_ESTADO NUMBER IN código del estado

10 USUARIO_INGRESA NUMBER INcódigo del usuarioque ingresa

11 USUARIO_MODIFICA NUMBER INcódigo del usuarioque modifica

12 FECHA_MODIFICA DATE INfecha en la que serealizo modificación

13 FECHA_INGRESO DATE INfecha en la que seingreso

14 CONT_PENALIZA NUMBER IN

contador de las vecesque realiza uncambio

15 SUMA_PENALIZA NUMBER IN

suma de los valoresde penalización decada pregunta

16 NOTA_PARCIAL NUMBER INvalor de la notaobtenida

17 OBSERVACION VARCHAR2 IN

18PORCENTAJE_ACEPTADAS NUMBER IN

porcentaje de laspreguntas acertadas

19 ID_SOLICITUD NUMBER INcódigo de la solicituddel examen

20 TIEMPO_TRANSC NUMBER IN

valor del tiempotranscurrido en elexamen

Page 140: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

22

ACTUALIZA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT/SAL DESCRIPCION

1 ID_EXAMEN NUMBER IN código del examen

1 PV_EXAMENPL/SQLRECORD IN

2 ID_TIPO_EXAMEN NUMBER INcódigo del tipo deexamen

2 PV_ERROR VARCHAR2 OUTmensaje de retorno deerror

3 PN_ERROR NUMBER OUTcódigo de retorno deerror

3 INTRODUCCION VARCHAR2 IN

breve especificaciónde las políticas delexamen

4 IS_PERMITE_ABRIR VARCHAR2 IN

una vez autorizado,permite realizarcambios al examen

5 IS_PERMITE_CERRAR VARCHAR2 IN

bloquea el examenpara que no serealicen cambios

6 FECHA_INICIO DATE INfecha de iniciación delexamen

7 FECHA_FIN DATE INfecha de terminacióndel examen

8 IS_LIMITE_TIEMPO VARCHAR2 IN

indica si el examentiene un limite detiempo

9 IS_HABILITA_TIEMPO VARCHAR2 INindica si el examen eshabilitado

10TIEMPO_PRIMERO_SEGUNDO NUMBER IN

cantidad de minutosque dura el examen

11NUM_MAX_PREGUNTAS NUMBER IN

cantidad máxima depreguntas del examen

12IS_PREGUNTA_ALEATORIA VARCHAR2 IN

indica si cuando sepresentan laspreguntas es en formaaleatoria

13IS_RESPUESTA_ALEATORIA VARCHAR2 IN

indica si cuando sepresentan lasrespuestas es enforma aleatoria

14IS_APLICA_PENALIZACION VARCHAR2 IN

indica que en elexamen se va aplicarseñalización

15 IS_VENTANA_SEGURA VARCHAR2 INcampo no usado en elsistema

Page 141: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

23

16IS_REQUIERE_CONTRASENIA VARCHAR2 IN

si esta activo indicaque el examen va atener una contraseña

17CALIFICACION_MAXIMA NUMBER IN

indica la calificaciónmáxima del examen

18 ID_ESTADO NUMBER INcódigo del estado delexamen

19 USUARIO_INGRESA NUMBER INcódigo del usuario queingresa

20 USUARIO_MODIFICA NUMBER INcódigo del usuario quemodifica

21FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

22 FECHA_INGRESO DATE INfecha del ingreso delexamen

23 ID_PARCIAL NUMBER IN código del parcial

24 ID_PERIODO_LECTIVO NUMBER INcódigo del periodolectivo

25 ID_PARALELO NUMBER IN código del paralelo

26 ID_MATERIA NUMBER IN código de la materia

27 CONTRASENIA VARCHAR2 INvalor de la contraseñadel examen

ACTUALIZA_CATEGORIA_PREGUNTAS

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PN_ID_PREGUNTA NUMBER INcódigo de lapregunta

2PN_ID_CATEGORIA_PREGUNTA NUMBER IN

código de lacategoría de lapregunta

3 PV_ERROR VARCHAR2 OUTmensaje de retornode error

4 PN_ERROR NUMBER OUTcódigo del errorencontrado

Page 142: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

24

ACTUALIZA_FECHA_EXAMEN_ALUMNO

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PV_EXAMEN_ALUMNOPL/SQLRECORD IN

1 ID_SECUENCIA NUMBER INcódigo de lasecuencia

2 PV_ERROR VARCHAR2 OUTmensaje deretorno de error

2 ID_EXAMEN NUMBER INcódigo delexamen

3 PN_ERROR NUMBER OUTcódigo del errorencontrado

3 ID_USUARIO NUMBER IN código del usuario

4 NOTA_TOTAL NUMBER IN

valor obtenido enel examen menoslas penalizaciones

5 FECHA_INICIO DATE IN

fecha deiniciación delexamen

6 FECHA_TERMINA DATE IN

fecha de laterminación delexamen

7 FECHA_PUBLICA DATE IN

fecha en la que elexamen espublicado

8 FECHA_VENCE DATE INfecha en la quevence el examen

9 ID_ESTADO NUMBER INcódigo del estadodel examen

10 USUARIO_INGRESA NUMBER INcódigo del usuarioque ingresa

11 USUARIO_MODIFICA NUMBER INcódigo del usuarioque modifica

12 FECHA_MODIFICA DATE IN

fecha quemodifica elexamen

13 FECHA_INGRESO DATE INfecha de ingresoal examen

14 CONT_PENALIZA NUMBER IN

contador de lasveces que realizaun cambio

15 SUMA_PENALIZA NUMBER IN

suma de losvalores deseñalización decada pregunta

16 NOTA_PARCIAL NUMBER INvalor de la notaobtenida

17 OBSERVACION VARCHAR2 IN

descripción dealgunaobservación del

Page 143: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

25

examen

18PORCENTAJE_ACEPTADAS NUMBER IN

valor de laspreguntasacertadas

19 ID_SOLICITUD NUMBER IN

código de lasolicitud delexamen

20 TIEMPO_TRANSC NUMBER IN

valor del tiempotranscurrido en elexamen

ACTUALIZA_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PV_PREGUNTAPL/SQLRECORD IN

1 ID_PREGUNTA NUMBER INcódigo de lapregunta

2 PV_ERROR VARCHAR2 OUTmensaje de retornode error

2 ID_CATEGORIA_PREGUNTA NUMBER IN

código de lacategoría de lapregunta

3 PN_ERROR NUMBER OUTcódigo del errorencontrado

3 ID_TIPO_PREGUNTA NUMBER INcódigo del tipo depregunta

4 DESCRIPCION VARCHAR2 INbreve descripciónde la pregunta

5 CALIFICACION NUMBER INvalor de lapregunta

6 MSG_GENERAL VARCHAR2 INbreve mensaje dela pregunta

7 FACTOR_PENALIZACION NUMBER INvalor de lapenalización

8 USUARIO_INGRESA NUMBER INcódigo del usuarioque ingresa

9 USUARIO_MODIFICA NUMBER INcódigo del usuarioque modifica

10FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

11 FECHA_INGRESO DATE IN fecha de ingreso

12 NOMBRE_ARCHIVO VARCHAR2 IN

en caso de que lapregunta tengaalguna imagen

13 CANTIDAD_VALIDAS NUMBER IN14 BIN BLOB IN

Page 144: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

26

ACTUALIZA_PREGUNTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PV_PREGUNTA_EXAMENPL/SQLRECORD IN

1 ID_EXAMEN NUMBER IN código del examen

2 ID_PREGUNTA NUMBER INcódigo de lapregunta

2 PV_ERROR VARCHAR2 OUTmensaje deretorno de error

3 PN_ERROR NUMBER OUTcódigo de errorencontrado

3 USUARIO_INGRESA NUMBER INcódigo del usuarioque ingresa

4 FECHA_INGRESO DATE IN fecha de ingreso

5 USUARIO_MODIFICA NUMBER INcódigo del usuarioque modifica

6FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

7 CALIFICACION NUMBER IN

calificación de lapregunta delexamen

ACTUALIZA_RESPUESTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 PV_RESPUESTAPL/SQLRECORD IN

1 ID_RESPUESTA NUMBER IN

código de larespuesta de lapregunta

2 ID_PREGUNTA NUMBER INcódigo de lapregunta

2 PV_ERROR VARCHAR2 OUTmensaje deretorno de error

3 RESPUESTA VARCHAR2 INdescripción de larespuesta

3 PN_ERROR NUMBER OUTcódigo del errorencontrado

4 CALIFICACION NUMBER INvalor de lapregunta

5 MARGEN_ERROR NUMBER IN

6RESPUESTA_CORRECTA VARCHAR2 IN

7 USUARIO_INGRESA NUMBER INcódigo de usuarioque ingresa

8 USUARIO_MODIFICA NUMBER INcódigo del usuarioque modifica

9FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

Page 145: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

27

10 FECHA_INGRESO DATE INfecha de ingresoal examen

CONSULTA_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION

1 PN_ID_PREGUNTA NUMBER INcódigo de lapregunta

2 INDICE NUMBER IN

3 O_CURSOR REF CURSOR IN/OUT valor del cursor

4 COD_RET NUMBER IN/OUTcódigo de retornode error

5 MSG_RET NUMBER IN/OUTmensaje de retornode error

CUENTA_RESPUESTA

POS NOMBRE_PARAMETROTIPO_DATO

ENT /SAL DESCRIPCION

1 PN_ID_PREGUNTA NUMBER IN código de la pregunta2 PN_REGISTROS NUMBER IN/OUT código de cada registro

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

4 MSG_RET NUMBER IN/OUTmensaje de retorno deerror

1 PN_CODIGO NUMBER IN

2 PN_CATEGORIA NUMBER INcódigo de la categoría dela pregunta

3 PN_CONTADOR NUMBER OUTvalor que retorna elcontador

4 PV_ERRORVARCHAR2 OUT

mensaje de retorno deerror

5 PN_ERROR NUMBER OUT valor que retorna el error

ELIMINA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION

1 LN_ID_EXAMEN NUMBER IN código del examen

2 COD_RET NUMBER IN/OUTvalor que retorna elcontador

3 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

Page 146: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

28

ELIMINA_RESPUESTA

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

1 LN_ID_PREGUNTA NUMBER IN código de la pregunta

2 COD_RET NUMBER IN/OUTvalor que retorna elcontador

3 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

ELIMINA_PREGUNTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION1 PN_CRITERIO NUMBER IN1 PN_EXAMEN NUMBER IN código del examen2 PN_PREGUNTA NUMBER IN código de la pregunta

3 PV_ERROR VARCHAR2 OUTmensaje de retorno deerror

4 PN_ERROR NUMBER OUTvalor de retorno delerror

EXISTE_PREGUNTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION0 NUMBER OUT1 PN_ID_EXAMEN NUMBER IN código del examen2 PN_ID_PREGUNTA NUMBER IN código de la pregunta

3 PV_ERROR VARCHAR2 OUTmensaje de retorno deerror

4 PN_ERROR NUMBER OUTvalor de retorno delerror

FU_GET_ID_ESTADO

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

0 NUMBER OUT

1 PV_DESCRIPCION VARCHAR2 INdescripción deestado

2 PV_ERROR VARCHAR2 OUTmensaje de retornode error

3 PN_ERROR NUMBER OUTvalor de retorno delerror

Page 147: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

29

FU_GET_ID_ESTADO_DESCRIPCION

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION0 VARCHAR2 OUT1 PN_ESTADO NUMBER IN código de estado

2 PV_ERROR VARCHAR2 OUTmensaje de retornode error

3 PN_ERROR NUMBER OUTvalor de retorno delerror

FU_GET_PARAMETRO

POSNOMBRE_PARAMETRO TIPO_DATO

ENT /SAL DESCRIPCION

0 NUMBER OUT

1 PV_DESCRIPCION VARCHAR2 IN

2 PV_ERROR VARCHAR2 OUT mensaje de retorno de error

3 PN_ERROR NUMBER OUT valor de retorno del error

INSERTAR_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1 ID_EXAMEN NUMBER IN código de examen

1 PV_EXAMENPL/SQLRECORD IN

2 PN_SECUENCIA NUMBEROUT

valor que retorna de lasecuencia

2 ID_TIPO_EXAMEN NUMBER INcódigo del tipo deexamen

3 INTRODUCCION VARCHAR2 INmensaje deintroducción al examen

3 PV_ERROR VARCHAR2OUT

mensaje de retorno deerror

4 PN_ERROR NUMBEROUT

valor de retorno delerror

4 IS_PERMITE_ABRIR VARCHAR2 IN

una vez autorizado,permite realizarcambios al examen

5 IS_PERMITE_CERRAR VARCHAR2 IN

bloquea el examen paraque no se realicencambios

6 FECHA_INICIO DATE INfecha de inicio delexamen

Page 148: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

30

7 FECHA_FIN DATE INfecha de finalización delexamen

8 IS_LIMITE_TIEMPO VARCHAR2 INvalor del tiempoasignado al examen

9 IS_HABILITA_TIEMPO VARCHAR2 INindica si el examen eshabilitado

10TIEMPO_PRIMERO_SEGUNDO NUMBER IN

cantidad de minutosque dura el examen

11NUM_MAX_PREGUNTAS NUMBER IN

numero máximo de laspreguntas que vanhacer ingresadas

12IS_PREGUNTA_ALEATORIA VARCHAR2 IN

13IS_RESPUESTA_ALEATORIA VARCHAR2 IN

14IS_APLICA_PENALIZACION VARCHAR2 IN

mensaje que indica quese aplicara penalizaciónsi cambia de respuesta

15 IS_VENTANA_SEGURA VARCHAR2 IN

16IS_REQUIERE_CONTRASENIA VARCHAR2 IN

mensaje que indica sise requiere contraseña

17 CALIFICACION_MAXIMA NUMBER IN

valor de la calificaciónmáxima que se puedeobtener en el examen

18 ID_ESTADO NUMBER IN

código de los diferentesestados que tiene unexamen

19 USUARIO_INGRESA NUMBER INcódigo del usuario queingresa

20 USUARIO_MODIFICA NUMBER INcódigo del usuario quemodifica

21FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

22 FECHA_INGRESO DATE INfecha de ingreso alexamen

23 ID_PARCIAL NUMBER IN código del parcial

24 ID_PERIODO_LECTIVO NUMBER INcódigo del periodolectivo

25 ID_PARALELO NUMBER IN código del paralelo26 ID_MATERIA NUMBER IN código de la materia

27 CONTRASENIA VARCHAR2 INingreso de lacontraseña del examen

INSERTAR_EXAMEN_ALUMNO

POS NOMBRE_PARAMETROTIPO_DATO

ENT /SAL DESCRIPCION

1 ID_SECUENCIANUMBER IN código de la secuencia

1 PV_EXAMEN_ALUMNO PL/SQL IN

Page 149: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

31

RECORD

2 PV_ERRORVARCHAR2 OUT valor que retorna el error

2 ID_EXAMENNUMBER IN código del examen

3 ID_USUARIONUMBER IN código del usuario

3 PN_ERRORNUMBER OUT valor que retorna el examen

4 NOTA_TOTALNUMBER IN

valor de la nota total deexamen

5 FECHA_INICIO DATE IN fecha de inicio del examen

6 FECHA_TERMINA DATE INfecha de finalización delexamen

7 FECHA_PUBLICA DATE INfecha de publicación delexamen

8 FECHA_VENCE DATE INfecha de vencimiento delexamen

9 ID_ESTADONUMBER IN

código del estado delexamen

10 USUARIO_INGRESANUMBER IN

código del usuario queingresa al examen

11 USUARIO_MODIFICANUMBER IN

código del usuario quemodifica

12 FECHA_MODIFICA DATE INfecha de modificación delexamen

13 FECHA_INGRESO DATE IN fecha de ingreso al examen

14 CONT_PENALIZANUMBER IN

contador de las veces querealiza un cambio

15 SUMA_PENALIZANUMBER IN

suma de los valores depenalización de cadapregunta

16 NOTA_PARCIALNUMBER IN valor de la nota del parcial

17 OBSERVACIONVARCHAR2 IN

18PORCENTAJE_ACEPTADAS

NUMBER IN

indicador del porcentaje depreguntas acertadas

19 ID_SOLICITUDNUMBER IN

código de la solicitud delexamen

20 TIEMPO_TRANSCNUMBER IN

indicador de tiempo deltranscurrido

INSERTAR_PREGUNTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 ID_PREGUNTA NUMBER INcodigo de la preguntadel examen

1 PV_PREGUNTA PL/SQL IN

Page 150: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

32

RECORD

2 PN_SECUENCIA NUMBER OUTvalor que retorna de lasecuencia

2ID_CATEGORIA_PREGUNTA NUMBER IN

código de la categoríade la pregunta

3 ID_TIPO_PREGUNTA NUMBER INcódigo del tipo depregunta

3 PV_ERROR VARCHAR2 OUTmensaje que retornael error

4 PN_ERROR NUMBER OUTcódigo que retorna elerror

4 DESCRIPCION VARCHAR2 IN

5 CALIFICACION NUMBER INvalor de la calificaciónde la pregunta

6 MSG_GENERAL VARCHAR2 IN

7FACTOR_PENALIZACION NUMBER IN

valor de lapenalización de cadapregunta

8 USUARIO_INGRESA NUMBER INcódigo del usuario queingresa al modulo

9 USUARIO_MODIFICA NUMBER INcódigo del usuario quemodifica el modulo

10FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

11 FECHA_INGRESO DATE INfecha de ingreso almodulo

12 NOMBRE_ARCHIVO VARCHAR2 INnombre del archivo deimagen

13 CANTIDAD_VALIDAS NUMBER IN14 BIN BLOB IN

INSERTAR_PREGUNTA_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO

ENT/SAL DESCRIPCION

1 ID_EXAMEN NUMBER IN código del examen

1PV_PREGUNTA_EXAMEN

PL/SQLRECORD IN

2 ID_PREGUNTA NUMBER IN código de la pregunta

2 PV_ERROR VARCHAR2 OUTmensaje del error queretorna

3 USUARIO_INGRESA NUMBER INcódigo del usuario queingresa

3 PN_ERROR NUMBER OUTcódigo del errorencontrado

4 FECHA_INGRESO DATE INfecha de ingreso almodulo

5 USUARIO_MODIFICA NUMBER INcódigo del usuario querealiza alguna

Page 151: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

33

modificación al modulo

6FECHA_ULTIMA_MODIFICACION DATE IN

fecha de la ultimamodificación

7 CALIFICACION NUMBER INcalificación de lapregunta

INSERTAR_RESPUESTA

POS NOMBRE_PARAMETRO TIPO_DATOENT /SAL DESCRIPCION

1 ID_RESPUESTA NUMBER INcódigo de la respuestade la pregunta

1 PV_RESPUESTAPL/SQLRECORD IN

2 ID_PREGUNTA NUMBER INcódigo de la respuestade la pregunta

2 PN_SECUENCIA NUMBER OUTvalor de retorno de lasecuencia obtenida

3 RESPUESTA VARCHAR2 IN

3 PV_ERROR VARCHAR2 OUTmensaje de retorno deerror

4 CALIFICACION NUMBER INvalor de la calificaciónde la respuesta

4 PN_ERROR NUMBER OUTcódigo de retorno deerror

5 MARGEN_ERROR NUMBER INvalor del margen deerror

6RESPUESTA_CORRECTA VARCHAR2 IN

7 USUARIO_INGRESA NUMBER IN8 USUARIO_MODIFICA NUMBER IN

9FECHA_ULTIMA_MODIFICACION DATE IN

10 FECHA_INGRESO DATE IN

Page 152: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

34

Paquete PCK_EVALUACION_INTERFACE

ACT_SOLICITUD_EXAMEN_GRACIA

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

1 PN_CODIGO NUMBER IN código del examen

2 COD_RET NUMBER IN/OUTcódigo de retorno deerror

3 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

ENVIAR_CORREO

POSNOMBRE_PARAMETRO

TIPO_DATO

ENT /SAL DESCRIPCION

1 NOMBRE_ENVIAVARCHAR2 IN

dirección del correo queenvía(servidor)

2 ENVIAVARCHAR2 IN

dirección del correo queenvía(servidor)

3 RECIBEVARCHAR2 IN

dirección del correo querecibe

4 ASUNTOVARCHAR2 IN

descripción del tema delcorreo

5 MENSAJEVARCHAR2 IN

descripción del mensajedel correo

6 COD_RET NUMBERIN/OUT código de retorno de error

7 MSG_RETVARCHAR2

IN/OUT

mensaje de retorno deerror

EXISTE_ESTADO

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION0 PL/SQL BOOLEAN OUT

1 PV_ESTADO VARCHAR2 INdescripción delestado

2 COD_RET NUMBER IN/OUTcódigo de retornode error

3 MSG_RET VARCHAR2 IN/OUTmensaje deretorno de error

GET_ALUMNO_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION0 VARCHAR2 OUT

Page 153: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

35

1 PN_EXAMEN NUMBER IN código del examen2 PN_SECUENCIA NUMBER IN código de la secuencia3 PN_USUARIO NUMBER IN código del usuario

4 COD_RET NUMBER IN/OUTcódigo de retorno deerror

5 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

GET_CORREO_USUARIO

POS NOMBRE_PARAMETRO TIPO_DATO ENT / SAL DESCRIPCION0 VARCHAR2 OUT1 PN_USUARIO NUMBER IN código del usuario

2 COD_RET NUMBER IN/OUTcódigo de retorno deerror

3 MSG_RET VARCHAR2 IN/OUTmensaje de retornode error

GET_NOMBRE_PARCIAL

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

0 VARCHAR2 OUT

1 PN_PARCIAL NUMBER IN código del parcial

2 PN_PERIODO NUMBER INcódigo del periodolectivo

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

4 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

GET_PROFESOR_EXAMEN

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION

0 VARCHAR2 OUT

1 PN_PARCIAL NUMBER IN código del parcial

2 PN_PERIODO NUMBER INcódigo del periodolectivo

3 COD_RET NUMBER IN/OUTcódigo de retorno deerror

4 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

Page 154: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

36

GET_USER

POS NOMBRE_PARAMETRO TIPO_DATO ENT/SAL DESCRIPCION0 VARCHAR2 OUT1 PN_USER NUMBER IN código del usuario

2 COD_RET NUMBER IN/OUTcódigo de retorno deerror

3 MSG_RET VARCHAR2 IN/OUTmensaje de retorno deerror

Codificación

PAQUETE PCK_EVALUACION

CREATE OR REPLACE PACKAGE BODY PCK_EVALUACION ASPROCEDURE INGRESA_RESPUESTA_EXAMEN(PN_ID_EXAMEN IN NUMBER,

PN_ID_PREGUNTA IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,

PN_ID_RESPUESTA IN NUMBER,PV_DESCRIPCION

IN VARCHAR2,PV_RESPUESTA

IN VARCHAR2,PN_USUARIO IN

NUMBER,COD_RET IN OUT

NUMBER, --CODIGO DE ERRORMSG_RET IN OUT

VARCHAR2 -- MENSAJE DE ERROR) IS

ERROR EXCEPTION;CONTADOR NUMBER;PN_NOTA_PARCIAL NUMBER(5,2);PN_VALORACION NUMBER(5,2);

BEGIN--COD_RET := 0;MSG_RET := NULL;CONTADOR := 0;PN_NOTA_PARCIAL := 0;PN_VALORACION := 0;--IF PN_ID_EXAMEN IS NULL THEN

COD_RET := 1;

Page 155: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

37

MSG_RET := 'ERROR, CODIGO DE EXAMEN NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_PREGUNTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE PREGUNTA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_SECUENCIA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE SECUENCIA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_RESPUESTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE RESPUESTA NO PUEDE SER NULO';RAISE ERROR;

END IF;--BEGIN

SELECT COUNT(*)INTO CONTADORFROM RESPUESTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_PREGUNTA = PN_ID_PREGUNTAAND ID_RESPUESTA = PN_ID_RESPUESTAAND ID_USUARIO = PN_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 14;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA TABLA

<RESPUESTA_EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END;------ OBTENGO LA VALORACION DE LA RESPUESTA--PN_VALORACION :=

PCK_EVALUACION.GET_VALORACION_RESPUESTA(PN_ID_EXAMEN,PN_ID_PREGUNTA,COD_RET, MSG_RET);

--IF COD_RET <> 0 THEN

RAISE ERROR;END IF;---- OBTENGO LA NOTA DE LA RESPUESTA--PN_NOTA_PARCIAL :=

PCK_EVALUACION.GET_CALIFICACION_RESPUESTA(PN_ID_RESPUESTA,PN_ID_PREGUNTA,

PN_VALORACION,PV_RESPUESTA,COD_RET,MSG_RET);

--IF COD_RET <> 0 THEN

Page 156: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

38

RAISE ERROR;END IF;--IF CONTADOR = 0 THEN -- SE TRATA DE UNA INSERCION NUEVA NO APLICA

PENALIZACION--BEGIN

INSERT INTORESPUESTA_EXAMEN(ID_EXAMEN,ID_PREGUNTA,ID_SECUENCIA, ID_RESPUESTA,

DESCRIPCION, RESPUESTA, NOTA_PARCIAL,VALORACION,USUARIO_INGRESA, FECHA_INGRESO, ID_USUARIO)

VALUES(PN_ID_EXAMEN, PN_ID_PREGUNTA,PN_ID_SECUENCIA, PN_ID_RESPUESTA,PV_DESCRIPCION,

PV_RESPUESTA,NVL(PN_NOTA_PARCIAL,0),NVL(PN_VALORACION,0),PN_USUARIO, SYSDATE, PN_USUARIO);

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL INSERTAR REGISTRO

DE <RESPUESTA_EXAMEN>: '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT; -- GUARDA

ELSE-- SE TRATA DE UNA ACTUALIZACIÓN, SE DEBE CONTROLAR EL FACTORDE PENALIZACION

----PCK_EVALUACION.ACTUALIZA_RESPUESTA_EXAMEN(PN_ID_EXAMEN,

PN_ID_PREGUNTA,

PN_ID_SECUENCIA,

PN_ID_RESPUESTA,

PV_DESCRIPCION,PV_RESPUESTA,

PN_NOTA_PARCIAL,PN_VALORACION,PN_USUARIO,COD_RET,MSG_RET);

IF COD_RET <> 0 THENRAISE ERROR;

END IF;END IF;--EXCEPTION

WHEN ERROR THENMSG_RET := substr(MSG_RET||' Código de Error:

'||cod_ret,1,300);ROLLBACK;

WHEN OTHERS THEN

Page 157: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

39

COD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.INGRESA_RESPUESTA_EXAMEN>, '||SQLERRM,1,300);RAISE ERROR;

END INGRESA_RESPUESTA_EXAMEN;--PROCEDURE ACTUALIZA_RESPUESTA_EXAMEN(PN_ID_EXAMEN IN NUMBER,

PN_ID_PREGUNTA IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,

PN_ID_RESPUESTA IN NUMBER,PV_DESCRIPCION

IN VARCHAR2,PV_RESPUESTA

IN VARCHAR2,

PN_NOTA_PARCIAL IN NUMBER,PN_VALORACION

IN NUMBER,PN_USUARIO IN

NUMBER,COD_RET IN OUT

NUMBER, --CODIGO DE ERRORMSG_RET IN OUT

VARCHAR2 -- MENSAJE DE ERROR)IS

---- DECLARACION DE VARIABLES--ERROR EXCEPTION;

BEGINCOD_RET := 0;MSG_RET := NULL;--IF PN_ID_EXAMEN IS NULL THEN

COD_RET := 1;MSG_RET := 'ERROR, CODIGO DE EXAMEN NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_PREGUNTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE PREGUNTA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_SECUENCIA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE SECUENCIA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_RESPUESTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE RESPUESTA NO PUEDE SER NULO';RAISE ERROR;

END IF;--BEGIN

Page 158: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

40

UPDATE RESPUESTA_EXAMENSET RESPUESTA = PV_RESPUESTA,NOTA_PARCIAL = PN_NOTA_PARCIAL,VALORACION = PN_VALORACION,USUARIO_MODIFICA = PN_USUARIO,FECHA_MODIFICA = SYSDATEWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_PREGUNTA = PN_ID_PREGUNTAAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_RESPUESTA = PN_ID_RESPUESTAAND ID_USUARIO = PN_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR REGISTRO DE

<RESPUESTA_EXAMEN>: '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT; -- GUARDA--

EXCEPTIONWHEN ERROR THEN

MSG_RET := substr(MSG_RET||' Código de Error:'||cod_ret,1,300);

ROLLBACK;WHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ACTUALIZA_RESPUESTA_EXAMEN>, '||SQLERRM,1,300);RAISE ERROR;

END ACTUALIZA_RESPUESTA_EXAMEN;--

PROCEDURE ELIMINA_RESPUESTA_EXAMEN(PN_ID_EXAMEN IN NUMBER,PN_ID_PREGUNTA IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,

PN_ID_RESPUESTA IN NUMBER,PN_USUARIO IN

NUMBER,COD_RET IN OUT

NUMBER, --CODIGO DE ERRORMSG_RET IN OUT

VARCHAR2 -- MENSAJE DE ERROR)IS

---- DECLARACION DE VARIABLES--ERROR EXCEPTION;

BEGINCOD_RET := 0;MSG_RET := NULL;--

Page 159: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

41

IF PN_ID_EXAMEN IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE EXAMEN NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_PREGUNTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE PREGUNTA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_SECUENCIA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE SECUENCIA NO PUEDE SER NULO';RAISE ERROR;

ELSIF PN_ID_RESPUESTA IS NULL THENCOD_RET := 1;MSG_RET := 'ERROR, CODIGO DE RESPUESTA NO PUEDE SER NULO';RAISE ERROR;

END IF;--BEGIN

DELETE RESPUESTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_PREGUNTA = PN_ID_PREGUNTAAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_RESPUESTA = PN_ID_RESPUESTAAND ID_USUARIO = PN_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL ELIMINAR REGISTRO DE

<RESPUESTA_EXAMEN>: '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT; -- GUARDA--

EXCEPTIONWHEN ERROR THEN

MSG_RET := substr(MSG_RET||' Código de Error:'||cod_ret,1,300);

ROLLBACK;WHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ELIMINA_RESPUESTA_EXAMEN>, '||SQLERRM,1,300);RAISE ERROR;

END ELIMINA_RESPUESTA_EXAMEN;--PROCEDURE INSERTA_TIPO_EXAMEN (LV_DESCRIPCION IN VARCHAR2,

LV_USUARIO IN NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

VARCHAR2,

Page 160: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

42

LN_CODIGO OUTNUMBER) IS

LV_CONT NUMBER(3);ERROR EXCEPTION;

BEGIN--BEGIN

SELECT NVL(MAX(ID_TIPO_EXAMEN),0) + 1INTO LV_CONTFROM TIPO_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR CODIGO PARA TIPO DE

EXAMEN '||SQLERRM,1,300);RAISE ERROR;

END;--

LN_CODIGO:= LV_CONT;-- INSERTO EN LA TABLA DE TIPO DE EXAMENBEGIN

INSERT INTO TIPO_EXAMEN (ID_TIPO_EXAMEN,DESCRIPCION,USUARIO_INGRESA, FECHA_INGRESO)

VALUES(LV_CONT,LV_DESCRIPCION,LV_USUARIO,SYSDATE);EXCEPTION

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR AL INSERTAR EN LA TABLA

<TIPO_EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END;--

COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.INSERTA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END INSERTA_TIPO_EXAMEN;--PROCEDURE ACTUALIZA_TIPO_EXAMEN (LN_ID_TIPO_EXAMEN IN NUMBER,

LV_DESCRIPCION INVARCHAR2,

LV_USUARIO IN NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

VARCHAR2) ISERROR EXCEPTION;--

Page 161: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

43

BEGINBEGIN

UPDATE TIPO_EXAMENSET DESCRIPCION = LV_DESCRIPCION,USUARIO_MODIFICA = LV_USUARIO,FECHA_ULTIMA_MODIFICACION = SYSDATE

WHERE ID_TIPO_EXAMEN = LN_ID_TIPO_EXAMEN;EXCEPTION

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR TIPO DE EXAMENB

CODIGO: '||LN_ID_TIPO_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ACTUALIZA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END ACTUALIZA_TIPO_EXAMEN;--

PROCEDURE ELIMINA_TIPO_EXAMEN (LN_ID_TIPO_EXAMEN IN NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

VARCHAR2) ISERROR EXCEPTION;LN_CONTADOR NUMBER := 0;--BEGIN--BEGIN

SELECT COUNT(*)INTO LN_CONTADORFROM EXAMENWHERE ID_TIPO_EXAMEN = LN_ID_TIPO_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR TIPO DE EXAMEN EN TABLA

<EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END;--IF LN_CONTADOR = 0 THEN -- ELIMINAMOS DE LA TABLA

BEGINDELETE TIPO_EXAMENWHERE ID_TIPO_EXAMEN = LN_ID_TIPO_EXAMEN;

Page 162: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

44

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ELIMINAR TIPO DE EXAMEN

CODIGO: '||LN_ID_TIPO_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;ELSECOD_RET := 5;MSG_RET := 'NO SE PUEDE ELIMINAR TIPO DE EXAMEN PORQUE EXISTEN

REGISTROS ASOCIADOS A EXAMENES ';END IF;--COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ELIMINA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END ELIMINA_TIPO_EXAMEN;--

PROCEDURE INSERTA_CATEGORIA_PREGUNTA(LN_ID_PADRE IN NUMBER,LV_NOMBRE IN

VARCHAR2,

LV_DESCRIPCION IN VARCHAR2,LV_USUARIO

IN NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2,LN_CODIGO

OUT NUMBER)ISLV_CONT NUMBER(3);ERROR EXCEPTION;

BEGIN--BEGIN

SELECT NVL(MAX(ID_CATEGORIA_PREGUNTA),0) + 1INTO LV_CONTFROM CATEGORIA_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR CODIGO PARA

CATEGORIA_PREGUNTA '||SQLERRM,1,300);RAISE ERROR;

END;--

Page 163: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

45

LN_CODIGO:= LV_CONT;-- INSERTO EN LA TABLA DE TIPO DE EXAMENBEGIN

INSERT INTO CATEGORIA_PREGUNTA (ID_CATEGORIA_PREGUNTA,ID_PADRE,

NOMBRE, DESCRIPCION,USUARIO_INGRESA, FECHA_INGRESO)VALUES(LV_CONT,LN_ID_PADRE,LV_NOMBRE,

LV_DESCRIPCION,LV_USUARIO,SYSDATE);EXCEPTION

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR AL INSERTAR EN LA TABLA

<CATEGORIA_PREGUNTA> '||SQLERRM,1,300);RAISE ERROR;

END;--

COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.INSERTA_CATEGORIA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END INSERTA_CATEGORIA_PREGUNTA;--PROCEDURE ACTUALIZA_CATEGORIA_PREGUNTA(LN_ID_CATEGORIA_PREGUNTA IN

NUMBER,LN_ID_PADRE

IN NUMBER,LV_NOMBRE IN

VARCHAR2,

LV_DESCRIPCION IN VARCHAR2,LV_USUARIO

IN NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) IS--ERROR EXCEPTION;--BEGINBEGIN

UPDATE CATEGORIA_PREGUNTASET ID_PADRE = LN_ID_PADRE,NOMBRE = LV_NOMBRE,DESCRIPCION = LV_DESCRIPCION,USUARIO_MODIFICA = LV_USUARIO,FECHA_ULTIMA_MODIFICACION = SYSDATE

WHERE ID_CATEGORIA_PREGUNTA = LN_ID_CATEGORIA_PREGUNTA;

Page 164: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

46

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR CATEGORIA DE PREGUNTA,

CODIGO: '||LN_ID_CATEGORIA_PREGUNTA||' '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT;--EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ACTUALIZA_CATEGORIA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END ACTUALIZA_CATEGORIA_PREGUNTA;--PROCEDURE ELIMINA_CATEGORIA_PREGUNTA(LN_ID_CATEGORIA_PREGUNTA IN

NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) ISERROR EXCEPTION;LN_CONTADOR NUMBER := 0;BEGIN--BEGIN

SELECT COUNT(*)INTO LN_CONTADORFROM PREGUNTAWHERE ID_CATEGORIA_PREGUNTA = LN_ID_CATEGORIA_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR CATEGORIA DE PREGUNTA EN

TABLA <PREGUNTA> '||SQLERRM,1,300);RAISE ERROR;

END;--IF LN_CONTADOR = 0 THEN -- ELIMINAMOS DE LA TABLA

BEGINDELETE CATEGORIA_PREGUNTAWHERE ID_CATEGORIA_PREGUNTA = LN_ID_CATEGORIA_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ELIMINAR CATEGORIA_PREGUNTA

CODIGO: '||LN_ID_CATEGORIA_PREGUNTA||' '||SQLERRM,1,300);RAISE ERROR;

END;

Page 165: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

47

ELSECOD_RET := 5;MSG_RET := 'NO SE PUEDE ELIMINAR CATEGORIA DE PREGUNTA PORQUE

EXISTEN REGISTROS ASOCIADOS A PREGUNTAS ';END IF;--COMMIT;--EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ELIMINA_CATEGORIA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END ELIMINA_CATEGORIA_PREGUNTA;--

PROCEDURE CONSULTA_CATEGORIA_PREGUNTA(PN_ID_CATEGORIA_PREGUNTA INNUMBER,

PV_NOMBRE IN VARCHAR2,INDICE IN

NUMBER,O_CURSOR

IN OUT T_CURSOR,COD_RET

IN OUT NUMBER,MSG_RET

IN OUT NUMBER) ISERROR EXCEPTION;--CURSOR DATOS IS

SELECT ROWNUM,ROWID, ID_CATEGORIA_PREGUNTA,ID_PADRE, NOMBRE, DESCRIPCION, USUARIO_INGRESA,

FECHA_INGRESO,USUARIO_MODIFICA, FECHA_ULTIMA_MODIFICACIONFROM CATEGORIA_PREGUNTAWHERE ID_CATEGORIA_PREGUNTA = NVL(PN_ID_CATEGORIA_PREGUNTA,

ID_CATEGORIA_PREGUNTA)AND NOMBRE LIKE NVL('%'||PV_NOMBRE||'%',NOMBRE);

BEGINBEGINFOR REG IN DATOS LOOP

IF REG.ROWNUM = INDICE THENOPEN O_CURSOR FORSELECT ID_CATEGORIA_PREGUNTA,ID_PADRE, NOMBRE, DESCRIPCION, USUARIO_INGRESA,

FECHA_INGRESO,USUARIO_MODIFICA, FECHA_ULTIMA_MODIFICACIONFROM CATEGORIA_PREGUNTAWHERE ID_CATEGORIA_PREGUNTA =

NVL(PN_ID_CATEGORIA_PREGUNTA, ID_CATEGORIA_PREGUNTA)AND NOMBRE LIKE NVL('%'||PV_NOMBRE||'%',NOMBRE)

Page 166: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

48

AND ROWID = REG.ROWID;--EXIT;

END IF;END LOOP;--

--AND ROWNUM = INDICE;EXCEPTION

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONSULTAR CATEGORIA_PREGUNTA

'||SQLERRM,1,300);RAISE ERROR;

END;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.CONSULTA_CATEGORIA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END CONSULTA_CATEGORIA_PREGUNTA;--PROCEDURE CUENTA_CATEGORIA_PREGUNTA(PN_ID_CATEGORIA_PREGUNTA IN

NUMBER,PV_NOMBRE IN VARCHAR2,

PN_REGISTROSIN OUT NUMBER,

COD_RET IN OUTNUMBER,

MSG_RET IN OUTNUMBER) IS

ERROR EXCEPTION;SALIR EXCEPTION;BEGINBEGINSELECT COUNT(*)INTO PN_REGISTROSFROM CATEGORIA_PREGUNTAWHERE ID_CATEGORIA_PREGUNTA = NVL(PN_ID_CATEGORIA_PREGUNTA,

ID_CATEGORIA_PREGUNTA)AND NOMBRE LIKE NVL('%'||PV_NOMBRE||'%',NOMBRE);

EXCEPTIONWHEN NO_DATA_FOUND THEN

PN_REGISTROS := 0;WHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONTAR CATEGORIA_PREGUNTA

'||SQLERRM,1,300);RAISE ERROR;

END;

Page 167: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

49

--EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.CUENTA_CATEGORIA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END CUENTA_CATEGORIA_PREGUNTA;--

PROCEDURE CONSULTA_TIPO_EXAMEN(PN_ID_TIPO_EXAMEN IN NUMBER,PV_NOMBRE IN VARCHAR2,

INDICE INNUMBER,

O_CURSORIN OUT T_CURSOR,

COD_RETIN OUT NUMBER,

MSG_RETIN OUT NUMBER) IS

CURSOR DATOS ISSELECT ID_TIPO_EXAMEN,ROWNUM,ROWID,DESCRIPCION, USUARIO_INGRESA, FECHA_INGRESO,USUARIO_MODIFICA, FECHA_ULTIMA_MODIFICACIONFROM TIPO_EXAMENWHERE ID_TIPO_EXAMEN = NVL(PN_ID_TIPO_EXAMEN, ID_TIPO_EXAMEN)

AND DESCRIPCION LIKE NVL('%'||PV_NOMBRE||'%',DESCRIPCION);--

ERROR EXCEPTION;BEGIN

BEGINFOR REG IN DATOS LOOPIF REG.ROWNUM = INDICE THEN

OPEN O_CURSOR FORSELECT ID_TIPO_EXAMEN,DESCRIPCION, USUARIO_INGRESA, FECHA_INGRESO,USUARIO_MODIFICA, FECHA_ULTIMA_MODIFICACIONFROM TIPO_EXAMENWHERE ID_TIPO_EXAMEN = NVL(PN_ID_TIPO_EXAMEN,

ID_TIPO_EXAMEN)AND DESCRIPCION LIKE

NVL('%'||PV_NOMBRE||'%',DESCRIPCION)AND ROWID = REG.ROWID;

END IF;END LOOP;--

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONSULTAR TIPO_EXAMEN

'||SQLERRM,1,300);RAISE ERROR;

Page 168: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

50

END;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.CONSULTA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END CONSULTA_TIPO_EXAMEN;--PROCEDURE CUENTA_TIPO_EXAMEN(PN_ID_TIPO_EXAMEN IN NUMBER,

PV_NOMBRE IN VARCHAR2,PN_REGISTROS

IN OUT NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

NUMBER) ISERROR EXCEPTION;SALIR EXCEPTION;BEGINBEGINSELECT COUNT(*)INTO PN_REGISTROSFROM TIPO_EXAMENWHERE ID_TIPO_EXAMEN = NVL(PN_ID_TIPO_EXAMEN, ID_TIPO_EXAMEN)

AND DESCRIPCION LIKE NVL('%'||PV_NOMBRE||'%',DESCRIPCION);EXCEPTION

WHEN NO_DATA_FOUND THENPN_REGISTROS := 0;

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONTAR TIPO_EXAMEN

'||SQLERRM,1,300);RAISE ERROR;

END;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.CUENTA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END CUENTA_TIPO_EXAMEN;--PROCEDURE GET_EXAMEN_ALUMNO (PN_ID_PERIODO IN NUMBER,

PN_ID_USUARIO IN NUMBER,PN_REGISTROS IN OUT

NUMBER,

Page 169: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

51

O_CURSOR IN OUTT_CURSOR,

COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

ISERROR EXCEPTION;BEGIN--BEGIN

SELECT COUNT(*)INTO PN_REGISTROSFROM EXAMEN A, EXAMEN_ALUMNO B, USUARIO C,MATERIA D, PARALELO

E, ESTADO GWHERE A.ID_EXAMEN = B.ID_EXAMENAND B.ID_USUARIO = C.ID_USUARIOAND A.ID_MATERIA = D.ID_MATERIAAND A.ID_PARALELO = E.ID_PARALELOAND A.ID_PERIODO_LECTIVO = PN_ID_PERIODOAND B.ID_ESTADO = G.ID_ESTADOAND G.MODULO = 'EVALUACION'AND B.ID_USUARIO = PN_ID_USUARIOAND A.ID_TIPO_EXAMEN <> 5; -- OJO HAY QUE PARAMETRIZAR

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL BUSCAR EXAMENES ACTIVOS PARA

ALUMNO '||SQLERRM,1,300);RAISE ERROR;

END;

IF PN_REGISTROS >0 THENBEGIN

OPEN O_CURSOR FORSELECT A.ID_EXAMEN,D.DESCRIPCION

NOMBRE_MATERIA,E.DESCRIPCION NOMBRE_PARALELO,G.DESCRIPCION

ESTADO_EXAMEN,TO_CHAR(A.FECHA_INICIO,'DD/MM/YYYY HH24:MI:SS')FECHA_INICIO,

TO_CHAR(A.FECHA_FIN,'DD/MM/YYYY HH24:MI:SS')FECHA_FIN, H.DESCRIPCION TIPO, B.ID_SECUENCIA,B.TIEMPO_TRANSC

FROM EXAMEN A, EXAMEN_ALUMNO B, USUARIO C,MATERIAD, PARALELO E, ESTADO G, TIPO_EXAMEN H

WHERE A.ID_EXAMEN = B.ID_EXAMENAND B.ID_USUARIO = C.ID_USUARIOAND A.ID_MATERIA = D.ID_MATERIAAND A.ID_PARALELO = E.ID_PARALELOAND A.ID_PERIODO_LECTIVO = PN_ID_PERIODOAND B.ID_ESTADO = G.ID_ESTADOAND A.ID_TIPO_EXAMEN = H.ID_TIPO_EXAMENAND G.MODULO = 'EVALUACION'AND B.ID_USUARIO = PN_ID_USUARIOAND A.ID_TIPO_EXAMEN <> 5 -- OJO HAY QUE

PARANETRIZARORDER BY A.FECHA_FIN DESC;

Page 170: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

52

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR EXAMENES ACTIVOS

PARA ALUMNO '||SQLERRM,1,300);RAISE ERROR;

END;--

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.CUENTA_TIPO_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END GET_EXAMEN_ALUMNO;--PROCEDURE GET_PREGUNTAS_EXAMEN (PN_ID_EXAMEN IN NUMBER,

PB_ALEATORIA IN BOOLEAN,PN_REGISTROS IN OUT

NUMBER,O_CURSOR IN OUT

T_CURSOR,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

NUMBER) IS

ERROR EXCEPTION;BEGIN--IF PB_ALEATORIA = FALSE THEN

BEGINSELECT COUNT(*)INTO PN_REGISTROSFROM PREGUNTA_EXAMEN A, PREGUNTA B, TIPO_PREGUNTA C,

CATEGORIA_PREGUNTA DWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND B.ID_TIPO_PREGUNTA = C.ID_TIPO_PREGUNTAAND B.ID_CATEGORIA_PREGUNTA = D.ID_CATEGORIA_PREGUNTAAND A.ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL OBTENER PREGUNTAS DE EXAMEN

'||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--IF PN_REGISTROS > 0 THEN

BEGINOPEN O_CURSOR FOR

Page 171: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

53

SELECT A.ID_EXAMEN, B.ID_PREGUNTA, C.DESCRIPCIONTIPO, D.NOMBRE CATEGORIA, A.CALIFICACION, B.DESCRIPCION BREVE,NOMBRE_ARCHIVO, B.CANTIDAD_VALIDAS

FROM PREGUNTA_EXAMEN A, PREGUNTA B, TIPO_PREGUNTAC, CATEGORIA_PREGUNTA D

WHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND B.ID_TIPO_PREGUNTA = C.ID_TIPO_PREGUNTAAND B.ID_CATEGORIA_PREGUNTA =

D.ID_CATEGORIA_PREGUNTAAND A.ID_EXAMEN = PN_ID_EXAMENORDER BY B.ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL LLENAR CURSOR DE

PREGUNTAS DE EXAMEN '||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;END IF;

ELSE--BEGIN

SELECT COUNT(*)INTO PN_REGISTROSFROM PREGUNTA_EXAMEN A, PREGUNTA B, TIPO_PREGUNTA C,

CATEGORIA_PREGUNTA DWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND B.ID_TIPO_PREGUNTA = C.ID_TIPO_PREGUNTAAND B.ID_CATEGORIA_PREGUNTA = D.ID_CATEGORIA_PREGUNTAAND A.ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL OBTENER PREGUNTAS DE EXAMEN

'||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--IF PN_REGISTROS > 0 THEN

BEGINOPEN O_CURSOR FORSELECT A.ID_EXAMEN, B.ID_PREGUNTA, C.DESCRIPCION

TIPO, D.NOMBRE CATEGORIA, A.CALIFICACION, B.DESCRIPCION BREVE,NOMBRE_ARCHIVO, B.CANTIDAD_VALIDAS

FROM PREGUNTA_EXAMEN A, PREGUNTA B, TIPO_PREGUNTAC, CATEGORIA_PREGUNTA D

WHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND B.ID_TIPO_PREGUNTA = C.ID_TIPO_PREGUNTAAND B.ID_CATEGORIA_PREGUNTA =

D.ID_CATEGORIA_PREGUNTAAND A.ID_EXAMEN = PN_ID_EXAMENORDER BY B.DESCRIPCION;

EXCEPTIONWHEN OTHERS THEN

Page 172: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

54

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL LLENAR CURSOR DE

PREGUNTAS DE EXAMEN '||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;END IF;

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_PREGUNTAS_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END;

PROCEDURE GET_DATOS_EXAMEN (PN_ID_EXAMEN IN NUMBER,O_CURSOR IN OUT T_CURSOR,

COD_RET IN OUT NUMBER,MSG_RET IN OUT NUMBER) IS

ERROR EXCEPTION;BEGIN

BEGINOPEN O_CURSOR FORSELECT *FROM EXAMENWHERE ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR DATOS DE EXAMEN

'||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR AL LLENAR CURSOR DE

PREGUNTAS DE EXAMEN '||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_DATOS_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END GET_DATOS_EXAMEN;--

PROCEDURE ACTUALIZA_ESTADO_EXAMEN_ALUMNO(PN_ID_EXAMEN IN NUMBER,

PN_ID_USUARIO IN NUMBER,

Page 173: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

55

PN_ID_SECUENCIA IN NUMBER,

PV_ESTADO IN VARCHAR2,

COD_RET IN OUT NUMBER,

MSG_RET IN OUT VARCHAR2) ISERROR EXCEPTION;VAR_ESTADO NUMBER(5):= NULL;VAR_OBSERVACION VARCHAR2(100);--BEGIN

--BEGINSELECT ID_ESTADOINTO VAR_ESTADOFROM ESTADOWHERE MODULO = 'EVALUACION'AND DESCRIPCION = PV_ESTADO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR, NO EXISTE CODIGO DE ESTADO

PARA '||PV_ESTADO||' CONSULTE CON SU DBA',1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR AL BUSCAR CODIGO DE ESTADO

PARA: '||PV_ESTADO||' '||SQLERRM,1,300);RAISE ERROR;

END;--IF PV_ESTADO = 'CR' THEN

VAR_OBSERVACION := 'EXAMEN_CREADO, '||TO_CHAR(SYSDATE);ELSIF PV_ESTADO = 'AU' THEN

VAR_OBSERVACION := 'EXAMEN_CREADO, '||TO_CHAR(SYSDATE);ELSIF PV_ESTADO = 'IN' THEN

VAR_OBSERVACION := 'EXAMEN_INICIADO, '||TO_CHAR(SYSDATE);ELSIF PV_ESTADO = 'BL' THEN

VAR_OBSERVACION := 'EXAMEN_BLOQUEADO, '||TO_CHAR(SYSDATE);ELSIF PV_ESTADO = 'FT' THEN

VAR_OBSERVACION := 'EXAMEN_FINALIZAO_POR_TIEMPO,'||TO_CHAR(SYSDATE);

ELSIF PV_ESTADO = 'FE' THENVAR_OBSERVACION := 'EXAMEN_FINALIZADO_VOLUNTARIO,

'||TO_CHAR(SYSDATE);ELSIF PV_ESTADO = 'FA' THEN

VAR_OBSERVACION := 'EXAMEN_FINALIZADO_ABRUPTO,'||TO_CHAR(SYSDATE);

END IF;--IF PV_ESTADO = 'IN' THEN -- INICIADO

BEGIN

Page 174: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

56

UPDATE EXAMEN_ALUMNOSET ID_ESTADO = VAR_ESTADO,FECHA_INICIO = SYSDATE,OBSERVACION = VAR_OBSERVACIONWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_USUARIO = PN_ID_USUARIOAND ID_SECUENCIA = PN_ID_SECUENCIA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR <EXAMEN_ALUMNO>

'||SQLERRM,1,300);RAISE ERROR;

END;ELSIF PV_ESTADO IN('FT','FE','FA') THEN

BEGINUPDATE EXAMEN_ALUMNOSET ID_ESTADO = VAR_ESTADO,FECHA_TERMINA = SYSDATE,OBSERVACION = VAR_OBSERVACIONWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_USUARIO = PN_ID_USUARIOAND ID_SECUENCIA = PN_ID_SECUENCIA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR <EXAMEN_ALUMNO>

'||SQLERRM,1,300);RAISE ERROR;

END;ELSE

BEGINUPDATE EXAMEN_ALUMNOSET ID_ESTADO = VAR_ESTADO,OBSERVACION = VAR_OBSERVACIONWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_USUARIO = PN_ID_USUARIOAND ID_SECUENCIA = PN_ID_SECUENCIA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR <EXAMEN_ALUMNO>

'||SQLERRM,1,300);RAISE ERROR;

END;END IF;

--COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;

Page 175: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

57

MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO<PCK_EVALUACION.ACTUALIZA_ESTADO_EXAMEN_ALUMNO>: '||SQLERRM,1,300);

ROLLBACK;END;--

FUNCTION IS_EXAMEN_A_TIEMPO (PN_ID_EXAMEN IN NUMBER,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

RETURN BOOLEAN ISERROR EXCEPTION;VAR_FECHA_COMPARA DATE;

BEGINVAR_FECHA_COMPARA := NULL;

BEGINSELECT FECHA_FININTO VAR_FECHA_COMPARAFROM EXAMENWHERE ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR EN

<PCK_EVALUACION.IS_EXAMEN_A_TIEMPO> AL BUSCRA FECHA FINAL DEEVALUACION '||SQLERRM,1,300);

RAISE ERROR;END;--

IF VAR_FECHA_COMPARA >= SYSDATE THENRETURN TRUE;

ELSERETURN FALSE;

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN FALSE;

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ACTUALIZA_ESTADO_EXAMEN_ALUMNO>: '||SQLERRM,1,300);RETURN FALSE;END IS_EXAMEN_A_TIEMPO;----PROCEDURE GET_DATOS_EXAMEN_ALUMNO(PN_ID_EXAMEN IN NUMBER,

PN_ID_SECUENCIAIN NUMBER,

PN_ID_USUARIOIN NUMBER,

O_CURSOR IN OUT T_CURSOR,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

NUMBER) IS

Page 176: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

58

ERROR EXCEPTION;BEGIN

BEGINOPEN O_CURSOR FORSELECT ID_SECUENCIA, ID_EXAMEN,

ID_USUARIO,NOTA_TOTAL, FECHA_INICIO, FECHA_TERMINA,FECHA_PUBLICA,FECHA_VENCE,ID_ESTADO,

CONT_PENALIZA, SUMA_PENALIZA, NOTA_PARCIAL,OBSERVACION, NVL(TIEMPO_TRANSC,0) TIEMPO_TRANSC,PORCENTAJE_ACEPTADAS, ID_SOLICITUD

FROM EXAMEN_ALUMNOWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR DATOS DE EXAMEN

ALUMNO: EXAMEN: '||PN_ID_EXAMEN||' USUARIO: '||PN_ID_USUARIO||''||SQLERRM,1,300);

RAISE ERROR;WHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL LLENAR CURSOR DE

PREGUNTAS DE EXAMEN ALUMNO: EXAMEN: '||PN_ID_EXAMEN||' USUARIO:'||PN_ID_USUARIO||' '||SQLERRM,1,300);

RAISE ERROR;END;

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_DATOS_EXAMEN_ALUMNO>: '||SQLERRM,1,300);ROLLBACK;END GET_DATOS_EXAMEN_ALUMNO;--PROCEDURE ACTUALIZA_TIEMPO_EXAMEN_ALUMNO(PN_ID_EXAMEN IN

NUMBER,

PN_ID_USUARIO IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,

PN_TIEMPO IN NUMBER,COD_RET

IN OUT NUMBER,MSG_RET

IN OUT VARCHAR2)ISERROR EXCEPTION;BEGIN

BEGINUPDATE EXAMEN_ALUMNO

Page 177: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

59

SET TIEMPO_TRANSC = PN_TIEMPOWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('Error al Actualizar tiempo en tabla

<EXAMEN_ALUMNO> '||sqlerrm,1,300);RAISE ERROR;

END;--+COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.ACTUALIZA_TIEMPO_EXAMEN_ALUMNO>: '||SQLERRM,1,300);ROLLBACK;END ACTUALIZA_TIEMPO_EXAMEN_ALUMNO;

--FUNCTION IS_EXAMEN_ALUMNO_BLOQUEADO(PN_ID_EXAMEN IN NUMBER,

PN_ID_USUARIO IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,COD_RET

IN OUT NUMBER,MSG_RET

IN OUT VARCHAR2) RETURN BOOLEAN ISERROR EXCEPTION;VAR_CUENTA NUMBER(1) := 0;BEGINBEGIN

SELECT COUNT(*)INTO VAR_CUENTAFROM EXAMEN_ALUMNO A, ESTADO BWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_USUARIO = PN_ID_USUARIOAND ID_SECUENCIA = PN_ID_SECUENCIAAND A.ID_ESTADO = B.ID_ESTADOAND B.MODULO = 'EVALUACION'AND B.DESCRIPCION = 'BL';

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA TABLA

<EXAMEN_ALUMNO> PARA VERIFICAR SI ESTA BLOQUEADO '||SQLERRM,1,300);RAISE ERROR;

END;--

Page 178: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

60

IF VAR_CUENTA = 0 THENRETURN FALSE;

ELSERETURN TRUE;

END IF;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN FALSE;

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.IS_EXAMEN_ALUMNO_BLOQUEADO>: '||SQLERRM,1,300);RETURN FALSE;ROLLBACK;

END IS_EXAMEN_ALUMNO_BLOQUEADO;------FUNCTION IS_PREGUNTA_CONTESTADA (PN_ID_EXAMEN IN NUMBER,

PN_ID_PREGUNTA IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,PN_ID_USUARIO

IN NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) RETURN BOOLEAN ISERROR EXCEPTION;

VAR_CUENTA NUMBER(1) := 0;BEGINBEGIN

SELECT COUNT(*)INTO VAR_CUENTAFROM RESPUESTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_USUARIO = PN_ID_USUARIOAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA TABLA

<RESPUESTA_EXAMEN>'||SQLERRM,1,300);RAISE ERROR;

END;--IF VAR_CUENTA = 0 THEN

RETURN FALSE;ELSE

RETURN TRUE;

Page 179: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

61

END IF;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN FALSE;

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.IS_PREGUNTA_CONTESTADA>: '||SQLERRM,1,300);RETURN FALSE;ROLLBACK;

END IS_PREGUNTA_CONTESTADA;------PROCEDURE GET_RESPUESTAS_PREGUNTA(PN_ID_PREGUNTA IN NUMBER,

O_CURSOR INOUT T_CURSOR,

COD_RET INOUT NUMBER,

MSG_RET INOUT NUMBER) IS

ERROR EXCEPTION;BEGIN

BEGINOPEN O_CURSOR FORSELECT

B.ID_RESPUESTA,B.ID_PREGUNTA,MARGEN_ERROR,B.CALIFICACION,RESPUESTA_CORRECTA,

RESPUESTA,A.DESCRIPCION NOMBRE_PREGUNTAFROM PREGUNTA A, RESPUESTA BWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND A.ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR RESPUESTAS PARA

PREGUNTA: '||SQLERRM,1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A TABLA

<RESPUESTA> AL LLENAR CURSOR DE RESPUESTAS DE PREGUNTAS'||SQLERRM,1,300);

RAISE ERROR;END;

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_RESPUESTAS_PREGUNTA>: '||SQLERRM,1,300);

Page 180: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

62

ROLLBACK;END GET_RESPUESTAS_PREGUNTA;--

FUNCTION GET_VALORACION_RESPUESTA(PN_ID_EXAMEN IN NUMBER,PN_ID_PREGUNTA IN

NUMBER,COD_RET IN OUT NUMBER,

MSG_RET IN OUTVARCHAR2)RETURN NUMBER IS

ERROR EXCEPTION;VAR_PUNTAJE NUMBER(5,2);VAR_VALORACION NUMBER(5,2);VAR_TIPO_PREGUNTA NUMBER(1) := 0;CUENTA_RESPUESTAS NUMBER;BEGIN

VAR_VALORACION := 0;VAR_PUNTAJE := 0;CUENTA_RESPUESTAS := 0;---- OBTENGO EL TIPO DE PREGUNTA--BEGIN

SELECT ID_TIPO_PREGUNTAINTO VAR_TIPO_PREGUNTAFROM PREGUNTAWHERE ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR TIPO DE PREGUNTA

PARA PREGUNTA: '||PN_ID_PREGUNTA||SQLERRM,1,300);RAISE ERROR;

END;---- OBTENGO EL PUNTAJE DE LA PREGUNTA--BEGIN

SELECT CALIFICACIONINTO VAR_PUNTAJEFROM PREGUNTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL BUSCAR CALIFICACION PARA

PREGUNTA: '||PN_ID_PREGUNTA||' EN EXAMEN: '||PN_ID_EXAMEN||''||SQLERRM,1,300);

RAISE ERROR;END;--IF VAR_TIPO_PREGUNTA = 1 THEN -- RESPUESTA SINPLES

VAR_VALORACION := VAR_PUNTAJE;ELSE

Page 181: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

63

IF VAR_TIPO_PREGUNTA = 3 THEN -- VERDADERO O FALSO TODASCADA PREGUNTA VALE EL PROPROCIONAL

BEGINSELECT COUNT(*)INTO CUENTA_RESPUESTASFROM RESPUESTAWHERE ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA

TABLA <RESPUESTA> '||SQLERRM,1,300);RAISE ERROR;

END;--

ELSE -- RESPUESTA MULTIPLE, CADA RESPUESTA CORRECTA TIENEUNA VALORACION

BEGINSELECT COUNT(*)INTO CUENTA_RESPUESTASFROM RESPUESTAWHERE ID_PREGUNTA = PN_ID_PREGUNTAAND RESPUESTA_CORRECTA = '1';

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA

TABLA <RESPUESTA> '||SQLERRM,1,300);RAISE ERROR;

END;END IF;--VAR_VALORACION := (VAR_PUNTAJE/CUENTA_RESPUESTAS);--

END IF;--RETURN VAR_VALORACION;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN 0;

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_VALORACION_RESPUESTA>: '||SQLERRM,1,300);RETURN 0;END GET_VALORACION_RESPUESTA;

----FUNCTION GET_CALIFICACION_RESPUESTA(PN_ID_RESPUESTA IN NUMBER,

PN_ID_PREGUNTA IN NUMBER,

Page 182: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

64

PN_VALORACIONIN NUMBER,

PV_RESPUESTA_USUARIO IN VARCHAR2,COD_RET IN OUT

NUMBER,MSG_RET IN

OUT VARCHAR2)RETURN NUMBER ISERROR EXCEPTION;VAR_CALIFICACION NUMBER(5,2);VAR_RESPUESTA_PREGUNTA VARCHAR2(1);VAR_TIPO_PREGUNTA NUMBER(1) := 0;BEGIN

VAR_CALIFICACION := 0;---- OBTENGO EL TIPO DE PREGUNTA--BEGIN

SELECT ID_TIPO_PREGUNTAINTO VAR_TIPO_PREGUNTAFROM PREGUNTAWHERE ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR TIPO DE PREGUNTA

PARA PREGUNTA: '||PN_ID_PREGUNTA||SQLERRM,1,300);RAISE ERROR;

END;--BEGIN

SELECT RESPUESTA_CORRECTAINTO VAR_RESPUESTA_PREGUNTAFROM RESPUESTAWHERE ID_RESPUESTA = PN_ID_RESPUESTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL BUSCAR RESPUESTA CORRECTA

CODIGO DE RESPUESTA: '||PN_ID_RESPUESTA||' '||SQLERRM,1,300);RAISE ERROR;

END;

IF VAR_TIPO_PREGUNTA IN (1,2) THEN -- RESPUESTA SIMPLEORESPUESTA MULTIPLE

--VAR_CALIFICACION := TO_NUMBER(VAR_RESPUESTA_PREGUNTA) *

TO_NUMBER(PV_RESPUESTA_USUARIO) * PN_VALORACION;--ELSE -- VERDADERO O FALSO--

IF (VAR_RESPUESTA_PREGUNTA = PV_RESPUESTA_USUARIO) THEN-- ACERTO VERDADERO O CAETO FALSO

VAR_CALIFICACION := PN_VALORACION;

Page 183: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

65

ELSEVAR_CALIFICACION := 0;

END IF;--END IF;

--RETURN VAR_CALIFICACION;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN 0;

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_CALIFICACION_RESPUESTA>: '||SQLERRM,1,300);RETURN 0;END GET_CALIFICACION_RESPUESTA;----

PROCEDURE APLICA_VALOR_PENALIZACION (PN_ID_EXAMEN IN NUMBER,PN_ID_SECUENCIA IN NUMBER,

PN_ID_USUARIOIN NUMBER,

PN_ID_PREGUNTA IN NUMBER,

PN_CONTADOR_PENALIZACION IN OUT NUMBER,

PN_SUMA_PENALIZACION IN OUT NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) ISERROR EXCEPTION;PORCENTAJE_PENALIZACION PREGUNTA.FACTOR_PENALIZACION%TYPE;VALOR_PENALIZACION EXAMEN_ALUMNO.SUMA_PENALIZA%TYPE;BEGIN---- OBTENGO LOS VALORES DE PENALIZACIOBN ACTUAL PARA EL ALUMNO--

BEGINSELECT NVL(CONT_PENALIZA,0), NVL(SUMA_PENALIZA,0)INTO PN_CONTADOR_PENALIZACION, PN_SUMA_PENALIZACIONFROM EXAMEN_ALUMNOWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;

Page 184: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

66

MSG_RET := SUBSTR('ERROR AL ACCESAR A LA TABLA<EXAMEN_ALUMNO> PARA OBTENER VALORES DE PENALIZACION'||SQLERRM,1,300);

RAISE ERROR;END;--

BEGINSELECT FACTOR_PENALIZACIONINTO PORCENTAJE_PENALIZACIONFROM PREGUNTAWHERE ID_PREGUNTA = PN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A LA TABLA

<PREGUNTA> PARA OBTENER FACTOR DE PENALIZACION '||SQLERRM,1,300);RAISE ERROR;

END;--PN_CONTADOR_PENALIZACION := PN_CONTADOR_PENALIZACION + 1; --

INCREMENTO EL CONT_PENALIZA--VALOR_PENALIZACION := PORCENTAJE_PENALIZACION;--PN_SUMA_PENALIZACION := PN_SUMA_PENALIZACION +

VALOR_PENALIZACION;--BEGIN

UPDATE EXAMEN_ALUMNOSET CONT_PENALIZA = PN_CONTADOR_PENALIZACION,SUMA_PENALIZA = PN_SUMA_PENALIZACIONWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR FACTORES DE

PENALIZACION EN LA TABLA <EXAMEN_ALUMNO>: '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.APLICA_VALOR_PENALIZACION>: '||SQLERRM,1,300);END APLICA_VALOR_PENALIZACION;--FUNCTION GET_RESPUESTA_EXAMEN (PN_ID_EXAMEN IN NUMBER,

Page 185: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

67

PN_ID_SECUENCIA IN NUMBER,PN_ID_USUARIO

IN NUMBER,

PN_ID_RESPUESTA IN NUMBER,PN_ID_PREGUNTA

IN NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

VARCHAR2)RETURN VARCHAR2 ISERROR EXCEPTION;VAR_RESPUESTA RESPUESTA_EXAMEN.RESPUESTA%TYPE;BEGIN

BEGINSELECT RESPUESTAINTO VAR_RESPUESTAFROM RESPUESTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA= PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIOAND ID_PREGUNTA = PN_ID_PREGUNTAAND ID_RESPUESTA = PN_ID_RESPUESTA;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 1;MSG_RET := SUBSTR('Error, Respuesta para Pregunta

Contestada '||pn_id_pregunta||' Resp: '||pn_id_respuesta||' noexistente en la base... '||sqlerrm,1,300);

RAISE ERROR;WHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('Error no controlado al buscra

respuesta de pregunta .... '||pn_id_respuesta||' '||sqlerrm,1,300);RAISE ERROR;

END;--RETURN VAR_RESPUESTA;

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);RETURN '0';

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_RESPUESTA_EXAMEN>: '||SQLERRM,1,300);RETURN '0';

END GET_RESPUESTA_EXAMEN;--PROCEDURE FINALIZAR_EVALUACION (PN_ID_EXAMEN IN NUMBER,

PN_ID_SECUENCIA INNUMBER,

Page 186: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

68

PN_ID_USUARIO INNUMBER,

PV_TIPO_FINALIZACION IN VARCHAR2, --'TE','TF','TA'COD_RET IN OUT

NUMBER,MSG_RET IN OUT

VARCHAR2) ISERROR EXCEPTION;CALIFICACION_PARCIAL NUMBER(5,2);CALIFICACION_TOTAL NUMBER(5,2);CALIFICACION_PENA NUMBER(5,2);NOTA_EXAMEN NUMBER(5,2);V_PORCENTAJE_ACEPTADAS NUMBER(5,2);VAR_SOLICITUD EXAMEN_ALUMNO.ID_SOLICITUD%TYPE;BEGINCALIFICACION_PARCIAL := 0;CALIFICACION_TOTAL := 0;CALIFICACION_PENA := 0;NOTA_EXAMEN := 0;V_PORCENTAJE_ACEPTADAS := 0;---- OBTENGO CALIFICACION DEL EXAMEN--

BEGINSELECT SUM(NVL(NOTA_PARCIAL,0))INTO CALIFICACION_PARCIALFROM RESPUESTA_EXAMENWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL OBTENER CALIFICACION DEL

EXAMEN '||SQLERRM,1,300);RAISE ERROR;

END;---- OBTENGO EL VALOR DE LA PENALIZACION--

BEGINSELECT SUMA_PENALIZAINTO CALIFICACION_PENAFROM EXAMEN_ALUMNOWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 2;MSG_RET := SUBSTR('ERROR AL OBTENER PENALIZACION EN

<EXAMEN_ALUMNO> '||SQLERRM,1,300);RAISE ERROR;

Page 187: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

69

END;---- OBTENGO LA NOTA DEL EXAMEN--

BEGINSELECT CALIFICACION_MAXIMAINTO NOTA_EXAMENFROM EXAMENWHERE ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL OBTENER NOTA DE EXAMEN EN

TABLA <EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END;--CALIFICACION_TOTAL := NVL((CALIFICACION_PARCIAL -

CALIFICACION_PENA),0);V_PORCENTAJE_ACEPTADAS :=

(CALIFICACION_TOTAL/NOTA_EXAMEN)*100;---- ACTUALIZO EN LA TABLA EXAMEN ALUMNO--BEGIN

UPDATE EXAMEN_ALUMNOSET NOTA_PARCIAL = CALIFICACION_PARCIAL,NOTA_TOTAL = CALIFICACION_TOTAL,PORCENTAJE_ACEPTADAS = V_PORCENTAJE_ACEPTADAS,USUARIO_MODIFICA = PN_ID_USUARIO,FECHA_MODIFICA = SYSDATEWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR CALIFICACION

<EXAMEN_ALUMNO> '||SQLERRM,1,300);RAISE ERROR;

END;---- ACTUALIZO EL ESTADO DEL EXAMEN--

PCK_EVALUACION.ACTUALIZA_ESTADO_EXAMEN_ALUMNO(PN_ID_EXAMEN,PN_ID_USUARIO,

PN_ID_SECUENCIA,PV_TIPO_FINALIZACION,

COD_RET, MSG_RET);--IF COD_RET <> 0 THEN

RAISE ERROR;

Page 188: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

70

END IF;--BEGIN

SELECT ID_SOLICITUDINTO VAR_SOLICITUDFROM EXAMEN_ALUMNOWHERE ID_EXAMEN = PN_ID_EXAMENAND ID_SECUENCIA = PN_ID_SECUENCIAAND ID_USUARIO = PN_ID_USUARIO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

VAR_SOLICITUD := NULL;WHEN OTHERS THEN

COD_RET := 13;MSG_RET := SUBSTR('ERROR AL BUSCAR SOLICITUD DE

GRACIA EN TABLA <EXAMEN_ALUMNO> '||SQLERRM,1,300);RAISE ERROR;

END;--IF VAR_SOLICITUD IS NOT NULL THEN

--

PCK_EVALUACION_INTERFACE.ACT_SOLICITUD_EXAMEN_GRACIA(VAR_SOLICITUD,COD_RET,MSG_RET);

--IF COD_RET <> 0 THEN

RAISE ERROR;END IF;--

END IF;--

COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.FINALIZAR_EVALUACION>: '||SQLERRM,1,300);END FINALIZAR_EVALUACION;--PROCEDURE ENVIAR_INFORME_CORREO (PN_ID_EXAMEN IN NUMBER,

PN_ID_SECUENCIA INNUMBER,

PN_ID_USUARIO INNUMBER,

PV_PROFESOR INVARCHAR2,

PV_ALUMNO INVARCHAR2,

PV_PARCIAL INVARCHAR2,

Page 189: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

71

PV_PARALELO INVARCHAR2,

PV_MATERIA INVARCHAR2,

PV_CORREO INVARCHAR2,

COD_RET IN OUTNUMBER,

MSG_RET IN OUTVARCHAR2) IS

--cursor datos is

select a.ID_EXAMEN, b.ID_PREGUNTA,substr(c.DESCRIPCION,1,50) QUESTION, b.CALIFICACION

from examen_alumno a, pregunta_examen b, pregunta cwhere a.ID_EXAMEN = b.ID_EXAMENand b.id_pregunta = c.id_preguntaand a.id_examen = PN_ID_EXAMENand a.id_secuencia = PN_ID_SECUENCIAand a.id_usuario = PN_ID_USUARIOorder by b.id_pregunta;

----

vs_msg varchar2(30000);vn_tot number;error_proceso exception;vs_error varchar2(400);vn_cont number;contador number;var_suma_pregunta number(5,2);var_porcentaje number(5,2);

beginvar_suma_pregunta := 0;var_porcentaje := 0;contador := 1;

begin--

--vs_msg := null;vs_msg := vs_msg || 'Estimado ' ||

initcap(PV_ALUMNO) || ', ' ;vs_msg := vs_msg || 'usted ha finalizado la

evaluación del '||pv_parcial||' de la materia:'||pv_materia||' eldía de hoy: ' || to_char( sysdate,'dd/mm/yyyy') || '.' || chr(13);

vs_msg := vs_msg || chr(13);vs_msg := vs_msg || 'Profesor:

'||pv_profesor||chr(13);vs_msg := vs_msg || 'Curso:

'||pv_paralelo||chr(13);vs_msg := vs_msg || 'Código de Examen:

'||to_char(pn_id_examen)||chr(13);

Page 190: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

72

vs_msg := vs_msg || chr(13);vs_msg := vs_msg || chr(13);vs_msg := vs_msg || 'Resultado de su

Evaluación:'||chr(13);vs_msg := vs_msg || chr(13);vs_msg := vs_msg || chr(13);--for reg in datos loop

beginselect sum(nvl(nota_parcial,0))into var_suma_preguntafrom respuesta_examenwhere id_examen = pn_id_examenand id_secuencia = pn_id_secuenciaand id_usuario = pn_id_usuarioand id_pregunta = reg.id_pregunta;

exceptionwhen no_data_found then

var_suma_pregunta := 0;when others then

cod_ret := 11;msg_ret := substr('Error al buscar

respuesta de pregunta '||reg.id_pregunta||' para evaluacion:'||reg.id_examen||' '||sqlerrm,1,300);

raise error_proceso;end;--var_porcentaje := (var_suma_pregunta /

reg.calificacion) * 100;--vs_msg := vs_msg ||

'Pregunta:'||to_char(contador)|| reg.question ||' Valoración: '||to_char(reg.calificacion) ||' Porcentaje Acertada:'||var_porcentaje||' %'||chr(13);

contador := contador + 1;--

end loop;--vs_msg := vs_msg || 'Atte. Sistema de Evaluaciones

(Aula Virtual)' || chr(13);--

PCK_EVALUACION_INTERFACE.ENVIAR_CORREO('CarreraIngeniería en Sistemas',

'[email protected]',

pv_correo,

'Informe de Evaluación',

vs_msg,cod_ret,msg_ret);--

if cod_ret <> 0 then

Page 191: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

73

raise error_proceso;end if;

dbms_lock.sleep(2);exception

when error_proceso thenraise error_proceso;

when others thencod_ret := 1;msg_ret := substr('Error al enviar correo a:

'||pv_correo||sqlerrm,1,300);raise error_proceso;

end;exceptionwhen error_proceso then

msg_ret := substr('Error en Proceso<ENVIAR_INFORME_CORREO>'||msg_ret,1,300);

when others thencod_ret := 2;msg_ret := substr('Error en Proceso

<ENVIAR_INFORME_CORREO> '||sqlerrm,1,300);raise error_proceso;

END ENVIAR_INFORME_CORREO;--

PROCEDURE GET_EXAMEN_PROFESOR (PN_ID_PERIODO IN NUMBER,PN_ID_USUARIO IN NUMBER,PN_REGISTROS IN OUT

NUMBER,O_CURSOR IN OUT

T_CURSOR,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

ISERROR EXCEPTION;BEGIN--BEGIN

SELECT COUNT(*)INTO PN_REGISTROSFROM EXAMEN A, EXAMEN_ALUMNO B, USUARIO C,MATERIA D, PARALELO

E, ESTADO GWHERE A.ID_EXAMEN = B.ID_EXAMENAND B.ID_USUARIO = C.ID_USUARIOAND A.ID_MATERIA = D.ID_MATERIAAND A.ID_PARALELO = E.ID_PARALELOAND A.ID_PERIODO_LECTIVO = PN_ID_PERIODOAND B.ID_ESTADO = G.ID_ESTADOAND G.MODULO = 'EVALUACION'AND B.ID_USUARIO = PN_ID_USUARIOAND A.ID_TIPO_EXAMEN = 5;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL BUSCAR EVALUACIONES AL DOCENTE

PARA ALUMNOS PARA ALUMNO '||SQLERRM,1,300);

Page 192: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

74

RAISE ERROR;END;

IF PN_REGISTROS >0 THENBEGIN

OPEN O_CURSOR FORSELECT A.ID_EXAMEN,D.DESCRIPCION

NOMBRE_MATERIA,E.DESCRIPCION NOMBRE_PARALELO,G.DESCRIPCION ESTADO_EXAMEN, H.DESCRIPCION TIPO,

B.ID_SECUENCIAFROM EXAMEN A, EXAMEN_ALUMNO B, USUARIO C,MATERIA

D, PARALELO E, ESTADO G, TIPO_EXAMEN HWHERE A.ID_EXAMEN = B.ID_EXAMENAND B.ID_USUARIO = C.ID_USUARIOAND A.ID_MATERIA = D.ID_MATERIAAND A.ID_PARALELO = E.ID_PARALELOAND A.ID_PERIODO_LECTIVO = PN_ID_PERIODOAND B.ID_ESTADO = G.ID_ESTADOAND A.ID_TIPO_EXAMEN = H.ID_TIPO_EXAMENAND G.MODULO = 'EVALUACION'AND B.ID_USUARIO = PN_ID_USUARIOAND A.ID_TIPO_EXAMEN = 5ORDER BY A.FECHA_FIN DESC;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR EVALUACIONES A

DOCENTES PARA ALUMNO '||SQLERRM,1,300);RAISE ERROR;

END;--

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_EXAMEN_PROFESOR>: '||SQLERRM,1,300);ROLLBACK;

END GET_EXAMEN_PROFESOR;--PROCEDURE GET_RESPUESTAS_DOCENTES(PN_ID_EXAMEN IN NUMBER,

PN_ID_SECUENCIA IN NUMBER,PN_ID_USUARIO IN

NUMBER,PN_CONTADOR IN OUT NUMBER,

O_CURSOR IN OUTT_CURSOR,

COD_RET IN OUTNUMBER,

MSG_RET IN OUTVARCHAR2) IS

ERROR EXCEPTION;

Page 193: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

75

VAR_ID_PREGUNTA PREGUNTA.ID_PREGUNTA%tYPE;BEGIN

BEGINSELECT COUNT(*)INTO PN_CONTADORFROM PREGUNTA A, RESPUESTA B, PREGUNTA_EXAMEN CWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND A.ID_PREGUNTA = C.ID_PREGUNTAAND C.ID_EXAMEN = PN_ID_EXAMENAND A.ID_PREGUNTA NOT IN(SELECT DISTINCT

ID_PREGUNTAFROM

RESPUESTA_EXAMENWHERE ID_EXAMEN =

PN_ID_EXAMENAND ID_SECUENCIA =

PN_ID_SECUENCIAAND ID_USUARIO =

PN_ID_USUARIO);EXCEPTION

WHEN NO_DATA_FOUND THENCOD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR RESPUESTAS PARA

PREGUNTA: '||SQLERRM,1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A TABLA

<RESPUESTA> AL LLENAR CURSOR DE RESPUESTAS DE PREGUNTAS'||SQLERRM,1,300);

RAISE ERROR;END;--IF PN_CONTADOR > 0 THEN--

BEGINSELECT MIN(DISTINCT A.ID_PREGUNTA)INTO VAR_ID_PREGUNTAFROM PREGUNTA A, RESPUESTA B, PREGUNTA_EXAMEN CWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND A.ID_PREGUNTA = C.ID_PREGUNTAAND C.ID_EXAMEN = PN_ID_EXAMENAND A.ID_PREGUNTA NOT IN(SELECT DISTINCT

ID_PREGUNTAFROM

RESPUESTA_EXAMENWHERE ID_EXAMEN =

PN_ID_EXAMENAND ID_SECUENCIA =

PN_ID_SECUENCIAAND ID_USUARIO =

PN_ID_USUARIO);EXCEPTION

WHEN OTHERS THEN

Page 194: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

76

COD_RET := 5;MSG_RET := SUBSTR('ERROR AL BUSCAR PREGUNTAS

EN EVALUACION A DOCENTE :'||SQLERRM,1,300);RAISE ERROR;

END;--

BEGINOPEN O_CURSOR FORSELECT

B.ID_RESPUESTA,B.ID_PREGUNTA,MARGEN_ERROR,B.CALIFICACION,RESPUESTA_CORRECTA,

RESPUESTA,A.DESCRIPCION NOMBRE_PREGUNTAFROM PREGUNTA A, RESPUESTA BWHERE A.ID_PREGUNTA = B.ID_PREGUNTAAND A.ID_PREGUNTA = VAR_ID_PREGUNTA;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR RESPUESTAS PARA

PREGUNTA: '||SQLERRM,1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR AL ACCESAR A TABLA

<RESPUESTA> AL LLENAR CURSOR DE RESPUESTAS DE PREGUNTAS'||SQLERRM,1,300);

RAISE ERROR;END;

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_RESPUESTAS_DOCENTES>: '||SQLERRM,1,300);ROLLBACK;

END GET_RESPUESTAS_DOCENTES;----PROCEDURE COPIA_EXAMEN (PN_ID_EXAMEN IN NUMBER,

PN_ID_USUARIO IN NUMBER,PN_ID_NEW_EXAMEN IN OUT NUMBER,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2) IS

--CURSOR DATOS_EXAMEN IS

SELECT * FROM EXAMEN WHERE ID_EXAMEN = PN_ID_EXAMEN;--CURSOR DATOS_PREGUNTAS IS

SELECT * FROM PREGUNTA_EXAMEN WHERE ID_EXAMEN = PN_ID_EXAMEN;

--ERROR EXCEPTION;

Page 195: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

77

CUENTA_EXAMEN NUMBER;VAR_ESTADO ESTADO.ID_ESTADO%TYPE;IS_COPIO_PREGUNTAS BOOLEAN;--BEGIN

--CUENTA_EXAMEN := 0;VAR_ESTADO := NULL;IS_COPIO_PREGUNTAS := FALSE;--BEGIN

SELECT COUNT(*)INTO CUENTA_EXAMENFROM EXAMENWHERE ID_EXAMEN = PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL OBTENER DATOS DESDE LA

TABLA EXAMEN PARA CODIGO: '||PN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--IF CUENTA_EXAMEN > 0 THEN---- OBTENGO NUEVO SECUENCIAL DE EXAMEN--

BEGINSELECT NVL(MAX(ID_EXAMEN),0) + 1INTO PN_ID_NEW_EXAMENFROM EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR AL OBTENER

SECUENCIAL DE LA TABLA EXAMEN '||SQLERRM,1,300);RAISE ERROR;

END;--

---- OBTENGO EL VALOR DEL ESTADO BORRADOR--

BEGINSELECT ID_ESTADOINTO VAR_ESTADOFROM ESTADOWHERE DESCRIPCION = 'BR'AND MODULO = 'EVALUACION';

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR, NO EXISTE ESTADO

<BR> EN LA TABLA <ESTADO>',1,300);RAISE ERROR;

Page 196: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

78

WHEN OTHERS THENCOD_RET := 5;MSG_RET := SUBSTR('ERROR,AL BUSCAR ESTADO <BR>

EN LA TABLA <ESTADO>',1,300);RAISE ERROR;

END;--

FOR REG IN DATOS_EXAMEN LOOP---- INSERTO EN LA TABLA EXAMEN--

BEGININSERT INTO EXAMEN (ID_EXAMEN, ID_TIPO_EXAMEN, INTRODUCCION,IS_PERMITE_ABRIR, IS_PERMITE_CERRAR,

FECHA_INICIO,FECHA_FIN, IS_LIMITE_TIEMPO, IS_HABILITA_TIEMPO,TIEMPO_PRIMERO_SEGUNDO, NUM_MAX_PREGUNTAS,

IS_PREGUNTA_ALEATORIA,IS_RESPUESTA_ALEATORIA, IS_APLICA_PENALIZACION,

IS_VENTANA_SEGURA,IS_REQUIERE_CONTRASENIA, CALIFICACION_MAXIMA,

ID_ESTADO,USUARIO_INGRESA, FECHA_INGRESO, ID_PARCIAL,

ID_PERIODO_LECTIVO,ID_PARALELO, ID_MATERIA, CONTRASENIA)VALUES (PN_ID_NEW_EXAMEN,REG.ID_TIPO_EXAMEN,

REG.INTRODUCCION,REG.IS_PERMITE_ABRIR,REG.IS_PERMITE_CERRAR,--

TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),REG.FECHA_INICIO, REG.FECHA_FIN,--TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),

REG.IS_LIMITE_TIEMPO,REG.IS_HABILITA_TIEMPO,REG.TIEMPO_PRIMERO_SEGUNDO,

REG.NUM_MAX_PREGUNTAS,REG.IS_PREGUNTA_ALEATORIA, REG.IS_RESPUESTA_ALEATORIA,

REG.IS_APLICA_PENALIZACION,REG.IS_VENTANA_SEGURA,REG.IS_REQUIERE_CONTRASENIA,

REG.CALIFICACION_MAXIMA,VAR_ESTADO,PN_ID_USUARIO,SYSDATE,NULL,REG.ID_PERIODO_LECTIVO,

NULL,NULL, NULL);EXCEPTION

WHEN OTHERS THENCOD_RET := 7;MSG_RET := SUBSTR('ERROR AL INSERTAR EN LA

TABLA <EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT;--

END LOOP;

Page 197: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

79

---- INSERTO LAS PREGUNTAS DEL EXAMEN--FOR REG1 IN DATOS_PREGUNTAS LOOP

--IS_COPIO_PREGUNTAS := TRUE;--BEGIN

INSERT INTO PREGUNTA_EXAMEN (ID_EXAMEN,ID_PREGUNTA, CALIFICACION, USUARIO_INGRESA, FECHA_INGRESO)

VALUES (PN_ID_NEW_EXAMEN, REG1.ID_PREGUNTA,REG1.CALIFICACION, PN_ID_USUARIO, SYSDATE);

EXCEPTIONWHEN OTHERS THEN

COD_RET := 8;MSG_RET := SUBSTR('ERROR AL INSERTAR EN LA

TABLA <PREGUNTA_EXAMEN> ID_EXAMEN= '||PN_ID_NEW_EXAMEN||''||SQLERRM,1,300);

RAISE ERROR;

END;

COMMIT;

END LOOP;--IF IS_COPIO_PREGUNTAS = FALSE THEN

COD_RET := 9;MSG_RET := SUBSTR('SE COPIO EXAMEN, SIN EMBARGO NO

SE COPIARON LAS PREGUNTAS PORQUE NO SE ENCONTRARON PREGUNTASASOCIADAS',1,300);

RAISE ERROR;END IF;

--ELSE -- NO EXISTE EXAMEN ORIGEN

COD_RET := 12;MSG_RET := 'ERROR, CODIGO DE EXAMEN NO EXISTE EN LA

TABLA <EXAMEN>';RAISE ERROR;

END IF;EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 10;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION.GET_RESPUESTAS_DOCENTES>: '||SQLERRM,1,300);ROLLBACK;

END;END PCK_EVALUACION;

Page 198: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

80

PAQUETE PCK_EVALUACION_01

CREATE OR REPLACE package body PCK_EVALUACION_01 as/********************************************************************************************

NOMBRE: pck_evaluacion_01PROYECTO: AULA VIRTUALMODULO: EVALUACIONES

REVISION: 05/03/2009AUTOR: GRUPO 5DESCRIPCION: CUERPO DEL PAQUETE QUE PERMITE LA

CONFIGURACION EXCLUSIVA DEL MANTENIMIENTODEL EXAMEN, PREGUNTA Y RESPUESTAS

********************************************************************************************/function SECUENCIA_EXAMEN return number is

lv_secuencia number;begin

SELECT NVL(MAX(id_examen),1000)+1INTO lv_secuenciaFROM examen;

return(lv_secuencia);end SECUENCIA_EXAMEN ;

function SECUENCIA_PREGUNTA return number islv_secuencia number;

beginSELECT NVL(MAX(id_pregunta),0)+1 INTO lv_secuencia

FROM pregunta;return(lv_secuencia);

end SECUENCIA_PREGUNTA ;

function SECUENCIA_RESPUESTA return number islv_secuencia number;

beginSELECT NVL(MAX(id_Respuesta),0)+1INTO lv_secuencia

FROM Respuesta;return(lv_secuencia);

end SECUENCIA_RESPUESTA ;

procedure INSERTAR_EXAMEN(pv_examen IN examen%ROWTYPE,Pn_secuenciaout number,Pv_error out varchar2,Pn_error out number)is

beginPv_error:=NULL;

Pn_error:=0;Pn_secuencia:=Secuencia_Examen;

insert into examen(ID_EXAMEN,id_tipo_examen,introduccion,is_permite_abrir,is_permite_cerrar,

Page 199: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

81

fecha_inicio,fecha_fin,is_limite_tiempo,is_habilita_tiempo,tiempo_primero_segundo,num_max_preguntas,is_pregunta_aleatoria,is_respuesta_aleatoria,is_aplica_penalizacion,is_ventana_segura,calificacion_maxima,id_estado,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,is_requiere_contrasenia,fecha_ingreso,id_parcial,id_periodo_lectivo,id_paralelo,id_materia,contrasenia)values(Pn_secuencia,pv_examen.id_tipo_examen,pv_examen.introduccion,pv_examen.is_permite_abrir,pv_examen.is_permite_cerrar,pv_examen.fecha_inicio,pv_examen.fecha_fin,pv_examen.is_limite_tiempo,pv_examen.is_habilita_tiempo,pv_examen.tiempo_primero_segundo,pv_examen.num_max_preguntas,pv_examen.is_pregunta_aleatoria,pv_examen.is_respuesta_aleatoria,pv_examen.is_aplica_penalizacion,pv_examen.is_ventana_segura,pv_examen.calificacion_maxima,pv_examen.ID_ESTADO,pv_examen.usuario_ingresa,pv_examen.usuario_modifica,sysdate(),pv_examen.is_requiere_contrasenia,sysdate(),pv_examen.id_parcial,pv_examen.id_periodo_lectivo,pv_examen.id_paralelo,pv_examen.id_materia,pv_examen.contrasenia);COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicados

Page 200: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

82

Pv_error:='codigo ya existe';Pv_error:=sqlcode;

when others thenPv_error:='error en la insercion: '||sqlerrm;

Pv_error:=sqlcode;end INSERTAR_EXAMEN;

procedure ACTUALIZA_EXAMEN(pv_examen IN examen%ROWTYPE,Pv_error outvarchar2,Pn_error out number)is

beginPv_error:=NULL;

Pn_error:=0;

update examen setid_tipo_examen=pv_examen.id_tipo_examen,introduccion=pv_examen.introduccion,is_permite_abrir=pv_examen.is_permite_abrir,is_permite_cerrar=pv_examen.is_permite_cerrar,fecha_inicio=pv_examen.fecha_inicio,fecha_fin=pv_examen.fecha_fin,is_limite_tiempo=pv_examen.is_limite_tiempo,is_habilita_tiempo=pv_examen.is_habilita_tiempo,

tiempo_primero_segundo=pv_examen.tiempo_primero_segundo,num_max_preguntas=pv_examen.num_max_preguntas,

is_pregunta_aleatoria=pv_examen.is_pregunta_aleatoria,

is_respuesta_aleatoria=pv_examen.is_respuesta_aleatoria,

is_aplica_penalizacion=pv_examen.is_aplica_penalizacion,is_ventana_segura=pv_examen.is_ventana_segura,calificacion_maxima=pv_examen.calificacion_maxima,

is_requiere_contrasenia=pv_examen.is_requiere_contrasenia,id_estado=pv_examen.id_estado,CONTRASENIA=pv_examen.CONTRASENIA,ID_PARCIAL=pv_examen.Id_Parcial,ID_PERIODO_LECTIVO=pv_examen.ID_PERIODO_LECTIVO,ID_PARALELO=pv_examen.Id_Paralelo,ID_MATERIA=pv_examen.Id_Materia,usuario_modifica=pv_examen.usuario_modifica,fecha_ultima_modificacion=sysdate()

whereid_examen=pv_examen.id_examen;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';

Pv_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;

Pv_error:=sqlcode;

Page 201: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

83

end ACTUALIZA_EXAMEN;

procedure INSERTAR_PREGUNTA(pv_pregunta INpregunta%ROWTYPE,Pn_secuencia out number,Pv_error outvarchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;Pn_secuencia:=Secuencia_Pregunta;

insert into pregunta(id_pregunta,id_categoria_pregunta,id_tipo_pregunta,descripcion,calificacion,msg_general,factor_penalizacion,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,fecha_ingreso,nombre_archivo,cantidad_validas,BIN)values(Pn_secuencia,pv_pregunta.id_categoria_pregunta,pv_pregunta.id_tipo_pregunta,pv_pregunta.descripcion,pv_pregunta.calificacion,pv_pregunta.msg_general,pv_pregunta.factor_penalizacion,pv_pregunta.usuario_ingresa,pv_pregunta.usuario_modifica,sysdate(),sysdate(),pv_pregunta.nombre_archivo,pv_pregunta.cantidad_validas,NULL);

COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end INSERTAR_PREGUNTA;

Page 202: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

84

procedure ACTUALIZA_PREGUNTA(pv_pregunta IN pregunta%ROWTYPE,Pv_error out varchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;

update pregunta set

id_categoria_pregunta=pv_pregunta.id_categoria_pregunta,id_tipo_pregunta=pv_pregunta.id_tipo_pregunta,descripcion=pv_pregunta.descripcion,calificacion=pv_pregunta.calificacion,msg_general=pv_pregunta.msg_general,factor_penalizacion=pv_pregunta.factor_penalizacion,usuario_modifica=pv_pregunta.usuario_modifica,fecha_ultima_modificacion=sysdate(),cantidad_validas=pv_pregunta.cantidad_validas,NOMBRE_ARCHIVO=pv_pregunta.NOMBRE_ARCHIVOwhereid_pregunta=pv_pregunta.id_pregunta;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end ACTUALIZA_PREGUNTA;

procedure INSERTAR_RESPUESTA(pv_respuesta INrespuesta%ROWTYPE,Pn_secuencia out number,Pv_error outvarchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;Pn_secuencia:=Secuencia_Respuesta();

insert into Respuesta(id_respuesta,id_pregunta,respuesta,calificacion,margen_error,respuesta_correcta,usuario_ingresa,fecha_ingreso,usuario_modifica,fecha_ultima_modificacion)values(Pn_secuencia,pv_respuesta.id_pregunta,

Page 203: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

85

pv_respuesta.respuesta,pv_respuesta.calificacion,pv_respuesta.margen_error,pv_respuesta.respuesta_correcta,pv_respuesta.usuario_ingresa,sysdate(),pv_respuesta.usuario_modifica,sysdate());COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end INSERTAR_RESPUESTA;

procedure ACTUALIZA_RESPUESTA(pv_respuesta INrespuesta%ROWTYPE,Pv_error out varchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;

update respuesta setid_respuesta=pv_respuesta.id_respuesta,id_pregunta=pv_respuesta.id_pregunta,respuesta=pv_respuesta.respuesta,calificacion=pv_respuesta.calificacion,margen_error=pv_respuesta.margen_error,respuesta_correcta=pv_respuesta.respuesta_correcta,usuario_modifica=pv_respuesta.usuario_modifica,fecha_ultima_modificacion=sysdate()whereid_respuesta=pv_respuesta.id_respuesta;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end ACTUALIZA_RESPUESTA;

procedure INSERTAR_PREGUNTA_EXAMEN(pv_pregunta_examen INpregunta_examen%ROWTYPE,Pv_error out varchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;

insert into pregunta_examen(id_examen,id_pregunta,

Page 204: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

86

calificacion,usuario_ingresa,fecha_ingreso,usuario_modifica,fecha_ultima_modificacion)values(pv_pregunta_examen.id_examen,pv_pregunta_examen.id_pregunta,pv_pregunta_examen.calificacion,pv_pregunta_examen.usuario_ingresa,sysdate(),pv_pregunta_examen.usuario_modifica,sysdate());COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pv_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pv_error:=sqlcode;

end INSERTAR_PREGUNTA_EXAMEN;

procedure ACTUALIZA_PREGUNTA_EXAMEN(pv_pregunta_examen INpregunta_examen%ROWTYPE,Pv_error out varchar2,Pn_error out number)is

beginPv_error:=NULL;Pn_error:=0;

update pregunta_Examen setid_examen=pv_pregunta_examen.id_examen,id_pregunta=pv_pregunta_examen.id_pregunta,calificacion=pv_pregunta_examen.calificacion,

usuario_modifica=pv_pregunta_examen.usuario_modifica,fecha_ultima_modificacion=sysdate()whereid_examen=pv_pregunta_examen.id_examenand id_pregunta=pv_pregunta_examen.id_pregunta;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end ACTUALIZA_PREGUNTA_EXAMEN;

Page 205: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

87

procedure ELIMINA_PREGUNTA_EXAMEN(Pn_criterio in number,Pv_errorout varchar2)is

beginPv_error:=NULL;DELETE pregunta_examen WHERE

id_pregunta=Pn_criterio;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';when others thenPv_error:='error en la insercion: '||sqlerrm;

end ELIMINA_PREGUNTA_EXAMEN;

FUNCTION SELECCIONA_EXAMEN(Pn_criterio IN NUMBER,Pv_error outvarchar2,Pn_error out number) RETURN examen%ROWTYPE is

v_examen examen%rowtype;begin

Pv_error:=NULL;Pn_error:=0;

selectid_examen,id_tipo_examen,introduccion,is_permite_abrir,is_permite_cerrar,fecha_inicio,fecha_fin,is_limite_tiempo,is_habilita_tiempo,tiempo_primero_segundo,num_max_preguntas,is_pregunta_aleatoria,is_respuesta_aleatoria,is_aplica_penalizacion,is_ventana_segura,is_requiere_contrasenia,calificacion_maxima,id_estado,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,fecha_ingreso,id_parcial,id_periodo_lectivo,id_paralelo,id_materia,contrasenia

into v_examenfrom examenwhere id_examen=Pn_criterio;return v_examen;

Page 206: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

88

exceptionWHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN EVALUACION CON ESE CODIGO';Pn_error:=sqlcode;when others thenPv_error:='ERROR AL BUSCAR LA EVALUACION: '||sqlerrm;Pn_error:=sqlcode;

return v_examen;end SELECCIONA_EXAMEN;

FUNCTION SELECCIONA_PREGUNTA(Pn_codigo number,Pn_categorianumber,Pv_error out varchar2,Pn_error out number)RETURNPREGUNTA%ROWTYPE IS

v_pregunta pregunta%rowtype;begin

Pv_error:=NULL;Pn_error:=0;

if Pn_codigo is not null then --buscar x codigoselect

id_pregunta,id_categoria_pregunta,id_tipo_pregunta,descripcion,calificacion,msg_general,factor_penalizacion,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,fecha_ingreso,nombre_archivo,cantidad_validas,BIN

into v_preguntafrom preguntawhere id_pregunta=Pn_codigo;

ELSEif Pn_categoria is not null then --buscar por categoriaselect

id_pregunta,id_categoria_pregunta,id_tipo_pregunta,descripcion,calificacion,msg_general,factor_penalizacion,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,fecha_ingreso,

Page 207: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

89

nombre_archivo,cantidad_validas,BIN

into v_preguntafrom preguntawhere id_categoria_pregunta=Pn_categoria;

END IF;END IF;

return v_pregunta;

exceptionWHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN PREGUNTA CON ESE CODIGO';Pn_error:=sqlcode;when others thenPv_error:='ERROR AL BUSCAR PREGUNTA: '||sqlerrm;Pn_error:=sqlcode;

return v_pregunta;end SELECCIONA_PREGUNTA;

FUNCTION SELECCIONA_RESPUESTA(Pn_criterio IN NUMBER,Pv_error outvarchar2,Pn_error out number) RETURN Respuesta%ROWTYPE is

v_respuesta respuesta%rowtype;begin

Pv_error:=NULL;PN_error:=0;

selectid_respuesta,id_pregunta,respuesta,calificacion,margen_error,respuesta_correcta,usuario_ingresa,usuario_modifica,fecha_ultima_modificacion,fecha_ingreso

into v_respuestafrom respuestawhere id_respuesta=Pn_criterio;

return v_respuesta;

exceptionWHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN FACTURA CON ESE CODIGO';Pn_error:=sqlcode;when others thenPv_error:='ERROR AL BUSCAR FACTURA: '||sqlerrm;Pn_error:=sqlcode;

Page 208: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

90

return v_respuesta;end SELECCIONA_RESPUESTA;

procedure INSERTAR_EXAMEN_ALUMNO(pv_examen_alumno INexamen_alumno%ROWTYPE,Pv_error out varchar2,Pn_error out number) is

beginPv_error:=NULL;Pn_error:=0;

insert into examen_alumno(id_secuencia,id_examen,id_usuario,porcentaje_aceptadas,nota_total,fecha_inicio,fecha_termina,fecha_publica,fecha_vence,id_estado,usuario_ingresa,usuario_modifica,fecha_modifica,fecha_ingreso,cont_penaliza,suma_penaliza,nota_parcial,observacion,id_solicitud,tiempo_transc)values(pv_examen_alumno.id_secuencia,pv_examen_alumno.id_examen,pv_examen_alumno.id_usuario,pv_examen_alumno.porcentaje_aceptadas,pv_examen_alumno.nota_total,pv_examen_alumno.fecha_inicio,pv_examen_alumno.fecha_termina,pv_examen_alumno.fecha_publica,pv_examen_alumno.fecha_vence,pv_examen_alumno.id_estado,pv_examen_alumno.usuario_ingresa,pv_examen_alumno.usuario_modifica,pv_examen_alumno.fecha_modifica,sysdate(),pv_examen_alumno.cont_penaliza,pv_examen_alumno.suma_penaliza,pv_examen_alumno.nota_parcial,pv_examen_alumno.observacion,pv_examen_alumno.id_solicitud,pv_examen_alumno.tiempo_transc

Page 209: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

91

);COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

end INSERTAR_EXAMEN_ALUMNO;

procedure CUENTA_PREGUNTA_(Pn_codigo number,Pn_categorianumber,Pn_contador out number ,Pv_error out varchar2,Pn_error outnumber)is

beginPv_error:=NULL;Pn_error:=0;

if Pn_codigo is not null then --buscar x codigoselect count(id_pregunta) into Pn_contador from preguntawhere id_pregunta=Pn_codigo;

elseif Pn_categoria is not null then --buscar por categoria

select count(id_pregunta) into Pn_contador from preguntawhere id_categoria_pregunta=Pn_categoria;

end if;end if;

exceptionWHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN PREGUNTA CON ESE CODIGO';Pn_error:=sqlcode;when others thenPv_error:='ERROR AL BUSCAR PREGUNTA: '||sqlerrm;Pn_error:=sqlcode;

end CUENTA_PREGUNTA_;

procedure ELIMINA_PREGUNTA_EXAMEN(Pn_EXAMEN number,Pn_PREGUNTAnumber,Pv_error out varchar2,Pn_error out number) ISBEGIN

Pv_error:=NULL;Pn_error:=0;

-- if Pn_EXAMEN is not null AND Pn_PREGUNTA is not null then --ELIMINA x codigo

DELETE pregunta_examen where id_examen=Pn_EXAMENAND id_pregunta=Pn_PREGUNTA;

-- end if;

exception

Page 210: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

92

WHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN PREGUNTA CON ESE CODIGO';Pn_error:=sqlcode;when others thenPv_error:='ERROR AL BUSCAR PREGUNTA: '||sqlerrm;Pn_error:=sqlcode;

END ELIMINA_PREGUNTA_EXAMEN;

FUNCTION EXISTE_PREGUNTA_EXAMEN(Pn_id_examen INNUMBER,Pn_id_pregunta IN NUMBER,Pv_error out varchar2,Pn_error outnumber) RETURN NUMBER is

v_PREGUNTA_EXAMEN PREGUNTA_EXAMEN%rowtype;begin

Pv_error:=NULL;PN_error:=0;

selectid_examen,id_pregunta,usuario_ingresa,fecha_ingreso,usuario_modifica,fecha_ultima_modificacion,calificacion

into v_PREGUNTA_EXAMENfrom PREGUNTA_EXAMENwhere id_examen=Pn_id_examenAND id_pregunta=Pn_id_pregunta;

return 1;

exceptionWHEN NO_DATA_FOUND THENPv_error:='NO EXISTE REGISTRO CON ESE CODIGO';Pn_error:=sqlcode;return 0;when others thenPv_error:='ERROR AL BUSCAR EL REGISTRO: '||sqlerrm;Pn_error:=sqlcode;return -1;

END EXISTE_PREGUNTA_EXAMEN;

procedure ACTUALIZA_FECHA_EXAMEN_ALUMNO(pv_examen_alumno INexamen_alumno%ROWTYPE,Pv_error out varchar2,Pn_error out number)isbegin

Pv_error:=NULL;Pn_error:=0;

update examen_alumno setfecha_publica=pv_examen_alumno.fecha_publica,fecha_vence=pv_examen_alumno.fecha_vence,

Page 211: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

93

usuario_modifica=pv_examen_alumno.usuario_modifica,fecha_modifica=sysdate()whereid_examen=pv_examen_alumno.id_examenand id_usuario=pv_examen_alumno.id_usuarioand id_secuencia=pv_examen_alumno.id_secuencia;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

END ACTUALIZA_FECHA_EXAMEN_ALUMNO;

procedure ACTUALIZA_ESTADO_EXAMEN_ALUMNO(pv_examen_alumno INexamen_alumno%ROWTYPE,Pv_error out varchar2,Pn_error out number)isbegin

Pv_error:=NULL;Pn_error:=0;

update examen_alumno setid_estado=pv_examen_alumno.id_estado,usuario_modifica=pv_examen_alumno.usuario_modifica,fecha_modifica=sysdate()whereid_examen=pv_examen_alumno.id_examenand id_usuario=pv_examen_alumno.id_usuarioand id_secuencia=pv_examen_alumno.id_secuencia;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

END ACTUALIZA_ESTADO_EXAMEN_ALUMNO;

PROCEDURE CONSULTA_PREGUNTA(PN_ID_PREGUNTA IN NUMBER,INDICE IN NUMBER,O_CURSOR IN OUT T_CURSOR,COD_RET IN OUT NUMBER,MSG_RET IN OUT NUMBER) IS

ERROR EXCEPTION;--CURSOR DATOS IS

Page 212: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

94

SELECT ROWNUM,ROWID, ID_PREGUNTA,ID_CATEGORIA_PREGUNTA, ID_TIPO_PREGUNTA, DESCRIPCION,

CALIFICACION, MSG_GENERAL,FACTOR_PENALIZACION, NOMBRE_ARCHIVO,CANTIDAD_VALIDASFROM PREGUNTAWHERE ID_PREGUNTA = NVL(PN_ID_PREGUNTA, ID_PREGUNTA);

--AND DESCRIPCION LIKE NVL('%'||PV_NOMBRE||'%',DESCRIPCION);

BEGINBEGINFOR REG IN DATOS LOOP

IF REG.ROWNUM = INDICE THENOPEN O_CURSOR FORSELECT ID_PREGUNTA,

ID_CATEGORIA_PREGUNTA, ID_TIPO_PREGUNTA, DESCRIPCION,CALIFICACION, MSG_GENERAL,

FACTOR_PENALIZACION, NOMBRE_ARCHIVO,CANTIDAD_VALIDASFROM PREGUNTAWHERE ID_PREGUNTA = NVL(PN_ID_PREGUNTA,

ID_PREGUNTA)-- AND DESCRIPCION LIKE

NVL('%'||PV_NOMBRE||'%',DESCRIPCION)AND ROWID = REG.ROWID;--EXIT;

END IF;END LOOP;--

--AND ROWNUM = INDICE;EXCEPTION

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONSULTAR PREGUNTA

'||SQLERRM,1,300);RAISE ERROR;

END;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.CONSULTA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END CONSULTA_PREGUNTA;

PROCEDURE ELIMINA_PREGUNTA(LN_ID_PREGUNTA IN NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) ISERROR EXCEPTION;

Page 213: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

95

LN_CONTADOR NUMBER := 0;BEGIN--BEGIN

SELECT COUNT(*)INTO LN_CONTADORFROM PREGUNTAWHERE ID_CATEGORIA_PREGUNTA = LN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR PREGUNTA EN TABLA

<PREGUNTA> '||SQLERRM,1,300);RAISE ERROR;

END;--

IF LN_CONTADOR = 0 THEN -- ELIMINAMOS DE LA TABLABEGIN

DELETE PREGUNTAWHERE ID_PREGUNTA = LN_ID_PREGUNTA;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ELIMINAR PREGUNTA CODIGO:

'||LN_ID_PREGUNTA||' '||SQLERRM,1,300);RAISE ERROR;

END;ELSECOD_RET := 5;MSG_RET := 'NO SE PUEDE ELIMINAR PREGUNTA PORQUE EXISTEN

REGISTROS ASOCIADOS A PREGUNTAS ';END IF;--COMMIT;--EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.ELIMINA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END ELIMINA_PREGUNTA;

PROCEDURE CUENTA_PREGUNTA(PN_ID_PREGUNTA IN NUMBER,PN_REGISTROS

IN OUT NUMBER,COD_RET IN OUT

NUMBER,MSG_RET IN OUT

NUMBER) IS

Page 214: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

96

ERROR EXCEPTION;SALIR EXCEPTION;BEGINBEGINSELECT COUNT(*)INTO PN_REGISTROSFROM PREGUNTAWHERE ID_PREGUNTA = NVL(PN_ID_PREGUNTA, ID_PREGUNTA);

-- AND DESCRIPCION LIKE NVL('%'||PV_NOMBRE||'%',DESCRIPCION );EXCEPTION

WHEN NO_DATA_FOUND THENPN_REGISTROS := 0;

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL CONTAR PREGUNTA

'||SQLERRM,1,300);RAISE ERROR;

END;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.CUENTA_PREGUNTA>: '||SQLERRM,1,300);ROLLBACK;

END CUENTA_PREGUNTA;

PROCEDURE ELIMINA_EXAMEN(LN_ID_EXAMEN IN NUMBER,COD_RET IN

OUT NUMBER,MSG_RET IN

OUT VARCHAR2) ISERROR EXCEPTION;LN_CONTADOR NUMBER := 0;LN_CONTADOR2 NUMBER := 0;BEGIN--BEGIN --BUSCAR REGISTROS ASOCIADOS EN TABLA PREGUNTA_EXAMEN

SELECT COUNT(*)INTO LN_CONTADORFROM PREGUNTA_EXAMENWHERE ID_EXAMEN= LN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR EXAMEN EN TABLA <EXAMEN>

'||SQLERRM,1,300);RAISE ERROR;

END;--BEGIN --BUSCAR REGISTROS ASOCIADOS EN TABLA EXAMEN_ALUMNO

Page 215: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

97

SELECT COUNT(*)INTO LN_CONTADOR2FROM EXAMEN_ALUMNOWHERE ID_EXAMEN= LN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 4;MSG_RET := SUBSTR('ERROR AL BUSCAR EXAMEN EN TABLA <EXAMEN>

'||SQLERRM,1,300);RAISE ERROR;

END;--

IF LN_CONTADOR = 0 AND LN_CONTADOR2 = 0 THEN -- ELIMINAMOS DE LATABLA

BEGINDELETE EXAMENWHERE ID_EXAMEN= LN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ELIMINAR EXAMEN CODIGO:

'||LN_ID_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;ELSECOD_RET := 5;MSG_RET := 'NO SE PUEDE ELIMINAR LA EVALUACION PORQUE EXISTEN

REGISTROS ASOCIADOS A ESTE';END IF;--COMMIT;--EXCEPTION

WHEN ERROR THENMSG_RET := SUBSTR(MSG_RET||' Cod: '||cod_ret,1,300);

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.ELIMINA_EXAMEN>: '||SQLERRM,1,300);ROLLBACK;

END ELIMINA_EXAMEN;

FUNCTION PU_VALIDA_EXAMEN_REPETIDO(PN_ID_PARALELO IN NUMBER,

PN_ID_MATERIA IN NUMBER,

PN_ID_PERIODO_LECTIVO IN NUMBER,

PN_ID_TIPO_EXAMEN IN NUMBER,

Page 216: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

98

PN_ID_PARCIAL IN NUMBER,Pv_error out varchar2,Pn_error out number

) RETURN NUMBER ISLN_ID_EXAMEN NUMBER(5);error exception;

BEGINLN_ID_EXAMEN:=0;BEGIN

SELECT COUNT(*)INTO LN_ID_EXAMEN FROM EXAMENWHERE ID_PARALELO =PN_ID_PARALELOAND ID_MATERIA =PN_ID_MATERIAAND ID_PERIODO_LECTIVO =PN_ID_PERIODO_LECTIVOAND ID_TIPO_EXAMEN =PN_ID_TIPO_EXAMENAND ID_PARCIAL =PN_ID_PARCIAL ;

EXCEPTIONWHEN OTHERS THEN

PN_ERROR := 1;PV_ERROR := 'Error al accesar a la tabla <EXAMEN> '||sqlerrm;raise error;

END;return ln_id_examen ;

exceptionWHEN ERROR THEN

return -1;when others then

Pv_error:='Error no controlado en procedimiento...:'||sqlerrm;

Pn_error:=sqlcode;return -1;

END;--FUNCTION PU_VALIDA_EXAMEN_REPETIDO1(PN_ID_EXAMEN IN NUMBER,

PN_ID_PARALELO IN NUMBER,

PN_ID_MATERIA IN NUMBER,

PN_ID_PERIODO_LECTIVO IN NUMBER,

PN_ID_TIPO_EXAMEN IN NUMBER,

PN_ID_PARCIAL IN NUMBER,Pv_error out varchar2,Pn_error out number

) RETURN NUMBER ISLN_ID_EXAMEN NUMBER(5);error exception;

BEGINLN_ID_EXAMEN:=0;BEGIN

Page 217: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

99

SELECT COUNT(*)INTO LN_ID_EXAMEN FROM EXAMENWHERE ID_PARALELO =PN_ID_PARALELOAND ID_MATERIA =PN_ID_MATERIAAND ID_PERIODO_LECTIVO =PN_ID_PERIODO_LECTIVOAND ID_TIPO_EXAMEN =PN_ID_TIPO_EXAMENAND ID_PARCIAL =PN_ID_PARCIALAND ID_EXAMEN <> PN_ID_EXAMEN;

EXCEPTIONWHEN OTHERS THEN

PN_ERROR := 1;PV_ERROR := 'Error al accesar a la tabla <EXAMEN> '||sqlerrm;raise error;

END;return ln_id_examen ;

exceptionWHEN ERROR THEN

return -1;when others then

Pv_error:='Error no controlado en procedimiento...:'||sqlerrm;

Pn_error:=sqlcode;return -1;

END;--FUNCTION PU_EXISTE_ALUMNO_REGISTRADO (pn_id_usuario int,

pn_id_examen int,PN_DESCRIPCION OUT VARCHAR2,PN_OBSERVACION OUT VARCHAR2,pn_nota out number,PN_SECUENCIA OUT NUMBER,Pv_error out varchar2,Pn_error out number)RETURN INTEGER IS

LN_ESTADO INT;

BEGINLN_ESTADO:=-1;Pv_error :='';

Pn_error:=0;

SELECT NVL(EX.ID_ESTADO,-1),NVL(E.DESCRIPCION,'NN'),E.OBSERVACION,ex.nota_total,EX.ID_SECUENCIA

INTO LN_ESTADO,PN_DESCRIPCION ,PN_OBSERVACION,pn_nota,PN_SECUENCIA

FROM EXAMEN_ALUMNO EX,ESTADO EWHERE EX.ID_USUARIO=pn_id_usuarioAND EX.ID_EXAMEN=pn_id_examenAND EX.ID_ESTADO=E.ID_ESTADO;

RETURN (LN_ESTADO);exception

WHEN NO_DATA_FOUND THENPv_error:='NO EXISTEN ALUMNOS AUTORIZADOS';

Page 218: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

100

Pn_error:=sqlcode;RETURN 0;

when others thenPv_error:= SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.PU_EXISTE_ALUMNO_REGISTRADO>: '||SQLERRM,1,300);Pn_error:=sqlcode;RETURN -1;

END PU_EXISTE_ALUMNO_REGISTRADO;

FUNCTION PU_VALIDA_RECUPERACION(PN_ID_PARALELO NUMBER,

PN_ID_MATERIA NUMBER,

PN_ID_PERIODO_LECTIVO NUMBER,

PN_ID_ALUMNO NUMBER,Pv_error out varchar2,Pn_error out number

)RETURN NUMBER IS

LN_RETORNA NUMBER(1);LN_SUMA NUMBER(5,2);LN_NOTA1 NUMBER(5,2);LN_NOTA2 NUMBER(5,2);LN_NOTA_MINIMA NUMBER(5,2);

CURSOR DATOS(PN_ID_PARALELO_C NUMBER,PN_ID_MATERIA_C NUMBER,PN_ID_PERIODO_LECTIVO_C

NUMBER,PN_ID_ALUMNO_C NUMBER

)IS

SELECT EA.NOTA_TOTAL, E.ID_PARCIALFROM EXAMEN E, EXAMEN_ALUMNO EAWHERE E.ID_EXAMEN=EA.ID_EXAMENAND E.ID_PERIODO_LECTIVO=PN_ID_PERIODO_LECTIVO_CAND E.ID_MATERIA=PN_ID_MATERIA_CAND E.ID_PARALELO=PN_ID_PARALELO_CAND EA.ID_USUARIO=PN_ID_ALUMNO_CAND EA.ID_ESTADO IN(22,23,24);

BEGINLN_RETORNA :=0;LN_SUMA :=0;LN_NOTA1 :=0;LN_NOTA2 :=0;LN_NOTA_MINIMA:=0;Pn_error:=0;Pv_error:='';

--BEGIN

Page 219: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

101

LN_NOTA_MINIMA:=FU_GET_PARAMETRO('NOTA_MIN_EXAMEN_RECUPERACION',PV_ERROR,PN_ERROR);

--END;

FOR REG IN DATOS(PN_ID_PARALELO,

PN_ID_MATERIA,

PN_ID_PERIODO_LECTIVO,

PN_ID_ALUMNO )LOOP

IF REG.ID_PARCIAL=1 THENLN_NOTA1 :=REG.NOTA_TOTAL;

ELSEIF REG.ID_PARCIAL=2 THEN

LN_NOTA2 :=REG.NOTA_TOTAL;END IF;

END IF;

LN_SUMA :=LN_SUMA +REG.NOTA_TOTAL;

END LOOP;

IF LN_NOTA1<LN_NOTA_MINIMA OR LN_NOTA2<LN_NOTA_MINIMA THEN --NOHACE RECUPERACION

LN_RETORNA:=0;ELSE

LN_RETORNA:=1;END IF;

RETURN LN_RETORNA;

exceptionWHEN NO_DATA_FOUND THEN

Pv_error:='NO EXISTEN REGISTRO CON ESE CODIGO';Pn_error:=sqlcode;RETURN -1;

when others thenPv_error:= SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.PU_VALIDA_RECUPERACION>: '||SQLERRM,1,300);Pn_error:=sqlcode;RETURN -1;

END PU_VALIDA_RECUPERACION;

FUNCTION FU_GET_ID_ESTADO(PV_DESCRIPCION VARCHAR2,Pv_error out varchar2,Pn_error out number)RETURN NUMBER IS

LN_ESTADO NUMBER(5);

Page 220: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

102

BEGINLN_ESTADO:=-1;

Pn_error:=0;Pv_error:='';

SELECT NVL(ID_ESTADO,-1)INTO LN_ESTADO FROM ESTADOWHERE DESCRIPCION=PV_DESCRIPCION AND MODULO='EVALUACION';

RETURN (LN_ESTADO);

exceptionWHEN NO_DATA_FOUND THEN

Pv_error:='NO EXISTEN REGISTRO CON ESE CODIGO';Pn_error:=sqlcode;RETURN -1;

when others thenPv_error:= SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.GET_ID_ESTADO>: '||SQLERRM,1,300);Pn_error:=sqlcode;RETURN -1;

END FU_GET_ID_ESTADO;

FUNCTION FU_GET_ID_ESTADO_DESCRIPCION(PN_ESTADO NUMBER,Pv_error out varchar2,Pn_error out number) RETURN VARCHAR IS

LN_ESTADO VARCHAR(5);BEGIN

LN_ESTADO:='NN';Pn_error:=0;Pv_error:='';

SELECT NVL(DESCRIPCION,'NN')INTO LN_ESTADO FROM ESTADOWHERE ID_ESTADO=PN_ESTADO AND MODULO='EVALUACION';

RETURN (LN_ESTADO);

exceptionWHEN NO_DATA_FOUND THEN

Pv_error:='NO EXISTEN REGISTRO CON ESE CODIGO';Pn_error:=sqlcode;RETURN 'NN';

when others thenPv_error:= SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.GET_ID_ESTADO_DESCRIPCION>: '||SQLERRM,1,300);Pn_error:=sqlcode;RETURN 'NN';

END FU_GET_ID_ESTADO_DESCRIPCION;

PROCEDURE ACTUALIZA_CATEGORIA_PREGUNTA(PN_ID_PREGUNTA NUMBER,PN_ID_CATEGORIA_PREGUNTA NUMBER,Pv_error out varchar2,

Page 221: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

103

Pn_error out number) IS

BEGINPv_error:=NULL;Pn_error:=0;

update pregunta setid_categoria_pregunta=PN_ID_CATEGORIA_PREGUNTAwhereid_pregunta=PN_ID_PREGUNTA;COMMIT;

exceptionwhen dup_val_on_index then ---valores duplicadosPv_error:='codigo ya existe';Pn_error:=sqlcode;when others thenPv_error:='error en la insercion: '||sqlerrm;Pn_error:=sqlcode;

END ACTUALIZA_CATEGORIA_PREGUNTA;

FUNCTION FU_GET_PARAMETRO(PV_DESCRIPCION varchar2,Pv_error out varchar2,Pn_error out number) RETURN NUMBER IS

LN_RETORNA NUMBER;BEGIN

LN_RETORNA:=0;Pn_error:=0;Pv_error:='';

SELECT NVL(VALOR,0)INTO LN_RETORNA FROM PARAMETROSWHERE DESCRIPCION=PV_DESCRIPCION;

RETURN (LN_RETORNA);

exceptionWHEN NO_DATA_FOUND THEN

Pv_error:='NO EXISTEN REGISTRO CON ESE CODIGO';Pn_error:=sqlcode;RETURN 0;

when others thenPv_error:= SUBSTR('ERROR NO CONTROLADO EN PROCEDIMIENTO

<PCK_EVALUACION_01.FU_GET_PARAMETRO>: '||SQLERRM,1,300);Pn_error:=sqlcode;RETURN 0;

END FU_GET_PARAMETRO;

end PCK_EVALUACION_01 ;

Page 222: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

104

PAQUETE PCK_EVALUACION_INTERFACE

CREATE OR REPLACE PACKAGE BODY PCK_EVALUACION_INTERFACE AS/********************************************************************************************

NOMBRE: pck_evaluacion_interfacePROYECTO: AULA VIRTUALMODULO: EVALUACIONES

REVISION: 05/03/2009AUTOR: GRUPO 5

DESCRIPCION:CUERPO DEL PAQUETE QUE PERMITE LARECLACION CON LA INTERFACE DE OTROS MODULOS

********************************************************************************************/

--FUNCTION EXISTE_ESTADO(PV_ESTADO IN VARCHAR2,

COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2) RETURN

BOOLEAN IS

ERROR EXCEPTION;VAR_ESTADO NUMBER := 0;

BEGINBEGIN

SELECT COUNT(*)INTO VAR_ESTADOFROM ESTADOWHERE ID_ESTADO = PV_ESTADO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR ESTADO EN <ESTADO>

'||SQLERRM,1,300);RAISE ERROR;

END;--IF VAR_ESTADO > 0 THEN

RETURN TRUE;ELSE

RETURN FALSE;END IF;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN FALSE;

WHEN OTHERS THENCOD_RET := 2;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.EXISTE_ESTADO> '||SQLERRM,1,300);RAISE ERROR;

Page 223: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

105

END;--FUNCTION GET_USER(PN_USER IN NUMBER, COD_RET IN OUT NUMBER, MSG_RET

IN OUT VARCHAR2) RETURN VARCHAR2 IS--VAR_USER USUARIO.LOGIN%TYPE := NULL;ERROR EXCEPTION;--

BEGIN--BEGINSELECT LOGININTO VAR_USERFROM USUARIOWHERE ID_USUARIO = PN_USER;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR, CODIGO DE USUARIO:

'||PN_USER||' ,NO DEFINIDO EN TABLA <USUARIO> ',1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR CODIGO: '||PN_USER||'

, EN TABLA <USUARIO>; '||SQLERRM,1,300);RAISE ERROR;

END;--

RETURN VAR_USER;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN NULL;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.GET_USER> '||SQLERRM,1,300);RAISE ERROR;

END;--FUNCTION GET_PROFESOR_EXAMEN(PN_EXAMEN IN NUMBER,

PN_PERIODO IN NUMBER,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

RETURN VARCHAR2 IS--VAR_PROFESOR VARCHAR2(100) := NULL;ERROR EXCEPTION;--

BEGIN--BEGIN

Page 224: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

106

select substr(e.APELLIDO_PATERNO||''||e.apellido_materno||' '||e.PRIMER_NOMBRE,1,100) nombre_profesor

into var_profesorfrom examen a, paralelo_materia b, profesor_asignacion c,

empleado d,persona ewhere a.ID_MATERIA = b.ID_MATERIAand a.ID_PARALELO = b.id_paraleloand b.ID_PARALELO_MATERIA = c.ID_PARALELO_MATERIAand c.ID_EMPLEADO = d.ID_EMPLEADOand d.id_persona = e.id_personaand a.id_examen = PN_EXAMENand c.ID_PERIODO_LECTIVO = PN_PERIODO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR, NOMBRE DE PROFESOR PARA EXAMEN:

'||PN_EXAMEN||' ,NO ENCONTRADO ',1,300);RAISE ERROR;

WHEN OTHERS THENCOD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR PROFESOR PARA EXAMEN

'||PN_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--

RETURN VAR_PROFESOR;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN NULL;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.GET_PROFESOR_EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END GET_PROFESOR_EXAMEN;--FUNCTION GET_NOMBRE_PARCIAL(PN_PARCIAL IN NUMBER,

PN_PERIODO IN NUMBER,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

RETURN VARCHAR2 IS--VAR_PARCIAL PARCIAL.DESCRIPCION%TYPE := NULL;ERROR EXCEPTION;--

BEGIN--BEGIN

SELECT DESCRIPCIONinto VAR_PARCIALfrom PARCIAL

Page 225: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

107

WHERE ID_PARCIAL = PN_PARCIALAND ID_PERIODO_LECTIVO= PN_PERIODO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

VAR_PARCIAL := 'SIN PARCIAL';WHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR PARCIAL

'||PN_PARCIAL||' '||SQLERRM,1,300);RAISE ERROR;

END;--

RETURN VAR_PARCIAL;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN NULL;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.GET_NOMBRE_PARCIAL> '||SQLERRM,1,300);RAISE ERROR;

END GET_NOMBRE_PARCIAL;--FUNCTION GET_ALUMNO_EXAMEN(PN_EXAMEN IN NUMBER,

PN_SECUENCIA IN NUMBER,PN_USUARIO IN NUMBER,

COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

RETURN VARCHAR2 IS--VAR_ALUMNO VARCHAR2(100) := NULL;ERROR EXCEPTION;--

BEGIN--BEGIN

select substr(C.APELLIDO_PATERNO||''||C.apellido_materno||' '||C.PRIMER_NOMBRE,1,100) nombre_alumno

INTO VAR_ALUMNOfrom examen_alumno a, usuario b, persona c, alumno dwhere a.ID_USUARIO = b.ID_USUARIOand b.ID_PERSONA = c.ID_PERSONAand c.ID_PERSONA = d.ID_PERSONAand a.ID_EXAMEN = PN_EXAMENAND a.ID_SECUENCIA = PN_SECUENCIAAND A.ID_USUARIO = PN_USUARIO;

EXCEPTIONWHEN NO_DATA_FOUND THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR, NOMBRE DE ALUMNO PARA EXAMEN:

'||PN_EXAMEN||' ,NO ENCONTRADO ',1,300);

Page 226: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

108

RAISE ERROR;WHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR ALUMNO PARA EXAMEN

'||PN_EXAMEN||' '||SQLERRM,1,300);RAISE ERROR;

END;--

RETURN VAR_ALUMNO;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN NULL;

WHEN OTHERS THENCOD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.GET_ALUMNO_EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END GET_ALUMNO_EXAMEN;--

PROCEDURE ENVIAR_CORREO (NOMBRE_ENVIA IN VARCHAR2,ENVIA IN VARCHAR2,RECIBE IN VARCHAR2,ASUNTO IN VARCHAR2,MENSAJE IN VARCHAR2,COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

is-- HOST VARCHAR2(100) := 'mail.edina.com.ec';HOST VARCHAR2(100) := '192.168.1.199';mailhost VARCHAR2(30);mail_conn utl_smtp.connection;--mail_conn varchar2(10);crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );mesg VARCHAR2(30000) := null;

BEGIN--mensaje :='Hola';MAILHOST := ltrim(rtrim(HOST));mail_conn := utl_smtp.open_connection(mailhost, 25);mesg:= 'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' )

|| crlf ||'From:'|| NOMBRE_ENVIA||'<'||ENVIA||'>' || crlf ||'Subject: '||ASUNTO || crlf ||'To: '||RECIBE || crlf ||'' || crlf || MENSAJE;--utl_smtp.helo(mail_conn, mailhost);utl_smtp.mail(mail_conn, ENVIA);utl_smtp.rcpt(mail_conn, RECIBE);utl_smtp.data(mail_conn, mesg);utl_smtp.quit(mail_conn);--

Page 227: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

109

EXCEPTIONWHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN

BEGINmsg_ret := sqlerrm;

utl_smtp.quit(mail_conn);EXCEPTION

WHEN utl_smtp.transient_error OR utl_smtp.permanent_errorTHEN

COD_RET := -1;MSG_RET := substr('Existe un Error en el Servicio

de SMTP para envío de correo: '||sqlerrm,1,300);END;

WHEN OTHERS THENCOD_RET := 1;MSG_RET := substr('Error al enviar correo a '||recibe||'

'||sqlerrm,1,300);END ENVIAR_CORREO;

--FUNCTION GET_CORREO_USUARIO(PN_USUARIO IN NUMBER,

COD_RET IN OUT NUMBER,MSG_RET IN OUT VARCHAR2)

RETURN VARCHAR2 IS--VAR_CORREO VARCHAR2(100) := NULL;ERROR EXCEPTION;--

BEGIN--BEGIN

SELECT B.EMAILINTO VAR_CORREOFROM USUARIO A, PERSONA BWHERE A.ID_PERSONA = B.ID_PERSONAAND A.ID_USUARIO = PN_USUARIO;--

EXCEPTIONWHEN NO_DATA_FOUND THEN

VAR_CORREO := NULL;WHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL BUSCAR DIRECCION DE COOREO

PARA USUARIO '||PN_USUARIO||' '||SQLERRM,1,300);RAISE ERROR;

END;--

RETURN VAR_CORREO;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);RETURN NULL;

WHEN OTHERS THENCOD_RET := 3;

Page 228: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

110

MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION<PCK_INTERFACE_EVALUACION.GET_CORREO_USUARIO> '||SQLERRM,1,300);

RAISE ERROR;END GET_CORREO_USUARIO;--PROCEDURE ACT_SOLICITUD_EXAMEN_GRACIA(PN_CODIGO IN NUMBER,

COD_RET IN OUT NUMBER,

MSG_RET IN OUT VARCHAR2) ISERROR EXCEPTION;--BEGINBEGIN

UPDATE ADM_EXAMEN_GRACIASET ID_ESTADO = 2 -- HAY QUE BUSCAR CUAL ES EL ESTADO INACTIVOWHERE ID_SOLICITUD = PN_CODIGO;

EXCEPTIONWHEN OTHERS THEN

COD_RET := 1;MSG_RET := SUBSTR('ERROR AL ACTUALIZAR ESTADO DE EXAMEN DE

GRACIA, CODIGO: '||PN_CODIGO||' '||SQLERRM,1,300);RAISE ERROR;

END;--COMMIT;--

EXCEPTIONWHEN ERROR THEN

MSG_RET := SUBSTR(MSG_RET||' Cód: '||COD_RET,1,300);WHEN OTHERS THEN

COD_RET := 3;MSG_RET := SUBSTR('ERROR NO CONTROLADO EN FUNCION

<PCK_INTERFACE_EVALUACION.GET_PROFESOR_EXAMEN> '||SQLERRM,1,300);RAISE ERROR;

END ACT_SOLICITUD_EXAMEN_GRACIA;--

END PCK_EVALUACION_INTERFACE;

Page 229: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

111

CAPÍTULO 2

2. MANUAL DE USUARIO

IntroducciónEste manual ha sido diseñado con el objetivo de que los usuarios

destinados a la utilización del sistema conozcan las herramientas

necesarias en el manejo de la aplicación con la intención de que

puedan usarla de la mejor manera y lograr así sacar el mayor

provecho de la misma.

En este manual se encuentra explicado de manera fácil y sencilla

como se realiza el manejo del sistema, para que el usuario pueda

rápidamente satisfacer sus necesidades.

Page 230: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

112

En el centro que ahora supervisas han dado un gran paso al

sistematizar sus operaciones y queda en ti una gran

responsabilidad, la cual será fácilmente manejada si logras

aprovechar todas las ventajas que te ofrece este sistema.

Recuerda que el dominio de cualquier trabajo involucra tanto el

conocimiento teórico como el práctico, es por ello que para

alcanzar los máximos resultados de tus objetivos deberás:

Estudiar tu manual de usuario.

Dedicar tiempo en la práctica del sistema.

Comienza desde ahora a conocer el modulo de evaluaciones.

Características del Módulo de Evaluaciones

a) Los accesos de acuerdo al perfil asignado al usuario son los

siguientes: Administrador, Profesor y Alumno.

b) El Administrador en el Modulo de Evaluaciones en las opciones

de Mantenimientos y Reportes, tiene los siguientes permisos:

Mantenimientos

Preguntas y respuestas

Creación de Evaluaciones

Page 231: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

113

Categoría de preguntas

Tipo de Evaluaciones

Reportes

Evaluaciones por alumno

Evaluaciones por Materias

Categoría de Preguntas

Alumnos activos por evaluación

Presentación previa de evaluación

Cuestionario de preguntas

Evaluación al docente

c) El Profesor en el Modulo de Evaluaciones en las opciones de

Mantenimientos y Reportes, tiene los siguientes permisos:

Mantenimientos

Preguntas y respuestas

Creación de Evaluaciones

Reportes

Evaluaciones por alumno

Evaluaciones por Materias

Categoría de Preguntas

Alumnos activos por evaluación

Page 232: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

114

Presentación previa de evaluación

Cuestionario de preguntas

d) El Alumno en el Modulo de Evaluaciones tiene asignado

permisos para los siguientes procesos y reportes:

Procesos

Evaluación del Estudiante

Evaluación al docente

Reportes

Evaluaciones por alumno

e) Seguridades aplicadas a través de claves de usuarios ocultas

mediante encriptación.

Acceso al Sistema Como AdministradorAl ingresar al sistema la primera pantalla en visualizarse (Figura 2.1) nos

permite logearnos con el usuario que deseamos, en este caso como

administrador.

Page 233: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

115

Figura 2.1. Inicio sesión Administrador

Una vez que accedemos al sistema tenemos la página principal, la misma

que visualizara aquellas opciones a las que podemos acceder según el

usuario con el que nos hemos logeado.

Figura 2.2. Pantalla Principal Administrador

Page 234: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

116

Acceso al Sistema Como ProfesorAl ingresar al sistema la primera pantalla en visualizarse (Figura

2.1) nos permite logearnos con el usuario que deseamos, en este

caso como administrador.

Figura 2.3. Inicio sesión Profesor

Al logearnos como

administrador

observamos aquellas

opciones a las que

tenemos acceso.

Page 235: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

117

Una vez que accedemos al sistema tenemos la página principal, la misma

que visualizara aquellas opciones a las que podemos acceder según el

usuario con el que nos hemos logeado.

Figura 2.4. Pantalla Principal Profesor

Al logearnos como

administrador observamos

aquellas opciones a las que

tenemos acceso.

Page 236: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

118

Cerrar Sesión

Igual que la opción anterior, para cerrar la sesión anteriormente

iniciada por el usuario que solicito acceder al sistema; puede hacerlo

dando clic en la opción “Salir”.

Figura 2.5. Cerrar sesión.

Menú del Modulo de EvaluacionesEl modulo de evaluaciones contiene varias opciones, las mismas

que se presentaran de acuerdo al usuario con el que accedió al

sistema, por lo tanto para mejor comprensión de este manual lo

hemos agrupado de la siguiente manera:

Page 237: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

119

a) Mantenimientos

b) Reportes

c) Procesos

MantenimientosDetallaremos las diferentes pantallas que necesitan tener un

mantemiento de datos

Categoría PreguntasEl mantenimiento de categoría de preguntas en el modulo de

evaluaciones consiste en la creación de las diferentes categorías a

las que pertenecerán las preguntas; por ejemplo: Base de datos,

Matemáticas financieras, Programación I, etc.

Para crear una categoría pregunta es necesario que el usuario

registre lo siguiente:

Código: Permite un máximo de cinco caracteres, los cuales deben

ser numéricos.

Nivel Superior: Indica la Categoría o división de la pregunta, como

por ejemplo puede ser el nombre de la materia.

Nombre: Define el nombre de la categoría que desea asignar.

Descripción: Breve descripción de la categoría.

Auditoria de ingreso, Usuario: El nombre del usuario que creo la

categoría.

Page 238: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

120

Auditoria de ingreso, Fecha: La fecha que fue creada la

categoría.

Auditoria de modificación, Usuario: El nombre del usuario que

realizo la ultima modificación.

Es necesario indicar que los usuarios que tiene acceso a este

mantenimiento es el usuario de: Administración.

Figura 2.6. Categoría Preguntas.

Preguntas y RepuestasEl mantenimiento de Preguntas y Respuestas en el modulo de

evaluaciones consiste en la creación de preguntas con sus

respectivas respuestas de las diferentes categorías de preguntas

que tenemos definidas para las evaluaciones.

Page 239: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

121

Para crear una pregunta es necesario que el usuario registre lo

siguiente:

a. Pregunta. Permite un máximo de cinco caracteres, los cuales

deben ser numéricos.

b. Categoría. Indica la Categoría o división de la pregunta, como

por ejemplo puede ser el nombre de la materia.

c. Tipo. Define el tipo de respuesta como por ejemplo; respuesta

simple, verdadera o falsa, o respuesta múltiple.

d. Descripción de la pregunta. Aquí se realiza la pregunta.

e. Cantidad validas. Indica el numero de repuestas validas que

tiene la pregunta.

f. Factor Penalización. Indica el valor de la penalización que se

restara de la nota obtenida en el evaluación cada vez que

realice un cambio de respuesta en una pregunta ya contestada.

g. Nombre Archivo. Si en la pregunta es necesario cargar una

imagen aquí se indicara la ruta y nombre del archivo, el grafico

tiene que tener extensión jpg o gif.

En la pestaña RESPUESTA, tenemos varias opciones para

insertar la o las respuestas validas.

Es necesario indicar que los usuarios que tiene acceso a este

mantenimiento son los usuarios de: Administración y Profesores.

Page 240: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

122

Figura 2.7. Configuración de Pregunta.

Figura 2.8. Configuración de Respuesta.

Page 241: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

123

Evaluaciones

El mantenimiento de Evaluaciones en el modulo de evaluaciones

consiste en la creación de los exámenes con sus respectivos datos y

reglas que se definen para las evaluaciones en general.

Para crear una evaluación es necesario que el usuario registre lo

siguiente:

a. Tipo de evaluación: Permite elegir entre las diferentes

opciones de evaluaciones que ofrecemos en nuestro sistema de

evaluaciones, como son las siguientes opciones: EXAMEN,

LECCION, RECUPERACION O EXAMEN DE GRACIA.

b. Código: Es el código que será asignado a la evaluación,

permite un máximo de cinco caracteres, los cuales deben ser

numéricos.

c. Paralelo: En este campo se especifica el paralelo para el curso

que se esta creando la evaluación el cual se elige a través de la

lista de valores, una vez escogido el paralelo los campos

materia, periodo, año, ciclo, profesor son traídos

automáticamente de la base de datos.

d. Parcial: En este campo se especifica el parcial del cual se

creara la evaluación.

Page 242: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

124

e. Permite Abrir.

f. Permite Cerrar

g. Fecha inicio: Indica la fecha de inicio del examen.

h. Fecha fin: Indica la fecha en la que terminara el evaluación.

i. Limite Tiempo: Indica que evaluación tendrá un límite de

tiempo, el cual se detalla en el campo que viene a continuación.

j. Tiempo de duración: Indica el tiempo (minutos) que durara la

evaluación.

k. Numero máximo de preguntas: Indica la cantidad máxima de

preguntas que tendrá la evaluación.

l. Calificación máxima: Indica la calificación máxima de la

evaluación.

m. Estado: Especifica el estado de la evaluación, la evaluación

siempre estará en estado de borrado, mientras no se cambie el

estado a bloqueado, si se desea borrar la evaluación se la

puede hacer siempre y cuando este en estado de borrado y no

existan datos asociados como es el caso de las preguntas.

Los campos de Pregunta aleatoria, respuesta aleatoria, ventana

segura y aplica penalización, son campo de control y son

opcionales.

Page 243: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

125

Figura 2.9. Configuración General de Evaluación.

En la pestaña Banco de Preguntas, se enlista todas las preguntas

por categorías las cuales deben ser seleccionadas de acuerdo a la

cantidad máxima de preguntas, una vez seleccionadas se escoge

la opción añadir al examen, automáticamente pasan a la pestaña

preguntas, donde debe ser ingresada la nota de cada pregunta, la

suma de los valores deben coincidir con el valor ingresado del

campo calificación máxima.

Page 244: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

126

Figura 2.10. Selección de Preguntas

Figura 2.11. Configurar Puntuación de Preguntas

Page 245: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

127

Una vez elegidas las preguntas nos dirigimos a la pestaña

Registro, en la cual se registran todos los estudiantes asignados a

esa materia y paralelo, donde escogemos los estudiantes y se los

autoriza para que puedan realizar la evaluación.

Figura 2.12. Usuarios Activos

Es necesario indicar que se debe grabar de primera instancia en la

pestaña Evaluación, para que así se genere el código de la

evaluación y los siguientes datos necesarios como las preguntas y

registros puedan ser traídos de la base de datos a nuestra

evaluación, los usuarios que tienen acceso a este mantenimiento

Page 246: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

128

solo es el usuario de docente debido a que como profesor es el

único con permisos para crear evaluaciones de estudiantes.

ReportesLos diferentes reportes que brinda el Módulo de Evaluaciones son

accesibles de acuerdo al usuario que se encuentra logeado, en nuestro

caso mostramos siete reportes que son los siguientes:

REPORTES USUARIOS

Evaluaciones por alumno Administrador,Profesor y Alumno

Evaluaciones por Materias Administrador,Profesor

Categoría de Preguntas Administrador,Profesor

Alumnos activos por evaluación Administrador,Profesor

Presentación previa de Evaluación Administrador,Profesor

Cuestionario de preguntas Administrador,Profesor

Evaluación al docente Administrador

Page 247: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

129

A continuación detallaremos el funcionamiento de cada uno de los

reportes de este módulo.

2.6.2.1. Evaluaciones por AlumnoEn este reporte se listan todas las evaluaciones que un alumno ha

realizado en las diferentes materias, el reporte puede ser ejecutado

por los usuarios administrador y profesor.

Para ejecutar el reporte tenemos que seguir los siguientes pasos:

Tenemos que elegir el periodo lectivo para hacer la búsqueda del

reporte.

Buscamos por el número de cédula del alumno al que deseamos

presentar el reporte.

Figura 2.13. Pantalla Evaluaciones por Alumno

Page 248: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

130

Una vez llenado estos datos procedemos a imprimir haciendo clic en el

icono de imprimir, y automáticamente aparecerá el reporte deseado.

A continuación mostramos el reporte final de esta consulta.

Figura 2.14. Reporte de Evaluaciones por Alumno

2.6.2.2. Evaluaciones por MateriaEn este reporte se listan todas las evaluaciones que se han realizado en

las diferentes materias, el reporte puede ser ejecutado por los usuarios

administrador y profesor.

Para ejecutar el reporte hay que seguir los siguientes pasos:

a) Elegimos el periodo lectivo

b) Seleccionamos el nombre de la materia

c) Y por último imprimir en el icono correspondiente.

Page 249: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

131

Figura 2.15. Pantalla de Evaluaciones por Materia

Por último mostramos el reporte final.

Figura 2.16. Reporte de Evaluaciones por Materia

2.6.2.3. Categoría de PreguntasEn este reporte se listan todas las evaluaciones que se han realizado en

las diferentes materias, el reporte puede ser ejecutado por los usuarios

administrador y profesor.

Page 250: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

132

Para ejecutar el reporte hay que seguir los siguientes pasos:

Este reporte presenta directamente el listado de todas las categorías de

preguntas.

Figura 2.17. Pantalla Listado de Categoría de Preguntas

Seleccionamos el icono de imprimir y automáticamente se imprimirá

mostrándose de la siguiente forma.

Figura 2.18. Reporte de Categoría de Preguntas

Page 251: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

133

2.6.2.4. Alumnos Activos por EvaluaciónEn este reporte se listan todas las evaluaciones que se han realizado en

las diferentes materias, el reporte puede ser ejecutado por los usuarios

administrador y profesor.

Figura 2.19. Pantalla Alumnos Activos por Evaluación

2.6.2.5. Presentación previa de la EvaluaciónA este reporte tienen acceso los usuarios de administración y profesores,

es una presentación del evaluación con las diferentes preguntas

seleccionadas en la evaluación, en el caso de profesores solo pueden ver

sus evaluaciones asignadas, el usuario de administrador tiene acceso a

este reporte de todos las evaluaciones pendientes de todos los docentes.

Page 252: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

134

Figura 2.20. Reporte de Presentación previa de la Evaluación

2.6.2.6. Cuestionario de Preguntas

Page 253: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

135

Figura 2.21. Pantalla Cuestionario de Preguntas Por Categoría

En este reporte podemos visualizar los cuestionarios de preguntas por

cada categoría de preguntas, es importante indicar que este reporte

puede ser visualizado por los usuarios de administrador y docentes.

Figura 2.22. Reporte Cuestionario de Preguntas

Procesos

Evaluación del EstudianteEn el proceso de desarrollo de una Evaluación el único usuario

autorizado en el sistema de evaluación es el usuario estudiante y en

primera instancia se realiza lo siguiente:

Page 254: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

136

Logonearse con usuario de estudiante

Figura 2.23. Pantalla Ingreso Estudiante

Paso elegir opción de evaluaciones, evaluaciones estudiantes.

Si el estudiante que se conecto al modulo de evaluaciones tiene

pendiente uno o varios exámenes por realizar le aparecerá el

siguiente mensaje:

Page 255: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

137

Figura 2.24. Pantalla Previa de Evaluaciones Por Alumno

Se selecciona aceptar y nos aparecerá la siguiente pantalla:

Figura 2.25. Pantalla de Evaluaciones Por Alumno

Nos direccionamos en la evaluación que deseamos realizar y

presionamos la opción Ver en ese mismo momento se selecciona

iniciar evaluación. Una vez que se inicio a desarrollar el evaluación,

empezamos a resolver cada una de las preguntas asignadas a esta

evaluación, seleccionamos la primera pregunta que deseamos

contestar, en la cual nos indica la categoría, el tipo de respuesta, la

Page 256: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

138

valoración que tendrá cada pregunta y el estado de la pregunta de que

ha sido contestada si o no.

Figura 2.26. Pantalla Ejecución de Evaluación

Seleccionamos responder pregunta y no llevara a la pantalla que

visualizaremos a continuación, esta pantalla nos muestra cada

pregunta por individual y las opciones de repuestas, si la pregunta es

de tipo grafica la visualizaremos en el casillero junto a la pregunta.

Page 257: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

139

Figura 2.27. Pantalla Resolver Preguntas

Una vez finalizada la evaluación, es enviado un correo a la dirección

de correo del estudiante confirmando la elaboración de la evaluación.

Enseguida tendremos la visualización del siguiente mensaje que nos

indica si deseamos imprimir en pantalla el reporte de la evaluación

realizada con el porcentaje de la nota obtenida en cada una de las

preguntas contestadas.

Page 258: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

140

Figura 2.28. Pantalla Resolver Preguntas

Si seleccionamos la opción Si, de imprimir la evaluación, obtendremos

el reporte de la evaluación realizada por el estudiante un archivo pdf.

Este reporte mostrara como encabezado los datos mas importantes

como son: nombre del alumno, profesor, paralelo, parcial y codigo de

evaluacion.

Luego mostrara las preguntas que resolvio con la visualizacion de las

respuestas, mostrando las respuestas que eligio correctamente.

Page 259: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

141

Figura 2.29. Pantalla Resolver Preguntas

Evaluación al DocenteEn el proceso de la Evaluación al Docente que lo realiza el

único usuario autorizado en el sistema de evaluación es el

estudiante y en primera instancia se realiza lo siguiente:

a) Una vez que se logeo el alumno, elige en el arbol la opcion

de Evaluacion al Docente. El mismo que una vez que se eligio

aparecera la siguiente pantalla. En esta nos muestra un

mensaje de que si hay o no una evaluacion pendiente.

Page 260: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

142

Figura 2.30. Pantalla Resolver Preguntas

b) Aquí nos muestra la pantalla con la evaluacion al docente q vamos a

realizar.

Figura 2.31. Pantalla Resolver Preguntas

c) Una vez que activamos la evaluación al docente en el boton INICIAR

EVALUACION, nos motrara la siguiente pantalla.

d) En la misma que procedemos a contestar cada una de las siguientes

preguntas.

e) Una vez contestada la pregunta guardamos la respuesta y

automáticamente se cambiara a la siguiente pregunta.

Page 261: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

143

Figura 2.32. Pantalla Resolver Preguntas

Figura 2.33. Pantalla Pregunta Contestada

Page 262: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

144

Figura 2.34. Pantalla Finalizar Evaluación

Diccionario de datosUn diccionario de datos es una lista de todos los elementos incluido

en el conjunto de los FD de datos que describen un sistema. Los

elementos principales en un sistema, el almacenamiento de datos y

los procesos. El diccionario de datos almacena detalles y

descripciones de estos elementos.Si los analistas desean conocer

cuántos caracteres hay en un dato, con qué otros nombres se le

conocen en el sistema, o en donde se utilizan dentro del sistema

deben ser capaces de encontrar las respuestas en un diccionario

de datos desarrollado apropiadamente. Este manual esta orientado

a todo lo mencionado.

Page 263: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

145

ÍNDICE DE CONTENIDO

CAPÍTULO 1................................................................................................... 1

1. MANUAL TECNICO ............................................................................. 1

1.1. Introducción .................................................................................. 1

1.2. Diagramas..................................................................................... 1

1.2.1. Diagramas de Flujo de Datos .................................................... 2

1.2.2. Diagrama Entidad Relación....................................................... 2

1.3. Creación de Objetos de la Base de Datos .................................... 3

1.3.1. Script de creación de Tablas ..................................................... 3

1.3.2. Paquete PCK_EVALUACION.................................................. 10

1.3.3. Paquete PCK_EVALUACION_1.............................................. 21

1.3.4. Paquete PCK_EVALUACION_INTERFACE ........................... 34

1.4. Codificación ................................................................................ 36

CAPÍTULO 2............................................................................................... 111

2. MANUAL DE USUARIO ................................................................... 111

2.1. Introducción .............................................................................. 111

2.2. Características del Módulo de Evaluaciones ............................ 112

2.3. Acceso al Sistema Como Administrador ................................... 114

2.4. Acceso al Sistema Como Profesor............................................ 116

2.5. Cerrar Sesión............................................................................ 118

2.6. Menú del Modulo de Evaluaciones ........................................... 118

Page 264: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

146

2.6.1. Mantenimientos ..................................................................... 119

2.6.1.1. Categoría Preguntas ...................................................... 119

2.6.1.2. Preguntas y Repuestas .................................................. 120

2.6.1.3. Evaluaciones.................................................................. 123

2.6.2. Reportes................................................................................ 128

2.6.2.1. Evaluaciones por Alumno............................................... 129

2.6.2.2. Evaluaciones por Materia ............................................... 130

2.6.2.3. Categoría de Preguntas ................................................. 131

2.6.2.4. Alumnos Activos por Evaluación .................................... 133

2.6.2.5. Presentación previa de la Evaluación ............................ 133

2.6.2.6. Cuestionario de Preguntas............................................. 134

2.6.3. Procesos ............................................................................... 135

2.6.3.1. Evaluación del Estudiante .............................................. 135

2.6.3.2. Evaluación al Docente.................................................... 141

2.7. Diccionario de datos.................................................................. 144

Page 265: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

147

ÍNDICE DE FIGURAS

Figura 2.1. Inicio sesión Administrador ....................................................... 115

Figura 2.2. Pantalla Principal Administrador ............................................... 115

Figura 2.3. Inicio sesión Profesor................................................................ 116

Figura 2.4. Pantalla Principal Profesor........................................................ 117

Figura 2.5. Cerrar sesión. ........................................................................... 118

Figura 2.6. Categoría Preguntas................................................................. 120

Figura 2.7. Configuración de Pregunta. ...................................................... 122

Figura 2.8. Configuración de Respuesta..................................................... 122

Figura 2.9. Configuración General de Evaluación....................................... 125

Figura 2.10. Selección de Preguntas .......................................................... 126

Figura 2.11. Configurar Puntuación de Preguntas ...................................... 126

Figura 2.12. Usuarios Activos ..................................................................... 127

Figura 2.13. Pantalla Evaluaciones por Alumno ......................................... 129

Figura 2.14. Reporte de Evaluaciones por Alumno..................................... 130

Figura 2.15. Pantalla de Evaluaciones por Materia..................................... 131

Figura 2.16. Reporte de Evaluaciones por Materia..................................... 131

Figura 2.17. Pantalla Listado de Categoría de Preguntas .......................... 132

Figura 2.18. Reporte de Categoría de Preguntas ....................................... 132

Figura 2.19. Pantalla Alumnos Activos por Evaluación............................... 133

Figura 2.20. Reporte de Presentación previa de la Evaluación .................. 134

Page 266: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

148

Figura 2.21. Pantalla Cuestionario de Preguntas Por Categoría ................ 135

Figura 2.22. Reporte Cuestionario de Preguntas........................................ 135

Figura 2.23. Pantalla Ingreso Estudiante .................................................... 136

Figura 2.24. Pantalla Previa de Evaluaciones Por Alumno......................... 137

Figura 2.25. Pantalla de Evaluaciones Por Alumno .................................... 137

Figura 2.26. Pantalla Ejecución de Evaluación ........................................... 138

Figura 2.27. Pantalla Resolver Preguntas .................................................. 139

Figura 2.28. Pantalla Resolver Preguntas .................................................. 140

Figura 2.29. Pantalla Resolver Preguntas .................................................. 141

Figura 2.30. Pantalla Resolver Preguntas .................................................. 142

Figura 2.31. Pantalla Resolver Preguntas .................................................. 142

Figura 2.32. Pantalla Resolver Preguntas .................................................. 143

Figura 2.33. Pantalla Pregunta Contestada ................................................ 143

Figura 2.34. Pantalla Finalizar Evaluación .................................................. 144

Page 267: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXOS

Page 268: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO A

FLUJO DE DATOS

Page 269: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

ANEXO B

DIAGRAMA DEENTIDAD RELACION

Page 270: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

A

A

SI

SI

SI

SI

NO

NO

NO

NO

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONARCONSULTA DE

MATERIAS

CONSULTA DEMATERIAS

ASIGNADAS

SELECCIÓN DEMATERIA AREGISTRAR

EXISTENMATERIAS

EXISTEREGISTRO

PRESENTACIONDE PLANTILLAS

VERIFICACION DEESTADO

VERIFICAESTADO DE LAEVALUACION

CREAR REGISTRODE EVALUACION

INGRESARPREGUNTAS YRESPUESTAS

GUARDARREGISTRO DEEVALUACION

ACTUALIZACIONDE REGISTRO DE

EVALUACION

A

Figura 1.1 Proceso de Registro de Evaluación (Administrador/Docente)

Page 271: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONARACTIVACION DE

EVALUACION

CONSULTA DEUSUARIOS

REGISTRADOS

SELECCIÓN DEUSUARIOS

EXISTENUSUARIOS

S

PROCESOCORRECTO

ACTIVACION DEEVALUACION

CONFIRMARREGISTRO DE

USUARIOS

CREARREGISTROS DEEVALUACION

GUARDARREGISTRO DEEVALUACION

A A

A

A

SI

SISI

NO

NO

NO

SINO

Figura 1.2 Proceso de Activación de Evaluación (Administrador/Docente)

Page 272: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución

INICIO

FIN

INGRESO ALSITIO WEB

VISUALIZACIONDE LA PAGINA

PRINCIPAL

AUTENTICACIONY VALIDACION DE

USUARIO

USUARIOCORRECTO

PRESENTACIONDEL MENUPRINCIPAL

SELECCIÓNCORRECTA

SELECCIONAREVALUACIONES

ACTIVADAS

CONSULTA DEMATERIASACTIVADAS

SELECCIÓN DEMATERIA

EXISTENMATERIAS

CONFIRMACION

PRESENTACIONINFORMACION

PREVIA

CONFIRMACIONDE INICIO DEEVALUACION

ACTIVACION DELINICIO DE

EVALUACION

REGISTRO DERESPUESTAS

PRESENTACIONDE PREGUNTAS

A

Figura 1.3 Proceso de Evaluación (Estudiante)

A

NO

A

A

SI

SI SI

NO

NO

NO

TERMINAEVALUACION

REVISION DEEVALUACION

REGISTRO DERESULTADOS

PRESENTACIONDE RESULTADOS

SI

NO

Page 273: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas ...repositorio.ug.edu.ec › bitstream › redug › 12197 › 1 › B... · nuevo producto o servicio, o para darle solución