You are on page 1of 143

Contenido

1. PERFIL ............................................................................................................................................... 1
1.1 INTRODUCCIN ........................................................................................................................ 1
1.2 ANTECEDENTES ....................................................................................................................... 2
1.3 JUSTIFICACIN ......................................................................................................................... 4
1.4 DESCRIPCIN DEL PROBLEMA ........................................................................................... 5
1.5 FORMULACIN DEL PROBLEMA ......................................................................................... 7
1.6 OBJETIVOS................................................................................................................................. 8
1.6.1 Objetivo General .................................................................................................................. 8
1.6.2 Objetivo Especficos ............................................................................................................ 8
1.7 ALCANCE .................................................................................................................................... 9
1.8 ELEMENTOS DEL SISTEMA BASADO EN COMPUTADORAS ..................................... 10
1.8.1 Hardware ............................................................................................................................ 10
1.8.2 Software .............................................................................................................................. 10
1.8.3 Datos ................................................................................................................................... 11
1.8.4 Procesos ............................................................................................................................. 11
1.8.5 Gente / Usuario .................................................................................................................. 12
1.9 TECNOLOGIA PARA EL DESARROLLO DEL SOFTWARE ............................................ 13
1.9.1 Estrategia para el desarrollo del software ..................................................................... 13
1.9.2 Metodologa para el desarrollo del software ................................................................. 13
1.9.3 Herramientas de desarrollo .............................................................................................. 13
1.10 POSIBLES COSTOS ............................................................................................................. 15
1.11 POSIBLES BENEFICIOS ...................................................................................................... 16
1.11.1 Tiempo .............................................................................................................................. 16
1.11.2 Esfuerzo ............................................................................................................................ 16
1.11.3 Costos ............................................................................................................................... 16
1.12 POSIBLES CLIENTES........................................................................................................... 16
2. MARCO TERICO ......................................................................................................................... 17
2.1 CICLO DE VIDA PUDS............................................................................................................ 17
2.1.1 Flujos de Trabajo ............................................................................................................... 17
2.1.2 Aspecto Esttico y Dinmico ........................................................................................... 18
2.2 CODEIGNITER ......................................................................................................................... 20
2.2.1 Caractersticas generales de CodeIgniter ..................................................................... 20
2.3 SERVIDOR HTTP APACHE ................................................................................................... 22
2.4 HTML5 ........................................................................................................................................ 23
2.5 PHP ............................................................................................................................................. 24
3. MTODO DE REQUERIMIENTO: ISHIKAWA........................................................................... 26
3. 1 IDENTIFICAR PROBLEMA .................................................................................................... 26
3.1.1 Lista de problemas ............................................................................................................ 26
3.1.2 Depurar problema.............................................................................................................. 26
3.1.3 Lista final de problema ...................................................................................................... 27
3.1.4 Lista de propietarios de problemas................................................................................. 27
3.1.5 Anlisis de problemas ....................................................................................................... 28
3.1.6 Alternativas de cambio ..................................................................................................... 29
3.1.7 Disear diagrama de multicausalidad ............................................................................ 29
3.2 IDENTIFICAR PRINCIPALES CATEGORAS ..................................................................... 30
3.3 ANALIZAR Y DISCUTIR EL DIAGRAMA ............................................................................. 30
3.4 CONCLUSIN Y VIABILIDAD DEL PROYECTO ............................................................... 31
4. MODELO DE DOMINIO ................................................................................................................. 31
4.1 IDENTIFICAR CLASES ........................................................................................................... 31
4.2 IDENTIFICAR LOS ATRIBUTOS DE CADA CLASE .......................................................... 33
4.3 IDENTIFICAR LOS MTODOS DE CADA CLASE ............................................................. 34
4.4 RELACIONES ENTRE CLASES ............................................................................................ 36
4.5 DIAGRAMA DE CLASES ........................................................................................................ 42
5. MODELO DE NEGOCIO ............................................................................................................... 43
5.1 DIAGRAMA DE ACTIVIDAD ................................................................................................... 43
6. FLUJO DE TRABAJO: Captura de Requisitos ........................................................................... 46
6.1 ENCONTRAR ACTORES Y CASOS DE USO .................................................................... 46
6.2 PRIORIZAR CASOS DE USO ................................................................................................ 47
6.3 DETALLAR CASOS DE USO ................................................................................................. 48
6.3.1 Disear Casos de Uso ...................................................................................................... 48
6.3.2 Detallar Casos de Uso ...................................................................................................... 53
6.4 PROTOTIPAR INTERFAZ DE USUARIO............................................................................. 67
6.5 ESTRUCTURAR MODELO DE CASOS DE USO .............................................................. 68
7. FLUJO DE TRABAJO: Anlisis..................................................................................................... 69
7.1 ANLISIS DE ARQUITECTURA ............................................................................................ 69
7.1.1 Identificar Paquete............................................................................................................. 69
7.1.2 Relacionar paquetes y casos de uso.............................................................................. 70
7.2 ANALISIS DE CASOS DE USO ............................................................................................. 72
7.3 ANLISIS DE CLASES............................................................................................................ 78
7.4 ANLISIS DE PAQUETE ........................................................................................................ 85
8. FLUJO DE TRABAJO DISEO .................................................................................................... 86
8.1 DISEO DE ARQUITECTURA............................................................................................... 86
8.1.1 Diseo de arquitectura lgica .......................................................................................... 86
8.1.2 Diseo de arquitectura fisica ........................................................................................... 87
8.2 DISEO DE DATOS ................................................................................................................ 87
8.2.1 Diseo de datos lgicos ................................................................................................... 87
8.2.2 Diseo de datos fsicos..................................................................................................... 87
9. FLUJO DE TRABAJO IMPLEMENTACION.............................................................................. 123
9.1 IMPLEMENTACIN DE ARQUITECTURA DEL SISTEMA ............................................ 123
9.2 IMPLEMENTACIN DE ARQUITECTURA DE SUBSISTEMA ...................................... 124
9.3 PLATAFORMA DE DESARROLLO DE SOFTWARE....................................................... 127
10. CONCLUSION ............................................................................................................................ 127
11. RECOMENDACIN ................................................................................................................... 127
12.BIBLIOGRAFIA ............................................................................................................................ 127
13. ANEXOS ...................................................................................................................................... 128
13.1 BOLETA DE INSCRIPCIN ............................................................................................... 128
13.2 BOLETA DE PAGO .............................................................................................................. 129
13.3 MANUAL DE USUARIO DE LA PGINA WEB ............................................................... 130
13.4 ENTREVISTAS: .................................................................................................................... 136
PERFIL DE PROYECTO

1. PERFIL

1.1 INTRODUCCIN
Actualmente en Santa Cruz de la Sierra es un requisito al menos saber dos idiomas,
en nuestro existen muchos instituciones dedicadas a la enseanza de lenguas,
debido a la demanda existente, sin duda alguna el ingls es uno de los ms
importantes, la principal razn para estudiarlo es que nuestras oportunidades
laborales se multiplicarn en cuanto lo dominemos. Tanto en instituciones pblicas
como en privadas, sin importar el rea de trabajo, el ingls siempre aporta ventajas
a la hora de ascender de cargo laboral. Adems proporciona acceso a la informacin
ms actual y completa, conociendo los ltimos avances y podremos acceder a la
mayora de textos cientficos, acadmicos y tecnolgicos.
Segn un estudio ms del 56% de los sitios de Internet estn editados en ingls.

Los Cursos Autofinanciados de Idiomas (C.A.I.) pertenecen al rubro acadmico, el


cual se encarga de la enseanza de idiomas como ser el ingls, el francs y el
guaran. Esta institucin se ocupa de capacitar tanto universitarios (de la Universidad
Autnoma Gabriel Rene Moreno) como personas particulares.

En el presente documento se pretende desarrollar un Sistema de Informacin


encargado de los procesos de gestin acadmica de los Cursos Autofinanciados de
Idiomas (C.A.I.), el cual permitir agilizar los procesos de inscripcin, administracin
y control de notas.

-1-
1.2 ANTECEDENTES
Los Cursos Autofinanciados de Idiomas fueron propuestos y creados por la Carrera
de Idiomas en colaboracin con el Proyecto Boliviano Britnico para la Enseanza
del Ingls el ao 1997 como un programa piloto que responda a la gran necesidad
de aprendizaje del idioma como consecuencia de una globalizacin mundial.

Posteriormente en fecha 1 de marzo del 2000 con Resolucin Facultativa 05/2000 se


autoriz y se elev a las instancias correspondientes su creacin como una
dependencia de la Carrera de Idiomas y la Facultad de Humanidades. Estos cursos
fueron creados con el propsito de brindar un servicio de extensin en la enseanza
de lenguas extranjeras y generar recursos propios para su implementacin y
mantenimiento.

Debido a la demanda de aprendizaje de lenguas originarias, y a travs de un


convenio con el Departamento Distrital de Educacin (DDE) a travs de la
Resolucin 127/2013 de decanatura, se apertura los Cursos de Lenguas
Originarias, como ser la del Guaran , bajo la tuicin acadmica de la Carrera de
Lenguas Modernas y Filologa Hispnica.

Misin

Los Cursos Autofinanciados de Idiomas tienen la misin de prestar un servicio a la


sociedad crucea y comunidad universitaria que buscan la superacin permanente
mediante el aprendizaje de idiomas; contribuir de forma significativa al desarrollo de
habilidades en el manejo de un idioma; ofrecer una enseanza de calidad y
eficiencia; y apoyar a nuestra universidad con su propsito de promover el progreso
econmico social de nuestra regin y del pas.

Visin

Los Cursos Autofinanciados de Idiomas tienen la visin de constituirnos en una


entidad capaz de contribuir a la formacin complementaria de recursos humanos que
la sociedad regional y nacional exige, dotndoles de conocimientos slidos de
idiomas extranjeros y originarios que les permita competir y acceder a mejores
oportunidades laborales.

-2-
Ubicacin

La oficina central del CAI est ubicada en la calle Murillo 120 entre Bolvar y
Arenales. La segunda oficina est ubicada en el Pabelln 175 del Campus
Universitario, lugar donde se imparten las clases.-

Oficina campus universitario Oficina calle Murillo

Estructura Organizacional (Organigrama):

DECANO DE LA FACULTAD DE HUMANIDADES

DIRECTOR(A) DE CARRERA

COORDINADOR(A) ACADEMICO-ADMINISTRATIVO

PERSONAL DE APOYO SECRETARIA(S)


PROFESIONAL I
EDIFICIO MURILLO 120
CAMPUS PAB 175

CONSULTORES
PERSONAL DE APOYO I
(dos)

-3-
1.3 JUSTIFICACIN
En los ltimos aos las instituciones educativas buscan mejorar el acceso a la
informacin de los estudiantes debido al crecimiento de los mismos y esta es la
razn por la cual optan por agilizar sus procesos de gestin acadmica a travs de
un Sistema de Informacin.

Actualmente el sistema del CAI es semi-automatizado, tiene muchas deficiencias. Es


necesario llevar un control de todos los procesos acadmicos que se realizan en esta
institucin, para evitar la prdida de informacin, los cuales puedan causar
problemas posteriores. El proceso de inscripcin es muy burocrtico, adems se ve
la necesidad de laborar un perfil de usuario completo donde los estudiantes puedan
realizar un control y seguimiento de sus notas.

-4-
1.4 DESCRIPCIN DEL PROBLEMA
Infraestructura

El CAI cuenta con dos edificios, uno ubicado en la calle Murillo #120 y otro en el
Campus Universitario, los cuales cuentan con 15 aulas en total, cada una con
capacidad de 30 alumnos. Consta con un plantel docente de 19 profesores. El
nmero de estudiantes por trimestre vara de acuerdo a la demanda de 2500 a 3000
estudiantes.

El CAI se dan cursos de tres idiomas: Ingls, francs y guaran. El ingls cuenta con
13 niveles: 4 bsicos, 4 intermedios ,4 avanzados y 1 nivel final. El francs cuenta
con 8 niveles: 4 bsicos y 4 intermedios. El idioma guaran cuenta solo con 2 niveles
bsicos.

Tipos de Cursos

Cursos Regulares (1 nivel por trimestre).


Cursos Intensivos (2 niveles por trimestre).

Clasificacin de estudiantes

Estudiantes particulares.
Estudiantes de la UAGRM.

As mismo los estudiantes se subdividen en adolescentes y en adultos.

Costos de los Cursos

El costo de cada curso es de Bs. 320 (regular) y Bs. 640 (intensivo). Los estudiantes
de la UAGRM tienen un descuento de Bs. 60. Es decir, Bs. 260 (regular) y Bs. 580
(intensivo).

Duracin de los cursos

Una gestin acadmica est formada por 3 perodos y cada uno de estos consta de 3
meses de duracin. Entre cada perodo existe un corto receso que vara entre 2 a 3
semanas.

-5-
Proceso de Inscripcin

El proceso de inscripcin se hace va internet a travs de la pgina web de este


centro, el estudiante nuevo debe registrarse con sus datos personales (Nombre,
Apellidos, CI, Procedencia del CI, Genero, Fecha de Nacimiento, Direccin, Email,
Telfono y Celular). En caso de ser estudiante de la U.A.G.R.M adems de esos
datos debe ingresar su registro, carrera, el Plan de su Carrera, nombre de carrera y
la facultad a la que pertenece. Una vez ingresado estos datos y despus de haberlos
confirmado podr continuar con el proceso de registro.

Luego el estudiante deber iniciar sesin en la pgina web, en la seccin


estudiante. A continuacin el estudiante debe realizar una reserva previa del curso
del idioma al que se quiere postular, posteriormente se selecciona el grupo con el
horario ms conveniente.

Una vez guardada la Reserva, aparecer una boleta de reserva, la cual se tendr
que imprimir para realizar el respectivo pago con el monto indicado en la parte
superior de la boleta.

Posteriormente, el estudiante tendr que dirigirse a la caja de Post Grado de


Humanidades, donde realizar el pago del curso, finalmente el estudiante deber
dirigirse a las oficinas del CAI a dejar los siguientes documentos: la boleta de pago,
de reserva, fotocopia de su cdula de identidad y en caso de ser estudiante de la
UAGRM, la boleta de inscripcin del semestre actual.

Los ingresos por examen de nivel se habilitan una semana antes de las
inscripciones, y tienen como requisitos llevar una fotocopia de la cedula de identidad
y un documento que certifique que haya cursado anteriormente algn curso de
ingls, o en su defecto, si es estudiante de la U.A.G.R.M., mostrar su histrico
acadmico con las materias de Ingles Tcnico aprobadas.

Situacin problemtica
El CAI cuenta con un Sistema de Informacin capaz de gestionar la informacin de
sus profesores y alumnos, sin embargo ste presenta algunas deficiencias:

Los estudiantes del CAI no tienen la posibilidad de realizar el seguimiento sus


notas, ni consultar su histrico acadmico a travs de la pgina web actual. La
nica forma que cuenta el estudiante para saberlo es mediante un trmite, el
cual consiste en dirigirse a la oficina central, ubicada en la calle Murillo #120
entre Bolvar y Arenales, y solicitarlo al encargado.

-6-
Falta organizacin en el proceso y en la distribucin de los das de inscripcin.
Los estudiantes realizan largas filas para realizar los pagos de la reserva de
cupos en la caja de Post Grado de la facultad de Humanidades.

1.5 FORMULACIN DEL PROBLEMA


Se espera tener un sistema capaz de gestionar todas las actividades realizadas por
los Cursos Autofinanciados de Idiomas (C.A.I.), para que la organizacin sea ms
eficiente al momento de administrar sus procesos acadmicos.

-7-
1.6 OBJETIVOS

1.6.1 Objetivo General


Desarrollar un sistema de informacin para administrar la informacin e Inscripcin
de los Cursos Autofinanciados de Idiomas (C.A.I.)

1.6.2 Objetivo Especficos


Recopilar la informacin necesaria para la elaboracin del sistema de
informacin.
Analizar todos los requerimientos obtenidos a partir del modelo de negocio
para desarrollar modelos alternativos.
Disear el resultado del anlisis del sistema de informacin para la gestin de
Inscripcin Acadmica, utilizando diagramas de UML.
Realizar la implementacin, codificando en el lenguaje de programacin PHP.
Realizar las pruebas necesarias para asegurar su correcto funcionamiento y
que cumpla con todos los requisitos planteados previa etapa de desarrollo.

-8-
1.7 ALCANCE
Gestionar profesor: a parte de los datos como persona, el profesor tendr
como caracterstica extra su formacin acadmica.
Gestionar estudiante: adems de los datos como persona, el estudiante
tendr como caracterstica extra su tipo.
Gestionar Curso: cada curso se identifica por las siguientes caractersticas:
cdigo de aula, horario, idioma, nivel, grupo y profesor.
Gestionar la reserva: se realiza la reserva de un curso a travs del perfil de
la pgina web, tiene las siguientes caractersticas: cdigo de reserva, fecha y
monto.
Gestionar el proceso de Inscripcin: Mediante el Pago del Curso. La
inscripcin se identifica por las siguientes caractersticas: cdigo de
inscripcin y fecha.
Gestionar notas: se tendr un registro de las notas de los estudiantes y se
llevara un control de sus faltas.
Gestionar aula: cada aula tendr caractersticas como su identificacin, su
ubicacin y su capacidad.
Gestionar horario: se tendr registrado el cdigo de horario, la hora de
entrada, de salida, y los das en los que se pasaran clases.
Gestionar grupo: se registrarn el identificador del cada grupo y su
respectivo nombre.
Gestionar gestin: cada ao tiene 3 gestiones, de las cuales se registrarn el
nmero de gestin y la fecha de inicio.
Gestionar idioma: el curso ofrece 3 idiomas, de los que se guardan su
cdigo, nombre y descripcin.
Gestionar nivel: cada idioma tiene distintos niveles de los cuales se registran
su cdigo y nombre.
Gestionar bitcora: se proporciona al Administrador de perfiles un reporte
sobre las transacciones de los usuarios en el sistema
Gestionar perfiles de usuario: se asigna privilegios a los usuarios para
ingresar al sistema y realizar cambios.

-9-
1.8 ELEMENTOS DEL SISTEMA BASADO EN
COMPUTADORAS
1.8.1 Hardware
1.8.1.1 Servidor
Servidor virtual con las siguientes caractersticas:
RAM: 2 Gb
Procesador: 4 ncleos
Disco Duro: 10 Gb

1.8.1.2 Cliente
Este sistema web funcionara en ordenadores, smartphones y cualquier dispositivo
con acceso a Internet.

1.8.1.3 Medios de Comunicacin


Router.

1.8.1.4 Otros Dispositivos


Ninguno.

1.8.2 Software
1.8.2.1 Servidor
Sistema operativo: Linux
Versin del sistema operativo: 2.6.18-410.el5xen
Versin del PHP actual: PHP5.3.27
Versin del servidor web: Apache/2.4.23(Unix)
Versin MySQL: 5.5.50

1.8.2.2 Cliente
Navegadores: Google Chrome, Mozilla Firefox, Microsoft Edge.

1.8.1.2 Otro software adicional


Ninguno.

- 10 -
1.8.3 Datos
Datos de los cursos: se guardaran para saber la capacidad de alumnos por curso.

Datos de los estudiantes: estos datos son importantes para generar un perfil
estudiantil donde pueda hacer consultas sobre su curso, nivel y notas.

Datos de la inscripcin: se necesitan estos datos para saber en qu gestin se


Inscribi cada alumno.

Datos del docente: se guardaran los datos del docente, para saber su disponibilidad
y especialidad.

1.8.4 Procesos
Proceso reservar cupo: permite ver cuantos cupos libres existen y realiza una
reserva por 24 horas de un cupo del curso deseado.
Proceso generar horarios: genera los horarios basados en la disponibilidad de cada
docente.

Proceso inscripcin de alumnos: permite inscribir a los estudiantes de la


U.A.G.R.M y particulares en el horario y el curso que desee una vez realizado su
pago.

Proceso generar boleta: permite al estudiante ver e imprimir su boleta de


inscripcin o de reserva.

Proceso asignar docente: asigna un docente a un curso en un horario.


Proceso generar certificados: Permite generar los certificados para aquellos
estudiantes que han terminado todos los niveles de un idioma.

Proceso generar histrico de notas: permite ver al estudiante su progreso a travs


de los niveles/cursos.

Proceso generar perfiles: genera un perfil para cada estudiante y profesor nuevo.

Proceso generar bitcora: generar un reporte cada vez que el usuario lo solicite no
obstante guarda el registro de cada actividad realizada dentro del sistema.

- 11 -
1.8.5 Gente / Usuario
Estudiantes: podrn inscribirse y consultar sus respectivas notas.

Administrativos: en caso de alguna complicacin podrn inscribir a los estudiantes.

Docentes: podrn subir las notas de cada estudiante en su curso.

Desarrollador del sistema: Encargado de desarrollar y dar mantenimiento


al sistema.

Administrador de sistema: Encargado de crear roles y dar privilegios


a los usuarios.

- 12 -
1.9 TECNOLOGIA PARA EL DESARROLLO DEL
SOFTWARE
1.9.1 Estrategia para el desarrollo del software
Ciclo de vida Proceso Unificado de Desarrollo De Software (P.U.D.S.).

1.9.2 Metodologa para el desarrollo del software


1.9.2.1 Caractersticas del PUDS
- Guiado por lo casos de uso: Los casos de uso son el instrumento para validar
la arquitectura del software y extraer los casos de prueba.
- Centrado en la arquitectura: Los modelos son proyecciones de anlisis y el
diseo constituye la arquitectura del producto a desarrollar.
- Iterativo e incremental: Durante todo el proceso de desarrollo se producen
versiones incrementales.

1.9.2.2 Caractersticas de UML


Para el presente proyecto se utilizar UML 2 el cual nos permitir visualizar,
especificar y documentar cada una de las partes que comprender el desarrollo de la
herramienta.

1.9.3 Herramientas de desarrollo


1.9.3.1 Software
PHP
Servidor web Apache
Editor de Texto Brackets

1.9.3.2 Hardware
Laptop TOSHIBA
Modelo: Satellite S55-B
Procesador: Intel Core i7-4510U
RAM: 12,0 GB
Tipo de Sistema: Sistema Operativo de 64-bit
Laptop DELL
Modelo: Inspiron 5537
Procesador: Intel Core i5-4200U
RAM: 6,0 GB
Tipo de Sistema: Sistema Operativo de 64-bit

- 13 -
Laptop SAMSUNG
Modelo:NP300E5A
Procesador: Intel Core i3-2330M
RAM: 2,0 GB
Tipo de Sistema: Sistema Operativo de 32-bit

Laptop LENOVO
Modelo: E47G
Procesador: Intel Core i3-2330M
RAM: 4,0 GB
Tipo de Sistema: Sistema Operativo de 32-bit

- 14 -
1.10 POSIBLES COSTOS

Hardware Costos

Servidor Virtual(goDaddy) 239 $us

Laptop Toshiba Satelite 1000 $us

Laptop Dell Spiron 500 $us

Laptop Lenovo ee47g 500 $us

Laptop Acer 500 $us

Laptop Samsung 400 $us

Software

Mysql 0 $us

Php 0 $us

Apache 0 $us

Editor de Texto 0 $us

Total 3139 $us

- 15 -
1.11 POSIBLES BENEFICIOS
1.11.1 Tiempo
Proceso eficaz en la inscripcin de los estudiantes.
Proceso gil en revisin de notas por nivel de los estudiantes.
Reduccin de tiempo de la Bsqueda de historiales acadmicos

1.11.2 Esfuerzo
Manipulacin eficiente de las notas por parte de los docentes.
Reduccin de esfuerzo empleado por parte del personal de la institucin y
estudiantes.
Evitar la duplicacin de informacin.

1.11.3 Costos
Como los estudiantes ya no deben presentar la boleta de reserva ni su recibo en las
oficinas del campus de la U.A.G.R.M no ser necesario que los encargados deban
llevar dichos papeles a la oficina central gastando en su pasaje.

1.12 POSIBLES CLIENTES


Debido a que el sistema es personalizado no existen posibles clientes.

- 16 -
2. MARCO TERICO

2.1 CICLO DE VIDA PUDS


El Proceso Unificado es conjunto de actividades necesarias para transformar los
requisitos del usuario en un sistema de software. Est dirigido por casos de uso,
centrado en la arquitectura, y es iterativo e incremental.

Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un


resultado de valor a un usuario. Los casos de uso modelan los requerimientos
funcionales del sistema. El concepto de arquitectura software incluye los aspectos
estticos y dinmicos ms significativos del sistema. La arquitectura es una vista del
diseo completo con las caractersticas ms importantes resaltadas, dejando los
detalles de lado. Es prctico dividir el esfuerzo de desarrollo de un proyecto de
software en partes ms pequeas o mini proyectos. Cada mini proyecto es una
iteracin que resulta en un incremento. Las iteraciones hacen referencia a pasos en
el flujo de trabajo, y los incrementos a crecimientos en el producto.

Las iteraciones deben estar controladas. Esto significa que deben seleccionarse y
ejecutarse de una forma planificada.

2.1.1 Flujos de Trabajo


Cada fase se subdivide en iteraciones. En cada iteracin se desarrolla en secuencia
un conjunto de disciplinas o flujos de trabajos.

Cada disciplina o flujo de trabajo es un conjunto de actividades relacionadas


vinculadas a un rea especfica dentro del proyecto total. Las ms importantes son:
Requisitos, Anlisis, Diseo, Implementacin y Prueba.

- 17 -
El agrupamiento de actividades en disciplinas es principalmente una ayuda para
comprender el proyecto desde la visin tradicional en cascada.

Los flujos de trabajo desarrollan modelos desde el modelo de casos de uso hasta el
modelo de pruebas.

Flujos de Trabajo Modelos

Requisitos Modelo de Caso de Usos

Anlisis Modelo de Anlisis

Diseo Modelo de Diseo Modelo de despliegue

Implementacin Modelo de Implementacin

Pruebas Modelo de Prueba

2.1.2 Aspecto Esttico y Dinmico


Se Dispone de dos tipos diferentes de diagramas los que dan una vista esttica del
sistema y los que dan una visin dinmica. Los diagramas estticos son:

Diagrama de clases: muestra las clases, interfaces, colaboraciones y sus


relaciones. Son los ms comunes y dan una vista esttica del proyecto.
Diagrama de objetos: Es un diagrama de instancias de las clases mostradas
en el diagrama de clases. Muestra las instancias y como se relacionan entre
ellas. Se da una visin de casos reales.
Diagrama de componentes: Muestran la organizacin de los componentes del
sistema. Un componente se corresponde con una o varias clases, interfaces o
colaboraciones.
Diagrama de despliegue.: Muestra los nodos y sus relaciones. Un nodo es un
conjunto de componentes. Se utiliza para reducir la complejidad de los
diagramas de clases y componentes de un gran sistema. Sirve como resumen
e ndice.
Diagrama de casos de uso: Muestran los casos de uso, actores y sus
relaciones. Muestra quien puede hacer que y relaciones existen entre
acciones (casos de uso). Son muy importantes para modelar y organizar el
comportamiento del sistema.

- 18 -
Lo diagramas dinmicos son:

Diagrama de secuencia, Diagrama de colaboracin: Muestran a los diferentes


objetos y las relaciones que pueden tener entre ellos, los mensajes que se
envan entre ellos. Son dos diagramas diferentes, que se puede pasar de uno
a otro sin prdida de informacin, pero que nos dan puntos de vista diferentes
del sistema. En resumen, cualquiera de los dos es un Diagrama de
Interaccin.
Diagrama de estados: muestra los estados, eventos, transiciones y
actividades de los diferentes objetos. Son tiles en sistemas que reaccionen a
eventos.
Diagrama de actividades: Es un caso especial del diagrama de estados.
Muestra el flujo entre los objetos. Se utilizan para modelar el funcionamiento
del sistema y el flujo de control entre objetos.

Para llevar a cabo el siguiente ciclo de manera eficiente, los desarrolladores


necesitan todas las representaciones del producto de Software.

- 19 -
2.2 CODEIGNITER

CodeIgniter es un framework PHP para la creacin rpida de aplicaciones web,


Como cualquier otro framework, CodeIgniter contiene una serie de libreras que
sirven para el desarrollo de aplicaciones web y adems propone una manera de
desarrollarlas que debemos seguir para obtener provecho de la aplicacin. Esto es,
marca una manera especfica de codificar las pginas web y clasificar sus diferentes
scripts, que sirve para que el cdigo est organizado y sea ms fcil de crear y
mantener. CodeIgniter implementa el proceso de desarrollo llamado Model View
Controller (MVC), que es un estndar de programacin de aplicaciones, utilizado
tanto para hacer sitios web como programas tradicionales. Este sistema tiene sus
caractersticas, que veremos en artculos siguientes.

CodeIgniter no es magia, pero contiene muchas ayudas para la creacin de


aplicaciones PHP avanzadas, que hacen que el proceso de desarrollo ms rpido. A
la vez, define una arquitectura de desarrollo que har que programemos de una
manera ms ordenada y contiene diversas herramientas que ayudan a hacer
aplicaciones ms verstiles y seguras.

CodeIgniter y otros frameworks PHP pueden ayudarte a dar el salto definitivo como
desarrollador PHP, creando aplicaciones web ms profesionales y con cdigo ms
reutilizable, con la diferencia que CodeIgniter est creado para que sea fcil de
instalar en cualquier servidor y de empezar a usar que cualquier otro framework.
Adems, muchas de sus utilidades y modos de funcionamiento son opcionales, lo
que hace que goces de mayor libertad a la hora de desarrollar sitios web.

2.2.1 Caractersticas generales de CodeIgniter


Algunos de los puntos ms interesantes sobre este framework, sobre todo en
comparacin con otros productos similares, son los siguientes:

Versatilidad:

Quizs la caracterstica principal de CodeIgniter, en comparacin con otros


frameworks PHP. CodeIgniter es capaz de trabajar la mayora de los entornos o
servidores, incluso en sistemas de alojamiento compartido, donde slo tenemos un

- 20 -
acceso por FTP para enviar los archivos al servidor y donde no tenemos acceso a su
configuracin.

Compatibilidad:

CodeIgniter, al menos en el momento de escribir este artculo de desarrolloweb.com,


es compatible con la versin PHP 4, lo que hace que se pueda utilizar en cualquier
servidor, incluso en algunos antiguos. Por supuesto, funciona correctamente tambin
en PHP 5.

Actualizado: Desde la versin 2 de CodeIgniter ya solo es compatible con la versin


5 de PHP. Para los que todava usen PHP 4 pueden descargar una versin antigua
del framework, como CodeIgniter V 1.7.3, que todava era compatible. Estas
versiones estn en la pgina de descargas de CodeIgniter.

Facilidad de instalacin:

No es necesario ms que una cuenta de FTP para subir CodeIgniter al servidor y su


configuracin se realiza con apenas la edicin de un archivo, donde debemos escribir
cosas como el acceso a la base de datos. Durante la configuracin no necesitaremos
acceso a herramientas como la lnea de comandos, que no suelen estar disponibles
en todos los alojamientos.

Flexibilidad:

CodeIgniter es bastante menos rgido que otros frameworks. Define una manera de
trabajar especfica, pero en muchos de los casos podemos seguirla o no y sus reglas
de codificacin muchas veces nos las podemos saltar para trabajar como ms a
gusto encontremos. Algunos mdulos como el uso de plantillas son totalmente
opcionales. Esto ayuda muchas veces tambin a que la curva de aprendizaje sea
ms sencilla al principio.

Ligereza:

El ncleo de CodeIgniter es bastante ligero, lo que permite que el servidor no se


sobrecargue interpretando o ejecutando grandes porciones de cdigo. La mayora de
los mdulos o clases que ofrece se pueden cargar de manera opcional, slo cuando
se van a utilizar realmente.

Documentacin tutorializada:

La documentacin de CodeIgniter es fcil de seguir y de asimilar, porque est escrita


en modo de tutorial. Esto no facilita mucho la referencia rpida, cuando ya sabemos
acerca del framework y queremos consultar sobre una funcin o un mtodo en
concreto, pero para iniciarnos sin duda se agradece mucho.

- 21 -
2.3 SERVIDOR HTTP APACHE
El servidor HTTP Apache es un servidor web HTTP de cdigo abierto, para
plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que
implementa el protocolo HTTP/1.1 y la nocin de sitio virtual. El servidor Apache es
desarrollado y mantenido por una comunidad de usuarios bajo la supervisin de
la Apache Software Foundation dentro del proyecto HTTP Server (httpd).

Apache presenta entre otras caractersticas altamente configurables, bases de datos


de autenticacin y negociado de contenido, pero fue criticado por la falta de una
interfaz grfica que ayude en su configuracin.

Apache tiene amplia aceptacin en la red: desde 1996, Apache, es el servidor HTTP
ms usado. Jug un papel fundamental en el desarrollo fundamental de la World
Wide Web y alcanz su mxima cuota de mercado en 2005 siendo el servidor
empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un
descenso en su cuota de mercado en los ltimos aos. (Estadsticas histricas y de
uso diario proporcionadas por Netcraft). En 2009 se convirti en el primer servidor
web que aloj ms de 100 millones de sitios web.

La mayora de las vulnerabilidades de la seguridad descubiertas y resueltas tan slo


pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo,
algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los
usuarios locales malvolos en las disposiciones de recibimiento compartidas que
utilizan PHP como mdulo de Apache. Apache es usado principalmente para enviar
pginas web estticas y dinmicas en la World Wide Web. Muchas aplicaciones web
estn diseadas asumiendo como ambiente de implantacin a Apache, o que
utilizarn caractersticas propias de este servidor web.

Apache es el componente de servidor web en la popular plataforma de


aplicaciones LAMP, junto a MySQL y los lenguajes de
programacin PHP/Perl/Python (y ahora tambinRuby).

Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a
disposicin en una forma segura y confiable. Un ejemplo es al momento de compartir
archivos desde una computadora personal hacia Internet. Un usuario que tiene
Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raz
de documentos de Apache, desde donde pueden ser compartidos.
Los programadores de aplicaciones web a veces utilizan una versin local de Apache
con el fin de previsualizar y probar cdigo mientras ste es desarrollado.

- 22 -
2.4 HTML5
HTML5 es un lenguaje markup (de hecho, las siglas de HTML significan Hyper Text
Markup Language) usado para estructurar y presentar el contenido para la web. Es
uno de los aspectos fundamentales para el funcionamiento de los sitios, pero no es el
primero. Es de hecho la quinta revisin del estndar que fue creado en 1990. A fines
del ao pasado, la W3C la recomend para transformarse en el estndar a ser usado
en el desarrollo de proyectos venideros. Por as decirlo, qu es HTML5 est
relacionado tambin con la entrada en decadencia del viejo estndar HTML 4, que se
combinaba con otros lenguajes para producir los sitios que podemos ver hoy en da.
Con HTML5, tenemos otras posibilidades para explotar usando menos recursos. Con
HTML5, tambin entra en desuso el formato XHTML, dado que ya no sera necesaria
su implementacin.

HTML4 fue declarado el lenguaje oficial de la web en el ao 2000, y tom una


dcada para comenzar a implementar el desarrollo de su nueva revisin. Esta nueva
generacin de HTML, se dice, pronto dominar el desarrollo en internet, pero
introduce algunos cambios importantes que veremos dentro de algunas lneas. Por
ende, para los desarrolladores de sitios web es importante conocer las ventajas de
HTML5, considerando que algunas entidades se estn moviendo en esta direccin.
No solamente Google con su navegador Chrome, hace unos aos, sino tambin
Adobe hace unos meses, que removi el soporte de Flash para Android para dar
paso a la llegada de HTML5.

Volviendo a qu es HTML5. Se trata de un sistema para formatear el layout de


nuestras pginas, as como hacer algunos ajustes a su aspecto. Con HTML5, los
navegadores como Firefox, Chrome, Explorer, Safari y ms pueden saber cmo
mostrar una determinada pgina web, saber dnde estn los elementos, dnde
poner las imgenes, dnde ubicar el texto. En este sentido, el HTML5 no se
diferencia demasiado de su predecesor, un lenguaje del cual hablamos hace algunos
meses en nuestra gua bsica de HTML. La diferencia principal, sin embargo, es el
nivel de sofisticacin del cdigo que podremos construir usando HTML5. El lenguaje
HTML funciona a travs de marcas de sentido llamadas etiquetas. Las etiquetas son
la herramienta fundamental para que los navegadores puedan interpretar el cdigo y
permitirnos ver imgenes, texto, prrafo, y estructuras. Los navegadores vendran a
ser como traductores de las etiquetas, y con HTML5, se agregan nuevas
etiquetas para utilizar que nos ahorran el uso de otros productos que se usaban para
complementar y hacer cosas que con el simple HTML no se podan hacer. HTML5
fue creado para hacer que el proceso de escribir el cdigo sea ms simple y ms
lgico, por decirlo de una forma. La sintaxis de HTML5 se destaca, como dijimos, en

- 23 -
el mbito multimedia, pero son bastantes las etiquetas introducidas para generar una
mejora.

La idea detrs de HTML5 es que podamos visualizar el contenido multimedia variado


que podemos encontrar en internet an cuando nos encontramos en dispositivos de
gama baja que no podran soportarlo cuando tienen que instalar infinidad de plug-ins.
No solamente contamos con etiquetas especiales como audio, video y canvas, sino
tambin integracin con contenidos de grficos en vectores (que anteriormente se
conoca como la etiqueta object. Con estas etiquetas, los usuarios pueden consumir
videos y canciones, por ejemplo, sin necesidad de instalar nada de forma adicional.

2.5 PHP
PHP es un lenguaje de programacin de uso general de cdigo del lado del
servidor originalmente diseado para el desarrollo web de contenido dinmico. Fue
uno de los primeros lenguajes de programacin del lado del servidor que se podan
incorporar directamente en el documento HTML en lugar de llamar a un archivo
externo que procese los datos. El cdigo es interpretado por un servidor web con un
mdulo de procesador de PHP que genera la pgina web resultante. PHP ha
evolucionado por lo que ahora incluye tambin una interfaz de lnea de
comandos que puede ser usada en aplicaciones grficas independientes. Puede ser
usado en la mayora de los servidores web al igual que en casi todos los sistemas
operativos y plataformas sin ningn costo.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje
sigue siendo desarrollado con nuevas funciones por el grupo PHP.3 Este lenguaje
forma parte del software libre publicado bajo la licencia PHP, que es incompatible
con la Licencia Pblica General de GNU debido a las restricciones del uso del
trmino PHP.

PHP puede ser desplegado en la mayora de los servidores web y en casi todos los
sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra
instalado en ms de 20 millones de sitios web y en un milln de servidores. El
nmero de sitios basados en PHP se ha visto reducido progresivamente en los
ltimos aos, con la aparicin de nuevas tecnologas como Node.JS, Golang,
ASP.NET, etc. El sitio web de Wikipedia est desarrollado en PHP.6 Es tambin el
mdulo Apache ms popular entre las computadoras que utilizan Apache como
servidor web.

El gran parecido que posee PHP con los lenguajes ms comunes de programacin
estructurada, como C y Perl, permiten a la mayora de los programadores crear
aplicaciones complejas con una curva de aprendizaje muy corta. Tambin les permite

- 24 -
involucrarse con aplicaciones de contenido dinmico sin tener que aprender todo un
nuevo grupo de funciones.

Aunque todo en su diseo est orientado a facilitar la creacin de sitios webs, es


posible crear aplicaciones con una interfaz grfica para el usuario, utilizando alguna
extensin como puede ser PHP-Qt, PHP-GTK,7 WxPHP, WinBinder, Roadsend PHP,
Phalanger, Phc o HiP Hop VM. Tambin puede ser usado desde la lnea de
comandos, de la misma manera como Perl o Python pueden hacerlo; a esta versin
de PHP se la llama PHP-CLI (Command Line Interface).8

Cuando el cliente hace una peticin al servidor para que le enve una pgina web, el
servidor ejecuta el intrprete de PHP. ste procesa el script solicitado que generar
el contenido de manera dinmica (por ejemplo obteniendo informacin de una base
de datos). El resultado es enviado por el intrprete al servidor, quien a su vez se lo
enva al cliente.

Mediante extensiones es tambin posible la generacin de archivos PDF,9 Flash, as


como imgenes en diferentes formatos.

Permite la conexin a diferentes tipos de servidores de bases de datos


tanto SQL como NoSQL tales
como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL
Server,Firebird, SQLite o MongoDB.10

PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas


operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft
Windows, y puede interactuar con los servidores de web ms populares ya que
existe en versin CGI, mdulo para Apache, e ISAPI.

- 25 -
3. MTODO DE REQUERIMIENTO: ISHIKAWA

3. 1 IDENTIFICAR PROBLEMA
3.1.1 Lista de problemas
- P1: Deficiencia en la atencin.
- P2: Inconsistencia al registrar planilla de sueldos.
- P3: Demasiada demora en obtener historiales acadmicos.
- P4: Acumulacin innecesaria de papeles.
- P5: Perdida de tiempo en colas para la entrega de datos de confirmacin para
la inscripcin.
- P6: Limitada infraestructura del edificio ubicado en la calle Murillo.
- P7: Desfavorable ubicacin de las aulas.
- P8: Abandono su pgina web.
- P9: Perdida de tiempo en colas para realizar el pago.
- P10: Perdida de tiempo y dinero para trasladar papeles de inscripcin desde el
campus hasta la central ubicada en la calle Murillo.
- P11: Escasez de grupos por horario.
- P12: Insuficientes cajeros para realizar el pago.
- P13: Escasa informacin al momento de realizar la reserva.
- P14: Precarias instalaciones en el edificio central.
- P15: Desorden al asignar aula/docente.

3.1.2 Depurar problema


- P2: Inconsistencia al registrar planilla de sueldos.
- P3: Demasiada demora en obtener historiales acadmicos.
- P4: Acumulacin innecesaria de papeles.
- P6: Limitada infraestructura del edificio ubicado en la calle Murillo.
- P7: Desfavorable ubicacin de las aulas.
- P9: Perdida de tiempo en colas para realizar el pago.
- P11: Escasez de grupos por horario.
- P12: Insuficientes cajeros para realizar el pago.
- P14: Precarias instalaciones en el edificio central.

- 26 -
3.1.3 Lista final de problema
- P1: Deficiencia en la atencin.
- P2: Demasiada demora en obtener historiales acadmicos.
- P3: Acumulacin innecesaria de papeles.
- P4: Perdida de tiempo en colas para la entrega de datos de confirmacin para
la inscripcin.
- PS: Abandono de la pgina web,
- P6: Perdida de tiempo y dinero para trasladar papeles de inscripcin desde el
campus hasta la central ubicada en la calle Murillo.
- P7: Escasa informacin al momento de realizar la reserva.
- P8: Desorden al asignar aula/docente.

3.1.4 Lista de propietarios de problemas


Estudiante: es aquella persona que se inscribe cursos para pasar clases.
Secretaria: es aquella persona que inscribe a los estudiantes, transcribe las notas y
atiende las consultas.
Coordinadora: es la persona encargada de la toma de decisiones para la gestin de
la institucin.
Docente: es aquella persona que imparte las clases de los respectivos idiomas.

/Propietario Estudiante Secretaria Coordinadora Docente


Problema/
P1: Deficiencia en la
atencin.

P2: Demasiada
demora en obtener
historiales
acadmicos.
P3: Acumulacin
innecesaria de
papeles.

P4: Perdida de
tiempo en colas para
la entrega de datos
de confirmacin para
la inscripcin.

- 27 -
P5: Abandono su
pgina web.

P6: Perdida de
tiempo y dinero para
trasladar papeles de
inscripcin desde el
campus hasta la
central ubicada en la
calle Murillo.
P7: Escasa
informacin al
momento de realizar
la reserva.

3.1.5 Anlisis de problemas

P1: Deficiencia
en la atencin

P3: Acumulacin
innecesaria de P4: Perdida de P5: Abandono
papeles. tiempo en colas su pgina web.
para la entrega de
datos de
confirmacin para
la inscripcin.

P6: Perdida de P2: Demasiada


tiempo y dinero demora en
para trasladar obtener
papeles de historiales
inscripcin desde el acadmicos.
P7: Escasa
campus hasta la
informacin al
central ubicada en la
momento de
calle Murillo.
realizar la reserva.
- 28 -
problema Valoracin
P1: Deficiencia en la atencin. Alta
P2: Demasiada demora en obtener Media
historiales acadmicos.
P3: Acumulacin innecesaria de papeles. Alta

P4: Perdida de tiempo en colas para la Alta


entrega de datos de confirmacin para la
inscripcin.

P5: Abandono de su pgina web. Alta


P6: Perdida de tiempo y dinero para Media
trasladar papeles de inscripcin desde el
campus hasta la central ubicada en la
calle Murillo.
P7: Escasa informacin al momento de Media
realizar la reserva.

3.1.6 Alternativas de cambio

- A1: CAPACITAR AL PERSONAL


- A2: UTILIZAR UN SISTEMA DE INFORMACION
- A3: NUEVOS PUNTOS DE ATENCION
- A4: ACTUALIZACION Y MANTENIMIENTO CONSTANTE DE LA PAGINA
WEB
- A5: BUSCAR CAJEROS ALTERNATIVOS PARA REALIZAR PAGOS
(ENTIDADES FINANCIERAS).

3.1.7 Disear diagrama de multicausalidad

DEFICIENCIA EN LA
ORGANIZACIN
ACADEMICA

- 29 -
3.2 IDENTIFICAR PRINCIPALES CATEGORAS
C1: PROCESO DE INSCRIPCION.- Es un conjuntos de pasos a seguir donde el estudiante llega a
inscribir un curso.
C2: REGISTRO DE ESTUDIANTES.- Es un documento donde se tiene todos los datos del
estudiante
C3: HISTORIALES ACADEMICOS.- Es un documento donde refleja el seguimiento de notas del
estudiante.

C1

DEFICIENCIA EN LA
ORGANIZACIN
ACADEMICA

C3 C2

3.3 ANALIZAR Y DISCUTIR EL DIAGRAMA P6: PERDIDA DE TIEMPO Y


DINERO PARA TRASLADAR
P4: PERDIDA DE TIEMPO EN
PAPELES DE INSCRIPCIN
COLAS PARA LA ENTREGA
DESDE EL CAMPUS HASTA
DE DATOS DE
LA CENTRAL UBICADA EN
CONFIRMACION PARA LA C1 LA CALLE MURILLO
INSCRIPCION

P1: DEFICIENCIA EN
LA ATENCION

DEMASIADA DEMORA EN P5:


OBTENER HISTORIALES ABANDONO DE
ACADEMICOS SU PAGINA

C3 P7: ESCASA
INFORMACION AL
MOMENTO DE REALIZAR
DEFICIENCIA
EN LA
ORGANIZACIN
ACADEMICA

C2

P3: ACUMLACION
INNECESARIA DE - 30 -
PAPELES
3.4 CONCLUSIN Y VIABILIDAD DEL PROYECTO

- C1: PROCESO DE INSCRIPCION.- Podemos afirmar que el proceso de


inscripcin es un proceso de gran impacto en la institucin la cual conlleva
bastantes subprocesos y es viable implementar un mdulo sobre este
proceso.

- C2: REGISTRO DE ESTUDIANTES.- el registro de los estudiantes es uno de


los procesos importantes en la institucin que se debe implementar.

- C3: HISTORIALES ACADEMICOS.- el historial acadmico le permite saber


las notas del estudiante por eso es necesario implementar un mdulo sobre
esto.

4. MODELO DE DOMINIO

4.1 IDENTIFICAR CLASES


Gestin: La clase de objetos Gestin especifica los trimestres de cada Gestin.

Idioma: La clase de objetos Idioma especifica el nombre del idioma.

Nivel: La clase de objetos Nivel tendr los niveles que le corresponden a cada
idioma.

Persona: La clase de objetos Persona contiene tanto a los profesores como


estudiantes que forman parte del CAI.

Profesor: La clase de objetos Profesor contiene los datos de todo el plantel Docente.

Perfil Profesor: La clase de objetos Perfil Profesor contiene los perfiles de los
diferentes Profesores.

Grupo: La clase de objetos Grupo especifica los grupos que tienen los niveles.

Aula: La clase de objetos Aula contiene las aulas tanto del edificio del CAI de la
calle Murillo, como las del Campus universitario.

Horario: La clase de objetos Horario contiene los horarios para cada grupo de un
determinado nivel.

Estudiante: La clase de objetos Estudiante contiene los datos personales de los


alumnos inscritos.
- 31 -
Perfil Estudiante: La clase de objetos Perfil Estudiante contiene los perfiles de los
diferentes Estudiantes.

Perfil Profesor: La clase de objetos Perfil Profesor contiene los perfiles de los
diferentes Profesores.

Reserva: La clase de objetos Reserva contiene las reservas que realizan los
estudiantes para poder inscribirse a un determinado curso.

Inscripcin: La clase de objetos Inscripcin contiene el detalle de las inscripciones


tanto del estudiante como del curso.

Idioma_Nivel: Clase asociacin que relaciona las clases Idioma y Nivel.

Historico: Clase asociacin que relaciona las clases Alumno e Idioma_Nivel.

Curso: Clase asociacin que relaciona Grupo con Idioma_Nivel.

Telfono: La clase de objetos Telfono contiene los nmeros de telfonos de


personas (profesores y estudiantes).

Usuario: La clase de objetos Usuario contiene los usuarios que van a acceder al
sistema.

Bitcora: La clase de objetos Bitcora contiene un registro de las acciones que se


realizan por los usuarios en el sistema.

- 32 -
4.2 IDENTIFICAR LOS ATRIBUTOS DE CADA CLASE
Gestin: Id_gestin, Inicio.

Idioma: Id_Idioma, Nombre, Descripcion.

Nivel: Id_nivel, Nombre.

Persona: Ci, Nombre, Paterno, Materno, Genero, Correo.

Profesor: Ci_profesor, Grado.

Perfil Profesor: Id_perfil, Pass.

Grupo: Id_grupo, Nombre.

Aula: Id_aula, Ubicacin, Capacidad.

Horario: Id_horario, Entrada, Salida, Dias.

Estudiante: Ci_estudiante, Tipo.

Perfil Estudante: Id_perfil, Pass.

Reserva: Id_reserva, Monto, Fecha.

Inscripcion: Id_inscripcion, Fecha.

Historico: Faltas, Estado, Nota.

Telefono: Id_telefono, Numero

Usuario: Id_perfil, Cargo, Pass

Bitacora: Id_bitacora, Tabla, Fecha_hota, Operacin

- 33 -
4.3 IDENTIFICAR LOS MTODOS DE CADA CLASE
Gestin:

setGestin().
getGestion().

Idioma:

setId_Idioma().
getId_Idioma().
setNombre().
getNombre()

Nivel:

setId().
getId().
setCupo().
getCupo().

Persona:

getPersona().
setPersona().

Perfil Profesor:

getPerfilProfesor().
setPerfilProfesor().

Grupo

getGrupo().
setGrupo().

Aula

getAula().
setAula().

- 34 -
Horario

getHorario().
setHorario().

Estudiante

getEstudiante().
setEstudiante().

Reserva

getReserva().
setReserva().

Inscripcin

getInscripcion().
setInscripcion().

Histrico

getHistorico().
setHistorico().

Curso:

getCurso().
setCurso().

Telefono:
getTelefono().
setTelefono().

Usuario:

getUsuario ().
setUsuario().

Bitcora:

getBitacora().

- 35 -
4.4 RELACIONES ENTRE CLASES
Idioma Nivel: Un idioma tiene uno o varios niveles. Un nivel tiene uno o varios
idiomas.

idioma niv el

- id_idioma - id_nivel
- nombre tiene - nombre
1..* 1..*
- descripcion
+ getNivel() : nivel
+ getIdioma() : idioma + setNivel() : void
+ setIidioma() : void

Idioma_Nivel: Clase asociacin entre la clase Nivel y la clase Idioma.

Idioma_Niv el

Estudiante PerfilEstudiante: Un estudiante tiene un solo PerfilEstudiante y un


PerfilEstudiante pertenece a un solo Estudiante.

perfilEstudiante
persona
estudiante - id_perfil
tiene
- pass
- tipo 1
1
+ setPerfilEstudiante() : void
+ getPerfilEstudiante() : PerfilEstudiante

Estudiante Idioma_Nivel: Un estudiante consulta uno a muchos Idiomas_Niveles


y un Idioma_Nivel es consultado por uno o muchos alumnos.

persona Idioma_Niv el
estudiante

- tipo 1..* 1..*


consulta

- 36 -
Historico: Clase asociacin entre estudiante e Idioma_Nivel

historico

- faltas
- estado
- nota

+ getHistorico() : historico
+ setHistorico() : void

Estudiante Persona: Estudiante hereda todos los atributos y mtodos de la clase


Persona.

persona

- ci
- nombre
- paterno estudiante
- materno
- tipo
- genero
- correo

+ getPersona() : persona
+ setPersona() : void

Estudiante Reserva: Un estudiante realiza una a muchas reservas de un curso, y


una reserva puede ser realizada por un estudiante.

reserv a

persona - id_reserva
1 1..* - monto
estudiante realiza
- fecha
- tipo
+ getReserva() : reserva
+ setReserva() : void

Idioma_Nivel Grupo: un Idioma_Nivel tiene uno a muchos grupos y un Grupo


tiene uno a muchos Idioma_Nivel.

grupo
Idioma_Niv el
tiene - id_grupo
- nombre
1..* 1..*
+ getGrupo() : grupo
+ setGrupo() : void

- 37 -
Curso: Clase asociacin entre Idioma_Nivel y Grupo.

curso

+ getCurso() : curso
+ setCurso() : void

Historico Gestin: Un histrico pertenece a una gestin y una gestin pertece a


uno o muchos histricos.

historico gestion

- faltas - id_gestion
- estado pertenece - inicio
- nota
1..*
1 + getGestion() : gestion
+ getHistorico() : historico + setGestion() : void
+ setHistorico() : void

Usuario Persona: Usuario hereda todos los atributos y mtodos de la clase


Persona.

persona

- ci Usuario
- nombre
- id_perfil
- paterno
- cargo
- materno
- pass
- genero
- correo
+ setUsuario() : void
+ getUsuario() : Usuario
+ getPersona() : persona
+ setPersona() : void

Gestin Reserva: Una gestin pertenece a una o muchas reservas y una reserva
pertenece a una gestin.

reserv a
gestion
- id_reserva
- id_gestion pertenece - monto
- inicio
1 1..* - fecha
+ getGestion() : gestion
+ getReserva() : reserva
+ setGestion() : void
+ setReserva() : void

- 38 -
Inscripcin Reserva: Una Inscripcin requiere una reserva y una reserva es
requerida por una o muchas inscripciones.

inscripcion
reserv a
- id_inscripcion
requiere - id_reserva
- fecha
- monto
1..* 1 - fecha
+ getInscripcion() : inscripcion
+ setInscripcion() : void
+ getReserva() : reserva
+ setReserva() : void

Reserva Curso: Una Reserva corresponde un curso y a un Curso le corresponde


una o muchas Reservas.

reserv a

- id_reserva
curso
- monto corresponde
- fecha
+ getCurso() : curso
1..* 1
+ setCurso() : void
+ getReserva() : reserva
+ setReserva() : void

Persona Telfono: Una Persona tienes cero a muchos telfonos y a un Telfono


corresponder a una sola persona.

persona

- ci
Telefono
- nombre
- paterno - id_telefono
tiene
- materno - numero
- genero 1 0..*
- correo + getTelefono() : telefono
+ setTelefono() : void
+ getPersona() : persona
+ setPersona() : void

- 39 -
Grupo Idioma_Nivel: Un Grupo tiene uno o muchos Idiomas_Nivel y un
Idioma_Nivel tiene uno o muchos Grupos.

grupo

- id_grupo tiene Idioma_Niv el


- nombre
1..* 1..*
+ getGrupo() : grupo
+ setGrupo() : void

Curso: Clase asociacin entre Idioma_Nivel y Grupo.

curso

+ getCurso() : curso
+ setCurso() : void

Profesor Persona: Profesor hereda todos los atributos y mtodos de la clase


Persona.

persona

- ci
- nombre
- paterno profesor
- materno
- grado
- genero
- correo

+ getPersona() : persona
+ setPersona() : void

Profesor Curso: Un Profesor es asignado a uno o muchos Cursos y a un Curso se


les asigna un Profesor.

persona curso
profesor asigna
+ getCurso() : curso
- grado 1 1..* + setCurso() : void

- 40 -
Profesor PerfilProfesor: Un Profesor es asignado a un pefilProfesor y a un
perfilProfesor es asignado un Profesor.

perfilProfesor
persona
profesor - id_perfil
tiene
- pass
- grado
1 1 + getPerfilProfesor() : perfilprofesor
+ setPerfilProfesor() : void

Curso Aula: A un Curso es asignado un Aula y a un Aula se le asignado uno o


muchos Curso.

aula

curso - id_aula
asigna - ubicacion
+ getCurso() : curso - capaciad
0..* 1
+ setCurso() : void
+ getAula() : aula
+ setAula() : void

Curso Horario: A un Curso es asignado un Horario y a un Horario se le asignado


uno o muchos Curso.

horario

- id_horario
curso - entrada
asigna
- salida
0..* 1 - dias
+ getCurso() : curso
+ setCurso() : void
+ getHorario() : horario
+ setHorario() : void

- 41 -
Usuario Bitcora: Una Bitcora registra a un Usuario y un Usuario es registrado
en una o muchas Bitcora.

persona Bitacora
Usuario
- id_bitacora
- id_perfil - tabla
registra
- cargo - fecha_hora
- pass 1 1..* - operacion

+ setUsuario() : void + getBitacora() : Bitacora


+ getUsuario() : Usuario

4.5 DIAGRAMA DE CLASES


class Diagrama

perfilProfesor aula
persona
horario
- id_perfil - id_aula grupo
- ci
- pass - ubicacion - id_horario
- nombre - id_grupo
- capaciad - entrada
- paterno - nombre
+ getPerfilProfesor() : perfilprofesor - salida
- materno
+ setPerfilProfesor() : void + getAula() : aula - dias
- genero + getGrupo() : grupo
+ setAula() : void + setGrupo() : void
- correo
+ getHorario() : horario
1
1 1 + setHorario() : void 1..*
+ getPersona() : persona tiene asigna 1
+ setPersona() : void asigna
1 0..*

tiene curso
profesor 0..*
asigna
+ getCurso() : curso
- grado
1 1..* + setCurso() : void
0..*
1
corresponde
Telefono
1..*
- id_telefono
- numero reserv a

+ getTelefono() : telefono - id_reserva tiene


+ setTelefono() : void - monto
- fecha
pertenece
requiere 1 + gestion
getReserva() : reserva 1..*
inscripcion + setReserva() : void
1..* 1 - id_gestion
- id_inscripcion - inicio
1..*
Usuario - fecha
+ getGestion() : gestion
- id_perfil + getInscripcion() : inscripcion pertenece + setGestion() : void
- cargo 1
+ setInscripcion() : void historico
- pass
realiza - faltas 1..*
+ setUsuario() : void - estado
+ getUsuario() : Usuario - nota

1 + getHistorico() : historico
+ setHistorico() : void 1..*
1
registra
estudiante Idioma_Niv el

- tipo
1..* 1..*
consulta
1..*
1
Bitacora
tiene
- id_bitacora
- tabla idioma niv el
- fecha_hora
- id_idioma - id_nivel
- operacion 1
- nombre tiene - nombre
1..* 1..*
+ getBitacora() : Bitacora perfilEstudiante - descripcion
+ getNivel() : nivel
- id_perfil + getIdioma() : idioma + setNivel() : void
- pass + setIidioma() : void

+ setPerfilEstudiante() : void
+ getPerfilEstudiante() : PerfilEstudiante

- 42 -
5. MODELO DE NEGOCIO

5.1 DIAGRAMA DE ACTIVIDAD


PROCESO RESERVA

- 43 -
PROCESO INSCRIPCION

- 44 -
PROCESO DE REGISTRO DE NOTAS

- 45 -
6. FLUJO DE TRABAJO: Captura de Requisitos

6.1 ENCONTRAR ACTORES Y CASOS DE USO


Actores
Usuario: encargado de supervisar la gestin acadmica.
SuperUsuario: encargado de gestionar los diferentes perfiles para
estudiantes, profesores, los usuarios y la bitcora.
Profesor: persona que dicta cursos.
Estudiante: persona que se registra en el sistema para un determinado
curso.
Sistema de Informacin para administrar la Informacin e
Inscripcin de los CURSOS AUTOFINANCIADOS DE IDIOMAS
(C.A.I.)

Usuario SuperUsuario Profesor


Estudiante

Casos de Uso
CU1: gestionar profesor
CU2: gestionar estudiante
CU3: gestionar curso
CU4: gestionar reserva
CU5: gestionar inscripcin
CU6: gestionar nota
CU7: gestionar aula
CU8: gestionar horario
CU9: gestionar grupo
CU10: gestionar gestin
CU11: gestionar idioma
CU12: gestionar nivel
CU13: verificar reserva
CU14: verificar inscripcin

- 46 -
CU15: gestionar bitcora
CU16: gestionar perfil de estudiante
CU17: gestionar perfil de profesor
CU18: gestionar usuario
CU19: consultar histrico

6.2 PRIORIZAR CASOS DE USO

CASOS DE USO ESTADO RIESGO PRIORIDAD


CU1: gestionar profesor Aprobado Normal Accesoria
CU2: gestionar estudiante Aprobado Normal Normal
CU3: gestionar curso Aprobado Normal Normal
CU4: gestionar reserva Aprobado Crtico Accesoria
CU5: gestionar inscripcin Aprobado Crtico Critico
CU6: gestionar nota Aprobado Normal Crtico
CU7: gestionar aula Aprobado Critico Crtico
CU8: gestionar horario Aprobado Normal Crtico
CU9: gestionar grupo. Aprobado Normal Critico
CU10: gestionar gestin. Aprobado Normal Normal
CU11: gestionar idioma. Aprobado Critico Normal
CU12: gestionar nivel. Aprobado Critico Normal
CU13: verificar reserva Aprobado Crtico Normal
CU14: verificar inscripcin Incorporado Normal Normal
CU15: gestionar bitcora Aprobado Normal Normal
CU16: gestionar perfil de
estudiante Aprobado Normal Normal

CU17: gestionar perfil de profesor Aprobado Normal Normal


CU18: gestionar usuario Aprobado Normal Normal
CU19: consultar histrico Aprobado Normal Normal

- 47 -
6.3 DETALLAR CASOS DE USO

6.3.1 Disear Casos de Uso

CU1: gestionar profesor

uc Gestionar profesor

Gestionar profesor

Profesor Usuario

(from Actores)

CU2: gestionar estudiante

uc Gestionar estudiante

Gestionar estudiante

estudiante

CU3: gestionar curso

uc Gestionar curso

Gestionar
curso

Usuario
(from Actores)

- 48 -
CU4: gestionar reserva

uc Gestionar reserv a

Gestionar
reserv a

Estudiante Usuario

(from Actores)

CU5: gestionar inscripcin

uc Gestionar inscripcion

Verificar
reserv a

include

Gestionar
inscripcion

Estudiante
Usuario
(from Actores)

CU6: gestionar nota


uc Gestionar nota

Verificar
inscripcion

include

Gestionar nota

Profesor
include
Adicionar
faltas

- 49 -
CU7: gestionar aula

uc Gestionar aula

Gestionar aula

Usuario
(from Actores)

CU8: gestionar horario

uc Gestionar horario

Gestionar
horario

Usuario

(from Actores)

CU9: gestionar grupo

uc Gestionar grupo

Gestionar
grupo

Usuario

(from Actores)

- 50 -
CU10: gestionar gestin

uc Gestionar gestion

Gestionar
gestion

Usuario
(from Actores)

CU11: gestionar idioma

uc Gestionar idioma

Gestionar
idioma

Usuario

(from Actores)

CU12: gestionar nivel

uc Gestionar niv el

Gestionar niv el

Usuario
(from Actores)

CU15: gestionar bitcora

uc Gestionar bitacora

Gestionar
bitacora

SuperUsuario

- 51 -
CU16: gestionar perfil de estudiante

uc Gestionar perfil de estudiante

Gestionar perfil de
estudiante

SuperUsuario

CU17: gestionar perfil de profesor

uc Gestionar perfil de profesor

Gestionar perfil de
profesor
SuperUsuario

CU18: gestionar usuario

uc Gestionar usuario

Gestionar
usuario
SuperUsuario

CU19: consultar histrico


uc Gestionar historico

Consultar historico

estudiante

- 52 -
6.3.2 Detallar Casos de Uso

Caso de Uso CU1: Gestionar profesor


Propsito Gestionar los datos de profesores que participan en el
sistema.
Resumen Se podr adicionar, editar, eliminar y consultar
profesores.
Actores Usuario, profesor.
Actor Iniciador Profesor.
Pre Condicin -
Flujo Principal 1. Adicionar datos del profesor
1.1. Introducir los datos del profesor.
1.2. Guardar datos del profesor.
2. Editar datos del profesor.
2.1. Buscar al profesor por ci.
2.2. Editar los datos.
2.3. Guardar cambios realizados.
3. Eliminar Profesor
3.1. Buscar al profesor por ci.
3.2. Eliminar profesor.
3.3. Guardar cambios realizados.
4. Consultar informacin de los profesores
Excepcin 1.1 El profesor ya existe.
1.1 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados
2.1 El profesor no existe.
2.2 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados
3.1 El Profesor no existe.
3.2 No se puede eliminar al Profesor que actualmente
est dictando un curso.
Post Condicin -

- 53 -
Caso de Uso CU2: Gestionar estudiante
Propsito Gestionar los datos de los estudiantes que participan en el
sistema.

Resumen Se podr adicionar, editar, eliminar y consultar estudiante.


Actores Estudiante, Usuario .
Actor Iniciador Estudiante.

Pre Condicin -
Flujo Principal 1. Adicionar datos del estudiante
1.1. Introducir los datos del estudiante.
1.2. Guardar datos del estudiante.
2. Editar datos del estudiante.
2.1. Buscar al estudiante por ci.
2.2. Editar los datos.
2.3. Guardar cambios realizados.
3. Consultar informacin de los estudiantes

Excepcin 1.1 El estudiante ya existe.


1.1 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados
2.1 El estudiante no existe.
2.2 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados

Post Condicin -

- 54 -
Caso de Uso CU3: Gestionar curso
Propsito Gestionar los cursos. A cada curso se le asigna idioma, nivel,
grupo, profesor, aula y horario.

Resumen Se podr adicionar, editar y consultar cursos.


Actores Usuario.
Actor Iniciador Usuario
Pre Condicin -
Flujo Principal 1. Adicionar Curso
1.1. Introducir los datos del Curso.
1.2. Guardar datos.
2. Editar datos del Curso
2.1. Buscar Curso, mediante su cdigo.
2.2. Editar los datos.
2.3. Guardar cambios realizados.
3. Consultar informacin del Curso.
3.1. Buscar Curso, mediante su cdigo.

Excepcin
1.1 El Curso ya existe.
1.1 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados
2.1 El Curso no existe.
2.2 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados
3.1 El Curso no existe.
3.1 Error en los tipos de datos introducidos.

Post Condicin -

- 55 -
Caso de Uso CU4: Gestionar reserva
Propsito Gestionar los datos de las reservas que realizan los
estudiantes.
Resumen Se podr adicionar, eliminar y consultar reservas.
Actores Estudiante, Usuario.
Actor Iniciador Estudiante
Pre Condicin -
Flujo Principal 1. Adicionar la reserva
1.1. Ingresar CI de Estudiante
1.2. Seleccionar Curso
1.3. Seleccionar Grupo
1.4. Guardar Datos
2. Eliminar la reserva
2.1. Ingresar CI de Estudiante
2.2. Seleccionar Curso
2.3. Guardar datos
3. Consultar la reserva.
3.1 Seleccionar CI de Estudiante
Excepcin 1.1 El estudiante no existe.
2.1 El estudiante no existe.
3.1 El estudiante no existe.
Post Condicin -

Caso de Uso CU5: Gestionar inscripcin


Propsito Gestionar las inscripciones que fueron concretadas
de las reservas hechas por los estudiantes.
Resumen Se podr adicionar y consultar Inscripciones.
Actores Estudiante, Usuario
Actor Iniciador Estudiante
Pre Condicin CU15: Verificar Reserva.
Flujo Principal 1. Adicionar inscripcin
1.1 Verificar reserva.
1.2 Introducir los datos de la inscripcin.
1.3 Guardar los datos
2. Consultar boleta de inscripcin.
2.1. Buscar la inscripcin, se lo hace por el ci del
estudiante y por idioma.
Excepcin 1.1 La reserva no existe.
1.2 Error en los tipos de datos introducidos.
1.3 Error campos no rellenados.
2.1 El estudiante no existe.
Post Condicin -

- 56 -
Caso de Uso CU6: Gestionar nota
Propsito Gestionar las notas de los estudiantes.
Resumen Se podr adicionar, editar, eliminar histricos.
Actores Profesor.

Actor Iniciador Profesor


Pre Condicin CU5: Verificar Inscripcin
CU20: Adicionar faltas

Flujo Principal 1. Adicionar Notas


1.1. Buscar al curso por su cdigo y seleccionar al
estudiante por su ci o por su nombre completo.
1.2. Introducir las faltas.
1.3. Introducir las notas.
1.4. Guardar los datos.
2. Modificar Notas
2.1. Buscar al estudiante por el ci del estudiante y el curso.
2.2. Editar las notas.
2.3. Guardar cambios realizados.

Excepcin
1.1 El estudiante o curso no existe.
1.2 Error en los tipos de datos introducidos.
1.3 Error campos no rellenados.
2.1 El estudiante o curso no existe.
2.2 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.

Post Condicin -

- 57 -
Caso de Uso CU7: Gestionar aula.
Propsito Gestionar las Aula disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar aulas.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 1. Adicionar Aula
1.1. Introducir los datos del Aula.
1.2. Guardar los datos del Aula.
2. Editar datos del Aula
2.1. Buscar Aula mediante su cdigo o ubicacin.
2.2. Editar los datos deseados.
2.3. Guardar datos actualizados.
3. Eliminar Aula
3.1. Buscar Aula, se lo puede hacer por cdigo o
ubicacin.
3.2. Eliminar Aula.
3.3. Guardar cambios realizados.
4. Consultar informacin del Aula.
4.1. Buscar el Aula, se lo puede hacer por cdigo o
ubicacin.
Excepcin
1.1 El Aula ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 El Aula no existe.
2.3 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.
3.1 El Aula no existe.
3.2 No se puede eliminar un aula que est siendo
ocupada actualmente.
4.1 El Aula no existe.
4.1 Error en los tipos de datos introducidos.
Post Condicin -

- 58 -
Caso de Uso CU8: Gestionar horario.
Propsito Gestionar los Horarios disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar Horarios.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 1. Adicionar Horario
1.1. Introducir los datos del Horario.
1.2. Guardar los datos del Horario.
2. Editar datos del Horario
2.1. Buscar Horario mediante su cdigo y das.
2.2. Editar los datos deseados.
2.3. Guardar datos actualizados.
3. Eliminar Horario
3.1. Buscar Horario, se lo puede hacer por cdigo y
das.
3.2. Eliminar Horario.
3.3. Guardar cambios realizados.
4. Consultar informacin del Horario.
4.1. Buscar el Horario, se lo puede hacer por cdigo
y das.

Excepcin
1.1 El Horario ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 El Horario no existe.
2.3 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.
3.1 El Horario no existe.
3.2 No se puede eliminar un horario que est disponible
actualmente.
4.1 El Horario no existe.
4.1 Error en los tipos de datos introducidos.

Post Condicin -

- 59 -
Caso de Uso CU9: Gestionar grupo.
Propsito Gestionar los grupos disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar grupos.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 1. Adicionar Grupo
1.1. Introducir los datos del Grupo.
1.2. Guardar los datos del Grupo.
2. Editar datos del Grupo
2.1. Buscar el Grupo mediante su cdigo o
nombre.
2.2. Editar los datos deseados.
2.3. Guardar datos actualizados.
3. Eliminar Grupo
3.1. Buscar Nivel, se lo puede hacer por cdigo o
nombre.
3.2. Eliminar Grupo.
3.3. Guardar cambios realizados.
4. Consultar informacin del Grupo.
4.1. Buscar el Grupo, se lo puede hacer por
cdigo, nombre.
Excepcin
1.1 El Grupo ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 El Grupo no existe.
2.3 Error en los tipos de datos introducidos.
2.3Error campos no rellenados.
3.1 El Grupo no existe.
3.2 No se puede eliminar un Grupo que est
disponible actualmente.
4.1 El Grupo no existe.
4.1 Error en los tipos de datos introducidos.
Post Condicin -

- 60 -
Caso de Uso CU10: Gestionar gestin.
Propsito Gestionar las gestiones disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar gestiones.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 1. Adicionar Gestin
1.1. Introducir los datos del Gestin.
1.2. Guardar los datos del Gestin.
2. Editar datos del Gestin
2.1. Buscar Horario mediante su cdigo.
2.2. Editar los datos deseados.
2.3. Guardar datos actualizados.
3. Eliminar Gestin
3.1. Buscar Horario se lo puede hacer por su cdigo.
3.2. Eliminar Gestin.
3.3. Guardar cambios realizados.
4. Consultar informacin de la Gestin.
4.1. Buscar la Gestin se lo puede hacer por su cdigo.
Excepcin
1.1 La Gestin ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 La Gestin no existe.
2.3 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.
3.1 La Gestin no existe.
3.2 No se puede eliminar a la Gestin que est disponible
actualmente.
4.1 La Gestin no existe.
4.1 Error en los tipos de datos introducidos.
4.1 Error campos no rellenados.
Post Condicin -

- 61 -
Caso de Uso CU11: Gestionar Idioma
Propsito Gestionar los Idiomas disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar Idiomas.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 1. Adicionar Idioma
1.1. Introducir los datos del Idioma.
1.2. Guardar los datos del Idioma.
2. Editar datos del Idioma
2.1. Buscar Idioma, mediante su cdigo o nombre del
idioma.
2.2. Editar los datos deseados.
2.3. Guardar datos actualizados.
3. Eliminar Idioma
3.1. Buscar Idioma se lo puede hacer por cdigo o nombre
del idioma.
3.2. Eliminar Idioma.
3.3. Guardar cambios realizados.
4. Consultar informacin del Idioma.
4.1. Buscar el Idioma se lo puede hacer por cdigo o
nombre del idioma.
Excepcin
1.1 El Idioma ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 El Idioma no existe.
2.3 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.
3.1 El Idioma no existe.
3.2 No se puede eliminar el Idioma que est disponible
actualmente.
4.1 El Idioma no existe.
4.1 Error en los tipos de datos introducidos.
Post Condicin -

- 62 -
Caso de Uso CU12: Gestionar Nivel
Propsito Gestionar los Niveles disponibles.
Resumen Se podr adicionar, editar, eliminar y buscar Niveles.
Actores Usuario.
Actor Iniciador Usuario.
Pre Condicin -
Flujo Principal 5. Adicionar Nivel
5.1. Introducir los datos del Nivel.
5.2. Guardar los datos del Nivel.
6. Editar datos del Nivel
6.1. Buscar Nivel mediante su cdigo o nombre del
idioma.
6.2. Editar los datos deseados.
6.3. Guardar datos actualizados.
7. Eliminar Nivel
7.1. Buscar Nivel se lo puede hacer por cdigo o nombre
del idioma.
7.2. Eliminar Nivel.
7.3. Guardar cambios realizados.
8. Consultar informacin del Nivel.
8.1. Buscar el Nivel se lo puede hacer por cdigo o
nombre del idioma.
Excepcin
1.1 El Nivel ya existe.
1.2 Error en los tipos de datos introducidos.
1.2 Error campos no rellenados.
2.1 El Nivel no existe.
2.3 Error en los tipos de datos introducidos.
2.3 Error campos no rellenados.
3.1 El Nivel no existe.
3.2 No se puede eliminar el Idioma que est disponible
actualmente.
4.1 El Nivel no existe.
4.1 Error en los tipos de datos introducidos.
Post Condicin -

- 63 -
Caso de Uso CU15: gestionar bitcora
Proporcionar al Administrador de perfiles un reporte
Propsito
sobre las transacciones de los usuarios en el sistema
El sistema genera una cantidad de procesos que
Resumen quedan registrados en este caso de uso para darle un
detalle de los eventos realizados en el sistema
Actores Superusuario.
Actor Superusuario.
Iniciador
Pre
-
Condicin
1. Consultar Reporte de Bitcora
Flujo 1.1. Ingresa los parmetros de Bitcora
Principal 1.2. Mostrar los datos de la Bitcora
1.3. Imprimir Reporte
Post
-
Condicin
Excepciones 1.1 Los parmetros son incorrectos

Caso de Uso CU16: Gestionar Perfil de Estudiante.


Propsito Gestionar los datos importantes para el estudiante, a
travs del perfil el estudiante visualizara toda la
informacin acadmica generada durante su
formacin acadmica.
Resumen Se podr crear, eliminar, consular perfiles de
estudiantes y el estudiante podr ingresar a su perfil
para ver informacin.
Actores Superusuario
Actor Iniciador Superusuario.
Pre Condicin -
Flujo Principal 1. Adicionar perfil de estudiante
1.1. Se introduce la cedula del estudiante. Por
defecto el nombre de usuario ser su nombre
y la contrasea ser su ci.
1.2. Crear el perfil, donde luego aparece un
mensaje de confirmacin.
2. Eliminar perfil.
2.1. Se pide que ingrese la cedula del estudiante
2.2. Procede a eliminar el perfil, se mostrara un
cuadro de dialogo que preguntara si est
seguro de realizar la accin.
3. Consultar Perfiles
4.1 Se podr visualizar todos los perfiles en uso.
Excepcin 1.1 El perfil ya existe
1.2 Error en los datos introducidos
2.1 El estudiante no existe
Post Condicin -

- 64 -
Caso de Uso CU17: Gestionar Perfil de profesor.
Propsito Visualizar datos importantes para el profesor, a travs del
perfil de profesor.

Resumen Se podr crear, eliminar perfiles de profesor y el profesor


podr ingresar a su perfil para ver informacin sobre sus
cursos que dicta, y los alumnos de sus respectivos cursos,
como tambin las notas.

Actores Superusuario
Actor Iniciador Superusuario
Pre Condicin CU2: Gestionar profesor
Flujo Principal 1. Adicionar perfil de profesor
1.1. Se introduce la cedula del profesor. Por defecto el
nombre de usuario ser su nombre y la contrasea
ser su ci.
1.2. Crear el perfil, donde luego aparece un mensaje de
confirmacin.
2. Eliminar perfil de profesor
2.1. Se pide que ingrese la cedula del estudiante
2.2. Procede a eliminar el perfil, se mostrara un cuadro de
dialogo que preguntara si est seguro de realizar la
accin.
3. Consultar Perfiles de profesores
3.1. Se podr visualizar todos los perfiles en uso.

Excepcin 1.2 El perfil ya existe


1.2 Error en los datos introducidos
2.2 El profesor no existe

Post Condicin -

- 65 -
Caso de Uso CU18 Gestionar Usuario.
Propsito Asignar privilegios a los usuarios para ingresar al
sistema y realizar cambios.
Resumen Se podr crear, eliminar, modificar usuario tipo
empleado, y realizar una entrada al sistema.
Actores Superusuario
Actor Iniciador Superusuario
Pre Condicin -
Flujo Principal 1. Adicionar nuevo usuario
1.1. Se le pedir que introduzca nombre de usuario
y contrasea.
1.2. Guardar datos.
2. Eliminar usuario.
2.1. El administrador introduce el nombre o cdigo
del usuario
2.2. Se procede a eliminar y se mostrara un cuadro
de dialogo donde preguntara si est seguro de
realizar la accin.
3. Consultar usuarios disponibles en sistema.
Excepcin 1.1 El usuario ya existe
1.2 Error en los datos introducidos
2.2 El usuario no existe
Post Condicin -

Caso de Uso CU19 Consultar histrico


Propsito Visualizar todas las notas que ha tenido el alumno en
los cursos
Resumen Se podr realizar una consulta al sistema.
Actores Estudiante
Actor Iniciador Estudiante
Pre Condicin -
Flujo Principal 1. Consultar notas del estudiante
1.1. Se le pedir que introduzca nombre de
usuario y contrasea.
1.2. Mostrar todas las notas

Excepcin 1.1 El usuario no existe.


1.1 Los datos son incorrectos.
1.1 Error en los datos introducidos.
1.1 Error campos no rellenados.

Post Condicin -

- 66 -
6.4 PROTOTIPAR INTERFAZ DE USUARIO

- 67 -
6.5 ESTRUCTURAR MODELO DE CASOS DE USO
uc Casos de uso principales

casos de uso de Sistema de informacion para administrar la


informacion e inscripcion de los cursos de autofinanciacion de
idiomas
Gestionar
profesor

Gestionar
estudiante

Gestionar
curso

Gestionar
reserv a
Estudiante

Gestionar
inscripcion
Verificar
Consultar include reserv a
historico
Verificar
inscripcion
Gestionar nota include

Profesor include Adicionar


faltas
Gestionar aula

Gestionar
horario

Gestionar
grupo

Gestionar
gestion

Usuario
Gestionar
idioma

Gestionar niv el

Gestionar
bitacora

Gestionar perfil de
estudiante

Gestionar perfil de
profesor
SuperUsuario

Gestionar
usuario

- 68 -
7. FLUJO DE TRABAJO: Anlisis

7.1 ANLISIS DE ARQUITECTURA

7.1.1 Identificar Paquete

P1
P1: GESTIONAR CURSO: Encargado de gestionar los
cursos y asignarles a
GESTIONAR
CURSO

P2

GESTIONAR
INSCRIPCION
P2: GESTIONAR INSCRIPCION: Encargado de gestionar
el proceso de inscripcin de los estudiantes

P3
P3: GESTIONAR NOTAS: Encargado de gestionar las
GESTIONAR
notas de los estudiantes.
NOTAS

P4
P4: GESTIONAR USUARIO: Encargado de gestionar el
GESTIONAR ingreso al sistema de los empleados y estudiantes
USUARIO

- 69 -
7.1.2 Relacionar paquetes y casos de uso

P1: GESTIONAR CURSO:

pkg P2

gestionar
gestionar
idioma
curso
gestionar niv el

gestionar
grupo
trace trace

P1 trace
trace gestionar aula

GESTIONAR gestionar
CURSO trace horario

trace
gestionar
profesor

P2: GESTIONAR INSCRIPCION:

pkg P2

gestionar
reserv a
P2
trace gestionar
inscripcion
GESTIONAR trace
INSCRIPCION

trace gestionar
estudiante
trace

gestionar
gestion

- 70 -
P3: GESTIONAR NOTAS:

pkg P2

P3
gestionar nota

trace
GESTIONAR
NOTAS

trace
consultar
historico

P4: GESTIONAR USUARIO:

pkg P2

gestionar
bitacora

trace
P4
gestionar perfil
de profesor
GESTIONAR trace
USUARIO

trace
gestionar perfil
de estudiante
trace

gestionar
usuario

- 71 -
7.2 ANALISIS DE CASOS DE USO
Proceso de Reserva

CU1: Gestionar profesor


sd Gestionar profesor

Verificar Datos

1.1 Adicionar profesor 1.2 Insertar persona <<CE Persona>>


1. Adicionar profesor
2.1 Editar profesor 2.2 Guardar persona
2. Editar profesor
3.1 Eliminar profesor 3.2 Eliminar persona
3. Eliminar profesor
4. Consultar profesor 4.1 Consultar profesor

<<CC Profesor>> 1.3 Insertar profesor


Usuario 2.3 Guardar profesor
<<UI Profesor>>
3.3 Eliminar profesor
4.2 Obtener profesor
1.4 Insertar telefono
1.5 Insertar perfil
2.4 Guardar telefono
3.5 Eliminar perfil
3.4 Eliminar telefono
4.3 Obtener telefono

<<CE Profesor>>

<<CE Telefono>>
<<CE PerfilProfesor

CU2: Gestionar Estudiante


sd Gestionar estudiante

Verificar datos

<<CE Persona>>
1.2 Insertar Persona

1. Insertar Estudiante 1.1 Insertar


Estudiante

Estudiante <<CC Estudiante>>


<<UI Estudiante>>
1.3 Insertar Estudiante

1.4 Insertar Telefono

<<CE Estudiante>>

<<CE Telefono>>

- 72 -
CU3: Gestionar Curso
sd Gestionar curso

<<CE Idioma>>

<<CE Nivel>>

1.2 Obtener idioma


1.3 Obtener nivel <<CE Grupo<>>

Verificar datos 1.4 Obtener Grupo

1. Adicionar Curso
2. Editar Curso 3.
Consultar Curso 1.5 Obtener horario
<<CE Horario>>

1.1 Adicionar Curso


2.1 Editar Curso <<CC Curso>> 1.6 Obtener profesor
Usuario
<<UI Curso>> 3.1 Consultar Curso

1.7 Obtener aula


1.8 Guardar curso
2.2 Guardar curso
3.2 Obtener curso
<<CE Profesor>>

<<CE Aula>>
<<CE Curso>>

CU4: Gestionar Reserva


sd Gestionar reserv a

<<CE estudiante>>
1.2 Verificar estudiante
Validar datos 2.2 Verificar estudiante
3.2 Verificar estudiante

1. Adicionar 1.1 Adicionar reserva


1.4 Insertar reserva
2. Eliminar 2.1 Eliminar reserva
2.4 Eliminar
3. Consultar 3.1 Obtener reserva
2.3, 3.3 Obtener reserva

<<CC Reserva>>
Estudiante <<CE Reserva>>
<<IU Reserva>>

1.3 Verificar curso

<<CE Curso>>

- 73 -
CU5: Gestionar Inscripcion
sd Gestionar inscripcion

Verificar datos

1.1 Adicionar Inscripcion 1.2 Guardar Inscripcion


1. Adicionar Inscripcion
2.1 Consultar Inscripcion 2.2 Obtener Inscripcion
2. Consultar Inscripcion

<<CC Inscripcion>>
Usuario <<CE Inscripcion>>
<<UI Inscripcion>>

CU6: Gestionar Nota

sd Gestionar nota

Verificar datos <<CE Historico>>

1.3,2.3 Insertar Faltas


1.4,2.4 Insertar Nota
2.5 Guardar Nota
1. Adicionar Nota 1.1 Adicionar Nota
2. Modificar Nota 2.1 Modificar Nota

profesor <<CC Historico>> 1.2, 2.2 Obtener Estudiante


<<UI Historico>>

<<CE Estudiante>>

- 74 -
CU7: Gestionar Aula
sd Gestionar aula

Verificar datos

1. Adicionar aula 2. 1.1 Adiconar aula 1.2 Guardar aula


Editar aula 3. 2.1 Editar aula 2.2 Guardar aula
Eliminar aula 4. 3.1 Eliminar aula 3.3 Quitar aula
Consultar aula 4.1 Consultar aula 3.2,4.2 Obtener aula

Usuario <<CCAula>>
<<IU Aula>>
<<CE Aula>>

CU8: Gestionar Horario


sd Gestionar horario

Verificar datos

1. Adicionar horario 1.1 Adicionar horario 1.2 Guardar horario


2. Editar horario 2.1 Editar horario 2.2 Guardar horario
3. Eliminar horario 3.1 Eliminar horario 3.3 Quitar horario
4. Consultar horario 4.1 Consultar horario 3.2,4.2 Obtener horario

Usuario <<CC Horario>>


<<IU Horario>> <<CE Horario>>

CU9: Gestionar Grupo


sd Gestionar grupo

Verificar datos

1.2 Guardar grupo


1.1 Adicionar grupo
1. Adicionar grupo 2.2 Guardar grupo
2.1 Editar grupo
2. Editar grupo 3.3 Quitar grupo
3.1 Eliminar grupo
3. Eliminar grupo 3.2,4.2 Obtener grupo
4.1 Consultar grupo
4. Consultar grupo

Usuario <<CC Grupo>>


<<IU Grupo>> <<CE Grupo>>

CU10: Gestionar Gestin


sd Gestionar gestion

Verificar datos

1. Adicionar gestion 1.1 Adicionar gestion


2.1 Editar gestion 1.2 Guardar gestion
2. Editar gestion 2.2 Guardar gestionar
3. Eliminar gestion 3.1 Eliminar gestion
3.3 Quitar gestionar
4. Consultar gestion 4.1 Consultar gestion
3.2,4.2 Obtener gestionar

Usuario <<CC Gestion>>


<<IU Gestion>> <<CE Gestion>>

- 75 -
CU11: Gestionar Idioma
sd Gestionar idioma

Verificar Datos

1.1 Adiconar idioma 1.2 Guardar idioma


1. Adicionar idioma
2.1 Editar idioma 2.2 Guardar idiomal
2. Editar idioma
3.1 Eliminar idioma 3.3 Quitar idioma
3. Eliminar idioma
4.1 Consultar idioma 3.2,4.2 Obtener idiomal
4. Consultar idioma

<<CC Idioma>>
Usuario
<<IU Idioma>> <<CE Idioma>>

CU12: Gestionar Nivel


sd Gestionar niv el

Verificar Datos

1. Adicionar nivel 1.1 Adiconar nivel


1.2 Guardar nivel
2. Editar nivel 2.1 Editar nivel
2.2 Guardar nivel
3. Eliminar nivel 3.1 Eliminar nivel
3.3 Quitar nivel
4. Consultar nivel 4.1 Consultar nivel
3.2,4.2 Obtener nivel

Usuario <<CC Nivel>>


<<IU Nivel>> <<CE Nivel>>

CU15: Gestionar Bitcora

sd Gestionar bitacora

Verificar datos

1. Habilitar Bitacora 1.1 Habilitar Bitacora


2. Generar reporte 2.1 Generar reporte 2.2 Obtener reporte

SuperUsuario <<CC Bitacora>>


<<UI Bitacora>> <<CE Bitacora>>

- 76 -
CU16: Gestionar perfil de estudiante
sd Gestionar perfil de estudiante

Verificar datos

<<CE PerfilEstudiante>>
1.2 Insertar PerfilEstudiante
2.3 Borrar PerfilEstudiante
3.2 Obtener perfiles
1. Adicionar PerfilEstudiante 1.1 Adicionar PerfilEstudiante
2. Eliminar PerfilEstudiante 2.1 Eliminar PerfilEstudiante
3. Consultar Perfiles 3.1 Consultar Perfiles

<<CC
SuperUsuario
<<UI PerfilEstudiante>> PerfilEstudiante>>
1.3,2.2 Obtener
Estudiante

<<CE Estudiante>>

CU17: Gestionar perfil de profesor


sd Gestionar perfil de profesor

Verificar Datos

1.3 Insertar PerfilProfesor <<CE PerfilProfesor>>


2.3 Borrar PerfilProfesor
3.2 Obtener perfiles
1. Adicionar PerfilProfesor 1.1 Adicionar PerfilProfesor
2. Eliminar PerfilProfesor 2.1 Eliminar PerfilProfesor
3. Consultar Perfiles 3.1 Consultar Perfiles

<<CC PerfilProfesor>>
SuperUsuario 1.2,2.2 Obtener
<<UI PerfilProfesor>>
Profesor

<<CE Profesor>>

- 77 -
CU18: Gestionar usuario
sd Gestionar usuario

Verificar datos

<<CE Usuario>>

1.3 Insertar Usuario


2.3 Borrar Usuario
1. Adicionar Usuario 1.1 Adicionar Usuario 3.2 Obtener Usuarios
2. Eliminar Usuario 2.1 Eliminar Usuario
3. Consultar Usuarios 3.1 Consultar Usuarios

<<CC Usuario>>
SuperUsuario
<<UI Usuario>>
1.2,2.2 Obtener persona

<<CE Persona>>

7.3 ANLISIS DE CLASES


CU1: Gestionar profesor
class gestionar profesor

persona

- ci
- nombre Telefono
- paterno
- materno - id_telefono
tiene
UI Profesor - genero - numero
CC Profesor
- correo 1 0..*
+ Adicionar() : void + getTelefono() : telefono
+ Adicionar() : void
+ Eliminar() : void + getPersona() : persona + setTelefono() : void
+ Eliminar() : void
+ Modificar() : void + setPersona() : void
+ Modificar() : void
+ Consultar() : void
Usuario + Consultar() : void

perfilProfesor
persona
- id_perfil tiene profesor
- pass
1 1 - grado
+ getPerfilProfesor() : perfilprofesor
+ setPerfilProfesor() : void

- 78 -
CU2: Gestionar estudiante
class gestionar estudiante

persona

- ci Telefono
UI Estudiante - nombre
CC Estudiante
- paterno tiene - id_telefono
+ Adicionar() : void - materno - numero
+ Adicionar() : void
- genero 1 0..*
+ Modificar() : void + Modificar() : void
Estudiante - correo + getTelefono() : telefono
+ Consultar() : void + Consultar() : void
+ setTelefono() : void
+ getPersona() : persona
+ setPersona() : void

persona
estudiante

- tipo

CU3: Curso
class curso

CE Idioma
CE Niv el
- id_idioma: int
- id_nivel: int
- nombre: string
- nombre: string
- descripcion: string
1..* 1..*

+ setIdioma() : void + setNivel() : void


+ getIdioma() : Idioma + getNivel() : Nivel
CE Grupo
CE Idioma_Niv el
- id_grupo: int
- nombre: string
1..* 1..*
+ setGrupo() : void
+ getGrupo() : Grupo

CE Horario

- id_horario: int
- entrada: time
IU Curso - salida: time
- dias: string
+ Adicionar() : void 1
+ Eliminar() : void CC Curso CE Curso
+ setHorario() : void
+ Consultar() : void 0..* + getHorario() : Horario
+ insertarCurso() : void + setCurso() : void
+ obtenerListaCursos() : Lista + getCurso() : Curso
+ eliminarCurso() : void
SuperUsuario 1..*
0..*

CE Profesor
1
- grado: string

CE Aula

- id_aula: int
- ubicacion: string
- capacidad: int

+ setAula() : void
+ getAula() : Aula

- 79 -
CU4: Reserva
class reserv a

CE Estudiante

- tipo: char

+ setEstudiante() : void
+ getEstudiante() : Estudiante

CC Reserv a
IU Reserv a 1
+ insertarReserva() : void
+ Adicionar () : void
+ getReserva() : Reserva
+ Modificar() : void
+ verificarCi() : void
SuperUsuario

1..*

CE Reserv a

- id_reserva: int
CC Curso - fecha: date
- monto: int
+ insertarCurso() : void 1 1..*
+ obtenerCurso() : Curso + setReserva() : void
+ getReserva() : Reserva

CU5: Gestionar inscripcin

class gestionar inscripcion

inscripcion

UI Inscripcion - id_inscripcion
CC Inscripcion
- fecha
+ Adicionar() : void
+ Adicionar() : void
+ Consultar() : void + getInscripcion() : inscripcion
+ Consultar() : void
+ setInscripcion() : void
Usuario

- 80 -
CU6: Gestionar nota
class gestionar nota

historico
UI Historico CC Historico - faltas
- estado
+ Adicionar() : void + Adicionar() : void - nota Class1
+ Modificar() : void + Modificar() : void
profesor
+ getHistorico() : historico
+ setHistorico() : void

persona Idioma_Niv el
estudiante consulta

- tipo 1..* 1..*

CU7: Gestionar Aula

class Gestionar aula

Gestionar aula::CE
Gestionar aula::IU Aula
Gestionar aula::CC Reserv a
Aula
- id_aula: int
+ insertarAula() : void - ubicacion: string
+ Adicionar() : void
+ getAula() : Aula - capacidad: int
+ Editar() : void
Usuario + verificarAula() : boolean
+ Eliminar() : void
+ Consultar() : void + setAula() : void
+ getAula() : Aula

CU8: Gestionar horario


class Gestionar horario

Gestionar horario::CE
Gestionar horario::IU Horario
Horario Gestionar horario::CC Horario
- id_horario: int
+ Adicionar() : void + insertarHorario() : void - entrada: string
+ Editar() : void + getHorario() : Horario - salida: string
+ Eliminar() : void + verificarHorario() : boolean - dias: string
Usuario
+ Consultar() : void
+ setHorario() : void
+ getHorario() : Horario

- 81 -
CU9: Gestionar grupo

class Gestionar grupo

Gestionar grupo::CE
Gestionar grupo::IU Grupo
Grupo Gestionar grupo::CC Grupo
- id_grupo: int
+ Adicionar() : void + insertarGrupo() : void - nombre: string
+ Editar() : void + getGrupo() : Grupo
+ verificarGrupo() : boolean + setGrupo() : void
Usuario + Eliminar() : void
+ Consultar() : void + getGrupo() : Grupo

CU10: Gestionar gestin


class Gestionar gestion

Gestionar gestion::CE
Gestionar gestion::IU Gestion
Gestion Gestionar gestion::CC Gestion
- id_gestion: int
+ getGestion() : Gestion - inicion: string
+ Adicionar() : void
+ insertarGestion() : void
+ Editar() : void
+ verificarGestion() : boolean + getGestion() : Gestion
Usuario + Eliminar() : void
+ Consultar() : void + setGestion() : void

CU11: Gestionar idioma


class Gestionar idioma

Gestionar idioma::CE
Gestionar idioma::IU Idioma
Idioma Gestionar idioma::CC Idioma
- id_idioma: int
+ getIdioma() : Idioma - nombre: string
+ Adicionar() : void
+ Editar() : void + insertarIdioma() : void - descripcion: string
+ verificarIdioma() : boolean
Usuario + Eliminar() : void
+ Consultar() : void + getIdioma() : Idioma
+ setIdioma() : void

- 82 -
CU12: Gestionar nivel
class Gestionar niv el

Gestionar niv el::CE Niv el


Gestionar niv el::IU
Niv el Gestionar niv el::CC Niv el - id_nivel: int
- nombre: string
+ Adicionar() : void + getNivel() : Nivel
+ Editar() : void + insertarNivel() : void + getNivel() : Nivel
+ Eliminar() : void + verificarNivel() : boolean + setNivel() : void
Usuario + Consultar() : void

CU15: Gestionar bitcora

class gestionar bitacora

Bitacora

- id_bitacora
UI Bitacora CC Bitacora
- tabla
- fecha_hora
+ Adicionar() : void + Adicionar() : void
- operacion
+ Consultar() : void + Consultar() : void
SuperUsuario
+ getBitacora() : Bitacora

CU16: Gestionar perfil de estudiante

class gestionar PerfilEstudiante

perfilEstudiante
UI PerfilEstudiante CC PerfilEstudiante
- id_perfil
+ Adicionar() : void + Adicionar() : void - pass
+ Eliminar() : void + Elimnar() : void
+ Consultar() : void + Consultar() : void + setPerfilEstudiante() : void
SuperUsuario
+ getPerfilEstudiante() : PerfilEstudiante

tiene

persona
estudiante

- tipo

- 83 -
CU17: Gestionar perfil de profesor
class gestionar profesor

persona

- ci
- nombre Telefono
- paterno
- materno - id_telefono
UI Profesor tiene - numero
CC Profesor - genero
- correo 1 0..*
+ Adicionar() : void + getTelefono() : telefono
+ Adicionar() : void
+ Eliminar() : void + getPersona() : persona + setTelefono() : void
+ Eliminar() : void
+ Consultar() : void + setPersona() : void
+ Consultar() : void
Usuario

perfilProfesor
persona
- id_perfil tiene profesor
- pass
1 1 - grado
+ getPerfilProfesor() : perfilprofesor
+ setPerfilProfesor() : void

CU18: Gestionar usuario

class gestionar usuario

persona

- ci
- correo
- genero
- materno
- nombre
- paterno

+ getPersona() : persona
+ setPersona() : void

UI Usuario
CC Usuario
+ Adicionar() : void
+ Adicionar() : void
+ Consultar() : void
+ Consultar() : void
+ Eliminar() : void
SuperUsuario + Eliminar() : void

persona
Usuario

- cargo
- id_perfil
- pass

+ getUsuario() : Usuario
+ setUsuario() : void

- 84 -
7.4 ANLISIS DE PAQUETE

P1 P2

GESTIONAR GESTIONAR
CURSO INSCRIPCION

P4 P3

GESTIONAR
GESTIONAR NOTAS
USUARIO

- 85 -
8. FLUJO DE TRABAJO DISEO

8.1 DISEO DE ARQUITECTURA


8.1.1 Diseo de arquitectura lgica

Diagrama de Organizado en Capas

cmp capas

P2
P1

GESTIONAR
GESTIONAR CURSO INSCRIPCION

Capa especificacin de
aplicacin

P4

GESTIONAR
USUARIO

P3
Capa general de
aplicacin
GESTIONAR
NOTAS

P5 P6
Capa intermedia
<<SEV AP>>
<<SGBD>>
APACHE
MySQL

P7
Capa del software del
sistema
TCP/IP

- 86 -
8.1.2 Diseo de arquitectura fisica

Diagrama de Despliegue
deployment Modelo de despliegue

Switch Router
Ethernet
1 1

1
1

Ethernet
Internet

1..* 1

Estacion de Trabajo Serv idor DB Serv idor


PC

<<Nav egador>> Directorio


DBMS
MySQL Aplicacion Web

TCP/IP
1 1
Web Serv er
Sistema Operativ o Linux OS

Linux OS

8.2 DISEO DE DATOS


8.2.1 Diseo de datos lgicos
8.2.1.1 Diagrama de clases

8.2.1.2 Mapeo

8.2.2 Diseo de datos fsicos


8.2.2.1 Tabla de volumen

8.2.2.2 Script
--
-- Base de datos: `datoscai`
--

DELIMITER $$
--
-- Procedimientos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `adicionarCurso` (`id_idioma` INT(11),
`id_nivel` INT(11), `id_grupo` INT(11), `ci_profesor` INT(11), `id_aula` INT(11), `id_horario`
INT(11)) BEGIN

- 87 -
DECLARE existeCurso int;
SET existeCurso = (SELECT COUNT(*) FROM curso
WHERE curso.id_idioma = id_idioma and curso.id_nivel = id_nivel and curso.id_grupo =
id_grupo and
curso.ci_profesor = ci_profesor and curso.id_aula = id_aula and curso.id_horario =
id_horario);
IF(existeCurso = 0) THEN
INSERT INTO `idioma_nivel`(`id_idioma`, `id_nivel`) VALUES (id_idioma,id_nivel);
INSERT INTO `curso`(`id_idioma`, `id_nivel`, `id_grupo`, `ci_profesor`,`id_aula`,`id_horario`)
VALUES
(id_idioma,id_nivel,id_grupo,ci_profesor,id_aula,id_horario);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `calcularNivel` (`ci` INT(11), `idioma` INT)


BEGIN
DECLARE esPrimerCurso INT;
SET esPrimerCurso = (SELECT COUNT(*) FROM historico WHERE historico.ci_estudiante=ci
and nota>=70);
IF esPrimerCurso=0 THEN
select idioma.nombre as idioma, grupo.nombre as grupo, persona.nombre as
profesor,persona.paterno, aula.ubicacion,aula.id_aula, horario.entrada, horario.salida,
horario.dias, curso.id_nivel, curso.id_grupo from curso,idioma,grupo,persona,aula,horario
where persona.ci = curso.ci_profesor and horario.id_horario=curso.id_horario and
aula.id_aula=curso.id_aula and grupo.id_grupo = curso.id_grupo and curso.id_idioma =
idioma.id_idioma and curso.id_idioma = 1 and curso.id_nivel = 1;

ELSE
IF ((select MAX(id_nivel) from historico where ci_estudiante = ci and historico.nota>=70) =
(select MAX(id_nivel) from idioma_nivel where id_idioma = idioma))THEN
SELECT -1 AS id_nivel;
ELSE
select idioma.nombre as idioma, grupo.nombre as grupo, persona.nombre as
profesor,persona.paterno, aula.ubicacion,aula.id_aula, horario.entrada, horario.salida,
horario.dias, curso.id_nivel, curso.id_grupo from curso,idioma,grupo,persona,aula,horario
where curso.id_idioma=idioma.id_idioma and curso.id_grupo = grupo.id_grupo and
curso.ci_profesor = persona.ci and aula.id_aula=curso.id_aula and curso.id_horario =
horario.id_horario and idioma.id_idioma = idioma and curso.id_nivel = (select MAX(id_nivel)
from historico where ci_estudiante = ci and historico.nota>=70) + 1;
END IF;
END IF;

- 88 -
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `consultarCurso` () BEGIN


SELECT idioma.nombre as Idioma, nivel.id_nivel as Nivel, grupo.nombre as Grupo,
persona.nombre as Profesor, persona.paterno as Apellido, aula.id_aula as Aula,
aula.ubicacion as Ubicacion, horario.entrada as Horario_Entrada, horario.salida as
Horario_Salida,
horario.dias as Dias
FROM curso, idioma, nivel, grupo, persona, aula, horario
WHERE curso.id_idioma = idioma.id_idioma and
curso.id_nivel = nivel.id_nivel and
curso.id_grupo = grupo.id_grupo and
curso.ci_profesor = persona.ci and
curso.id_aula = aula.id_aula and
curso.id_horario = horario.id_horario;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `eliminarGrupo` (`id_grupo` INT) BEGIN


DECLARE existeGrupo INT;
SET existeGrupo = (SELECT COUNT(*) FROM grupo WHERE grupo.id_grupo = id_grupo);
IF(existeGrupo = 1)THEN
DELETE FROM `grupo` WHERE grupo.id_grupo = id_grupo;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `eliminarHorario` (`id` INT) BEGIN


DECLARE existeHorario INT;
SET existeHorario = (SELECT COUNT(*) FROM horario WHERE id_horario = id);
IF(existeHorario = 1)THEN
DELETE FROM `horario` WHERE id_horario = id;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `eliminarPerfilEstudiante` (`ci` INT) BEGIN


DECLARE existePerfilEstudiante INT;
SET existePerfilEstudiante = (SELECT COUNT(*) FROM perfilestudiante WHERE
perfilestudiante.ci_estudiante = ci);
IF(existePerfilEstudiante = 1)THEN

- 89 -
DELETE FROM `perfilestudiante` WHERE perfilestudiante.ci_estudiante = ci;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `eliminarPerfilProfesor` (`ci` INT) BEGIN


DECLARE existePerfilProfesor INT;
SET existePerfilProfesor = (SELECT COUNT(*) FROM perfilprofesor WHERE
perfilprofesor.ci_profesor = ci);
IF(existePerfilProfesor = 1)THEN
DELETE FROM `perfilprofesor` WHERE perfilprofesor.ci_profesor = ci;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `eliminarUsuario` (`ci` INT) BEGIN


DECLARE existeUsuario INT;
SET existeUsuario = (SELECT COUNT(*) FROM usuario WHERE usuario.id_perfil = ci);
IF(existeUsuario = 1)THEN
DELETE FROM `persona` WHERE persona.ci = ci;
DELETE FROM `usuario` WHERE usuario.id_perfil = ci;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `ingresarNota` (`ci` INT(11), `idioma` INT,


`faltas` INT, `nota` INT) BEGIN
DECLARE existeCi int;
DECLARE gestionActual varchar(20);
SET gestionActual =(SELECT id_gestion
FROM `gestion`
WHERE inicio = (
SELECT MAX(inicio)
FROM gestion ));

SET existeCi = (SELECT COUNT(*) FROM historico

- 90 -
WHERE historico.ci_estudiante =ci and historico.id_gestion = gestionActual and
historico.id_idioma = idioma);

IF(existeCi = 1) THEN
IF(faltas >3)THEN
UPDATE `historico` SET `nota`=0,`estado`=1 WHERE
historico.ci_estudiante = ci and historico.id_gestion = gestionActual and historico.id_idioma =
id_idioma ;

ELSE
UPDATE `historico` SET `nota`=nota,`estado`=1 WHERE
historico.ci_estudiante = ci and historico.id_gestion = gestionActual and historico.id_idioma =
id_idioma ;
END IF;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarEstudiante` (`ci` INT, `nom`


VARCHAR(30), `apPaterno` VARCHAR(30), `apMaterno` VARCHAR(30), `genero` CHAR,
`correo` VARCHAR(30), `telefono` INT, `telefono2` INT) BEGIN
DECLARE existeCi int;
DECLARE tipoEstudiante char;
SET existeCi = (SELECT COUNT(*) FROM persona
WHERE persona.ci = ci);

IF(existeCi = 0) THEN
INSERT INTO `persona`(`ci`, `nombre`, `paterno`, `materno`, `genero`, `correo`) VALUES
(ci,nom,apPaterno,apMaterno,genero,correo);

IF ci % 2 = 0 THEN
SET tipoEstudiante = 'u';
ELSE
SET tipoEstudiante = 'p';
END IF;
INSERT INTO `estudiante`(`ci_estudiante`, `tipo`) VALUES (ci,tipoEstudiante);
IF(telefono is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono,ci);

END IF;

- 91 -
IF(telefono2 is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono2,ci);

END IF;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarGrupo` (`_nom` CHAR) BEGIN


DECLARE var int;
SELECT COUNT(nombre) INTO var FROM grupo where nombre = _nom;
IF var = 0 THEN
INSERT INTO `grupo`(`id_grupo`, `nombre`) VALUES (null,_nom);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarHorario` (`entrada` TIME, `salida`


TIME, `dias` VARCHAR(20)) BEGIN
DECLARE existeHorario INT;
SET existeHorario = (SELECT COUNT(*) FROM horario WHERE horario.entrada = entrada
and horario.salida = salida and horario.dias = dias);

IF(existeHorario = 0)THEN
INSERT INTO `horario`(`id_horario`, `entrada`, `salida`, `dias`)
VALUES (null,entrada,salida,dias);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarInscripcion` (`ci_estudiante` INT,


`idioma` INT) BEGIN
DECLARE gestionActual varchar(20);
DECLARE ExisteReserva int;
DECLARE reserva int;
DECLARE nivel int;

- 92 -
SET gestionActual = (SELECT id_gestion
FROM `gestion`
WHERE inicio = (
SELECT MAX(inicio)
FROM gestion ));
SET ExisteReserva = (SELECT COUNT(*) FROM reserva
WHERE reserva.ci_estudiante = ci_estudiante
and reserva.id_gestion = gestionActual and reserva.id_idioma=idioma
);

IF ExisteReserva = 1 THEN
SET reserva = (SELECT reserva.id_reserva FROM reserva
WHERE reserva.ci_estudiante = ci_estudiante
and reserva.id_gestion = gestionActual and reserva.id_idioma = idioma
);
SET nivel = (SELECT reserva.id_nivel FROM reserva
WHERE reserva.ci_estudiante = ci_estudiante
and reserva.id_gestion = gestionActual and reserva.id_idioma = idioma
);
INSERT INTO `inscripcion`(`id_inscripcion`, `id_reserva`, `fecha`)
VALUES (null,reserva,CURRENT_DATE());

INSERT INTO `historico`(`ci_estudiante`, `id_idioma`, `id_nivel`, `id_gestion`, `faltas`, `estado`,


`nota`) VALUES (ci_estudiante,idioma,nivel,gestionActual,0,0,0);

SELECT 0 AS resultado;
else
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarPerfilEstudiante` (`ci` INT, `pass`


VARCHAR(30), `pass2` VARCHAR(30)) BEGIN
DECLARE existeCi int;
SET existeCi = (SELECT COUNT(*) FROM estudiante
WHERE estudiante.ci_estudiante = ci);

IF (pass != pass2) THEN


SET existeCi = 0;

END IF;

IF(existeCi = 1) THEN
INSERT INTO `perfilestudiante`(`ci_estudiante`, `pass`) VALUES

- 93 -
(ci,pass);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarPerfilProfesor` (`ci` INT, `pass`


VARCHAR(30), `pass2` VARCHAR(30)) BEGIN
DECLARE existeCi int;
SET existeCi = (SELECT COUNT(*) FROM profesor
WHERE profesor.ci_profesor = ci);

IF (pass != pass2) THEN


SET existeCi = 0;

END IF;

IF(existeCi = 1) THEN
INSERT INTO `perfilprofesor`(`ci_profesor`, `pass`) VALUES
(ci,pass);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarProfesor` (`ci` INT, `nom`


VARCHAR(30), `apPaterno` VARCHAR(30), `apMaterno` VARCHAR(30), `genero` CHAR, `grado`
VARCHAR(30), `correo` VARCHAR(30), `telefono` INT, `telefono2` INT) BEGIN
DECLARE existeCi int;
SET existeCi = (SELECT COUNT(*) FROM persona
WHERE persona.ci = ci);

IF(existeCi = 0) THEN
INSERT INTO `persona`(`ci`, `nombre`, `paterno`, `materno`, `genero`, `correo`) VALUES
(ci,nom,apPaterno,apMaterno,genero,correo);

INSERT INTO `profesor`(`ci_profesor`, `grado`) VALUES (ci,grado);


IF(telefono is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono,ci);

END IF;

- 94 -
IF(telefono2 is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono2,ci);

END IF;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarReserva` (`ci_estudiante` INT,


`id_idioma` INT, `id_nivel` INT, `id_grupo` INT) BEGIN
DECLARE tipoEstudiante char;
DECLARE gestionActual varchar(20);
DECLARE cupo int;
DECLARE cant int;
DECLARE monto int;
SET gestionActual = (SELECT id_gestion FROM `gestion`
WHERE inicio = (
SELECT MAX(inicio)
FROM gestion ));
set cupo= (SELECT aula.capacidad
FROM curso,aula
WHERE curso.id_aula=aula.id_aula
and curso.id_idioma=id_idioma and curso.id_grupo=id_grupo and curso.id_nivel=id_nivel);
set cant= (SELECT count(*)
from reserva
where reserva.id_idioma=id_idioma and reserva.id_nivel=id_nivel and
reserva.id_grupo=id_grupo and reserva.id_gestion=gestionActual);
SET tipoEstudiante = (SELECT tipo FROM estudiante
WHERE estudiante.ci_estudiante = ci_estudiante);
IF(tipoEstudiante = 'u')THEN
SET monto = 260;
ELSE
SET monto = 320;
END IF;
if(cant <= cupo)then
INSERT INTO `reserva`(`id_reserva`, `ci_estudiante`, `id_idioma`,
`id_nivel`, `id_grupo`, `id_gestion`, `monto`, `fecha`)
VALUES (null,ci_estudiante,id_idioma,id_nivel,
id_grupo,gestionActual,monto,CURRENT_DATE());
SELECT 0 AS resultado;
ELSE

- 95 -
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertarUsuario` (`ci` INT, `nombre`


VARCHAR(30), `cargo` VARCHAR(30), `pass` VARCHAR(30)) BEGIN
DECLARE existeCi int;
SET existeCi = (SELECT COUNT(*) FROM usuario
WHERE usuario.id_perfil = ci);

IF(existeCi = 0) THEN
INSERT INTO `persona`(`ci`, `nombre`, `paterno`, `materno`, `genero`, `correo`) VALUES
(ci,nombre,'nulo','nulo','n',null);
INSERT INTO `usuario`(`id_perfil`, `cargo`, `pass`) VALUES
(ci,cargo,pass);
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarCurso` (`id_idioma` INT(11),


`id_nivel` INT(11), `id_grupo` INT(11), `nuevoProfesor` INT(11), `nuevaAula` INT(11),
`nuevoHorario` INT(11)) BEGIN
DECLARE existeCurso int;
SET existeCurso = (SELECT COUNT(*) FROM curso
WHERE curso.id_idioma = id_idioma and curso.id_nivel = id_nivel and curso.id_grupo =
id_grupo);
IF(existeCurso = 1) THEN
UPDATE `curso` SET `ci_profesor`=nuevoProfesor, `id_aula`=nuevaAula,
`id_horario`=nuevoHorario
WHERE curso.id_idioma = id_idioma and curso.id_nivel = id_nivel and curso.id_grupo =
id_grupo;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarGrupo` (`id_grupo` INT, `nombre`


CHAR) BEGIN

DECLARE existeGrupo INT;


SET existeGrupo = (SELECT COUNT(*) FROM grupo WHERE grupo.nombre = nombre);

- 96 -
IF(existeGrupo = 0)THEN
UPDATE `grupo` SET `nombre`=nombre WHERE grupo.id_grupo = id_grupo;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarHorario` (`id_horario` INT,


`entrada` TIME, `salida` TIME, `dias` VARCHAR(20)) BEGIN

DECLARE existeHorario INT;


SET existeHorario = (SELECT COUNT(*) FROM horario WHERE horario.entrada = entrada
and horario.salida = salida and horario.dias = dias);

IF(existeHorario = 0)THEN
UPDATE `horario` SET `entrada`=entrada,
`salida`=salida,`dias`=dias WHERE horario.id_horario = id_horario;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarNota` (`ci` INT(11), `idioma` INT,


`nota` INT) BEGIN
DECLARE existeCi int;
DECLARE estado int;
DECLARE faltas int;
DECLARE gestionActual varchar(20);
SET gestionActual =(SELECT id_gestion
FROM `gestion`
WHERE inicio = (
SELECT MAX(inicio)
FROM gestion ));
SET existeCi = (SELECT COUNT(*) FROM historico
WHERE historico.ci_estudiante =ci and historico.id_gestion = gestionActual and
historico.id_idioma = idioma);
SET estado = (SELECT historico.estado FROM historico
WHERE historico.ci_estudiante =ci and historico.id_gestion = gestionActual and
historico.id_idioma = idioma);
SET faltas = (SELECT historico.faltas FROM historico

- 97 -
WHERE historico.ci_estudiante =ci and historico.id_gestion = gestionActual and
historico.id_idioma = idioma);
IF(existeCi = 1 and estado = 1 and faltas <3) THEN
UPDATE `historico` SET `nota`=nota,`estado`=1 WHERE historico.ci_estudiante = ci and
historico.id_gestion = gestionActual and historico.id_idioma = id_idioma ;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarPersona` (`ci` INT, `nom`


VARCHAR(30), `apPaterno` VARCHAR(30), `apMaterno` VARCHAR(30), `genero` CHAR,
`correo` VARCHAR(30)) BEGIN
UPDATE `persona` SET `nombre`=nom,
`paterno`=apPaterno,`materno`=apMaterno,`genero`=genero,
`correo`=correo WHERE persona.ci = ci;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `modificarProfesor` (`ci` INT, `nom`


VARCHAR(30), `apPaterno` VARCHAR(30), `apMaterno` VARCHAR(30), `genero` CHAR, `grado`
VARCHAR(30), `correo` VARCHAR(30), `telefono` INT, `telefono2` INT) BEGIN
DECLARE existeCi int;
SET existeCi = (SELECT COUNT(*) FROM persona
WHERE persona.ci = ci);

IF(existeCi = 1) THEN
UPDATE `persona` SET `nombre`=nom,`paterno`=apPaterno,
`materno`=apMaterno,`genero`=genero,`correo`=correo WHERE persona.ci=ci;
UPDATE `profesor` SET `grado`=grado WHERE ci_profesor = ci;
IF(telefono is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono,ci);

END IF;
IF(telefono2 is not null) THEN
INSERT INTO `telefono`(`id_telefono`, `numero`, `ci`)
VALUES (null,telefono2,ci);

END IF;
SELECT 0 AS resultado;
ELSE
SELECT 1 AS resultado;
END IF;

- 98 -
END$$

DELIMITER ;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `aula`
--

CREATE TABLE `aula` (


`id_aula` int(11) NOT NULL,
`ubicacion` varchar(20) NOT NULL,
`capacidad` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `aula`
--

INSERT INTO `aula` (`id_aula`, `ubicacion`, `capacidad`) VALUES


(1, 'calle murillo #120', 20),
(2, 'calle murillo #120', 20),
(3, 'calle murillo #120', 20),
(4, 'campus universitario', 30),
(5, 'campus universitario', 30),
(6, 'campus universitario', 30),
(7, 'campus', 40);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `bitacora`
--

CREATE TABLE `bitacora` (


`id_bitacora` int(11) NOT NULL,
`tabla` varchar(30) NOT NULL,
`fecha` date NOT NULL,
`operacion` varchar(30) NOT NULL,
`id_perfil` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

- 99 -
--
-- Estructura de tabla para la tabla `curso`
--

CREATE TABLE `curso` (


`id_idioma` int(11) NOT NULL,
`id_nivel` int(11) NOT NULL,
`id_grupo` int(11) NOT NULL,
`ci_profesor` int(11) NOT NULL,
`id_aula` int(11) NOT NULL,
`id_horario` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `curso`
--

INSERT INTO `curso` (`id_idioma`, `id_nivel`, `id_grupo`, `ci_profesor`, `id_aula`, `id_horario`)


VALUES
(1, 1, 1, 67776766, 4, 1),
(1, 1, 2, 6471591, 2, 2),
(1, 1, 3, 6471591, 1, 4),
(1, 2, 1, 6473372, 1, 5),
(1, 2, 2, 6473372, 2, 1),
(1, 2, 3, 6473372, 2, 1),
(1, 3, 1, 6505530, 2, 2),
(1, 3, 2, 6473372, 2, 3),
(1, 3, 3, 6505530, 2, 4),
(1, 4, 1, 6517876, 2, 5),
(1, 4, 2, 6517876, 2, 6),
(1, 4, 3, 6517876, 3, 1),
(1, 5, 1, 6519110, 3, 2),
(1, 5, 2, 6519110, 3, 3),
(1, 5, 3, 6519110, 3, 4),
(1, 6, 1, 6520981, 3, 5),
(1, 6, 2, 6520981, 3, 6),
(1, 6, 3, 6520981, 4, 1),
(1, 7, 1, 6525657, 4, 2),
(1, 7, 2, 6525657, 4, 3),
(1, 7, 3, 6525657, 4, 4),
(1, 8, 1, 6527034, 4, 5),
(1, 8, 2, 6527034, 4, 6),
(1, 8, 3, 6527034, 5, 1),

- 100 -
(1, 9, 1, 6528872, 5, 2),
(1, 9, 2, 6528872, 5, 3),
(1, 9, 3, 6528872, 5, 4),
(1, 10, 1, 6529278, 5, 5),
(1, 10, 2, 6529278, 5, 6),
(1, 10, 3, 6529278, 6, 1),
(1, 11, 1, 6471591, 6, 2),
(1, 11, 2, 6471591, 6, 3),
(1, 11, 3, 6471591, 6, 4),
(1, 12, 1, 6473372, 6, 5),
(1, 12, 2, 6473372, 6, 6),
(1, 12, 3, 6473372, 6, 1),
(2, 1, 1, 6528872, 6, 3),
(2, 2, 1, 6528872, 6, 3),
(2, 3, 1, 6528872, 6, 4),
(2, 4, 1, 6528872, 6, 5),
(3, 1, 1, 6529278, 6, 6),
(3, 2, 1, 6529278, 6, 3),
(3, 4, 3, 342232, 1, 1),
(3, 6, 3, 6529278, 1, 1);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `estudiante`
--

CREATE TABLE `estudiante` (


`ci_estudiante` int(11) NOT NULL,
`tipo` char(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `estudiante`
--

INSERT INTO `estudiante` (`ci_estudiante`, `tipo`) VALUES


(12345, 'u'),
(22222, 'u'),
(22232, 'u'),
(111122, '0'),
(234332, '0'),
(333333, 'p'),
(1234567, 'u'),

- 101 -
(6341217, 'u'),
(6360079, 'u'),
(6365953, 'u'),
(6368421, 'p'),
(6369167, 'p'),
(6372882, 'p'),
(6372961, 'p'),
(6376799, 'p'),
(6377201, 'p'),
(6378089, 'p'),
(6382999, 'p'),
(6388541, 'p'),
(6390520, 'u'),
(6390687, 'u'),
(6392110, 'u'),
(6398820, 'p'),
(6399854, 'p'),
(6404414, 'p'),
(6407964, 'p'),
(6408955, 'p'),
(6409544, 'u'),
(6409549, 'p'),
(6417949, 'p'),
(6426853, 'p'),
(6427633, 'u'),
(6430481, 'u'),
(6430964, 'u'),
(6432956, 'u'),
(6434887, 'u'),
(6434935, 'u'),
(6435545, 'p'),
(6438168, 'u'),
(6445990, 'u'),
(6446665, 'u'),
(6448545, 'u'),
(6451082, 'u'),
(6451756, 'u'),
(6453410, 'u'),
(6459016, 'u'),
(6459096, 'u'),
(6465527, 'p'),
(6465703, 'u'),
(6471499, 'p'),
(6481500, 'u');

- 102 -
-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `gestion`
--

CREATE TABLE `gestion` (


`id_gestion` varchar(20) NOT NULL,
`inicio` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `gestion`
--

INSERT INTO `gestion` (`id_gestion`, `inicio`) VALUES


('1/2013', '2012-02-01'),
('1/2014', '2012-02-01'),
('1/2015', '2012-02-01'),
('1/2016', '2012-02-01'),
('2/2012', '2012-05-01'),
('2/2013', '2012-05-01'),
('2/2014', '2012-05-01'),
('2/2015', '2012-05-01'),
('2/2016', '2016-07-01'),
('3/2012', '2012-08-01'),
('3/2013', '2012-08-01'),
('3/2014', '2012-08-01'),
('3/2015', '2012-08-01');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `grupo`
--

CREATE TABLE `grupo` (


`id_grupo` int(11) NOT NULL,
`nombre` char(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `grupo`

- 103 -
--

INSERT INTO `grupo` (`id_grupo`, `nombre`) VALUES


(1, 'A'),
(2, 'B'),
(3, 'C'),
(4, 'w'),
(5, 'r');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `historico`
--

CREATE TABLE `historico` (


`ci_estudiante` int(11) NOT NULL,
`id_idioma` int(11) NOT NULL,
`id_nivel` int(11) NOT NULL,
`id_gestion` varchar(20) NOT NULL,
`faltas` int(11) DEFAULT NULL,
`estado` int(11) NOT NULL,
`nota` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `historico`
--

INSERT INTO `historico` (`ci_estudiante`, `id_idioma`, `id_nivel`, `id_gestion`, `faltas`,


`estado`, `nota`) VALUES
(6341217, 1, 1, '2/2015', 1, 1, 53),
(6341217, 1, 2, '3/2015', 2, 1, 60),
(6341217, 1, 3, '1/2016', 2, 1, 80),
(6341217, 1, 4, '2/2016', 0, 1, 22),
(6360079, 1, 1, '1/2015', 1, 1, 30),
(6360079, 1, 1, '2/2015', 0, 1, 73),
(6360079, 1, 2, '3/2015', 2, 1, 85),
(6360079, 1, 3, '1/2016', 0, 1, 80),
(6360079, 1, 4, '2/2016', 1, 1, 10),
(6365953, 3, 1, '3/2014', 2, 1, 80),
(6365953, 3, 2, '1/2015', 1, 1, 20),
(6365953, 3, 2, '2/2015', 1, 1, 80),
(6368421, 2, 1, '2/2015', 0, 1, 78),

- 104 -
(6368421, 2, 2, '3/2015', 1, 1, 75),
(6368421, 2, 3, '1/2016', 1, 1, 12),
(6368421, 2, 4, '2/2016', 1, 1, 90),
(6369167, 2, 1, '2/2012', 1, 1, 87),
(6369167, 2, 2, '1/2013', 1, 1, 77),
(6369167, 2, 2, '3/2012', 0, 1, 49),
(6369167, 2, 3, '2/2013', 1, 1, 83),
(6369167, 2, 4, '3/2013', 0, 1, 81),
(6372882, 3, 1, '2/2014', 0, 1, 63),
(6372882, 3, 1, '3/2014', 1, 1, 81),
(6372882, 3, 2, '1/2015', 1, 1, 43),
(6372882, 3, 2, '2/2015', 0, 1, 75),
(6398820, 2, 1, '2/2016', 0, 0, 0),
(6407964, 1, 1, '2/2016', 0, 0, 0);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `horario`
--

CREATE TABLE `horario` (


`id_horario` int(11) NOT NULL,
`entrada` time NOT NULL,
`salida` time NOT NULL,
`dias` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `horario`
--

INSERT INTO `horario` (`id_horario`, `entrada`, `salida`, `dias`) VALUES


(1, '07:00:00', '08:30:00', 'lu-mie-vie'),
(2, '08:30:00', '10:00:00', 'lu-mie-vie'),
(3, '07:00:00', '09:15:00', 'mar-jue'),
(4, '09:15:00', '11:30:00', 'mar-jue'),
(5, '07:00:00', '11:30:00', 'sab'),
(6, '14:00:00', '18:30:00', 'sab'),
(7, '07:00:00', '10:00:00', 'dom');

-- --------------------------------------------------------

--

- 105 -
-- Estructura de tabla para la tabla `idioma`
--

CREATE TABLE `idioma` (


`id_idioma` int(11) NOT NULL,
`nombre` varchar(30) NOT NULL,
`descripcion` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `idioma`
--

INSERT INTO `idioma` (`id_idioma`, `nombre`, `descripcion`) VALUES


(1, 'ingles', 'avanzado'),
(2, 'frances', 'intermedio'),
(3, 'guarani', 'basico');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `idioma_nivel`
--

CREATE TABLE `idioma_nivel` (


`id_idioma` int(11) NOT NULL,
`id_nivel` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `idioma_nivel`
--

INSERT INTO `idioma_nivel` (`id_idioma`, `id_nivel`) VALUES


(1, 1),
(1, 2),
(1, 3),
(1, 4),
(1, 5),
(1, 6),
(1, 7),
(1, 8),
(1, 9),
(1, 10),

- 106 -
(1, 11),
(1, 12),
(2, 1),
(2, 2),
(2, 3),
(2, 4),
(3, 1),
(3, 2),
(3, 4),
(3, 6);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `inscripcion`
--

CREATE TABLE `inscripcion` (


`id_inscripcion` int(11) NOT NULL,
`id_reserva` int(11) NOT NULL,
`fecha` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `inscripcion`
--

INSERT INTO `inscripcion` (`id_inscripcion`, `id_reserva`, `fecha`) VALUES


(1, 1, '2015-06-01'),
(2, 2, '2015-09-01'),
(3, 3, '2016-03-01'),
(4, 4, '2016-06-01'),
(5, 5, '2015-03-01'),
(6, 6, '2015-06-01'),
(7, 7, '2015-09-01'),
(8, 8, '2016-03-01'),
(9, 9, '2016-06-01'),
(10, 10, '2014-09-02'),
(11, 11, '2015-03-05'),
(12, 13, '2015-06-02'),
(13, 14, '2015-09-03'),
(14, 15, '2016-03-05'),
(15, 17, '2012-06-02'),
(16, 18, '2012-09-02'),

- 107 -
(17, 19, '2013-03-02'),
(18, 20, '2013-06-02'),
(19, 21, '2013-09-02'),
(20, 22, '2014-06-02'),
(21, 23, '2014-09-04'),
(22, 24, '2015-03-02'),
(23, 25, '2015-06-01'),
(24, 30, '2016-12-01'),
(25, 31, '2016-12-01');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `nivel`
--

CREATE TABLE `nivel` (


`id_nivel` int(11) NOT NULL,
`nombre` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `nivel`
--

INSERT INTO `nivel` (`id_nivel`, `nombre`) VALUES


(1, 'primer'),
(2, 'segundo'),
(3, 'tercer'),
(4, 'cuarto'),
(5, 'quinto'),
(6, 'sexto'),
(7, 'septimo'),
(8, 'octavo'),
(9, 'noveno'),
(10, 'decimo'),
(11, 'onceavo'),
(12, 'doceavo'),
(13, 'decimo Tercero'),
(15, 'oso'),
(16, 'lala'),
(17, 'lsae'),
(18, 'lSsae');

- 108 -
-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `perfilestudiante`
--

CREATE TABLE `perfilestudiante` (


`ci_estudiante` int(11) NOT NULL,
`pass` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `perfilestudiante`
--

INSERT INTO `perfilestudiante` (`ci_estudiante`, `pass`) VALUES


(234332, 'wwe');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `perfilprofesor`
--

CREATE TABLE `perfilprofesor` (


`ci_profesor` int(11) NOT NULL,
`pass` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `perfilprofesor`
--

INSERT INTO `perfilprofesor` (`ci_profesor`, `pass`) VALUES


(6505530, 'jajaja'),
(6529278, 'koko');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `persona`
--

CREATE TABLE `persona` (

- 109 -
`ci` int(11) NOT NULL,
`nombre` varchar(20) NOT NULL,
`paterno` varchar(20) NOT NULL,
`materno` varchar(20) DEFAULT NULL,
`genero` char(1) NOT NULL,
`correo` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `persona`
--

INSERT INTO `persona` (`ci`, `nombre`, `paterno`, `materno`, `genero`, `correo`) VALUES
(2212, '', 'nulo', 'nulo', 'n', NULL),
(12345, 'rosa', 'espinoza', 'del prado', 'f', 'jorge@ggmai.com'),
(22222, 'yalo', 'juano', 'rosado', 'm', ''),
(22232, 'clara', 'pinto', 'chavez', 'f', 'clara@hotmail.com'),
(33533, 'jorge luis', 'nulo', 'nulo', 'n', NULL),
(111122, 'victor', 'villarroel', 'tola', 'm', NULL),
(234332, 'juanita', 'del prado', 'corrales', 'f', NULL),
(333333, 'olivia', 'panoso', 'leygue', 'f', ''),
(342232, 'carlos', 'roca', 'lino', 'm', NULL),
(545454, 'mauricio pe;a', 'nulo', 'nulo', 'n', NULL),
(883722, 'juanito', 'peres', 'pea', 'f', 'ana@hotmail.com'),
(1234567, 'ibeth', 'rojas', 'morales', 'f', ''),
(2223211, 'jorge', 'colque', 'guzman', 'm', 'jorge@hotmail.com'),
(6341217, 'Mauricia', 'Campos', 'Chavez', 'f', NULL),
(6360079, 'Carlos mau', 'Martinez', 'Sanchez', 'm', NULL),
(6365953, 'Andresa', 'Guzman', 'Pereira', 'f', NULL),
(6368421, 'Sergio', 'Ramos', 'sanches', 'm', 'sanches@php.com'),
(6369167, 'Alvaro', 'Rodriguez', 'Silva', 'M', NULL),
(6372882, 'Daniel', 'Martinez', 'Contreras', 'M', NULL),
(6372961, 'Marcelo', 'Hernandez', 'Quiroga', 'M', 'NULL'),
(6376799, 'Cristiano', 'Flores', 'Flores', 'M', ''),
(6377201, 'James', 'Rodriguez', 'Duar', 'M', 'jamesDD@gmail.com'),
(6378089, 'Jose', 'Callejon', 'Lozada', 'M', NULL),
(6382999, 'Mariana', 'Contreras', 'Contreras', 'F', 'mariC2015@hotmail.com'),
(6388541, 'Fabiola', 'Peredo', 'Martinez', 'F', NULL),
(6390520, 'Anahi', 'Rocha', 'Rosado', 'F', NULL),
(6390687, 'Juan Carlos', 'Zambrana', 'Souza', 'M', 'jczambrana@gmail.com'),
(6392110, 'Ana Paola', 'Navia', 'Laura', 'F', NULL),
(6398820, 'Jose Alberto', 'Santos', 'Asuncion', 'M', 'santos512@live.com'),
(6399854, 'Camila', 'Machicao', 'Laura', 'F', 'camiLA@hotamil.com'),
(6404414, 'Rafael', 'Gomez', 'Erbas', 'M', 'rafaGomez@gmail.com'),

- 110 -
(6407396, 'Jorge', 'Perez', 'Souza', 'M', NULL),
(6407964, 'Javier', 'Martinez', 'Escalante', 'M', 'javiviEs@hotmail.com'),
(6408955, 'Alondra', 'Cortez', 'Lisarazu', 'F', 'alondra.cortez@gmail.com'),
(6409544, 'Manuel', 'Fuentes', 'Guzman', 'M', NULL),
(6409549, 'Ana Paola', 'Torrico', 'Robles', 'F', NULL),
(6417949, 'Carina', 'Guzman', 'Maturano', 'F', 'cariguzman@live.com'),
(6426853, 'Victor', 'Rojas', 'Hernandez', 'M', NULL),
(6427633, 'Carlos', 'Coimbra', 'Llul', 'M', 'coimbra2158@hotmail.com'),
(6430481, 'Marcelo', 'Diaz', 'Escalante', 'M', NULL),
(6430964, 'Rafael', 'Rocha', 'Vargas', 'M', 'rocha.rafa15@hotmail.com'),
(6432956, 'Ana', 'Molina', 'Tejerina', 'F', NULL),
(6434887, 'Karen', 'Flores', 'Cabrera', 'F', 'karenfc87@gamil.com'),
(6434935, 'Raquel', 'Bustamante', 'Iglesias', 'F', 'raquelbust@hotmail.com'),
(6435545, 'Carlos', 'Hernandez', 'Eguez', 'M', 'carlos.hernandez@gmail.com'),
(6438168, 'Lorena', 'Gutierrez', 'Hernandez', 'F', NULL),
(6445990, 'Maria Jose', 'Diaz', 'Romero', 'F', 'maria.diaz@gmail.com'),
(6446665, 'Raul', 'Martinez', 'Bravo', 'M', NULL),
(6448545, 'Oscar', 'Santos', 'Lima', 'M', 'oscar.santos@hotmail.com'),
(6451082, 'Genesis', 'Tordoya', 'Saldias', 'F', NULL),
(6451756, 'Leonardo', 'Gonzales', 'Molina', 'M', 'leo.gon@gamil.com'),
(6453410, 'Ivan', 'Quiroz', 'Peredo', 'M', NULL),
(6459016, 'Gabriela', 'Ybanera', 'Brun', 'F', NULL),
(6459096, 'Victor', 'Janco', 'Martinez', 'M', 'vic.JM@hotmail.cm'),
(6465527, 'Sebastian', 'Callejas', 'Gonzalban', 'M', NULL),
(6465703, 'Vianca', 'Espada', 'Romero', 'F', NULL),
(6471499, 'Daniel', 'Bejarano', 'Cuchilla', 'M', 'dani.CB@live.com'),
(6471591, 'Lisa', 'Gonzales', 'Simpson', 'F', NULL),
(6473372, 'Maria', 'Alba', 'Gonzales', 'F', NULL),
(6481500, 'Julio', 'Mendez', 'Perez', 'M', NULL),
(6505530, 'Fabiola', 'Quisbert', 'Castro', 'F', 'fabiola@gmail.com'),
(6517876, 'Jesus', 'Perez', 'Quiroga', 'M', 'jesiss@gmail.com'),
(6519110, 'Pedro', 'Cortez', 'Hill', 'M', NULL),
(6520981, 'Helen', 'Campos', 'Gutierrez', 'F', NULL),
(6525657, 'Carlos', 'Rodriguez', 'Terrazas', 'M', 'carlllos@gmail.com'),
(6527034, 'Alberto', 'del Rio', 'Belmonte', 'M', 'Malbertt@gmail.com'),
(6528872, 'Ricardo', 'Orozco', 'Montes', 'M', 'ricky@gmail.com'),
(6529278, 'Maria', 'Pedraza', 'Castro', 'F', 'marmar@gmail.com'),
(33422321, 'noe', 'vallejos', 'pea', 'm', 'noe@hotmail.com'),
(67776766, 'fabio', 'cortez', 'medrano', 'm', 'fabio@hotmail.com'),
(78332223, 'ana', 'peres', 'martinez', 'f', 'ana@hotmail.com');

-- --------------------------------------------------------

--

- 111 -
-- Estructura de tabla para la tabla `profesor`
--

CREATE TABLE `profesor` (


`ci_profesor` int(11) NOT NULL,
`grado` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `profesor`
--

INSERT INTO `profesor` (`ci_profesor`, `grado`) VALUES


(342232, 'Doctorado'),
(2223211, 'Licenciatura'),
(6471591, 'licenciatura'),
(6473372, 'masterado'),
(6505530, 'licenciatura'),
(6517876, 'licenciatura'),
(6519110, 'licenciatura'),
(6520981, 'masterado'),
(6525657, 'licenciatura'),
(6527034, 'licenciatura'),
(6528872, 'licenciatura'),
(6529278, 'masterado'),
(33422321, 'Masterado'),
(67776766, 'Maestria');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `reserva`
--

CREATE TABLE `reserva` (


`id_reserva` int(11) NOT NULL,
`ci_estudiante` int(11) NOT NULL,
`id_idioma` int(11) NOT NULL,
`id_nivel` int(11) NOT NULL,
`id_grupo` int(11) NOT NULL,
`id_gestion` varchar(20) NOT NULL,
`monto` decimal(10,0) NOT NULL,
`fecha` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

- 112 -
--
-- Volcado de datos para la tabla `reserva`
--

INSERT INTO `reserva` (`id_reserva`, `ci_estudiante`, `id_idioma`, `id_nivel`, `id_grupo`,


`id_gestion`, `monto`, `fecha`) VALUES
(1, 6341217, 1, 1, 1, '2/2015', '260', '2015-06-01'),
(2, 6341217, 1, 2, 1, '3/2015', '260', '2015-09-01'),
(3, 6341217, 1, 3, 1, '1/2016', '260', '2016-03-01'),
(4, 6341217, 1, 4, 1, '2/2016', '260', '2016-06-01'),
(5, 6360079, 1, 1, 1, '1/2015', '260', '2015-03-01'),
(6, 6360079, 1, 1, 2, '2/2015', '260', '2015-06-01'),
(7, 6360079, 1, 2, 1, '3/2015', '260', '2015-09-01'),
(8, 6360079, 1, 3, 3, '1/2016', '260', '2016-03-01'),
(9, 6360079, 1, 4, 2, '2/2016', '260', '2016-06-01'),
(10, 6365953, 3, 1, 1, '3/2014', '260', '2014-09-02'),
(11, 6365953, 3, 2, 1, '1/2015', '260', '2015-03-05'),
(12, 6365953, 3, 2, 1, '2/2015', '260', '2015-06-02'),
(13, 6368421, 2, 1, 1, '2/2015', '320', '2015-06-02'),
(14, 6368421, 2, 2, 1, '3/2015', '320', '2015-09-03'),
(15, 6368421, 2, 3, 1, '1/2016', '320', '2016-03-05'),
(16, 6368421, 2, 4, 1, '2/2016', '320', '2016-06-02'),
(17, 6369167, 2, 1, 1, '2/2012', '320', '2012-06-02'),
(18, 6369167, 2, 2, 1, '3/2012', '320', '2012-09-02'),
(19, 6369167, 2, 2, 1, '1/2013', '320', '2013-03-02'),
(20, 6369167, 2, 3, 1, '2/2013', '320', '2013-06-02'),
(21, 6369167, 2, 4, 1, '3/2013', '320', '2013-09-02'),
(22, 6372882, 3, 1, 1, '2/2014', '320', '2014-06-02'),
(23, 6372882, 3, 1, 1, '3/2014', '320', '2014-09-04'),
(24, 6372882, 3, 2, 1, '1/2015', '320', '2015-03-02'),
(25, 6372882, 3, 2, 1, '2/2015', '320', '2015-06-01'),
(27, 6341217, 1, 5, 1, '1/2014', '240', '2012-02-01'),
(28, 6341217, 1, 5, 1, '1/2014', '240', '2012-02-01'),
(29, 6341217, 1, 5, 2, '1/2014', '240', '2012-02-01'),
(30, 6407964, 1, 1, 1, '2/2016', '320', '2016-12-01'),
(31, 6398820, 2, 1, 1, '2/2016', '320', '2016-12-01');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `telefono`
--

- 113 -
CREATE TABLE `telefono` (
`id_telefono` int(11) NOT NULL,
`numero` int(11) NOT NULL,
`ci` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `telefono`
--

INSERT INTO `telefono` (`id_telefono`, `numero`, `ci`) VALUES


(1, 70898542, 6341217),
(2, 78412316, 6360079),
(3, 76412398, 6365953),
(4, 78415632, 6368421),
(5, 78412547, 6369167),
(6, 78267316, 6372882),
(7, 7266687, 6372961),
(9, 78412862, 6376799),
(10, 71562316, 6377201),
(11, 79364826, 6378089),
(13, 72739416, 6382999),
(14, 73125341, 6388541),
(15, 78493742, 6390520),
(16, 77893474, 6390687),
(17, 73112347, 6392110),
(18, 78734652, 6398820),
(19, 74567329, 6399854),
(20, 71234512, 6404414),
(21, 78412875, 6407396),
(22, 79712346, 6407964),
(23, 72140447, 6408955),
(24, 76512532, 6409544),
(25, 7777777, 22232),
(26, 7777778, 22232),
(27, 7979797, 333333),
(28, 7979898, 333333);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `usuario`
--

- 114 -
CREATE TABLE `usuario` (
`id_perfil` int(11) NOT NULL,
`cargo` varchar(30) NOT NULL,
`pass` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `usuario`
--

INSERT INTO `usuario` (`id_perfil`, `cargo`, `pass`) VALUES


(33533, 'sistemas', '123'),
(545454, 'sistema', 'casa');

--
-- ndices para tablas volcadas
--

--
-- Indices de la tabla `aula`
--
ALTER TABLE `aula`
ADD PRIMARY KEY (`id_aula`);

--
-- Indices de la tabla `bitacora`
--
ALTER TABLE `bitacora`
ADD PRIMARY KEY (`id_bitacora`);

--
-- Indices de la tabla `curso`
--
ALTER TABLE `curso`
ADD PRIMARY KEY (`id_idioma`,`id_nivel`,`id_grupo`),
ADD KEY `id_grupo` (`id_grupo`),
ADD KEY `ci_profesor` (`ci_profesor`),
ADD KEY `id_aula` (`id_aula`),
ADD KEY `id_horario` (`id_horario`);

--
-- Indices de la tabla `estudiante`
--
ALTER TABLE `estudiante`

- 115 -
ADD PRIMARY KEY (`ci_estudiante`);

--
-- Indices de la tabla `gestion`
--
ALTER TABLE `gestion`
ADD PRIMARY KEY (`id_gestion`);

--
-- Indices de la tabla `grupo`
--
ALTER TABLE `grupo`
ADD PRIMARY KEY (`id_grupo`);

--
-- Indices de la tabla `historico`
--
ALTER TABLE `historico`
ADD PRIMARY KEY (`ci_estudiante`,`id_idioma`,`id_nivel`,`id_gestion`),
ADD KEY `id_idioma` (`id_idioma`,`id_nivel`),
ADD KEY `id_gestion` (`id_gestion`);

--
-- Indices de la tabla `horario`
--
ALTER TABLE `horario`
ADD PRIMARY KEY (`id_horario`);

--
-- Indices de la tabla `idioma`
--
ALTER TABLE `idioma`
ADD PRIMARY KEY (`id_idioma`);

--
-- Indices de la tabla `idioma_nivel`
--
ALTER TABLE `idioma_nivel`
ADD PRIMARY KEY (`id_idioma`,`id_nivel`),
ADD KEY `id_nivel` (`id_nivel`);

--
-- Indices de la tabla `inscripcion`
--

- 116 -
ALTER TABLE `inscripcion`
ADD PRIMARY KEY (`id_inscripcion`,`id_reserva`),
ADD KEY `id_reserva` (`id_reserva`);

--
-- Indices de la tabla `nivel`
--
ALTER TABLE `nivel`
ADD PRIMARY KEY (`id_nivel`);

--
-- Indices de la tabla `perfilestudiante`
--
ALTER TABLE `perfilestudiante`
ADD PRIMARY KEY (`ci_estudiante`);

--
-- Indices de la tabla `perfilprofesor`
--
ALTER TABLE `perfilprofesor`
ADD PRIMARY KEY (`ci_profesor`);

--
-- Indices de la tabla `persona`
--
ALTER TABLE `persona`
ADD PRIMARY KEY (`ci`);

--
-- Indices de la tabla `profesor`
--
ALTER TABLE `profesor`
ADD PRIMARY KEY (`ci_profesor`);

--
-- Indices de la tabla `reserva`
--
ALTER TABLE `reserva`
ADD PRIMARY KEY (`id_reserva`),
ADD KEY `id_idioma` (`id_idioma`,`id_nivel`,`id_grupo`),
ADD KEY `ci_estudiante` (`ci_estudiante`),
ADD KEY `id_gestion` (`id_gestion`);

--

- 117 -
-- Indices de la tabla `telefono`
--
ALTER TABLE `telefono`
ADD PRIMARY KEY (`id_telefono`),
ADD KEY `ci` (`ci`);

--
-- Indices de la tabla `usuario`
--
ALTER TABLE `usuario`
ADD PRIMARY KEY (`id_perfil`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `aula`
--
ALTER TABLE `aula`
MODIFY `id_aula` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
--
-- AUTO_INCREMENT de la tabla `bitacora`
--
ALTER TABLE `bitacora`
MODIFY `id_bitacora` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla `grupo`
--
ALTER TABLE `grupo`
MODIFY `id_grupo` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT de la tabla `horario`
--
ALTER TABLE `horario`
MODIFY `id_horario` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
--
-- AUTO_INCREMENT de la tabla `idioma`
--
ALTER TABLE `idioma`
MODIFY `id_idioma` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT de la tabla `inscripcion`
--

- 118 -
ALTER TABLE `inscripcion`
MODIFY `id_inscripcion` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26;
--
-- AUTO_INCREMENT de la tabla `nivel`
--
ALTER TABLE `nivel`
MODIFY `id_nivel` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;
--
-- AUTO_INCREMENT de la tabla `reserva`
--
ALTER TABLE `reserva`
MODIFY `id_reserva` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32;
--
-- AUTO_INCREMENT de la tabla `telefono`
--
ALTER TABLE `telefono`
MODIFY `id_telefono` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29;
--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `curso`
--
ALTER TABLE `curso`
ADD CONSTRAINT `curso_ibfk_1` FOREIGN KEY (`id_idioma`,`id_nivel`) REFERENCES
`idioma_nivel` (`id_idioma`, `id_nivel`),
ADD CONSTRAINT `curso_ibfk_6` FOREIGN KEY (`id_grupo`) REFERENCES `grupo`
(`id_grupo`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `curso_ibfk_7` FOREIGN KEY (`ci_profesor`) REFERENCES `profesor`
(`ci_profesor`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `curso_ibfk_8` FOREIGN KEY (`id_aula`) REFERENCES `aula` (`id_aula`) ON
DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `curso_ibfk_9` FOREIGN KEY (`id_horario`) REFERENCES `horario`
(`id_horario`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `estudiante`
--
ALTER TABLE `estudiante`
ADD CONSTRAINT `estudiante_ibfk_2` FOREIGN KEY (`ci_estudiante`) REFERENCES `persona`
(`ci`) ON DELETE CASCADE ON UPDATE CASCADE;

--

- 119 -
-- Filtros para la tabla `historico`
--
ALTER TABLE `historico`
ADD CONSTRAINT `historico_ibfk_2` FOREIGN KEY (`id_idioma`,`id_nivel`) REFERENCES
`idioma_nivel` (`id_idioma`, `id_nivel`),
ADD CONSTRAINT `historico_ibfk_4` FOREIGN KEY (`ci_estudiante`) REFERENCES
`estudiante` (`ci_estudiante`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `historico_ibfk_5` FOREIGN KEY (`id_gestion`) REFERENCES `gestion`
(`id_gestion`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `idioma_nivel`
--
ALTER TABLE `idioma_nivel`
ADD CONSTRAINT `idioma_nivel_ibfk_3` FOREIGN KEY (`id_idioma`) REFERENCES `idioma`
(`id_idioma`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `idioma_nivel_ibfk_4` FOREIGN KEY (`id_nivel`) REFERENCES `nivel`
(`id_nivel`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `inscripcion`
--
ALTER TABLE `inscripcion`
ADD CONSTRAINT `inscripcion_ibfk_2` FOREIGN KEY (`id_reserva`) REFERENCES `reserva`
(`id_reserva`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `perfilestudiante`
--
ALTER TABLE `perfilestudiante`
ADD CONSTRAINT `perfilestudiante_ibfk_1` FOREIGN KEY (`ci_estudiante`) REFERENCES
`estudiante` (`ci_estudiante`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `perfilprofesor`
--
ALTER TABLE `perfilprofesor`
ADD CONSTRAINT `perfilprofesor_ibfk_1` FOREIGN KEY (`ci_profesor`) REFERENCES
`profesor` (`ci_profesor`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `profesor`
--
ALTER TABLE `profesor`

- 120 -
ADD CONSTRAINT `profesor_ibfk_2` FOREIGN KEY (`ci_profesor`) REFERENCES `persona`
(`ci`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `reserva`
--
ALTER TABLE `reserva`
ADD CONSTRAINT `reserva_ibfk_2` FOREIGN KEY (`id_idioma`,`id_nivel`,`id_grupo`)
REFERENCES `curso` (`id_idioma`, `id_nivel`, `id_grupo`),
ADD CONSTRAINT `reserva_ibfk_4` FOREIGN KEY (`ci_estudiante`) REFERENCES `estudiante`
(`ci_estudiante`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `reserva_ibfk_5` FOREIGN KEY (`id_gestion`) REFERENCES `gestion`
(`id_gestion`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `telefono`
--
ALTER TABLE `telefono`
ADD CONSTRAINT `telefono_ibfk_2` FOREIGN KEY (`ci`) REFERENCES `persona` (`ci`) ON
DELETE CASCADE ON UPDATE CASCADE;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

- 121 -
8.2.2.3 Consultas

8.2.2.4 Procedimientos Almacenados

8.2.2.5 Triggers

- 122 -
9. FLUJO DE TRABAJO IMPLEMENTACION

9.1 IMPLEMENTACIN DE ARQUITECTURA DEL SISTEMA


Diagrama de Componentes
cmp Componentes

P2 P4

Subsystem Gestionar Subsystem Gestionar


Inscripcion Usuario

Login.php

P3 P1
Welcome.php

Subsystem Gestionar
Subsystem Gestionar
Curso
Notas

library
tpdf.php

BD

library
mysqli

Acceso

- 123 -
9.2 IMPLEMENTACIN DE ARQUITECTURA DE
SUBSISTEMA
Diagrama de componentes del paquete Gestionar Notas

cmp Gestionar Nota Componente

Gestionar Notas

web form web form report


nota.php consultarhistorico.php reporteNotas.pdf

controller controller controller


nota.php historico.php reporteNotas.php

model model
nota_model.php historico_model.php

table table
Historico gestion

- 124 -
cmp Gestionar Curso Componente

Gestionar Curso

web form web form web form web form web form web form web form web form web form web form web form web form web form web form
aula.php consultarAula.php horario.php consultarHorario.php profesor.php consultarProfesor.php curso.php consultarCurso idioma.php consultarIdioma.php nivel.php consultarNivel grupo.php consultarGrupo

controller controller controller controller controller controller controller


aula.php horario.php profesor.php curso.php idioma.php nivel.php grupo.php

model model model model model model model


aula_mode.php horario_model.php profesor_model.php curso_model.php idioma_model.php nivel_model.php grupo_model.php

table table table table table table


aula.sql horario.sql profesor.sql curso.sql idioma_nivel.sql grupo.sql
Diagrama de componentes del paquete Gestionar Cursos

- 125 -
cmp Gestionar Inscripcion

Gestionar inscripcion

web form web form web form web form web form web form web form web form web form
formReserv a.php v entanaReserv a.php reserv a.php boletainscripcion.php inscripcion.php adicionarEstudiante.php consultarEstudiante editarEstudiante.php estudiante.php

controller controller controller


reserv a.php inscripcion.php estudiante.php

model model model


reserv a_model.php inscripcion_model.php estudiante_model.php

table table table


reserv a.sql inscripcion.sql estudiante.sql
Diagrama de componentes del paquete Gestionar Inscripcion

- 126 -
9.3 PLATAFORMA DE DESARROLLO DE SOFTWARE

10. CONCLUSION

11. RECOMENDACIN

12.BIBLIOGRAFIA

- 127 -
13. ANEXOS

13.1 BOLETA DE INSCRIPCIN

- 128 -
13.2 BOLETA DE PAGO

- 129 -
13.3 MANUAL DE USUARIO DE LA PGINA WEB

- 130 -
- 131 -
- 132 -
- 133 -
- 134 -
- 135 -
13.4 ENTREVISTAS:
Entrevista # 1

Entrevista para obtencin de requisitos

Objetivo: Conocer la estructura y el funcionamiento general del CAI.

Lugar: Oficina central del CAI, ubicada en la calle Murillo 120 entre Bolvar y
Arenales

Duracin: 10 minutos

Datos de la Empresa

Nombre: Cursos Autofinanciados de Idiomas (C.A.I.)

(X) Privada ( ) Estatal

Datos del Entrevistado Nombre: Lic. Olivia Lpez Rossel

Cargo: Coordinadora Acadmico Administrativa del CAI

Datos de los entrevistadores:

- Carlos Mauricio Pearanda Lino


- Jorge Luis Colque Guzmn

Preguntas:

Qu tipo de estructura organizacional tiene el CAI?

Dentro de la organizacin acadmico-administrativa el CAI cuenta con una


coordinadora administrativa, una coordinadora acadmica, dos secretarias, personal
de limpieza y mensajera, plantel docente de 19 profesores

Cuentan con algn sistema para el proceso de inscripcin?

Si, para el tema de las inscripciones, se contrat en su momento a un ingeniero para


que nos haga el sistema para realizar las inscripciones, dicho sistema tiene un
acceso al CPD de la universidad, al momento de la inscripcin se realiza una
Conciliacin cuando se cancela la boleta de Reserva con el cupo que se reserv
previamente en la pgina web, de esta forma el estudiante queda registrado.

- 136 -
Qu actividades realizan manualmente? En qu aspecto les gustara
mejorar?

Realizamos los ingresos por examen de nivel, examen de suficiencia, certificados de


estudio, certificado de histricos acadmicos, que son tambin con pagos previos
realizados en caja.

Cuentan con un Manual de procedimientos?

No, manual de procedimientos como tal no, solo contamos con un Reglamento
Interno para admisin, expulsin, personal administrativo, personal docente. Si
quieren conseguirlo debern pedir la autorizacin de la coordinadora de la carrera, a
travs de una carta solicitando una copia de dicho documento.

Manejan algn tipo de formulario?

Solo contamos con formularios para exmenes orales, los cuales fotocopiamos y
entregamos a los docentes.

- 137 -
Entrevista # 2

Entrevista para obtencin de requisitos

Objetivo: Entender a procesos acadmicos del CAI

Lugar: Oficina del CAI, ubicada en la calle Murillo 120 entre Bolvar y Arenales

Duracin: 20 minutos

Datos de la Empresa

Nombre: Cursos Autofinanciados de Idiomas (C.A.I.)

(X) Privada ( ) Estatal

Datos del Entrevistado

Nombre: Richard Prez Gmez

Cargo: - Consultor del CAI

Datos de los entrevistadores:

- Carlos Mauricio Pearanda Lino


- Arianne Erazo Morn

Preguntas:

Cmo eran los procesos antes y cmo son hoy?

Al principio todo era manual, lo mximo que se llegaba a hacer en sistema era hacer
planillas en Excel, manejaban un cardex por estudiante en una caja ordenado
alfabticamente, donde estaban todas la notas.

Cmo hacan las reservas?

Cuando reservaban ellos lo que hacan es hacer su oferta, por ejemplo haban 100
grupos, y haba 30 fichas por cada grupo, cuando se inscriban, vena todos y
reservaban y elegir su nivel, luego sacaban las fichas, con las fichas controlaban los
cupos.

Cmo hacan las inscripciones?

Luego de reservar ellos iban a pagar, tena que volver hacer su cola con su reciba y
recin se los inscriban o se los anotaba en una planilla, luego esa planilla lo
transcriban a Excel para pasrselos a los docentes.

- 138 -
Cmo es el proceso de inscripcin actualmente?

Se registra las ofertas, cada oferta tiene su diferente cupo, estos son asignados en
sistema. Los estudiantes acceden por internet para reservar su cupo, y stos van
disminuyendo a medida que van reservando. Se hace cola para el respectivo pago
en el campus universitario. Los recibos los llevan a la calle murillo. stos solo sirven
como respaldo.

Por qu se ven largas colas a la hora de pagar el curso?

Se necesita un cajero, para eso necesita hacer un trmite bastante burocrtico, por lo
que no se implementa la cobranza en el sistema, y se tiene que basar en las cajas de
la universidad y ellos tienen una caja propia.

Cmo es el proceso de evaluacin?

El docente al finalizar el trimestre registra todas las notas, todo se va a una central de
notas, eso sirve para saber el histrico, que nivel le toca, para armar el certificado
para el alumno, dice el nombre del docente y en qu grupo estuvo.

Cmo se realizan los pagos a los docentes?

El C.A.I. no se encarga de pagos a los docentes, es semi-privada, depende de la


carrera de idiomas, a los docentes les paga la facultad.

- 139 -

You might also like