Sei sulla pagina 1di 89

Sistema de Asistencia y Control Administrativo (SACA)

SISTEMA DE ASISTENCIA Y CONTROL


ADMINISTRATIVO
Anlisis del Sistema

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
CURSO: Taller de Ingeniera del Software I
PROFESOR: Ing. Snchez Espinoza, Javier
GRUPO:

Arica Andrade, Milton Bryan


Oscanoa Alvarado, Moises
Mori Orrillo, Edmundo

20101006I
20092022K
20101034B

Lima, 05 de septiembre de 2014

ndice
1

Sistema de Asistencia y Control Administrativo (SACA)

INTRODUCCIN.............................................................................................. 4
1. PLAN DE DESARROLLO DE SOFTWARE.......................................................5
1.1. PERFIL DEL PROYECTO.........................................................................5
1.1.1. OBJETIVOS...................................................................................... 5
1.1.2. MISIN........................................................................................... 5
1.1.3. VISIN............................................................................................ 5
1.2. LA EMPRESA (Ludus System S.A.C.).....................................................6
1.2.1. MISIN DE LA EMPRESA.................................................................6
1.2.2. VISIN DE LA EMPRESA.................................................................6
1.3. MODELO DEL NEGOCIO........................................................................6
1.3.1. MODELAMIENTO DE PROCESOS DEL NEGOCIO..............................6
1.4. DESCRIPCIN BREVE DEL PROYECTO.................................................13
1.5. METODOLOGA A USAR......................................................................13
AUP........................................................................................................ 13
SERIAL EN LO GRANDE...........................................................................14
ITERATIVO EN LO PEQUEO...................................................................14
ENTREGANDO VERSIONES INCREMENTALES EN EL TIEMPO...................15
DEBERA ADOPTAR AUP?......................................................................15
1.6. RECURSOS......................................................................................... 16
1.6.1. RECURSOS HARDWARE................................................................16
1.6.2. RECURSOS SOFTWARE.................................................................16
1.6.3. RECURSOS HUMANOS..................................................................16
1.7. ANALISIS COSTO/BENEFICIO...............................................................16
1.8. CRONOGRAMA DE ACTIVIDADES........................................................18
2. ANLISIS DEL SISTEMA............................................................................. 19
2.1. REQUERIMIENTOS DEL SISTEMA DE INFORMACIN............................19
2.1.1. DETERMINACIN DEL ALCANCE DEL SISTEMA.............................19
2.1.2. OBTENCIN DE REQUERIMIENTOS...............................................19
2.1.3. OBTENCIN DEL MODELO DE CASOS DE USO DEL SISTEMA........21
2.1.4. DETERMINACIN DE SUBSISTEMAS DE ANLISIS.........................32
2.1.5. ESPECIFICACIN DE LA INTERFACE DE USUARIO.........................32
2.1.6. IDENTIFICACIN DE PERFILES Y DIALOGOS..................................37
2.1.7. ESPECIFICACIN DEL COMPORTAMIENTO DINAMICO DE LA
INTERFACE............................................................................................. 37
2.1.8. ESPECIFICACIN DE FORMATOS DE IMPRESIN...........................38
2.2. ANLISIS DE LOS CASOS DE USO.......................................................42
2.3. ANLISIS DE CLASES..........................................................................49

Sistema de Asistencia y Control Administrativo (SACA)

2.4. ANLISIS DE PAQUETES......................................................................50


2.5. ESPECIFICACIN DE INTERFACES CON OTROS SISTEMAS..................50
3.

4.

DISEO DE SISTEMAS............................................................................ 51
3.1

DEFINICION DE LA ARQUITECTURA DEL SISTEMA.............................51

3.2

DISEO DE LA ARQUITECTURA DE SOPORTE....................................53

3.3

DISEO DE CASOS DE USO REALES.................................................55

3.4

DISEO DE CLASES..........................................................................62

3.5

DISEO FSICO DE DATOS................................................................63

3.6

GENERACION DE ESPECIFICACIONES DE CONSTRUCCION (DSI 6)....64

3.7

ESTABLECIMIENTO DE REQUERIMIENTOS DE IMPLANTACION (DSI 8) 69

Conectividad, Pruebas y Configuraciones................................................70


4.1.

Base de datos en SQL Server 2008.......................................................70

4.2.

Cdigo en SQL para la creacin de la BD...............................................70

4.3.

Cdigo utilizado en el aplicativo............................................................76

4.3.1.

Cdigo para conectarse a la base datos....................................76

4.3.2.

Cdigo de las clases en el paquete DAO...................................77

4.3.3.

Cdigo de las interfaces................................................................81

Sistema de Asistencia y Control Administrativo (SACA)

INTRODUCCIN
Actualmente en la FIIS la gestin de la asistencia y del control administrativo es
ineficiente, esta presenta problemas como:
Registro manual de la asistencia de los alumnos por parte de los docentes
Registro manual de la asistencia de los alumnos por parte de los mismos
alumnos
Redundancia, ya que a veces existe ms de un registro de asistencia para una
misma sesin de clase, lo que genera una mayor carga burocrtica
Poca flexibilidad que no permite considerar casos especiales dentro de la
asistencia como: alumnos que ingresan a la sesin de clase y se retiran al poco
tiempo, docentes que se retiran antes de su hora y otras casusticas
Falta de precisin que no permite conocer con exactitud la hora de llegada y la
hora de salida de los docentes y alumnos
Falta de automatizacin en los procesos
No existe una plataforma virtual donde alumnos y docentes puedan obtener y
gestionar la informacin de la asistencia
No existen las funcionalidades de generar reportes, avisos y alertas a los
docentes, alumnos y administrativos ante cualquier evento importante
Ante esta problemtica, el proyecto Sistema de Asistencia y Control Administrativo
(SACA) que se desarrollara en el presente trabajo busca ser la solucin no solo para la
problemtica que existe en la FIIS, sino para cualquier institucin que requiera
gestionar de manera eficaz y automatizada los procesos del control de asistencia y del
control administrativo.
La gestin de la asistencia en la FIIS-UNI es una tarea importante, que tiene como
principales stakeholders a:
Los docentes
Los alumnos
Las secretarias de las reas acadmicas y
4

Sistema de Asistencia y Control Administrativo (SACA)

Los coordinadores de las reas acadmicas

Siendo estos ltimos los beneficiarios del negocio.

1. PLAN DE DESARROLLO DE SOFTWARE


1.1. PERFIL DEL PROYECTO
1.1.1. OBJETIVOS
Los objetivos principales del presente proyecto estn enfocados a su
aplicacin en la FIIS-UNI, y son los siguientes:
Registrar, almacenar, organizar y usar eficazmente la informacin de la
asistencia de docentes y alumnos para su control administrativo
Agilizar las actividades del personal administrativo
Reducir la carga de trabajo que tienen los docentes en este proceso
Reducir el costo del tiempo utilizado en la gestin de la asistencia
Generar informes y reportes automatizados
As tambin se tienen objetivos secundarios los cuales son:
Mejorar la percepcin de la calidad de los servicios brindados por la
facultad
Concientizar a los alumnos sobre su asistencia
Implementacin de herramientas TI para el quehacer diario de la facultad

1.1.2. MISIN
El SACA tiene como misin:
Automatizar y optimizar la gestin de la asistencia y control
administrativo de los alumnos y docentes de la FIIS

1.1.3. VISIN
A largo plazo el SACA tiene como visin:
"Ser el ms robusto y escalable sistema de asistencia y control
administrativo, as como tambin satisfacer otras necesidades
derivadas o afines al proceso de asistencia y expandir su uso a
otras instituciones

Sistema de Asistencia y Control Administrativo (SACA)

1.2. LA EMPRESA (Ludus System S.A.C.)


1.2.1. MISIN DE LA EMPRESA

Satisfacer las necesidades tecnolgicas ligadas a las reas


Administrativas y de RR.HH. de las empresas, ofreciendo el mejor
servicio de mejora y automatizacin de procesos as como mediante
productos software eficaces.

1.2.2. VISIN DE LA EMPRESA

Ser la empresa lder de fabricacin de productos SW y de prestacin de


servicios TI relacionados al rea de Administracin y RR.HH. con
presencia internacional y con miras a abrir nuevas unidades de negocio
en torno a otras reas orgnicas.

1.3. MODELO DEL NEGOCIO


1.3.1. MODELAMIENTO DE PROCESOS DEL NEGOCIO
1.3.1.1. IDENTIFICACIN DE LOS PROCESOS DEL NEGOCIO
Nmer
o
1
2
3

Proceso de Negocio
Gestin de la asistencia de alumnos
Gestin de la asistencia de docentes
Gestin del control administrativo

Sistema de Asistencia y Control Administrativo (SACA)

1. GESTIN DE LA ASISTENCIA DE ALUMNOS

Sistema de Asistencia y Control Administrativo (SACA)

2. GESTIN DE LA ASISTENCIA DE DOCENTES

Sistema de Asistencia y Control Administrativo (SACA)

3. GESTIN DEL CONTROL ADMINISTRATIVO

Sistema de Asistencia y Control Administrativo (SACA)

10

1.3.1.2. IDENTIFICACIN DE LOS ACTORES DEL NEGOCIO


Actores principales:
Nmero

Actor

Roles/Responsabilidades

Alumno

Docente

Coordinador del rea acadmica

-Registrar asistencia a
clases
-Registrar asistencia diaria
-Registrar asistencia a
clases
-Validar los registros de
asistencia de los docentes
-Consultar los registros de
asistencia
-Utilizar los reportes de
asistencia de manera
eficaz
-Alertar y/o amonestar a
los docentes que incurran
en faltas

Actores secundarios:

Secretaria del rea acadmica

Oficina de RR.HH.

10

-Obtener los documentos


que el rea acadmica
requiera.
-Organizar
los
documentos segn las
polticas del rea
-Actualizar el rcord de
asistencia de docentes
-Descontar a los docentes
que incurran en faltas

Sistema de Asistencia y Control Administrativo (SACA)

11

1.3.1.3. DESCRIPCIN DE LOS CASOS DE USO DEL NEGOCIO


Sistema de Asistencia y Control Administrativo (SACA)

Registro de asistencia del


alumno
Alumno

Registro de clases del docente

Docente

Registro diario del docente

Gestion de consultas

Gestion de reportes
Coordinador del area
academica

Gestion de alertas

Nr
o.

Caso de uso

Registro de
asistencia del
alumno

Registro de clases
del docente

Registro diario del


docente

Gestin de
consultas

Gestin de reportes

Gestin de alertas

Descripcin
El alumno, con su carnet universitario y mediante
un lector de tarjetas de cdigo de barras,
registrara su ingreso y su salida a cada clase que
tenga.
El docente, mediante una plataforma web,
registrara el tema de su clase antes de
comenzarla y marcara su salida al terminarla.
Los docentes a tiempo completos, mediante una
plataforma web, registraran su hora de llegada y
posteriormente su hora de salida.
El coordinador del rea acadmica, mediante una
plataforma
web,
consultara
de
manera
personalizada y eficaz los registros de asistencia,
tanto actuales como pasados.
El coordinador del rea acadmica, mediante una
plataforma web, genera reportes con informacin
estadstica sobre los registros de asistencia.
El coordinador del rea acadmica, mediante una
11

Sistema de Asistencia y Control Administrativo (SACA)

plataforma
web,
personalizadas.

12
podr

generar

alertas

1.4. DESCRIPCIN BREVE DEL PROYECTO


La gestin de la asistencia en la FIIS-UNI es una tarea importante, que involucra a los
docentes, alumnos y a los coordinadores de las reas acadmicas principalmente,
habiendo tambin otros implicados de carcter secundario como las secretarias de las
reas acadmicas, el gerente de RR.HH., etc.
El presente proyecto busca lograr el:
Registro, almacenamiento, organizacin y uso de la informacin de la
asistencia de docentes y alumnos de manera eficaz y eficiente
Esto mediante la implementacin de herramientas tecnolgicas, el uso de
metodologas de anlisis y diseo de sistemas, el uso enfoque sistmico y de los
conocimientos de gestin y administracin con los que cuenta el presente grupo.

1.5. METODOLOGA A USAR


AUP
El Agile UP (AUP) es una versin simplificada de Rational Unified Process (RUP).
Este describe un enfoque simple y fcil de entender para el desarrollo de software
usando tcnicas y conceptos que an se mantienen vigentes en RUP.
La Figura 1 representa el ciclo de vida del AUP. Lo primero que se debe notar es que
las disciplinas han cambiado.
Primero, la disciplina de Modelado abarca las disciplinas de Modelado del Negocio, de
Requerimientos y de Anlisis y Diseo de RUP. El modelado es una parte importante
en AUP, como usted puede ver, pero no domina el proceso -- puede seguir gil
creando modelos y documentos los cuales son apenas lo suficientemente bueno.
Segundo, las disciplinas de la Administracin de la Configuracin y Cambios ahora es
la disciplina de la Administracin de la Configuracin. En el desarrollo gil las
actividades de administracin de cambios son tpicamente parte del esfuerzo de la
administracin de requerimientos, la cual es parte de la disciplina de Modelado.
Figura 1. El ciclo de vida del Agile UP.

12

Sistema de Asistencia y Control Administrativo (SACA)

13

SERIAL EN LO GRANDE
La naturaleza serial en Agile UP es capturada en cuatro fases:
INICIACIN. El objetivo es identificar el alcance inicial del proyecto, una arquitectura
potencial de su sistema, y obtener la financiacin inicial del proyecto y la aceptacin
del involucrado.
ELABORACIN. El objetivo es mejorar la arquitectura del sistema.
CONSTRUCCIN. El objetivo es construir software funcional en una base regular e
incremental, la cual cumpla con las necesidades de prioridad ms alta de los
involucrados de su proyecto.
TRANSICIN. El objetivo es validar y desplegar su sistema en su ambiente de
produccin.

ITERATIVO EN LO PEQUEO
Las disciplinas son ejecutadas en una manera iterativa, definiendo las actividades en
las cuales los miembros del equipo ejecutan para construir, validar y liberar software
funcional que cumpla con las necesidades de sus involucrados. Las disciplinas son:
MODELADO. El objetivo de esta disciplina es entender el negocio de la organizacin,
el problema de dominio que se aborda en el proyecto, e identificar las soluciones
viables para manejar el dominio del problema.
IMPLEMENTACIN. El objetivo de esta disciplina es transformar su modelo(s) en
cdigo ejecutable y llevar a cabo un nivel bsico de las pruebas, en particular, la
unidad de prueba.
PRUEBAS. El objetivo de esta disciplina es ejecutar una objetiva evaluacin para
asegurar la calidad. Esto incluye la deteccin de defectos, validaciones de que el
sistema funciona como fue diseado, y verificar que se cumplan los requerimientos.
DESPLIEGUE. El objetivo de sta disciplina es planificar la entrega del proyecto de
desarrollo y ejecutar el plan, para dejar disponible el sistema al usuario final.

13

Sistema de Asistencia y Control Administrativo (SACA)

14

ADMINISTRACIN DE LA CONFIGURACIN. La meta de esta disciplina es manejar


el acceso a sus productos de trabajo de proyecto. Esta no slo incluye el rastreo de
versiones del trabajo del producto en el tiempo, sino que tambin el control y
administracin de los cambio estos productos.
ADMINISTRACIN DEL PROYECTO. El objetivo de esta disciplina es dirigir las
actividades a lo largo del proyecto. Esto incluye la administracin del riesgo, direccin
del personal (asignacin de tareas, rastreo del progreso, etc.), y coordinacin con
personas y sistemas fuera del alcance del proyecto para asegurar su liberacin a
tiempo y dentro del presupuesto.
ENTORNO. El objetivo de esta disciplina es soportar el resto del esfuerzo asegurando
que el proceso apropiado, las guas (normas y directrices), y herramientas (hardware y
software) estn disponibles para cuando el equipo las necesite.

ENTREGANDO VERSIONES INCREMENTALES EN EL TIEMPO


En otras palabras, en lugar del enfoque "Big Bang" donde se entrega todo el software
en una sola liberacin, ahora se realiza por partes (p.e. versin 1, versin 2, y as
sucesivamente). Los equipos de AUP tpicamente liberan versiones desarrolladas al
final de cada iteracin en un rea(s) de prueba de pre-produccin y/o demostraciones
(ver Figura 1). Una versin de desarrollo de una aplicacin es algo que podra ser
liberado en la produccin si se ponen a travs de su pre-produccin de aseguramiento
de la calidad (QA), pruebas, y proceso de despliegue. En la Figura 2 usted ver que la
primera versin de produccin comnmente toma ms tiempo de entrega que otras
versiones subsecuentes; en la primera liberacin de un sistema probablemente
necesita colocar mucha caera en su lugar y su equipo probablemente no cuente
con lo suficiente para convertirlo en algo colaborativamente eficiente. La primera
versin de produccin puede tardar 12 meses en liberacin, la segunda nueve meses
para liberacin, y las dems liberaciones son entregadas cada 6 meses. Un enfoque
temprano en el caso del despliegue no solo le permite evitar problemas, le permite
aventajarse en su experiencia durante el desarrollo, por ejemplo, cuando se est
desplegando software en un ambiente deben tomarse notas de qu funciona y de qu
no, estas pueden servir como columna vertebral para la instalacin de scripts.
Figure 2. Versiones incrementales en el tiempo.

DEBERA ADOPTAR AUP?


Si usted desea algo entre XP y lo tradicional como RUP, un proceso que es gil pero
incluye explcitamente actividades y productos del trabajo que usted est
14

Sistema de Asistencia y Control Administrativo (SACA)

15

acostumbrado a hacer, entonces es probable que AUP sea para usted. Muchas
organizaciones estn dudando de XP ya que parecer ser muy liviana. XP no muestra
explcitamente cmo crear algunos de los productos de trabajo los cuales la
administracin desea ver. Este es una actitud desafortunada porque XP es un proceso
grandioso. Por el otro lado del espectro est RUP, en el cual la administracin parece
ser muy adorable, pero los desarrolladores dudan del gran nmero de entregables.
Esto es tambin desafortunado porque el RUP tiene mucho que ofrecer, y se puede
reducir a algo muy til (lo cual es exactamente lo que IBM Rational le recomienda
hacer). AUP se encuentra entre los dos, adopta muchas de las tcnicas giles de XP y
otros procesos giles que an mantienen la formalidad de RUP.
El AUP no es para todos. El AUP es ni el mejor ni el peor de ambos mundos, usted es
el juez. Para algunos Programadores Extremos es probable que encuentren a AUP
bastante pesada, y "los usuarios de RUP tradicionales" lo encontrarn muy liviana.

1.6. RECURSOS
1.6.1. RECURSOS HARDWARE
PARA LA FABRICACION:

3 PCs Intel Core i3 CPU 3.20 GHz 4 GB RAM


1 Lectora de cdigo de barras de tarjetas

PARA LA IMPLEMENTACION EN LA FIIS:


20 PCs Intel Core i3 CPU 3.20 GHz 4 GB RAM
20 Lectoras de cdigo de barras de tarjetas
Host

1.6.2. RECURSOS SOFTWARE

Java JDK 1.8


Java JEE 1.6
Frameworks: Hibernate, Spring, Struts, iBATIS,
Angular.JS, Jquery
Servidores: Apache Tomcat 1.7, GlassFishServer 4
Base de datos MySQL
SCM Git
Maven
GIMP

JSON,

Node.JS,

1.6.3. RECURSOS HUMANOS


El grupo est compuesto de 3 personas, especializados en el anlisis, diseo y
manejo de base de datos, as como en la programacin del lado del servidor
(backend) y del lado del cliente (frontend). Pero siempre envueltos en la visin
de todo el proyecto

15

Sistema de Asistencia y Control Administrativo (SACA)

16

1.7. ANALISIS COSTO/BENEFICIO


Entre los costos tomados en cuenta para realizar el presente proyecto, se encuentran:

Lectoras de carnet universitario (Que se encontraran en cada saln) ( s/ 100 por


unidad )
Las horas hombre de los integrantes del grupo al desarrollar el sistema (Aprox.
70 das)
Mantenimiento a los equipos de lectura de cdigo y las pginas web utilizadas
Software a utilizar para realizar el proyecto

LICENCIAS
MindGenius
Netbeans, Eclipse
GIMP
MySQL
Todos los frameworks
JDK, JEE
GIT, Maven
Hosting
Domine

COSTO
Gratuito
Gratuito
Gratuito
Gratuito
Gratuito
Gratuito
Gratuito
Gratuito
Gratuito

Y los beneficios a obtener


Docentes y/o Alumnos

Registros de asistencia de manera mucho ms rpida de lo que se utiliza ahora


Registro de asistencia de manera efectiva y libre de excepciones que siempre
estn presentes
Control de asistencia de los alumnos pertenecientes a su curso, y estrategias
para lograr un mayor porcentaje de asistencia

Para la empresa

Acceso a datos histricos de manera rpida y disponible a todas horas del da


Conocimiento de la cantidad de asistencia en una clase, saln o semestre
Estudios sobre el comportamiento de la asistencia de los docentes y alumnos
Informacin disponible para poder tomar decisiones sobre como atacar el
problema de inasistencias
Notificaciones sobre faltas de manera rpida y automatizada
Ahorro del espacio que hasta ahora se utiliza para guardar los partes de
asistencia

16

Sistema de Asistencia y Control Administrativo (SACA)

1.8. CRONOGRAMA DE ACTIVIDADES

17

17

Sistema de Asistencia y Control Administrativo (SACA)

18

2. ANLISIS DEL SISTEMA


2.1. REQUERIMIENTOS DEL SISTEMA DE
INFORMACIN
2.1.1. DETERMINACIN DEL ALCANCE DEL SISTEMA

2.1.2. OBTENCIN DE REQUERIMIENTOS

Requerimientos Funcionales
Nmer Requerimiento
o

RF1

RF2

RF3

RF4

Descripcin

El sistema permite que el


docente registre su
Registro de
asistencia a clases e ingrese
asistencia a clases
el tema a tratar, tambin
del docente
deber registrar la hora de
su salida
El sistema permite que el
Registro de
docente registre su
asistencia diaria del
asistencia diaria registrando
docente a tiempo
tanto su hora de llegada
completo
como su hora de salida
El sistema permite que el
Registro de
alumno usando su carnet
asistencia a clases
universitario registre la hora
del alumno
de entrada y salida al aula
en el que tiene clases
El sistema permite que el
Consultar historial
docente realice consultas y
de asistencia a
visualice su historial de
clases del docente
asistencia a clases
18

Priorid
ad

Sistema de Asistencia y Control Administrativo (SACA)

El sistema permite que el


docente a TC realice
consultas y visualice su
historial de asistencia diaria
El sistema permite que el
alumno realice consultas y
visualice su historial de
asistencia a clases

RF5

Consultar historial
de asistencia diaria
de docentes a TC

RF6

Consultar historial
de asistencia a
clases del alumno

RF7

Generacin de
documentos
oficiales

El sistema permitir al coordinador


realizar consultas a la BD con los
registros de asistencia, en un
periodo determinado.

Generacin de
reportes

El
sistema
le
permitir
al
coordinador reportar la informacin
en documentos en formato pdf o
Word.

Generacin de
alertas

El
sistema
le
permitir
al
coordinador del rea acadmica
saber que docentes y que alumnos
ha faltado y emitir mensajes a su
correo electrnico.

RF8

RF9

19

Requerimientos no Funcionales
Nmer Requerimiento
Descripcin
o

RNF1

Desempeo

RNF 2

Fiabilidad

RNF 3

Portabilidad

RNF 4

Interoperabilidad

RNF 5

Implementacin

RNF 6

Legales

RNF 7

Organizacional

RNF 8

Formato

El tiempo de respuesta de
las consultas a la BD debe
demorar mximo 0.5
segundos
El sistema debe ejecutarse
correctamente
La plataforma web debe
poder ser ejecutada desde
cualquier navegador web
La plataforma web debe
poder trabajar en conjunto
con la base de datos
Se priorizara el uso de
software libre en el
desarrollo de los programas
del sistema
El sistema debe cumplir el
reglamento de asistencia de
la FIIS
La documentacin debe
mantenerse de manera
virtual
Todo documento de registro
de asistencia y afines se
manejaran de manera virtual
(formato PDF) con la
19

Priorid
ad

4
1
4
1

1
3
1

Sistema de Asistencia y Control Administrativo (SACA)

RNF9

Presentacin

RNF10 Seguridad

RNF11

Disponibilidad del
sistema

20

posibilidad de poder firmarse


digitalmente e imprimirse
La interfaz grfica de usuario
debe facilitar el aprendizaje
intuitivo y rpido del
funcionamiento del sistema,
con un estilo simple y
elegante
El sistema debe implementar
las medidas de seguridad
mnimas para prevenir
intrusiones y robo de datos.
El sistema debe estar
disponible las 24 horas del
da.

2.1.3. OBTENCIN DEL MODELO DE CASOS DE USO DEL


SISTEMA

20

Sistema de Asistencia y Control Administrativo (SACA)

21

Sistema de Asistencia y Control Administrativo (SACA)

Registro de asistencia a clases del


alumno

Consultar historial de asistencia a


clases del alumno

Alumno

Registro de asistencia a clases del


docente

Registro de asistencia diaria del


docente a tiempo completo
Docente

Consultar historial de asistencia a


clases del docente

Consultar historial de asistencia diaria


de docentes a TC

Generacin de documentos oficiales

Generacin de reportes
Coordinador del area
academica
Generacin de alertas

Descripcin de Casos de Uso del Sistema


1.- Caso de Uso del Sistema Registro de asistencia a clases del alumno
2.- Descripcin del caso de uso
Los alumnos registraran su hora de llegada y salida a sus clases respectivas

21

Sistema de Asistencia y Control Administrativo (SACA)

22

3.- Actor(es)
Alumno

4.- Precondiciones
BD con la informacin del carnet universitario de todos los alumnos
BD con la informacin de los horarios
5.- Postcondiciones
Consulta de historial de asistencia del alumno
6.- Pasos (Flujo de Eventos)
Nro Accin del Actor
Respuesta del Sistema
1
El alumno pasa sur carnet por la lectora El sistema captura el cdigo del alumno y
de cdigo de barra
compara con los horarios de la BD, si el
alumno tiene clase.
Si no se ha registrado la hora de
ingreso
Si se encuentra en el rango
de 15 min, el sistema
reproduce un sonido y
registra la asistencia
Sino, el sistema registra la
asistencia pero como una
tardanza
Si ya se registr la hora de
ingreso
Si se encuentra en el rango
de 15 min de salida, el
sistema reproduce un sonido
y registra la salida
Sino el sistema no realiza
nada
Si el alumno no tiene clase
No se puede realizar el registro.
2

El alumno al escuchar el sonido sabe que


su registro de entrada o salida se realiz
correctamente y se retira.
7.- Requerimiento asociado
RF1
8.- Prototipo de interfaz de usuario

1.- Caso de Uso del Sistema Consultar historia de asistencia a clases del alumno
2.- Descripcin del caso de uso
Por medio de la plataforma web, los alumnos podrn ver su historial de asistencia
3.- Actor(es)

22

Sistema de Asistencia y Control Administrativo (SACA)

23

Alumno

4.- Precondiciones
BD con la informacin de las asistencias

5.- Postcondiciones
Conocimiento del nmero de faltas incurridas por el alumno

6.- Pasos (Flujo de Eventos)


Nro
Accin del Actor
Respuesta del Sistema
1
El alumno ingresa su cdigo y una clave El sistema captura el cdigo del alumno,
que ya se le brindo
realiza una bsqueda en todos los
registros de asistencia de alumnos, y
muestra todos los registros para este
alumno en especial as como una opcin
de bsqueda avanzada
2
Al seleccionar la bsqueda avanzada, se Segn los filtros el sistema mostrara la
muestran las opciones de elegir curso,
informacin requerida
da, estado de asistencia
3
El alumno tiene la opcin de imprimir la
ficha o de salir del sistema
7.- Requerimiento asociado
RF2
8.- Prototipo de interfaz de usuario

1.- Caso de Uso del Sistema Registro de asistencia a clases del docente
2.- Descripcin del caso de uso
El sistema permite que el docente registre su asistencia a clases e ingrese el tema a
tratar, tambin deber registrar la hora de su salida
3.- Actor(es)
Docente
4.- Precondiciones

23

Sistema de Asistencia y Control Administrativo (SACA)

24

Ingreso a la plataforma web


BD con la informacin de los horarios y docentes
Validacin del docente a registrarse
5.- Postcondiciones
Consultar historial de asistencia a clases del docente
Generacin de documentos oficiales
Generacin de reportes
6.- Pasos (Flujo de Eventos)
Nro Accin del Actor
1

El
docente
Asistencia

Respuesta del Sistema

selecciona

el

menSi el docente tiene clases en ese


momento:
El sistema muestra el botn
Registrar Asistencia habilitado
Sino:
No se puede realizar el registro.
Ir al paso 4
El docente selecciona la opcin RegistrarSi el docente no ha registrado su hora de
Asistencia
ingreso ni ingresado el tema de su clase:
El sistema muestra un cuadro de
texto e indica que se ingrese el
tema de clase.
El sistema habilita la opcin
Guardar hora de ingreso
Sino:
El sistema habilita la opcin
Guardar hora de salida
Si el docente no ha registrado su hora de El sistema muestra los datos asociados y
ingreso ni ingresado el tema de su clase: un mensaje de xito en el registro.
El docente ingresa el tema de
clase y selecciona la opcin
Guardar hora de ingreso
Sino:
Guardar hora de salida

El docente sale del sistema

7.- Requerimiento asociado

RF1
RNF1, RNF2, RNF3, RNF4, RNF5, RNF6, RNF7, RNF9, RNF10, RNF11
8.- Prototipo de interfaz de usuario
GUI

Registro de asistencia diaria del docente a tiempo


completo
2.- Descripcin del caso de uso
El sistema permite que el docente registre su asistencia diaria registrando tanto su hora
de llegada como su hora de salida
3.- Actor(es)
Docente (a tiempo completo)
1.- Caso de Uso del Sistema

24

Sistema de Asistencia y Control Administrativo (SACA)

25

4.- Precondiciones
Ingreso a la plataforma web
BD con la informacin de los horarios y docentes
Validacin del docente a registrarse
5.- Postcondiciones
Consultar historial de asistencia diaria de docentes a TC
Generacin de documentos oficiales
Generacin de reportes
6.- Pasos (Flujo de Eventos)

Nro Accin del Actor


1

El
docente
Asistencia

selecciona

Respuesta del Sistema


el

menSi el docente es a tiempo completo:


El sistema muestra el botn
Registrar Asistencia habilitado
Sino:
No se puede realizar el registro.
Ir al paso 4
El docente selecciona la opcinSi el docente no ha registrado su hora de
Registrar Asistencia
ingreso ni de salida:
El sistema habilita la opcin
Guardar hora de ingreso diario
Si el sistema tiene registrado la hora de
ingreso pero no la de salida:
El sistema habilita la opcin
Guardar hora de salida diaria
Sino:
No se puede realizar el registro.
Ir al paso 4
Si el docente no ha registrado su hora de El sistema muestra los datos asociados y
ingreso ni de salida:
un mensaje de xito en el registro.
Selecciona la opcin Guardar
hora de ingreso diario
Sino:
Selecciona la opcin Guardar
hora de salida diaria

El docente sale del sistema

7.- Requerimiento asociado

RF2
RNF1, RNF2, RNF3, RNF4, RNF5, RNF6, RNF7, RNF9, RNF10, RNF11
8.- Prototipo de interfaz de usuario
GUI

1.- Caso de Uso del Sistema Consultar historial de asistencia a clases del docente
2.- Descripcin del caso de uso
El sistema permite que el docente realice consultas y visualice su historial de asistencia
a clases
3.- Actor(es)
Docente
4.- Precondiciones

25

Sistema de Asistencia y Control Administrativo (SACA)

26

Ingreso a la plataforma web


BD con la informacin de los horarios y docentes
Validacin del docente a registrarse
Registro de asistencia a clases del docente
5.- Postcondiciones

Generacin de alertas
6.- Pasos (Flujo de Eventos)

Nro Accin del Actor


1
2

Respuesta del Sistema

El
docente
selecciona
el
menEl sistema muestra la opcin Historial de
Consulta
asistencia a clases
El docente selecciona la opcin Historial El sistema muestra el historial de
de asistencia a clases
asistencia del docente con todos los
detalles de esta, ordenados desde la ms
reciente hasta el ms antiguo.
Se habilitan opciones para filtrar la
informacin y los detalles que se puedan
visualizar.
Estos se realizaran si se presiona la
opcin Consulta avanzada
Si el docente quiere filtrar la informacin, El sistema muestra el historial filtrado y
modifica los parmetros que se muestrancon los detalles seleccionados, dando la
y luego:
opcin de realizar otra Consulta
Selecciona la opcin Consultaavanzada
avanzada
Sino:
Visualiza la informacin tal como
est.
Ir al paso 4
El docente sale del sistema

7.- Requerimiento asociado

RF3
RNF: Todos
8.- Prototipo de interfaz de usuario
GUI

1.- Caso de Uso del Sistema Consultar historial de asistencia diaria de docentes a TC
2.- Descripcin del caso de uso
El sistema permite que el docente a TC realice consultas y visualice su historial de
asistencia diaria
3.- Actor(es)
Docente (a tiempo completo)
4.- Precondiciones

26

Sistema de Asistencia y Control Administrativo (SACA)

27

Ingreso a la plataforma web


BD con la informacin de los horarios y docentes
Validacin del docente a registrarse
Registro de asistencia diaria del docente a tiempo completo
5.- Postcondiciones

Generacin de alertas
6.- Pasos (Flujo de Eventos)

Nro Accin del Actor


1

El
docente
Consulta

Respuesta del Sistema

selecciona

el

menSi el docente es a tiempo parcial:


El sistema muestra la opcin
Historial de asistencia diario
Sino:
No se puede realizar la consulta
Ir al paso 4
El docente selecciona la opcin Historial El sistema muestra el historial de
de asistencia diario
asistencia del docente con todos los
detalles de esta, ordenados desde la ms
reciente hasta el ms antiguo.
Se habilitan opciones para filtrar la
informacin y los detalles que se puedan
visualizar.
Estos se realizaran si se presiona la
opcin Consulta avanzada
Si el docente quiere filtrar la informacin, El sistema muestra el historial filtrado y
modifica los parmetros que se muestrancon los detalles seleccionados, dando la
y luego:
opcin de realizar otra Consulta
Selecciona la opcin Consultaavanzada
avanzada
Sino:
Visualiza la informacin tal como
est.
Ir al paso 4
El docente sale del sistema

7.- Requerimiento asociado

RF4
RNF: Todos
8.- Prototipo de interfaz de usuario
GUI

1.- Caso de Uso del Sistema

Gestin de documentos oficiales

2.- Descripcin del caso de uso


El coordinador del rea acadmica realizar consultas para visualizar el historial de asistencia de
los docentes y de los alumnos.
3.- Actor(es)

Coordinador del rea Acadmica.


4.- Precondiciones

27

Sistema de Asistencia y Control Administrativo (SACA)

1.- Caso de Uso del


Gestin de reportes
Sistema

Ingresodel
a la plataforma
2.- Descripcin
caso de uso

28

Registro de asistencia a clases

Registro
de asistencia
diariay visualizan el registro de asistencia
El coordinador
del rea
consulta

Firmado
de (tanto
parte de asistencia
de docentes
firmado
de clases como de asistencia diaria).
5.- Postcondiciones

3.- Actor(es)

Se sabr que docentes y que alumnos inasisterion

Coordinador
del(Flujo
readeacadmica
6.- Pasos
Eventos)

4.- Precondiciones
Nro Accin del Actor

Respuesta del Sistema

CAA entra a la opcin de Consultas delEl sistema muestra la pantalla de consultas


Ingreso 1a la El
plataforma
men.
Si el docente es a tiempo completo
Registro de asistencia a clases
El sistema muestra todas las opciones
Registro de asistencia diaria
habilitadas
Firmado de parte de asistencia
Sino
El sistema
la opcin Historial de
Validacin del coordinador del rea para ingresar
a lamuestra
plataforma
asistencia
diaria
deshabilitado.
virtual
2
El docente selecciona una opcin de consultaSi se selecciona Historial de asistencia diario:
5.- Postcondiciones
y los parmetros correspondientes.

El sistema carga las fechas y las reas de


donde se tiene el historial de asistencia diario.
Justificacin de Faltas
Ir al paso 3
Generacin de descuentos por inasistencias Si se selecciona Historial de asistencia a clase:
El sistema carga las fechas y las reas de
donde se tiene el historial de asistencia
6.- Pasos (Flujo de Eventos)
a clase.
Ir al paso 4
Nro
Accin del Actor
Respuesta
del Sistema
3
El CAA selecciona el rea, la fecha inicial y laEl sistema obtiene el registro de asistencia
fecha final
de consulta. el
docentescon
para el rea
1
El Coordinador
selecciona
El sistemadiario
abre de
unalos
ventana
seleccionada, entre la fecha inicial y final.

men consulta

todas las opciones habilitadas.


Ir al paso 5

El Coordinador selecciona
El sistema muestra la lista de
4
Elde
CAA
selecciona
el rea, yla fecha
inicial y laEldiaria
sistema
cualquiera
las
2 opciones
asistencia
o obtiene
el de el registro de asistencia a
fecha final de consulta.
clase de los docentes para el rea
los parmetros con los que va a asistenciaseleccionada,
a clases en
lalafecha
entre
fecha inicial y final.
consultar la asistencia de los
seleccionada, tanto firmada
Ir al paso 5.
docentes
como no firmada.

El Coordinador sale del sistema

7.- Requerimiento asociado

7.- Requerimiento asociado

8.- Prototipo de interfaz de usuario

8.- Prototipo de interfaz de usuario

28

Sistema
Asistencia
Administrativo
(SACA)
1.- Caso dede
Uso
del Sistemay Control
Generar
de alertas

29

2.- Descripcin del caso de uso


Se enviar un mensaje al correo electrnico del alumno, en el momento en el que la cantidad de
faltas exceda una cantidad determinada, buscando que NO sea eliminado del curso por
inasistencia; tambin se enviara un mensaje al correo del docente que haya faltado a clases.
3.- Actor(es)

Coordinador del rea acadmica


4.- Precondiciones

Ingreso a la plataforma

El alumno sabr la cantidad de veces que ha faltado a una determinada clase.

Registro de asistencia a clases


Registro de asistencia diaria
Firmado de parte de asistencia

Validacin del coordinador del rea para ingresar a la plataforma virtual


5.- Postcondiciones

Que cantidad de faltas debe completar para ser eliminado del curso.
6.- Pasos (Flujo de Eventos)

Nro Accin del Actor


1

Respuesta del Sistema

El CAA ingresa a la interface de gestin deEl sistema muestra las dos opciones que
alertas.
existen:

Alertas para el docente


Alertas para el alumno.
El coordinador selecciona la opcin AlertasEl sistema lee el estado de cada uno de los
para el alumno.
alumnos y actualiza la cantidad de faltas de
cada uno para ese curso.
Si el contador >= max
El sistema emite un mensaje al
correo
electrnico del alumno, indicndole la
cantidad de faltas que lleva por curso.
Sino
El sistema ordena a los alumnos en una
tabla de acuerdo a su cantidad de faltas y
por curso.
El sistema emite un mensaje diciendo
proceso concluido.
El coordinador vuelve a la interface de Gestin El sistema muestra las dos opciones:
de alertas
- Alertas para el docente

Alertas para el alumno.


El coordinado selecciona la opcin alertasEl sistema revisa el horario de los docentes
para el docente.
y la asistencia de los mismos.
Si el docente no ha registrado su hora de
ingreso.
El sistema emite un mensaje a su
correo electrnico indicndole la falta.
Si no, Si el docente ha registrado su hora de
ingreso pero no su asistencia a clase.
El sistema emite un mensaje a su correo
indicando la falta. Pero a su vez manda
la opcin de proponer un da de
recuperacin de clase.
El sistema emite un mensaje diciendo
proceso concluido.

29

Sistema de Asistencia y Control Administrativo (SACA)

30

2.1.4. DETERMINACIN DE SUBSISTEMAS DE ANLISIS

30

Sistema de Asistencia y Control Administrativo (SACA)

31

ReglasDeNegocio

<<import>>

<<import>>

<<import>>
InterfacesDeUsuario

GestorDeOperaciones

EntidadesDelSistema

2.1.5. ESPECIFICACIN DE LA INTERFACE DE USUARIO

LOGIN

31

Sistema de Asistencia y Control Administrativo (SACA)

MENU PRINCIPAL

REGISTRO DE ASISTENCIA

32

32

Sistema de Asistencia y Control Administrativo (SACA)

33

CONSULTA HISTORIAL DEL ASISTENCIA


(Docentes/Alumnos)

33

Sistema de Asistencia y Control Administrativo (SACA)

34

HISTORIAL DE ASISTENCIA A CLASE


(Docentes/Alumnos)

34

Sistema de Asistencia y Control Administrativo (SACA)

HISTORIAL DE ASISTENCIA DIARIA

CONSULTAS ADMINISTRATIVA

35

35

Sistema de Asistencia y Control Administrativo (SACA)

36

CONSULTA ASISTENCIA A CLASES DEL DOCENTE

CONSULTA ASISTENCIA DIARIA DEL DOCENTE

36

Sistema de Asistencia y Control Administrativo (SACA)

37

2.1.6. IDENTIFICACIN DE PERFILES Y DIALOGOS


1. Nombre del Perfil:

Alumno

2. Opciones a las que tiene acceso

Registro de asistencia a clases del alumno

Consulta de historial de asistencia del alumno

Generacin de alertas
3. Tipo de Acceso:
Lectura, Insercin.
1. Nombre del Perfil:
Docente
2. Opciones a las que tiene acceso

Registro de asistencia diaria

Registro de asistencia a clases

Consulta de historial de asistencia

Generacin de alertas
3. Tipo de Acceso:
Lectura, Insercin.
1. Nombre del Perfil:
Coordinador del rea
2. Opciones a las que tiene acceso

Validar el registro de asistencia

Consulta el registro de asistencia de los docentes

Generacin de documentos oficiales

Generacin de reportes

Generacin de alertas
3. Tipo de Acceso:
Lectura, Insercin, Modificacin, Eliminacin

2.1.7. ESPECIFICACIN DEL COMPORTAMIENTO DINAMICO DE


LA INTERFACE

37

Sistema de Asistencia y Control Administrativo (SACA)

38

2.1.8. ESPECIFICACIN DE FORMATOS DE IMPRESIN


Reporte de asistencia diaria por Docente:

38

Sistema de Asistencia y Control Administrativo (SACA)

Reporte de asistencia a clases por Docente:

39

39

Sistema de Asistencia y Control Administrativo (SACA)

40

Reporte de asistencia diaria (para el coordinador acadmico):

Reporte de Asistencia a clases (para el coordinador acadmico)::


40

Sistema de Asistencia y Control Administrativo (SACA)

41

2.2. ANLISIS DE LOS CASOS DE USO

41

Sistema de Asistencia y Control Administrativo (SACA)

42

42

Sistema de Asistencia y Control Administrativo (SACA)

43

Registrar asistencia diaria


<<GUI>>
IRegistroDiario

<<Entidad>>
:LineaRegistroDiario

<<Control>>
CRegistroDiario

Docente
1: seleccionaAsistencia
2: consultaRegistroDiario
alt

Si es docente a tiempo completo


alt

3: consultarHoraLlegada( )

Si no registro llegada
4: habilitarRegHoraLlegada

Si registro llegada
5: habilitarRegHoraSalida

Si no es docente a tiempo completo


6: deshabilitarRegHoraLlegada
7: deshabilitarRegHoraSalida

alt

Si no registro llegada
8: seleccionarRegHoraLlegada
9: regHoraLlegada
10: grabarHoraLlegadaDiario( )
11: actualizarEstadoLineaRegDiario( )
12: actualizarEstadoTCompleto( )
13: deshabilitarRegHoraLlegada

14: mostrarConformidadRegHoraLlegada

Si no registro llegada
15: seleccionarRegHoraSalida
16: regHoraSalida
17: grabarHoraSalidaDiario( )
18: actualizarEstadoLineaRegDiario( )

19: actualizarEstadoTCompleto( )
20: deshabilitarRegHoraSalida

21: mostrarConformidadRegHoraSalida

43

<<Entidad>>
:DocenteTiempoCompleto

Sistema de Asistencia y Control Administrativo (SACA)

44

Registrar asistencia a clases


<<GUI>>
IRegistroClase

<<Entidad>>
:ClaseProgramada

<<Control>>
CRegistroClase

<<Entidad>>
:LineaRegistroClase

<<Entidad>>
:Aula

Docente

1: seleccionaAsistencia
2: consultarHoraClase
3: consultarHoraClase( )
alt

Si tiene clase
4: habilitarRegAsistenciaClase

Si no tiene clase
5: deshabilitarRegAsistenciaClase

6: seleccionaAsistenciaClase

7: mostrarCuadroIngresoTema

8: ingresarTema(tema)

9: grabarDatos

10: actualizarEstadoClaseProg( )
11: grabarHoraLlegadaClase( )
12: grabarTemaClase( )
13: actualizarEstadoLineaRegClase( )

15: actualizarEstadoAula( )

16: mostrarConformidadRegClase

Consultar histori al de asistencia a clases del docente

<<GUI>>
IConsultaHistorial

<<Controlador>>
CConsultaHistorial

<<Entidad>>
:ClaseProgramada

Docente
Consultar historial de asistencia diaria de docentes a TC

1: seleccionaConsultar

<<GUI>>
IConsultaHistorial2

Docente2

<<Controlador>>
CConsultaHistorial2

<<Entidad>>
2:DocenteTiempoCompleto

<<Entidad>>
2:LineaRegistroDiario

2: m ostrarOpciones
1: seleccionaConsultar
2: verificarDocente
3: verificarDocente

3: seleccionaOpcionHistorialClase

4: existeDocenteTC

4: cargarOpcionesClase
alt

existe != null

5: obtenerFechas( )

5: habilitarHistorialRegDiario

6: obtenerCursos( )
7: obtenerCodClaseProg

existe == null

8: obtenerHistorialClase(codClaseProg)

6: deshabilitarHistorialRegDiario

9: mostrarHistorialClase
10: mostrarOpcionesClase

opt

[existe != null]

seleccionarCurso
7:11:
seleccionaOpcionHistorialDiario
12: seleccionarFechaIn

8: cargarOpcionesDiario
9: obtenerFechas

13: seleccionarFechaFin

10: obtenerHistorialDiario

14: verHi storialClase

15: obtenerCodClaseProg( )

11: mostrarHistorialDiario

16: obtenerHistorialClase(codClaseProg)

12: mostrarOpcionesDiario

17: mostrarHistorialClase

13: seleccionarFechaIn
14: seleccionarFechaFin

15: verHistorialDiario

44
17: mostrarHistorialDiario

16: obtenerHistorialDiario

<<Entidad>>
:LineaRegistroClase

Sistema de Asistencia y Control Administrativo (SACA)

45

45

46

Sistema de Asistencia y Control Administrativo (SACA)


Gestion de Consultas
<<GUI>>
IConsultaRegistro

<<GUI>>
IGestionReportes

<<Entidad>>
:RegistroClase

<<Entidad>>
:RegistroDiario

Coordinador

1: seleccionaConsultar
2: mostrarPantallaConsulta

alt

Registro de asistencia a clase


3: seleccionaOpcionRegClase

4: cargarOpcionesRegClase
5: obtenerFechasRegClase( )
6: obtenerAreas( )
7: mostrarOpcionesRegClase

8: seleccionaArea
9: seleccionaFechaIn
10: seleccionaFechaFin
11: verRegClase
12: obtenerRegClase( )
13: mostrarRegClase

Registro de asistencia diario


14: seleccionaOpcionRegDiario
15: cargarOpcionesRegDiario
16: obtenerFechasDiario( )
17: obtenerAreas( )
18: mostrarOpcionesRegDiario
19: seleccionaArea
20: seleccionaFechaIn
21: seleccionaFechaFin
22: verRegDiario
23: obtenerRegDiario( )
24: mostrarRegDiario

46

<<Entidad>>
:AreaAcademica

Sistema de Asistencia y Control Administrativo (SACA)

47

Gestion de Reportes
<<GUI>>
IGestionReportes

<<Control>>
CGestionReportes

<<Entidad>>
:RegistroClase

Coordinador
Selecciona Consulta
Habilitar Opciones
Cargar Opciones
Mostrar Oopciones
Seleccionar Opcion
Cargar Fechas de Consulta
Consultar Fechas de consulta
Mostrar Fechas de Consulta
fecha inicial
fecha final

alt

Elije la opcion Registro de clase


Consultar Reg AsistenClase
Consultar Registro Firm
Mostrar T ot RegClase

Elije la opcion registro diario

Consultar RegDiario

Consultar Reg NFirm

Consultar RegDiario Firm


Consultar RegDiario NFirm

Mostrar Tot RegDiario

47

Sistema de Asistencia y Control Administrativo (SACA)

48

Gestion de Alertas
<<GUI>>
IGestion_Alertas

<<Control>>
CGestionAlertas

<<Entidad>>
:RegistroAlumno

Coordinador
Seleccion opcion

alt

Si elige opcion Alertas para el docente


Busca DocentesFalto
Consulta CodigoCurso
Consulta EstadoDocente
opt

[Si esta con estado Falto]


Emite un correo inidcando la falta
dia recuperacion

Si elige alertas para el Alumno


Busca AlumnoFalto

Consulta CodigoCurso
Consulta EstadoAlumno
Actualiza cantidad faltas

alt

Si es menor a la cantidad maxima


Ordenar en tabla
Mostrar Reporte

Si es >= a la cantidad maxima de faltas

cantidad de faltas y emite un correo

48

<<Entidad>>
:RegistroClase

49

Sistema de Asistencia y Control Administrativo (SACA)

2.3. ANLISIS DE CLASES


Li neaRegistroDiario
1..*
compone

RegistroDiari o
-

codRegDiario
fechaRegDiario
estadoRegi stroDiario
estadoFirmaDiario

:
:
:
:

String
Date
String
boolean

codLineaRegDiario
estadoLineaRegDiario
horaLlegada
horaSalida

:
:
:
:

String
String
String
String

+
+
+
+
+

actualizarEstadoLineaRegDiario ()
grabarHoraLlegadaDiario (String hora)
grabarHoraSalidaDiario (Stri ng hora)
obtenerHistorialDiario ()
consultarHoraLlegada ()

:
:
:
:
:

voi d
voi d
voi d
ArrayList
voi d

Curso
- codigoCurso : String
- descri pcion : String

1..*

1..*
es registrado

+ obtenerFechasDiario ()
: void
+ obtenerRegDiario ()
:1void
+ actualizarEstadoFirmaDiario
() : void
es compuesto
Seccion

1..*

AlertasDocente

+ actualizarEstadoCoordinador ()
+ amonestarDocente (String codDocente)
1..*
pertenece

1
registra
DocenteTi empoCompleto

+ actualizarEstadoTCompleto () : voi d

0..*
alerta

CursoSeccion

LapsoTi empo

- cargo
: String
- estadoTCompleto : String

Coordinador

1..*

- codSeccion : String

- CodAlerta
: Character
- fecha_alerta
: Date
- DescripcionCorreo : Character

- codCursoSeccion
: String
- estadoCursoSeccion : String

- codLapsoTiempo : String
- horaInicio
: String
- horaFin
: String

1
compone

+ *actualizarEstadoCursoSecc () : void

1..*
compone

0..1
alerta
Aula

1
es compuesto por

Docente
0..*
es alertado

codDocente
claveDocente
nombreDocente
correoDocente
estadoDocente

:
:
:
:
:

1..*
es compuesto por

- codClaseProg
: String
- fechaClaseProg : Date
- estadoClaseProg : String

1
di cta

+
+
+
+
+

1..*
es dictada

1
tiene

1
verifica
AlertasAlumno
- CodAlerta
: Character
- fechaAlerta
: Date
- cantidadFaltas : i nt

1..*
es compuesto por

actualizarEstadoClaseProg () : voi d
consultarHoraClase ()
: String
obtenerFechas ()
: ArrayList
obtenerCursos ()
: ArrayList
obtenerCodClaseProg ()
: ArrayList
0..*
asisten

AreaAcademica
- codArea
: String
- nombreArea : String
+ obtenerAreas () : void

+ actualizarEstadoAula () : voi d

ClaseProgramada

String
String
String
String
String

+ *actualizarEstadoDocente () : voi d

- codAula
: String
- estadoAula : String

1..2
compone

RegistroAlumno

LineaRegi stroClase
-

codLineaRegClase
estadoLineaRegClase
temaClase
horaLlegadaClase
horaSalidaClase

:
:
:
:
:

+
+
+
+

obtenerHistorialClase ()
grabarHoraLlegadaClase ()
grabarTemaClase ()
actualizarEstadoLineaRegClase ()
1..*
compone

- codRegAlumno
: String
- fechaRegAlumno : int

String
String
String
String
String
:
:
:
:

void
void
void
void

0..*
asiste Alumno
0..*
es alertado

- codAl umno : String


- tipoAlumno : int

1
es compuesto
RegistroClase
1..*
es revisado por

49

codRegClase
fechaRegClase
estadoRegi stroClase
estadoFirmaClase

:
:
:
:

String
Date
String
bool ean

+ obtenerFechasRegClase ()
: voi d
+ obtenerRegClase ()
: voi d
+ actualizarEstadoFirmaClase () : voi d

Sistema de Asistencia y Control Administrativo (SACA)

50

2.4. ANLISIS DE PAQUETES


Consultar

Registros

Firmar

2.5. ESPECIFICACIN DE INTERFACES CON OTROS


SISTEMAS
NO APLICA

50

Sistema de Asistencia y Control Administrativo (SACA)

51

3. DISEO DE SISTEMAS
3.1

DEFINICION DE LA ARQUITECTURA DEL SISTEMA

Definicin de Niveles de Arquitectura

RS232
Lector de Tarjetas de CB

JDBC
HT T P

HT T P
Firewall 1

<<Apache 2.4>>
rpcyt.uni.edu.pe
200.37.69.4

Alumno/Docente
172.200.200.0

HT TP

<<MySql>>
Base de datos

HT T P
Firewall 2

Coordinador

Identificacin de subsistemas de diseo

Catlogo de subsistemas

Subsistema
Registro de asistencia

Consulta de asistencia

Funcionalidad
Registro de asistencia diaria del
docente.- Permite registrar la
asistencia diaria de los docentes que
cumplen el rgimen de tiempo
completo
Registro de asistencia a clases
del docente.- Permite registrar la
asistencia de los docentes a las
clases programadas que tengan
Registro de asistencia a clases
del alumno.- Permite registrar la
asistencia de los alumnos a las
clases programadas que tengan, a
travs del uso de su carnet
universitario y una lectora de barras.
Consultar historial de asistencia
del docente.- Permite a los
docentes hacer consultas sobre su
propia asistencia, tanto diaria como
a clases
Consultar historial de asistencia
del alumno.- Permite a los alumnos
hacer consultas sobre su propia
asistencia a sus clases.
Consultar registros de asistencia.Permite al coordinador de rea
consultar los registros de asistencia

51

Tipo
Especifico

Especifico

Especifico

Especifico

Especifico

Especifico

Sistema de Asistencia y Control Administrativo (SACA)

Gestin de alertas

Validar usuario

52

de todos los docentes.


Generar alertas.- Permitir el envo Especifico
de notificaciones cuando se cometa
una falta, tanto para alumnos como
para los docentes. Para los primeros
se tendr en cuenta un nmero
mximo de faltas, mientras que para
los docentes ser de manera
continua.
Validar usuario del sistema.- Genrico
Valida a los usuarios (docentes,
coordinadores de rea) y dispone
los diversos servicios del sistema de
acuerdo a los permisos que tenga.

Grfico de subsistemas usando el Diagrama de Paquetes

Gestin de alertas

Consulta de asistencia

Consulta de reportes
Registro asistencia

Validar ususario

Entorno Tecnolgico del Sistema.


Hardware

Software

Comunicaciones

1 Microprocesador con frecuencia de reloj de 3.20 GHz


Mnimo con FSB de 650 MHz
1 Disco IDE de 100 GB como mnimo
1 RAM DDR de 4 GB como mnimo
1 Tarjeta de video de 1 GB
Microsoft Windows 7 Professional Edition de preferencia
Java Virtual Machine
Java EE 7 SDK
Java JDK 7u45
Protocolos TCP / IP

52

Sistema de Asistencia y Control Administrativo (SACA)


3.2

53

DISEO DE LA ARQUITECTURA DE SOPORTE

Diseo Detallado de Subsistemas de Soporte.


Diagrama de Clases y de Interaccin de Objetos

Vista

Controlador

<<JSP>>

Modelo

IConsultarRegistros

IRegistroAsistenciaDocente
IRegistroAsistenciaDo
centeJSP

- btnAsistencia
: JButton
- btnHoraLlegada : JButton
- btnHoraSalida : JButton
+ btnAsistenciaActionPerformed (actionEven
t evt)
+ enableBtnHoraLlegada ()
+ enableBtnHoraSalida ()
+ setVisibleBtnHoraLlegada (boolean valor)
+ setVisibleBtnHoraSalida (boolean valor)
+ btnHoraLlegadaActionPerformed (ActionEve
nt evt)
+ btnHoraSalidaActionPerformed (ActionEven
t evt)
+ mostrarConformidadHoraLlegada ()
+ mostrarConformidadHoraSalida ()
+ enableBtnRegClase ()
+ disableBtnRegClase ()
+ btnRegClaseActionPerformed (ActionEvent
evt)
+ showTextBoxTema ()
+ btnInTemaActionPerformed (ActionEvent ev
t)
+ mostrarConformidadRegClase ()
+ disableBtnHoraLlegada ()
+ disableBtnHoraSalida ()

: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void

: void

IConsultarRegistrosJS
P

: void
: void
: void

: void
: void
: void
: void
: void
: void

: void
: void
: void

IRegistroAsistenciaAlumno

<<JSP>>
IConsultarHistorial
IConsultarHistorialJS
P

+ btnConsultaRegActionPerformed (ActionEve
nt evt)
+ showOptConsultarReg ()
+ btnVerRegClaseActionPerformed (ActionEve
nt evt)
+ ShowOptVerRegClases (Date fechaHoy,
ArrayList listFechas,
ArrayList listAreas)
+ selectAreaActionPerformed (ActionEvent e
vt)
+ selectFechaIniActionPerformed (ActionEve
nt evt)
+ selectFechaFinActionPerformed (ActionEve
nt evt)
+ mostrarFramePDF ()
+ btnVerRegDiarioActionPerformed (ActionEv
ent evt)
+ ShowOptVerRegDiario (Date fechaHoy,
ArrayList listFechas,
ArrayList listAreas)

+ btnConsultaHistActionPerformed (ActionEv
ent evt)
+ enableBtnConsultaHistClase ()
+ enableBtnConsultaHistDiario ()
+ btnHistorialClaseActionPerformed (Action
Event evt)
+ showOptHistClase (Date fechaHoy,
ArrayList listaFechas,
ArrayList listaCursos)

: void

+ selectCursoActionPerformed (ActionEvent
evt)
+ selectFechaIniActionPerformed (ActionEve
nt evt)
+ selectFechaFinActionPerformed (ActionEve
nt evt)
+ mostrarHistorialClase (ArrayList histori
alClase)
+ btnHistorialDiarioActionPerformed (Actio
nEvent evt)
+ showOptHistDiario (Date fechaInicio,
Date fechaHoy)
+ mostrarHistorialDiario (ArrayList listaD
iario)
+ cargarHistorialClase (String curso,
Date fechainic, Date fechafin)

: void

: void
: void
: void
: void

: void
: void
: void
: void
: void
: void
: void

53

+ conformidadRegistro () : void
+ errorRegistro ()
: void
+ leerCarnet ()
: void

IRegistroAsistenciaAlu
mnoJSP

Sistema de Asistencia y Control Administrativo (SACA)

54

<<ServletClass>>
CConsultarHistorialServlet
+ mostrarOpcionesConsulta ()
+ cargarOpcionesHistClase ()
+ verHistorialClase (String curso,
Date fechaIni, Date fechaFin)
+ cargarOpcionesHistDiario ()
+ getFechaIniDiario ()
+ verHistorialDiario (Date fechaInicio,
Date fechaFin)
+ cargarHistorialClase (String curso,
Date fechainic, Date fechafin)
+ init (javax.servlet.
ServletConfig config)
+ destroy ()
+ doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
+ doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
+ doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.

: void
: void
: void
: void
: Date
: void

0..1

0..1
0..*

: void
: void

<<ServletClass>>
CSesionAlumnoServlet

: void
: void

- tmpCodAlumno : String
+ getTmpCodAlumno ()
+ init (javax.servlet.
ServletConfig config)
+ destroy ()
+ doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
+ doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
+ doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)

: void

: void

<<ServletClass>>
CRegistroClaseServlet
+
+
+
+
+
+
+
+

consultarHoraLlegada ()
registrarHoraLlegada ()
registrarHoraSalida ()
consultarTenenciaClase ()
registrarClase (String tema)
init (javax.servlet.
ServletConfig config)
destroy ()
doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)

:
:
:
:
:
:

void
void
void
void
void
void

: void
: void

0..*
0..1
0..1

: void

0..*

+
+

void
void
void
void

: void
0..*

getTmpCodDocente ()
getTmpTipoDocente ()
getFechaActual ()
getHoraActual ()
getTmpUrlRegistros ()
init (javax.servlet.
ServletConfig config)
destroy ()
doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)

+
+

+
:
:
:
:

: void

<<ServletClass>>
CSesionDocenteServlet

+
+
+
+
+
+

: void

consultarHoraLlegada ()
registrarHoraLlegada ()
registrarHoraSalida ()
init (javax.servlet.
ServletConfig config)
destroy ()
doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)

: void
: void

- tmpCodDocente : String
- tmpTipoDocente : String
- tmpFechaActual : String

<<ServletClass>>
CRegistroDiarioServlet
+
+
+
+

: String
: void

0..*
+
0..1

: void
: void

0..*

: void

<<ServletClass>>
CGestionAlertasServlet

: void

+
+
+
+
+
+
+

54

:
:
:
:
:
:

String
String
Date
String
String
void

: void
: void

: void

: void

0..1

buscarDocente ()
buscarAlumno ()
actualizarCantFaltas ()
actualizarTabla ()
init (javax.servlet.
ServletConfig config)
destroy ()
doGet (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPut (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)
doPost (javax.servlet.http.
HttpServletRequest req, javax.servlet.
http.HttpServletResponse res)

:
:
:
:
:

void
void
void
void
void

: void
: void

: void

: void

Sistema de Asistencia y Control Administrativo (SACA)


3.3

55

DISEO DE CASOS DE USO REALES

Registro de asistencia diaria del docente a tiempo completo


<<JSP>>

<<Servlet>>

<<Servlet>>

<<EJB>>

<<EJB>>

:IRegistroAsistenciaDocente

:CRegistroDiarioServlet

:CSesionDocenteServlet

:LineaRegistroDiarioBean

:DocenteTiempoCompletoBean

Docente

1: btnAsistenciaActionPerformed(evt)
2: consultarHoraLlegada( )
3: cod:= getTmpCodDocente( )
4: tipo:= getTmpTipoDocente( )

alt

tipo == TiempoCompleto
5: hLlegada:= getHoraLlegadaDiario(cod)

alt

hLlegada == null
6: enableBtnHoraLlegada( )

hLlegada != null
7: enableBtnHoraSalida( )

tipo == TiempoParcial

8: setVisibleBtnHoraLlegada(false)
9: setVisibleBtnHoraSalida(false)

alt

hLlegada == null
10: btnHoraLlegadaActionPerformed(evt)
11: registrarHoraLlegada( )
12: hActual:= getHoraActual( )
13: grabarHoraLlegadaDiario(hActual)
14: actualizarEstadoLineaRegDiario( )
15: actualizarEstadoTCompleto( )
16: disableBtnHoraLlegada( )
17: mostrarConformidadHoraLlegada( )

hLlegada != null
18: btnHoraSalidaActionPerformed(evt)
19: registrarHoraSalida( )
20: hActual:= getHoraActual( )
21: grabarHoraSalidaDiario(hActual)
22: actualizarEstadoLineaRegDiario( )
23: actualizarEstadoTCompleto( )
24: disableBtnHoraSalida( )
25: mostrarConformidadHoraSalida( )

55

Sistema de Asistencia y Control Administrativo (SACA)

56

Registro de asistencia a clases del docente


<<JSP>>
:IRegistroAsistenciaDocente

<<Servlet>>
:CRegistroClaseServlet

<<Servlet>>
:CSesionDocenteServlet

<<EJB>>
:ClaseProgramadaBean

Docente
1: btnAsistenciaActionPerformed(evt)
2: consultarTenenciaClase( )
3: cod:= getTmpCodDocente( )
4: resp:= consultarSiClaseActual(cod)

alt

resp == true
5: enableBtnRegClase( )

resp == false

6: disableBtnRegClase( )

7: btnRegClaseActionPerformed(evt)

8: showTextBoxTema( )

9: btnInTemaActionPerformed(evt)
10: registrarClase(tema)
11: hActual:= getHoraActual( )
12: actualizarEstadoClaseProg( )

13: grabarHoraLlegadaClase(hActual)
14: grabarTemaClase(tema)
15: actualizarEstadoLineaRegClase( )
16: actualizarEstadoDocente( )
17: actualizarEstadoAula( )
18: mostrarConformidadRegClase

56

<<EJB>>
:LineaRegistroClaseBean

<<EJB>>
:DocenteBean

<<EJB>>
:AulaBean

Sistema de Asistencia y Control Administrativo (SACA)

57

Registro de asistencia alumno

:IRegistroAsistenciaAlumno

<<Servlet>>
:CRegistroClaseServlet

<<EJB>>
:AlumnoBean

<<EJB>>
:ClaseProgramadaBean

Alumno

1: leerCarnet( )
2: consultarTenenciaClase(codAlumno)
3: validarCodigo(codAlumno)
4: consultarHoraClase(codAlumno)
5: return validacion

alt

validacion == false

6: errorRegistro( )
7: emitirSonidoError

validacion == true
8: cambiarEstado(codAlumno)
9: grabarDato( )

10: conformidadRegistro( )
11: emitirSonidoExito

57

<<EJB>>
:RegistroAlumnoBean

Sistema de Asistencia y Control Administrativo (SACA)

58

Consultar historial de asistencia docente


<<JSP>>
:IConsultarHistorial

<<Servlet>>
:CConsultarHistorialServlet

<<Servlet>>
:CSesionDocenteServlet

<<EJB>>
:ClaseProgramadaBean

<<EJB>>
:LineaRegistroClaseBean

Docente

1: btnConsultaHistActionPerformed(evt)
2: mostrarOpcionesConsulta( )
3: cod:= getTmpCodDocente( )
4: tipo:= getTmpTipoDocente( )
5: enableBtnConsultaHistClase( )

opt

[tipo == TiempoCompleto]
6: enableBtnConsultaHistDiario( )

7: btnHistorialClaseActionPerformed(evt)
8: cargarOpcionesHistClase( )
9: fHoy:= getFechaActual( )
10: listFechas:= getFechasClasesProg(cod)
11: listCursos:= getCursosClasesProg(cod)
12: showOptHistClase(fHoy ,listFechas, listCursos)

13: selectCursoActionPerformed(evt)
14: selectFechaIniActionPerformed(evt)
15: selectFechaFinActionPerformed(evt)
16: verHistorialClase(curso, fechaIni, fechaFin)
17: lista:= getCodClasesProg(cod, curso, fechaIni, fechaFin)

19: mostrarHistorialClase(historialClase)

opt

18: historialClase:= getHistorialClase(lista)

[tipo == TiempoCompleto]
20: btnHistorialDiarioActionPerformed(evt)

21: cargarOpcionesHistDiario( )
22: fHoy:= getFechaActual( )

23: fechaInicio:= getFechaIniDiario( )


24: showOptHistDiario(fechaInicio, fHoy)

25: selectFechaIniActionPerformed(evt)
26: selectFechaFinActionPerformed(evt)
27: verHistorialDiario(fechaInicio, fechaFin)
28: historialDiario:= getHistorialDiario(cod, fechaInicio, fechaFin)
29: mostrarHistorialDiario(historialClase)

58

<<EJB>>
:LineaRegistroDiarioBean

59

Sistema de Asistencia y Control Administrativo (SACA)


Consultar historial de asistencia alumno
<<JSP>>
:IConsultarHistorial

<<Servlet>>
:CConsultarHistorialServlet

<<Servlet>>
:CSesionAlumnoServlet

<<EJB>>
:RegistroAlumnoBean

Alumno

1: btnConsultaHistActionPerformed(evt)
2: mostrarOpcionesConsulta( )
3: codAlum:= getTmpCodAlumno( )
4: cargarOpcionesHistClase(codAlum)
5: showOptHistClase( )

6: selectCursoActionPerformed(evt)
7: selectFechaIniActionPerformed(evt)
8: selectFechaFinActionPerformed(evt)

7: cargarHistorialClase(curso,fechainic,
fechafin)
8: getFecha(codAlum)
9: getCurso(codAlum)

10: showOptHistClase(curso,fechainic,
fechafin)

Gestion de documentos oficiales


<<JSP>>

<<Servlet>>

<<EJB>>

<<EJB>>

<<EJB>>

:IConsultarRegistros

CConsultaRegistro

:RegistroClaseBean

:RegistroDiarioBean

:AreaAcademicaBean

Coordinador

1: btnConsultaRegActionPerformed(evt)
2: showOptConsultarReg( )

alt

Registro de asistencia a clase


3: btnVerRegClaseActionPerformed( )

4: cargarOpcionesRegClase
5: fecha:= getFechasRegClase( )
6: area:= getArea( )
7: ShowOptVerRegClases( )

8: selectAreaActionPerformed( )
9: selectFechaIniActionPerformed( )
10: selectFechaFinActionPerformed( )
11: verRegClase
12: regc:= getRegClase( )
13: ShowOptVerRegClases(regc)

Registro de asistencia diario


14: btnVerRegDiarioActionPerformed( )
15: cargarOpcionesRegDiario
16: fecha:= getFechasDiario( )
17: area:= getArea( )
18: ShowOptVerRegDiario( )
19: selectAreaActionPerformed( )
20: selectFechaIniActionPerformed( )
21: selectFechaFinActionPerformed( )
22: verRegDiario
23: regd:= getRegDiario( )
24: ShowOptVerRegDiario(regd)

59

Sistema de Asistencia y Control Administrativo (SACA)

60

Gestion de reportes
<<JSP>>

<<Servlet>>

<<EJB>>

<<EJB>>

IGestionReportes

CGestionReportes

:RegistroClaseBean

:RegistroDiarioBean

Coordinador
1: seleccionaConsultar
2: habilitarOpciones
3: Cargar Opciones
4: mostrarOpciones
5: seleccionarOpcion
6: cargarFechasdeConsulta
7: fecha:= getFechasRegClase( )
8: mostrarFechasdeConsulta

9: fechaInicial
10: fechaFinal

alt

Elije la opcion Registro de clase


11: consultarRegAsistenClase
12: firmac:= getEstadoFirmaClase( )
13: mostrarTotRegClase

Elije la opcion registro diario

14: consultarRegDiario
15: firmad:= getEstadoFirmaDiario( )
16: mostrarTotRegDiario

60

61

Sistema de Asistencia y Control Administrativo (SACA)


Gestion de alertas
<<JSP>>
IGestion_Alertas

<<Servlet>>
:CGestionAlertasServlet

<<EJB>>
:RegistroAlumnoBean

Coordinador
1: Seleccion opcion
alt

Si elige opcion Alertas para el docente


2: buscarDocente(codDoc)

3: reg:= getRegClase(codDoc)
4: return(reg)

opt

[estadoDoc == Falto]
5: Emite un correo inidcando la falta
6: dia recuperacion

Si elige alertas para el Alumno


7: buscarAlumno(codAlum)

8: consultarCodCurso( )
9: consultarEstAlumno( )

10: actualizarCantFaltas(cant)

alt

cantidad < max


11: actualizarTabla( )
12: Mostrar Reporte

cantidad >= max


13: cantidad de faltas y emite un correo

61

<<EJB>>
:RegistroClaseBean

Sistema de Asistencia y Control Administrativo (SACA)


3.4

62

DISEO DE CLASES

Se realiza el Diagrama de Clases de Diseo


<<EJBEntity>>
RegistroDiarioBean
{abstract}
-

1..1
son revisados

codRegDiario
fechaRegDiario
estadoRegistroDiario
estadoFirmaDiario
ejbContext

: String
: Date
: String
: boolean
: EntityContext

+
getFechasDiario ()
+
getRegDiario ()
+
getEstadoFirmaDiario ()
+
actualizarEstadoFirmaDiario ()
+ <<Constructor>> RegistroDiarioBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: ArrayList
: ArrayList
: boolean
: void
: void
: void
: void
: void
: void
: void
: void

1
es compuesto

1..*
compone
<<EJBEntity>>
LineaRegistroDiarioBean
{abstract}
-

codLineaRegDiario
estadoLineaRegDiario
horaLlegada
horaSalida
ejbContext

: String
: String
: String
: String
: EntityContext

<<EJBEntity>>
CursoBean

<<EJBEntity>>
SeccionBean

{abstract}

+
actualizarEstadoLineaRegDiario ()
+
grabarHoraLlegadaDiario (String hora)
+
grabarHoraSalidaDiario (String hora)
+
getHoraLlegadaDiario ()
+
getHoraSalidaDiario ()
+
getHistorialDiario ()
+ <<Constructor>> LineaRegistroDiarioBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

- codigoCurso : String
- descripcion : String
- ejbContext : EntityContext

: void
: void
: void
: String
: String
: ArrayList

+ <<Constructor>> CursoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: void
: void
: void
: void
: void
: void

{abstract}
- codSeccion : String
- ejbContext : EntityContext

1..*
1..*
: void
: void
: void
: void
: void
: void
: void

+ <<Constructor>> SeccionBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1..*
es registrado

1..1
revisa

<<EJBEntity>>
LapsoTiempoBean

1
registra

<<EJBEntity>>
CoordinadorBean

{abstract}

<<EJBEntity>>
DocenteTiempoCompletoBean

{abstract}
- codCoordinador : String
- ejbContext
: EntityContext

{abstract}

+
actualizarEstadoCoordinador ()
+
amonestarDocente (String codDocente)
+ <<Constructor>> CoordinadorBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()
1..1
supervisa

- codDocenteTC : String
- cargoDocenteTC : String
- estadoTCompleto : String
- ejbContext
: EntityContext

: void
: void
: void
: void
: void
: void
: void
: void
: void

+
actualizarEstadoTCompleto ()
+ <<Constructor>> DocenteTiempoCompletoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1..*
pertenece

codLapsoTiempo
horaInicio
horaFin
ejbContext

: String
: String
: String
: EntityContext

<<EJBEntity>>
CursoSeccionBean

+ <<Constructor>> LapsoTiempoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: void
: void
: void
: void
: void
: void
: void

{abstract}
: void
: void
: void
: void
: void
: void
: void

- codCursoSeccion : String
- estadoCursoSeccion : String
- ejbContext
: EntityContext
+
actualizarEstadoCursoSecc ()
+ <<Constructor>> CursoSeccionBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1..*
compone

: void
: void
: void
: void
: void
: void
: void
: void

1
compone
<<EJBEntity>>
AlertasDocenteBean
{abstract}
-

codAlertaDocente
fechaAlertaDocente
descripcionAlertaDocente
ejbContext

1
es compuesto por

: String
: Date
: String
: EntityContext

+
grabarAlertaDocente ()
+ <<Constructor>> AlertasDocenteBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: void
: void
: void
: void
: void
: void
: void

<<EJBEntity>>
ClaseProgramadaBean

<<EJBEntity>>

1..*
son enviados

{abstract}

DocenteBean

- codClaseProg : String
- fechaClaseProg : Date
- estadoClaseProg : String
- ejbContext
: EntityContext

{abstract}
1..* - codDocente
recibe - claveDocente
- nombreDocente
- correoDocente
- estadoDocente
- ejbContext

: String
: String
: String
: String
: String
: EntityContext

1
dicta

+
actualizarEstadoDocente ()
+
validarCodDocente ()
+ <<Constructor>> DocenteBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: boolean

1..*
es dictada

: void
: void
: void
: void
: void
: void
: void

+
actualizarEstadoClaseProg ()
+
consultarHoraClase ()
+
consultarSiClaseActual ()
+
getFechasClasesProg ()
+
getCursosClasesProg ()
+
getCodClasesProg ()
+ <<Constructor>> ClaseProgramadaBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1
tiene

<<EJBEntity>>
AlertasAlumnoBean
{abstract}

: void
: String
: boolean
: ArrayList
: ArrayList
: ArrayList
: void
: void
: void
: void
: void
: void
: void

{abstract}
1..*
es compuesto por
1..2
compone

+
actualizarEstadoAula ()
+ <<Constructor>> AulaBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: void
: void
: void
: void
: void
: void
: void

1..*
<<EJBEntity>>
AreaAcademicaBean

- codArea
: String
- nombreArea : String
- ejbContext : EntityContext
: void
: void
: void
: void
: void
: void
: void
: void

<<EJBEntity>>

<<EJBEntity>>
LineaRegistroClaseBean

+
getArea ()
+ <<Constructor>> AreaAcademicaBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

RegistroAlumnoBean
{abstract}

{abstract}

: String

: void
: void
: void
: void
: void
: void
: void

codLineaRegClase
estadoLineaRegClase
temaClase
horaLlegadaClase
horaSalidaClase
ejbContext

- codRegAlumno : String
- fechaRegAlumno : Date
- ejbContext
: EntityContext

: String
: String
: String
: String
: String
: EntityContext

+
getHistorialClase ()
+
grabarHoraLlegadaClase ()
+
grabarHoraSalidaClase ()
+
grabarTemaClase ()
+
actualizarEstadoLineaRegClase ()
+ <<Constructor>> LineaRegistroClaseBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1
verifica

+
getFecha ()
+
getCurso ()
+
grabarDato ()
+
getCodCurso ()
+
getEstadoAlum ()
+
consultarCodCurso ()
+
consultarEstAlumno ()
+ <<Constructor>> RegistroAlumnoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+

: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void

1..*
asisten

1..*
compone

<<EJBEntity>>
AlumnoBean
{abstract}
- codAlumno : String
- tipoAlumno : String
- ejbContext : EntityContext

1..*
son supervisados
1..*
es revisado por
<<EJBEntity>>
RegistroClaseBean
{abstract}
-

codRegClase
fechaRegClase
estadoRegistroClase
estadoFirmaClase
ejbContext

: String
: Date
: String
: boolean
: EntityContext

+
getFechasRegClase ()
+
getRegClase ()
+
getEstadoFirmaClase ()
+
actualizarEstadoFirmaClase ()
+
consultarFecha ()
+ <<Constructor>> RegistroClaseBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

3.5

<<EJBEntity>>
AulaBean
- codAula : String
- estadoAula : String
- ejbContext : EntityContext

{abstract}

- codAlertaAlumno : String
- fechaAlertaAlumno : Date
- faltaAlumno
: int
- ejbContext
: EntityContext
+
grabarAlertaAlumno ()
+ <<Constructor>> AlertasAlumnoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

1..*
es compuesto por

: ArrayList
: ArrayList
: boolean
: void
: void

1
es compuesto

: void
: void
: void
: void
: void
: void
: void

DISEO FSICO DE DATOS


3.5.1 Diseo del Modelo Fsico de Datos.

62

+
validarCodigo ()
+
cambiarEstado ()
+ <<Constructor>> AlumnoBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (EntityContext ctx)
+
unsetEntityContext ()

: void
: void
: void
: void
: void
: void
: void
: void
: void

: date
: String
: void
: char
: String
: void
: void
: void
: void
: void
: void
: void

: void
: void
: void
: void
: void
: void
: void

63

Sistema de Asistencia y Control Administrativo (SACA)

<<EJBEntity>>
RegistroDiarioBean
codRegDiario
codDocente
codCoordinador
fechaRegDiario
estadoRegistroDiario
estadoFirmaDiario

son revisados

char(8) <pk>
char(6) <fk>
char(6) <fk>
date
char(6)
bool

es compuesto

revisa
compone
<<EJBEntity>>
CoordinadorBean

<<EJBEntity>>
LineaRegistroDiarioBean

codDocente
char(6) <pk,fk2>
codCoordinador char(6) <pk>
codArea
char(3) <fk1>

pertenece

codRegDiario
codLineaRegDiario
codDocente
codDocenteTC
estadoLineaRegDiario
horaLlegada
horaSalida

supervisa

char(8)
char(8)
char(6)
char(6)
char(8)
char(5)
char(5)

<pk,fk1>
<pk>
<fk2>
<fk2>

<<EJBEntity>>
CursoBean

<<EJBEntity>>

codigoCurso char(5) <pk>


descripcion char(50)

codSeccion char(3) <pk>

SeccionBean

es registrado

<<EJBEntity>>
LapsoTiempoBean

registra

codLapsoTiempo
codClaseProg
horaInicio
horaFin

<<EJBEntity>>
DocenteTiempoCompletoBean
codDocente
codDocenteTC
cargoDocenteTC
estadoTCompleto

char(6) <pk,fk>
char(6) <pk>
char(30)
char(8)

char(3) <pk>
char(6) <fk>
char(5)
char(5)

<<EJBEntity>>
CursoSeccionBean
codigoCurso
codSeccion
codCursoSeccion
estadoCursoSeccion

compone

char(5) <pk,fk1>
char(3) <pk,fk2>
char(8) <pk>
char(7)
compone

es compuesto
es compuesto
por por
<<EJBEntity>>
ClaseProgramadaBean

<<EJBEntity>>
DocenteBean

ALER-DOC
codAlertaDocente char(5) <pk,fk1>
codDocente
char(6) <pk,fk2>

recibe

codDocente
claveDocente
nombreDocente
correoDocente
estadoDocente

char(6) <pk>
char(16)
char(60)
char(50)
char(5)

dicta
es dictada

codClaseProg
codigoCurso
codSeccion
codCursoSeccion
fechaClaseProg
estadoClaseProg

char(6)
char(5)
char(3)
char(8)
date
char(12)

<pk>
<fk>
<fk>
<fk>

es compuesto por

AULA-CPROG
codAula
char(6) <pk,fk1>
codClaseProg char(6) <pk,fk2>

son enviados
tiene
<<EJBEntity>>
AlertasDocenteBean

<<EJBEntity>>
AreaAcademicaBean

es dictada

codAlertaDocente
char(5) <pk>
fechaAlertaDocente
date
descripcionAlertaDocente char(50)

codArea
char(3) <pk>
nombreArea char(20)

codDocente
codClaseProg
codRegClase
codLineaRegClase
estadoLineaRegClase
temaClase
horaLlegadaClase
horaSalidaClase

son supervisados
<<EJBEntity>>
AlertasAlumnoBean
char(9)
char(6)
char(6)
char(5)
date
int

char(6)
char(6)
char(8)
char(8)
char(8)
char(100)
char(5)
char(5)

<pk,fk1>
<pk,fk2>
<pk,fk3>
<pk>

<<EJBEntity>>
RegistroAlumnoBean
codClaseProg
codAlumno
codRegAlumno
fechaRegAlumno

<<EJBEntity>>
RegistroClaseBean
es revisado por

codAula char(6) <pk>


estadoAula char(8)

compone

<pk,fk1>
<pk,fk2>
<pk,fk2>
<pk>

supervisa

<<EJBEntity>>
AulaBean

<<EJBEntity>>
LineaRegistroClaseBean

verifica

codAlumno
codDocente
codCoordinador
codAlertaAlumno
fechaAlertaAlumno
faltaAlumno

compone

dicta

codRegClase
codArea
fechaRegClase
estadoRegistroClase
estadoFirmaClase

char(8) <pk>
char(3) <fk>
date
char(6)
bool

es compuesto

<<EJBEntity>>
AlumnoBean
son supervisados

asisten

codAlumno char(9) <pk>


tipoAlumno char(20)

3.5.2 Optimizacin del Modelo Fsico de Datos

Formato de Estimacin de Volmenes de tablas

63

char(6) <pk,fk1>
char(9) <pk,fk2>
char(6) <pk>
date

Sistema de Asistencia y Control Administrativo (SACA)

Nro

Tabla

1
2
3

64

AreaAcademica
Aula
Alumno

Cantidad de
registros anual
5
20
1400

Tamao del
registro
23 Bytes
14 Bytes
50 Bytes

Crecimient
o anual (%)
0
0
25

ClaseProgramada

11520

36 Bytes

Coordinador

17 Bytes

6
7

Curso
Docente

125
130

55 Bytes
137 Bytes

0
0

DocenteTiempoCompleto 30

44 Bytes

9
10

LapsoTiempo
LineaRegistroClase

54000
18000

19 Bytes
146 Bytes

0
0

11

LineaRegistroDiario

36000

40 Bytes

12

RegistroClase

1200

25 Bytes

13

RegistroDiario

1200

25 Bytes

14
15
16

Seccion
CursoSeccion
RegistroAlumno

4
100
11520

3 Byte
23 Byte
25 Bytes

0
0
0

17

AlertaAlumno

400

50 Bytes

18

AlertaDocente

50

50 Bytes

3.6

GENERACION DE ESPECIFICACIONES DE CONSTRUCCION (DSI 6)


3.6.1 Especificacin del Entorno de Construccin (DSI 6.1)

Plataforma del ambiente de desarrollo.

Hardware

Sistema Operativo
Herramientas de Construccin
Base de Datos
Software de aplicaciones
Servidor WEB

Intel: Fabricante
Procesador: Corei 5
Frecuencia: 3.40 GHz
Memoria: 3.50GB
Windows XP x86bits
Java
Oracle
Netbeans 8.0
Apache Tomcat 2.2.3

3.6.2 Elaboracin de especificacin de Construccin (DSI 6.3)

64

Tipo de
acceso
select, insert
select, insert
select, update,
insert
select, update,
insert
select, update,
insert
select, insert
select, update,
insert
select, update,
insert
select
select, update,
insert
select, update,
insert
select, update,
insert
select, update,
insert
select, insert
select, insert
select, update,
insert
select, update,
insert
select, update,
insert

Sistema de Asistencia y Control Administrativo (SACA)

65

Formato para la especificacin detallada de los componentes


Nombre
del reaAcadmicaBean
Componente
Tipo de
EJB
Componente
Descripcin
Este componente se encarga de leer los datos de AreaAcademica.
Se utiliza en los subsistemas Consultar registro de asistencia
Especificacin del componente
Operaciones:
getArea(String codCordinador): Obtiene las reas a partir del cdigo del coordinador.

Nombre
del IConsultaRegistro
Componente
Tipo de
JSP
Componente
Descripcin
Se encarga de administrar la interface IConsultaRegistro
Especificacin del componente
Este componente se encarga de crear la pgina web dinmica.
Se utiliza en los subsistemas Consultar registro de asistencia
Operaciones:
btnConsultaRegActionPerformed(): Botn que permite realizar la consulta
showOptConsultarReg(): Muestra las opciones de consulta del registro
btnVerRegClaseActionPerformed(): Botn que permite ver los registros de clase
ShowOptVerRegClases(): Muestra las opciones del registro de clase
selectAreaActionPerformed(): Permite realizar el filtro por reas para la consulta del
registro de clase o diario.
selectFechaIniActionPerformed(): Permite realizar el filtro por fecha de inicio para la
consulta del registro de clase o diario.
selectFechaFinActionPerformed():Permite realizar el filtro por fecha de fin para la
consulta del registro de clase o diario.
mostrarFramePDF(): Muetra la fecha el el PDF
btnVerRegDiarioActionPerformed()
ShowOptVerRegDiario()
Nombre
del RegistroClaseBean
Componente
Tipo de
Componente
Descripcin

EJB

Este componente se encarga de actualizar y leer los datos de la


tabla RegistroClase.
Se utiliza en los subsistemas Consultar registro de asistencia,
Consultar historial de asistencia
Especificacin del componente
, firma parte de asistencia, Registro de asistencia a clases
Operaciones:
actualizarEstadoFirmaClase(): Actualiza el estado de firma de clase
getRegClase():Obtiene el cdigo del registro
getFechasRegClase(): Obtiene las fechas del registro
Nombre
del RegistroDiarioBean
Componente

65

Sistema de Asistencia y Control Administrativo (SACA)

66

Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla RegistroDiario
Especificacin del componente
Este componente se encarga de actualizar y leer los datos de la tabla RegistroDiario.
Se utiliza en los subsistemas Consultar registro de asistencia, Consultar historial de
asistencia, firma parte de asistencia, Registro de asistencia diario.
Operaciones:
actualizarEstadoFirmaDiario(): Actualiza el estado de firma diario
getFechasDiario(): Obtiene las fechas del registro diario
getRegDiario(): Obtiene los cdigo del registro Diario

Nombre
del DocenteBean
Componente
Tipo de Componente
EJB
Descripcin
Se encarga de administrar la tabla Docente
Especificacin del componente
Este componente se encarga de leer y actualizar los datos de la tabla docente.
Se utiliza en los subsistemas Consultar historial de asistencia, Registro de asistencia a
clases
Operaciones:
actualizarEstadoDocente(): Actualiza el estado del docente
Nombre
del ClaseProgramadaBean
Componente
Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla ClaseProgramada
Especificacin del componente
Este componente se encarga de leer y actualizar los datos de ClaseProgramada.
Se utiliza en los subsistemas Consultar historial de asistencia, Registro de asistencia
a clases
Operaciones:
actualizarEstadoClaseProg(): Actualiza el estado de la clase programada
consultarHoraClase(): Consulta el horario de la clase programada
consultarSiClaseActual(): Consulta si existe una clase actual
getFechasClasesProg(): Obtiene las fechas de las clases programadas
getCursosClasesProg(): Obtiene los cursos de las clases programadas
getCodClasesProg(): Obtiene los cdigos de las clases programadas

Nombre
Componente
Tipo de

del IConsultaHistorial
JSP

66

Sistema de Asistencia y Control Administrativo (SACA)

67

Componente
Descripcin
Se encarga de administrar la interface IConsultaHistorial
Especificacin del componente
Este componente se encarga de leer los datos ingresados por el usuario.
Se utiliza en los subsistemas Consultar historial de asistencia
Operaciones:
btnConsultaHistActionPerformed(): Botn que permite consultar el historial de
asistencia
enableBtnConsultaHistClase(): Habilita el botn de consulta de historial de clase
enableBtnConsultaHistDiario():Habilita el botn de consulta de historial de diario
btnHistorialClaseActionPerformed():Botn que permite consultar el historial de clase
showOptHistClase(): Muestra las opciones del historial de clase
selectCursoActionPerformed(): Selecciona los cursos
selectFechaIniActionPerformed(): Selecciona la fecha de inicio
selectFechaFinActionPerformed(): Selecciona la fecha de fin
mostrarHistorialClase(): Muestra el historial de clase
btnHistorialDiarioActionPerformed(): Botn que permite visualizar el historial diario
showOptHistDiario(): Muestra las opciones del historial diario
mostrarHistorialDiario(): Muestra el historial diario

Nombre
del CConsultaHistorial
Componente
Tipo de
Servlet
Componente
Descripcin
Se encarga de administrar el controlador CConsultaHistorial
Especificacin del componente
Este componente se encarga de recibir las peticiones del JSP IConsultahistorial y
redirecciona estas peticiones a un objeto bean.
Se utiliza en los subsistemas Consultar historial de asistencia
Operaciones:
mostrarOpcionesConsulta(): Muestra las opciones de consulta
cargarOpcionesHistClase(): Muestra las opciones del historial de clase
verHistorialClase(): Permite visualizar el historial de clase
cargarOpcionesHistDiario(): Carga las opciones del historial diario
getFechaIniDiario(): Obtiene la fecha de inicio diario
verHistorialDiario(): Permite ver el historial diario.

Nombre
del AulaBean
Componente
Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla Aula
Especificacin del componente
Este componente se encarga de leer y actualizar el estado del Aula
Se utiliza en los subsistemas Registro de asistencia a clases
Operaciones:
actualizarEstadoAula: Actualiza el estado del aula en el que se est realizando la
clase ,los posibles estados son libre, ocupado, especial.

67

Sistema de Asistencia y Control Administrativo (SACA)

68

Nombre
del LineaRegistroClaseBean
Componente
Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla LineaRegistroClase
Especificacin del componente
Este componente se encarga de leer,grabar y actualizar los datos de
LineaRegistroClase
Se utiliza en los subsistemas Registro de asistencia a clase.
Operaciones:
actualizarEstadoLineaRegClase:Actualiza el estado de la lnea que compone el
registro a clase. Los estados son asisti, falto, espera.
grabarTemaClase: Guarda el tema que el profesor va a dictar en clases.
grabarHoraLlegadaClase: Guarda la hora en la que el profesor llega a clase.
grabarHoraSalidaClase: Guarda la hora en la que el profesor termina y sale de su
clase.
getHistorialClase: Obtiene el historial de asistencia a clase del docente, segn cdigo
del docente ,del registro de asistencia a clase.
Nombre
del CRegistroClase
Componente
Tipo de
Servlet
Componente
Descripcin
Se encarga de administrar el controlador CRegistroClase
Especificacin del componente
Este componente se encarga de recibir las peticiones del JSP IRegistroClase y
redirecciona estas peticiones a un objeto bean.
Se utiliza en los subsistemas Registro de asistencia a clase.
Operaciones:
consultarTenenciaDeClases: Consulta segn el cdigo del docente si el profesor tiene
clases.
registrarClase: Se guarda el tema de la clase a dictar y se registra la asistencia a
clases.

Nombre
del DocenteTiempoCompletoBean
Componente
Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla DocenteTiempoCompleto
Especificacin del componente
Este componente se encarga de leer y actualizar estado de DocenteTiempoCompleto.
Se utiliza en los subsistemas Registro de asistencia diario
Operaciones:
actualizarEstadoTCompleto: Actualiza el estado del docente a los estados presente o
ausente segn sea el caso.

Nombre
Componente

del LineaRegistroDiarioBean

68

Sistema de Asistencia y Control Administrativo (SACA)

69

Tipo de
EJB
Componente
Descripcin
Se encarga de administrar la tabla LineaRegistroDiario
Especificacin del componente
Este componente se encarga de leer,actualizar y grabar los datos de la tabla
LineaRegistroDiario
Se utiliza en los subsistemas Registro de asistencia diario
Operaciones:
actualizarEstadoLineaRegDiario: Actualiza el estado de la lnea a los estados asisti,
falto espera segn corresponda.
grabarHoraLlegadaDiario: Guarda en la lnea la hora en la que el profesor selecciona la
opcin registro de hora de llegada.
grabarHoraSalidaDiario: Guarda en la lnea la hora en la que el profesor selecciona la
opcin registro de hora de salida.
getHoraLlegadaDiario: Obtiene la hora de llegada y lo almacena en el registro diario
del docente.
getHoraSalidaDiario: Obtiene la hora de salida y lo almacena en el registro diario del
docente.
getHistorialDiario: Obtiene el historial de asistencia diario del docente, segn cdigo del
docente ,del registro de asistencia diario.

Nombre
del CRegistroDiario
Componente
Tipo de
Servlet
Componente
Descripcin
Se encarga de administrar el controlador CRegistroDiario
Especificacin del componente
Este componente se encarga de recibir las peticiones del JSP IRegistroDiario y
redirecciona estas peticiones a un objeto bean.
Se utiliza en los subsistemas Registro de asistencia diario.
Operaciones:
consultarHoraDeLlegada: Consulta si el docente a tiempo completo a registrado su
hora de llegada.
registrarHoraLlegada: Se registra la hora en la que el profesor selecciona la opcin
registrar hora de llegada.
registrarHoraSalida: Se registra la hora en la que el profesor selecciona la opcin
registra hora de salida.

3.7

ESTABLECIMIENTO DE REQUERIMIENTOS DE IMPLANTACION (DSI 8)

Catlogo de Requerimientos

Nmero

Requerimiento

Capacitacin

Infraestructura

3
Instalacin

Descripcin
Se capacitara a los docentes, alumnos y
coordinadores en el uso del nuevo sistema.
Conjunto de medios tcnicos, servicios e
instalaciones necesarias para el buen
funcionamiento del sistema.
Instalacin del sistema en los servidores de cada
saln de clase y rea acadmica.
El software nos debe permitir instalar el servidor
web Apache.

69

Sistema de Asistencia y Control Administrativo (SACA)

70

4. Conectividad, Pruebas y Configuraciones.


4.1. Base de datos en SQL Server 2008.
Se ha elegido este gestor de base de datos debido a la gran cantidad de informacin,
tanto para docentes como para alumnos que existe en la FIIS, para esta cantidad se
necesita un gestor robusto, que realice consultas en tiempos ptimos, que tenga gran
capacidad de almacenamiento, que tenga diferentes funcionalidades que nos facilite en
la validacin, insercin, eliminacin y actualizacin de la informacin.

create table DocenteBean


(
codigo
varchar(6) not null,
nombre
varchar(20),
apPaterno
varchar(20),
apMaterno
varchar(20),
correo
varchar(30),
tipo
varchar(2),
estado
varchar(1),
primary key (codigo)
);

create table AlumnoBean


(
codigo
varchar(9) not null,
nombre
varchar(20),
apPaterno
varchar(20),
apMaterno
varchar(20),
correo
varchar(30),
Se ampla el Concepto a los DBMS (Data Base Management System): Un Sistema de
estado
varchar(1),
SW que manejan la creacin, organizacin
y modificacin de una Base de Datos y
ciclo
acceso
a datos almacenados dentro de l. int,
Un DBMS proporciona control centralizado,
primary de
keydatos
(codigo)
independencia
y estructuras fsicas complejas para accesos eficientes,
);
integridad, recuperacin, concurrencia y seguridad.

4.2.

create
AulaBean
Cdigo
entable
SQL para
la creacin de la BD.

(
El script
creado para la creacin devarchar(6)
la base denot
datos
codigo
null,se ha construido
a partir
del
modelo
Entidad/Relacin
que
se
hizo
anteriormente, las
tipo
varchar(1),
columnas
de las tablas tieneint,
el tipo de dato adecuado para cada uno
capacidad
de los
casos, key
se han
definido los primary keys que permitan identificar
primary
(codigo)
); una de las entidades.
cada
create table CursoBean
(create database SACA
use
SACA
codigo
varchar(5) not null,
nombre
varchar(40),
create
table RegClaseView(
nroHorT
int,
Fecha
varchar(20),
nroHorP
int,
CodUser varchar(10),
sistCalif
varchar(1),
Curso
varchar(20),
creditos
int,
Seccion
char(1),
primary key (codigo)
char(50),
); Tema
Estado
varchar(10)
)
create
table LapsoTiempoBean
(
codigo
varchar(3) not null,
horaIni
int,
horaFin
int,
70
primary key (codigo)
);

Sistema de Asistencia y Control Administrativo (SACA)

71

create table SeccionBean


(
cod
cant
descripcion
estado
primary key (cod)
);

varchar(1) not null,


int,
varchar(40),
varchar(1),

create table UserBean


(
idUsuario
usuario
tipoUsuario
pass
primary key (idUsuario)
);

int not null,


varchar(20),
varchar(2),
varchar(20),

create table CursoSeccionBean


(
codigo
varchar(7) not null,
codigoc
varchar(6),
cod
varchar(1),
primary key (codigo)
);
create table AlertaDocenteBean
(
codigo
varchar(6) not null,
codigod
varchar(6),
descripcion
varchar(20),
mensaje
varchar(40),
fecha
date,
primary key (codigo)
);
create table ClaseProgramadaBean
(
codigo
varchar(6) not null,
codigocs
varchar(7) not null,
codigoa
varchar(6) not null,
primary key (codigo)
);
create table RegClaseAlumnoBean
(
codAlumno
varchar(9),
fecha
Date,
CodCursoSeccion
varchar(8),
HoraInicio
time,
HoraFinal
time,
71 varchar(1),
estadoClase
estadoReg
varchar(1),
primary key (codAlumno, CodCursoSeccion, fecha)
);

Sistema de Asistencia y Control Administrativo (SACA)

72

create table LinRegClaseAlumnoBean


(
codigo
varchar(9) not null,
asistencia
varchar(1),
horaIni
int,
horaFin
int
);
create table RegClaseDocenteBean
(
codDoc
varchar(8) not null,
fecha
Date,
CodCursoSeccion
varchar(8),
tema
varchar(20),
HoraInicio
time,
HoraFinal
time,
estadoClase
varchar(1),
estadoReg
varchar(1),
primary key (codDoc,fecha,codCursoSeccion)
);
create table SyllabusBean(
codCursoSeccion
varchar(8) not null,
Tema
varchar(50) null,
FechaInicio
date,
FechaFinal
date
);
create table RegDiarioDocenteBeanM
(
codDoc
varchar(9),
fecha
Date,
HoraInicio
time,
HoraFinal
time,
estadoDiario
varchar(1),
estadoReg
varchar(1),
primary key (codDoc)

);

create table RegDiarioDocenteBean


(
codigo
varchar(8) not null,
fecha
Date,
estadoDiario
varchar(1),
72
estadoReg
varchar(1),
primary key (codigo)
);

Sistema de Asistencia y Control Administrativo (SACA)

73

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into
into

HorariosBean values('20101034B','ST213-U','Lunes','N01');
HorariosBean values('20101034B','ST213-U','Miercoles','N01');
HOrariosBean values('20102575H','ST414-V','Lunes','N01');
HOrariosBean values('20092022K','ST213-U','Lunes','N01');
HOrariosBean values('20101006I','ST213-U','Lunes','N01');
HOrariosBean values('20101646J','ST324-X','Lunes','N01');
HOrariosBean values('20101034B','ST124-V','Lunes','T03');
HOrariosBean values('20101034B','ST205-X','Viernes','N03');
HOrariosBean values('20101034B','ST205-X','Viernes','N02');
HOrariosBean values('20101034B','ST205-X','Viernes','N01');
HOrariosBean values('20092022K','GP515-U','Lunes','N02');
HOrariosBean values('20101006I','GP122-U','Lunes','T02');
HOrariosBean values('20101006I','ST414-V','Lunes','T03');

insert
insert
insert
insert
insert
insert

into
into
into
into
into
into

HOrariosBean
HOrariosBean
HOrariosBean
HOrariosBean
HOrariosBean
HOrariosBean

values('DTC001','ST124-V','Lunes','N01');
values('DTC001','ST124-V','Viernes','N01');
values('DTC002','ST213-U','Lunes','N01');
values('DTP001','ST124-V','Lunes','N01');
values('DTP001','ST124-V','Viernes','N01');
values('DTP002','GP515-U','Lunes','N01');

insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into

SyllabusBean
SyllabusBean
SyllabusBean
SyllabusBean
SyllabusBean
SyllabusBean
SyllabusBean

values('ST213-U','Introduccion','2014-08-16','2014-08-24');
values('ST213-U','Metodos de Investigacion','2014-08-25','2014-09-12');
values('ST213-U','1er Entregable','2014-09-13','2014-09-28');
values('ST213-U','2do Entregable','2014-09-29','2014-10-22');
values('ST213-U','3er Entregable','2014-10-23','2014-11-17');
values('ST213-U','4to Entregable','2014-11-18','2014-11-24');
values('ST213-U','5to Entregable','2014-11-24','2014-12-16');

insert
insert
insert
insert
insert
insert

into
into
into
into
into
into

DocenteBean
DocenteBean
DocenteBean
DocenteBean
DocenteBean
DocenteBean

values('DTC001','Fernadez','Vazquez','Lujano',null,'DC','A');
values('DTC002','Arturo','Ramirez','Cardenas',null,'DP','A');
values('DTP001','Miguel','Tarantino','Rodriguez',NULL,'CA','A');
values('DTP002','Miguel','Carranza','Vasquez',null,'DP','A');
values('COA001','Carlos','Velarde','Silva',NULL,'DC','A');
values('COA002','Tereza','Ramirez','Samaniego',NULL,'DC','A');

insert
insert
insert
insert
insert

into
into
into
into
into

AlumnoBean
AlumnoBean
AlumnoBean
AlumnoBean
AlumnoBean

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into

AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean
AulaBean

values('20101034B','Edmundo','Mori','Orrillo',null,'R',3);
values('20101006I','Milton','Arica','Andrade',NULL,'R',6);
values('20092022K','Moises','Oscanoa','Alvarado',null,'R',4);
values('20101646J','Wesly','Vivanco','Pucca',NULL,'R',8);
values('20102575H','Tania','Maldonado','Trigoso',NULL,'R',4);

values('S4-104','C',30);
values('S4-105','C',30);
values('S4-106','C',30);
values('S4-107','C',30);
values('S4-108','C',30);
values('S4-109','C',30);
values('S4-204','C',30);
values('S4-205','C',30);
values('S4-206','C',30);
values('S4-207','C',30);
values('S4-208','C',30);
values('S4-209','C',30);

73

Sistema de Asistencia y Control Administrativo (SACA)

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into

CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean
CursoBean

insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into

LapsoTiempoBean
LapsoTiempoBean
LapsoTiempoBean
LapsoTiempoBean
LapsoTiempoBean
LapsoTiempoBean
LapsoTiempoBean

insert
insert
insert
insert

into
into
into
into

SeccionBean
SeccionBean
SeccionBean
SeccionBean

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into

UserBean
UserBean
UserBean
UserBean
UserBean
UserBean
UserBean
UserBean
UserBean
UserBean
UserBean

insert
insert
insert
insert
insert

into
into
into
into
into

AreaAcademicaBean
AreaAcademicaBean
AreaAcademicaBean
AreaAcademicaBean
AreaAcademicaBean

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into

CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean
CursoSeccionBean

insert
insert
insert
insert

into
into
into
into

LinRegClaseAlumnoBean
LinRegClaseAlumnoBean
LinRegClaseAlumnoBean
LinRegClaseAlumnoBean

74

values('ST213','TALLER DE INGENIERIA DE SOFTWARE I',0,6,'F',3);


values('ST214','ADMINISTRACION DE BASE DE DATOS',2,2,'F',3);
values('ST124','SIMULACION',2,2,'F',3);
values('GP314','MERCADOTECNIA',2,2,'G',3);
values('HS204','LEGISLACION EMPRESARIAL',1,1,'B',3);
values('ST414','INTELIGENCIA ARTIFICIAL',2,2,'F',3);
values('ST205','TOPICOS DE INGENIERIA DE SISTEMAS',2,2,'F',2);
values('ST215','SEGURIDAD INFORMATICA',2,2,'F',3);
values('ST324','SISTEMAS OPERATIVOS',2,2,'F',3);
values('GP122','CREATIVIDAD EMPRESARIAL',2,2,'G',2);
values('GP515','PLANEAMIENTO Y DIRECCION ESTRATEGICA',2,2,'G',3);
values('M01',08,10);
values('M02',10,12);
values('T01',12,14);
values('T02',14,16);
values('T03',16,18);
values('N01',18,20);
values('N02',20,22);

values('U',30,'Seccion U','A');
values('V',30,'Seccion V','A');
values('W',30,'Seccion W','A');
values('X',30,'Seccion X','A');

values(1,'DTC001','DC','123');
values(2,'DTC002','DC','123');
values(3,'DTP001','DP','123');
values(4,'DTP002','DP','123');
values(5,'COA001','CA','123');
values(6,'COA002','CA','123');
values(7,'20101034B','AL','1');
values(8,'20101006I','AL','1');
values(9,'20092022K','AL','1');
values(10,'20101646J','AL','1');
values(11,'20102575H','AL','1');
values('CB','Ciencias Bsicas');
values('GP','Gestin de la Produccin');
values('HS','Humanidades y Ciencias Sociales');
values('ST','Sistemas y Telemtica');
values('TP','Tecnologa de la Produccin');

values('ST213-U','ST213','U');
values('ST124-V','ST124','V');
values('ST205-X','ST205','X');
values('GP515-U','GP515','U');
values('HS204-V','HS204','V');
values('ST414-V','ST414','V');
values('ST324-X','ST324','X');
values('GP122-U','GP122','U');
values('ST213-V','ST213','V');
values('ST124-X','ST124','X');

74

values('20101034B','A',08,10);
values('20101034B','A',12,14);
values('20101034B','A',16,18);
values('20101006I','A',10,12);

Sistema de Asistencia y Control Administrativo (SACA)

4.3.

75

Cdigo utilizado en el aplicativo.


Antes de implementar el cdigo se debe crear un origen de datos de
SQL Server, con el nombre SACA, utilizando el origen de datos ODBC

75

Sistema de Asistencia y Control Administrativo (SACA)

76

de Windows; este origen de datos debe estar direccionado a la base


de datos indicada en el apartado anterior.

4.3.1. Cdigo para conectarse a la base datos.


El cdigo empleado para conectarse a la base de datos utiliza 3
parmetros de entrada: la direccin URL del origen de datos, el
usuario con la cual se iniciar sesin en el servidor, y por la
ltimo la contrasea que le corresponde a ese usuario.

package Coneccion;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConeccionSQL {
private static
private static
private static
static private

String user = "";


String pass = "";
String url = "jdbc:odbc:SACA";
Connection con;

public ConeccionSQL(){
}
static public Connection getConection(){

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
con = DriverManager.getConnection(url,user,pass);
if(con != null){
System.out.println("Se conecto a la base de datos");
}else{
System.out.println("No se conecto a la base de datos");
}
}catch(Exception ex){
ex.printStackTrace();
}
return con;
public Boolean closeConection(){
Boolean cerrado = false;
try{
con.close();
cerrado = true;
}catch(Exception e){
con = null;
cerrado = false;
}
return cerrado;
}
conn = null;

4.3.2. Cdigo de las clases en el paquete DAO


Este paquete del proyecto en netbeans contiene los
procedimientos que obtienen la informacin detallada de cada
76

Sistema de Asistencia y Control Administrativo (SACA)

77

uno de las entidades que se encuentran en la base datos, las


clases utilizadas utilizan el procedimiento para conectarse a la
BD antes de reportar la informacin a las tablas de netbeans y
adems las clases beans con la cual est relacionado cada una
de las entidades del modelo Entidad/Relacin.
Los mtodos de bsqueda utilizan por lo general dos
parmetros de fecha en todos los reportes, el curso que dicta
para el docente para la interface historial de asistencia a clase,
el rea acadmica por donde se necesita filtrar la informacin
para las interfaces de control de asistencia diaria y control de
asistencia a clase.
public class AlumnoDAO {
public AlumnoBean getAlumno(String cod) throws SQLException{
AlumnoBean user = new AlumnoBean();
String sql = "select * from AlumnoBean where codigo = (?)";
Connection cn;
PreparedStatement ps;
ResultSet rs;
cn = Coneccion.getConection();
boolean existe = false;
try{
ps = cn.prepareStatement(sql);
ps.setString(1,cod);
rs = ps.executeQuery();
existe=true;
while(rs.next()){

}
}

if (existe == true){
user.setCodigo(rs.getString(1));
user.setNombre(rs.getString(2));
user.setApPaterno(rs.getString(3));
user.setApMaterno(rs.getString(4));
user.setCorreo(rs.getString(5));
user.setEstado(rs.getString(6));
user.setCiclo(rs.getInt(7));
}
}
}catch(Exception e){
e.printStackTrace();
existe=false;
System.out.println("No se encontraron datos de este usuario");
}
return user;

77

Sistema de Asistencia y Control Administrativo (SACA)

78

El anterior cdigo es la clase de AlumnoDAO que nos da la


informacin detallada del alumno que tenga por el cdigo el
valor que se la d como parmetro de entrada, luego de
encontrarlo se instancia un variable tipo AlumnoBean que ser
la variable devuelta por el procedimiento luego de actualizar
con la informacin extraida.
public class DocenteDAO {
public DocenteBean getDocente(String cod) throws SQLException{
DocenteBean doc = new DocenteBean();
String sql="select * from DocenteBean where codigo like (?)";
PreparedStatement ps;
ResultSet rs;
Connection cn;

}
}

cn=Coneccion.getConection();
boolean existe = false;
try{
ps=(PreparedStatement) cn.prepareStatement(sql);
ps.setString(1,cod);
rs=ps.executeQuery();
existe=true;
while(rs.next()){
if (existe == true){
doc.setCodigo(rs.getString(1));
doc.setNombre(rs.getString(2));
doc.setApPaterno(rs.getString(3));
doc.setApMaterno(rs.getString(4));
doc.setCorreo(rs.getString(5));
doc.setTipo(rs.getString(6));
doc.setEstado(rs.getString(7));
}
}
}catch(Exception e){
e.printStackTrace();
System.out.println("No se encontraron datos de este docente");
}
return doc;

El anterior cdigo es la clase Docente DAO que nos da la


informacin detallada del doncente que tenga por el cdigo el
valor que se la d como parmetro de entrada, luego de
encontrarlo se instancia un variable tipo DocenteBean que ser
la variable devuelta por el procedimiento luego de actualizar
con la informacin extraida.
Estas dos clases se utilizan posteriormente para mostrar en
cada una de las interfaces el nombre completo del usuario que
ingresa al Sistema de Asistencia y Control Administrativo, el
cdigo que se necesita como parmetro se lo introduce en el
momento de ingresar al aplicativo.

78

Sistema de Asistencia y Control Administrativo (SACA)

79

public class CursoDAO {


public CursoBean getCurso(String cod) throws SQLException{
CursoBean curso = new CursoBean();
String sql="select * from CursoBean where codigo = (?)";
PreparedStatement ps;
Connection cn;
ResultSet rs;
cn=Coneccion.getConection();
boolean existe = false;
try{
ps=cn.prepareStatement(sql);
ps.setString(1,cod);
rs=ps.executeQuery();
existe=true;
while(rs.next()){
if (existe == true){
curso.setCodigo(rs.getString(1));
curso.setNombre(rs.getString(2));

}
}
}catch(Exception e){
e.printStackTrace();
System.out.println("No se encontraron datos de este curso");
}
return curso;

public String[] getNombres(String sentencia) throws SQLException,


NullPointerException {
String [] nombres = new String[10];
String n;
Integer i;
String sql=sentencia;
PreparedStatement ps;
Connection cn;
ResultSet rs;
i = 0;
cn=Coneccion.getConection();
boolean existe = false;
try{
ps=cn.prepareStatement(sql);
rs=ps.executeQuery();
existe=true;
while(rs.next()){
if (existe == true){
n=rs.getString("nombre");
nombres[i] = n;
i = i+1;
}
}
}catch(Exception e){
System.out.println("No se encontraron datos de este curso");
}
return nombres;
79

Sistema de Asistencia y Control Administrativo (SACA)

80

El cdigo anterior es de la clase CursoDAO, el cual tiene dos mtodos: retornar


la informacin del curso con cdigo igual al valor que se le da como parmetro
de entrada, y el segundo mtodo getNombres que se utiliza para extraer los
cursos en los cuales ha asistido el alumno que ingresa al sistema.

public class SyllabusDAO {


public String[] getTemas(String cod) throws SQLException{
SyllabusBean user = new SyllabusBean();
String Temas[] = null;
Integer i=0;
String sql = "select * from SyllabusBean where
codCursoSeccion = (?)";
Connection cn;
PreparedStatement ps;
ResultSet rs;
cn = Coneccion.getConection();
boolean existe = false;
try{
ps = cn.prepareStatement(sql);
ps.setString(1,cod);
rs = ps.executeQuery();
existe=true;
while(rs.next()){
if (existe == true){
user.setTema(rs.getString(2));
Temas[i++]=user.getTema();
}
}
}catch(Exception e){
e.printStackTrace();
existe=false;
System.out.println("No se encontraron datos de este
usuario");
}
return Temas;
}
El cdigo anterior es de la clase SyllabusDAO, que nos permite extraer los
temas que se desarrollan en cada curso, esto lo utilizaremos en la interface
Registro de asistencia del docente.
Con este mtodo evitamos que el docente ingrese manualmente el tema a
desarrollar en el momento que registre su asistencia, ya que puede cometer
errores, los cuales se mostraran en el momento que consulte su historial de
asistencia a clase.

80

Sistema de Asistencia y Control Administrativo (SACA)


4.3.3.

81

Cdigo de las interfaces

LOGIN

private void btnIngresarActionPerformed(java.awt.event.ActionEvent evt) {


String pass1 = txtPass.getText();
UserDAO USDAO = new UserDAO();
UserBean USBean = new UserBean();
MenuInicio MI = new MenuInicio();
try {
USBean = USDAO.getUser(txtUser.getText());
TipoUsuario = USBean.getTipoUsuario();
contrasea = USBean.getPass();
codUsuario = USBean.getUsuario();
if(NumIntentos<=3)
{
System.out.println(contrasea+" "+pass1);
if (contrasea.equals(pass1)){
System.out.println(TipoUsuario);
javax.swing.JOptionPane.showMessageDialog(rootPane,"Bienvenido al
Sistema");
this.setVisible(false);
MI.setVisible(true);
if (TipoUsuario.equals("AL"))
{
TipoUsuario="Alumno";
}else{
if (TipoUsuario.equals("DC") || TipoUsuario.equals("DP"))
TipoUsuario="Docente";
}
System.out.println(TipoUsuario);
System.out.println(codUsuario);
}
else{
NumIntentos+=1;
javax.swing.JOptionPane.showMessageDialog(rootPane,
"Su contrasea es incorrecta");
}
}
81

Sistema de Asistencia y Control Administrativo (SACA)

82

El cdigo anterior es el que se utiliza para validar si el usuario que desea


ingresar est registrado en el sistema, para luego comparar la contrasea
introducida y la contrasea que est guardada en la base de datos; en caso
que el usuario nos est registrado el aplicativo no le permitir el ingreso al
sistema, de la misma forma si el usuario est registrado y no introduce
correctamente su contrasea no podr ingresar al sistema, solo podr
ingresar el usuario que est registrado e introduzca correctamente su
contrasea.

REGISTRO DE ASISTENCIA

El registro de asistencia se aplica tanto a docentes como a alumnos, en el


primer caso el docente tendr la opcin de introducir el tema que
desarrollar en esa fecha, adems de registrar su hora de ingreso como su
hora de salida; mientras que para el alumno solo se habilitar los botones
de registro de hora entrada y salida en caso tenga clase.
Adicionalmente esta interface te muestra el curso que se est dictando en
ese hora, y para ello toma la hora del sistema y lo consulta con una tabla de
la base de datos que contiene el horario de clases para cada uno de los
cursos.
Esta interface es la que permitir que el usuario tanto docente como alumno
puedan consultar su historial de asistencia a clase, para luego filtrarlo por
fecha o por curso, de la misma forma le permitir al docente de tiempo
completo introducir su hora de ingreso y su hora de salida pero sin que sea
82

Sistema de Asistencia y Control Administrativo (SACA)

83

necesario que introduzca un tema a desarrollar, y esto permitir que este


docente a tiempo parcial pueda consultar su historial de asistencia diaria.

public String codUsuario, TipoUsuario, ApellMaterno,ApellPaterno, nombre;


public String dia, codLapso,CodCursoSeccion;
AsistenciaControler alControl = new AsistenciaControler();
Calendar calendario = Calendar.getInstance();
MetodosGlobales MG = new MetodosGlobales();
public RegistrarAsistencia() throws SQLException {
initComponents();
String codCurso, Seccion, NombCurso;
Image icon =
Toolkit.getDefaultToolkit().getImage(getClass().getResource("/image/SACAIcono.png"));
int day, hora;
setLocationRelativeTo(null);
setVisible(true);
setIconImage(icon);
codUsuario = Login.getcodUsuario();
TipoUsuario = Login.getTipoUsuario();
txtDocente.enable(false);
txtCodigo.enable(false);
txtCodCurso.enable(false);
txtCurso.enable(false);
txtSeccion.enable(false);
txtCodigo.setText(codUsuario);
if (TipoUsuario.equals("Alumno")){
AlumnoBean alBean = new AlumnoBean();
alBean = alControl.getAlumno(codUsuario);
labelUser.setText("Alumno");
txtDocente.setText(alBean.getApPaterno() + " "+ alBean.getApMaterno()+", "+
alBean.getNombre());
txtTema.setVisible(false);
labelTema.setVisible(false);
btnRegAsiDia.enable(false);
}
if (TipoUsuario.equals("Docente")){
DocenteBean docBean = new DocenteBean();
docBean = alControl.getDocente(codUsuario);
labelUser.setText("Docente");
txtDocente.setText(docBean.getApPaterno() + " "+ docBean.getApMaterno()+",
"+
docBean.getNombre());
}
day = calendario.get(Calendar.DAY_OF_WEEK);
hora = calendario.get(Calendar.HOUR_OF_DAY);
System.out.println(day+" "+hora);
dia= MG.getDia(day);
codLapso = MG.getCodLapso(hora);
83
CodCursoSeccion = alControl.getHorarios(codUsuario, codLapso,
dia).getCodCursoSeccion();
codCurso = CodCursoSeccion.substring(0,5);

Sistema de Asistencia y Control Administrativo (SACA)

84

HISTORIAL DE ASISTENCIA A CLASE


(Docentes/Alumnos)

Esta interface le reportar al usuario (Docente o Alumno) la hora de


ingreso a cada uno de las clases que se ha desarrollado en un periodo de
tiempo, adems muestra en que cursos y la seccin de cada uno de ellos,
en donde est matriculado para que pueda filtrar la informacin por
curso.
Luego de encontrar la informacin que desea, podr imprimirla en un
archivo con formato PDF, para esto debe existir una ruta fija en donde se
pueda dejar cada uno de los reportes que se desea imprimir.
El objetivo de esta interface es que el usuario pueda saber cmo ha
evolucionado su asistencia a clase, cuantas faltas a tenido y por ultimo
cuantas de ellas ha logrado justificar, de esta forma el alumno podr
saber si tiene riesgo de desaprobar algn curso por inasistencia.

84

Sistema de Asistencia y Control Administrativo (SACA)

85

public static String codUser,TipoUser, Nombre, Curso;


public static DefaultTableModel modelo2;
AsistenciaControler alControl = new AsistenciaControler();
MetodosGlobales MG = new MetodosGlobales();
public HistorialACD() throws SQLException {
initComponents();
setLocationRelativeTo(null);
Image icon =
Toolkit.getDefaultToolkit().getImage(getClass().getResource("/image/SACAIcono.png"));
setIconImage(icon);
setVisible(true);
TipoUser = Login.TipoUsuario;
codUser = Login.codUsuario;
txtCod.setText(codUser);
if (TipoUser.equals("Alumno")){
AlumnoBean alBean = new AlumnoBean();
alBean = alControl.getAlumno(codUser);
labelUser.setText("Alumno");
Nombre = alBean.getApPaterno() + " "+ alBean.getApMaterno()+", "+
alBean.getNombre();
txtUser.setText(Nombre);
}
if (TipoUser.equals("Docente")){
DocenteBean docBean = new DocenteBean();
docBean = alControl.getDocente(codUser);
labelUser.setText("Docente");
txtUser.setText(docBean.getApPaterno() + " "+ docBean.getApMaterno()+", "+
docBean.getNombre());
}
CargaPrim();
}
public void CargaPrim() throws SQLException
{
String[] nombres;
String sentenc;
try {
ArrayList list=new ArrayList();
RegclaseDAO libro=new RegclaseDAO();
CursoDAO cur = new CursoDAO();
list=libro.getRegClase(codUser);
tclRegClase.removeAll();
sentenc = mostrarGrilla(list);
nombres = cur.getNombres(sentenc);
cursoBox.removeAllItems();
cursoBox.addItem("Todas");
for(int i=0;i<nombres.length;i++){
if (!nombres[i].equals("")) cursoBox.addItem(nombres[i]);
}
85
} catch (Exception ex) {
System.out.println(ex);
}

Sistema de Asistencia y Control Administrativo (SACA)

86

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {


String cod, fi,ff;
try {
ArrayList list=new ArrayList();
RegclaseDAO libro=new RegclaseDAO();
CursoDAO cur = new CursoDAO();
if (!cursoBox.getSelectedItem().toString().equals("Todas"))
cod = cur.getCod(cursoBox.getSelectedItem().toString());
else cod = "Todas";
fi = MG.Fecha(dtpIni.getCalendar());
ff = MG.Fecha(dtpFin.getCalendar());
list=libro.getRegClaseFiltrado(codUser,cod,fi,ff);
tclRegClase.removeAll();
mostrarGrilla(list);
} catch (Exception ex) {
System.out.println(ex);
}
}
public String mostrarGrilla(ArrayList lista){
modelo2 = (DefaultTableModel) tclRegClase.getModel();
String sentencia = "select distinct nombre from CursoBean where codigo in ('";
modelo2.getDataVector().removeAllElements();
for(int i=0;i<lista.size();i++){
Object [] fila = new Object[5];
fila[0] = ((RegClaseBean)lista.get(i)).getFecha();
fila[1] = ((RegClaseBean)lista.get(i)).getCurso();
sentencia = sentencia+fila[1]+"','";
fila[2] = ((RegClaseBean)lista.get(i)).getSeccion();
fila[3] = ((RegClaseBean)lista.get(i)).getTema();
fila[4] = ((RegClaseBean)lista.get(i)).getEstado();
modelo2.addRow(fila);
}
sentencia = sentencia.substring(0,sentencia.length()-3);
sentencia = sentencia+"')";
return sentencia;
}
// El botn que se utilizara para imprimir en formato PDF
// Instancia la clase GenerarPDFAsistenciaClaseGenerarPDFAC
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Curso = (String) cursoBox.getSelectedItem();
GenerarPDFAsistenciaClaseGenerarPDFAC pdf =new
GenerarPDFAsistenciaClaseGenerarPDFAC();
pdf.createPdf();
}
86

Sistema de Asistencia y Control Administrativo (SACA)

87

Cdigo
Utilizado
para generar el archivo{ PDF
public
class
GenerarPDFAsistenciaClase
public void createPdf(){
File fil;
//Ruta del archivo, esto es dentro del proyecto Netbeans
fil = new File("src/Beans/HAsisClase.pdf");
/*Declaramos documento como un objeto Document
Asignamos el tamao de hoja y los margenes */
Document documento = new Document(PageSize.LETTER, 80, 80, 75,
75);
String TipoUser;
String Nombre;
String Curso;
TipoUser = HistorialACD.TipoUser;
Nombre = HistorialACD.Nombre;
Curso = HistorialACD.Curso;
//writer es declarado como el mtodo utilizado para escribir en el
archivo
PdfWriter writer = null;
try {
//Obtenemos la instancia del archivo a utilizar
writer = PdfWriter.getInstance(documento, new
FileOutputStream(fil));
} catch (Exception ex) {
ex.getMessage();
}
//Agregamos un titulo al archivo
documento.addTitle("Archivo pdf generado desde Java");
//Agregamos el autor del archivo
documento.addAuthor("Edmundo");
//Abrimos el documento para edicin
documento.open();
//Declaramos un texto como Paragraph
//Le podemos dar formado como alineacin, tamao y color a la
fuente.
Paragraph parrafo = new Paragraph();
parrafo.setAlignment(Paragraph.ALIGN_CENTER);
parrafo.setFont(FontFactory.getFont("Sans",25,Font.BOLD,
BaseColor.BLUE));
parrafo.add("Historial de Asistencia a clase");
try {
//Agregamos el texto al documento
documento.add(parrafo);
//Agregamos un salto de linea
documento.add(new Paragraph(" "));
//Agregamos la tabla al documento haciendo
//la llamada al mtodo tabla()
documento.add(tabla(TipoUser, Nombre, Curso));
documento.close(); //Cerramos el documento
writer.close(); //Cerramos writer87

Sistema de Asistencia y Control Administrativo (SACA)

88

//Mtodo para crear la tabla


public static PdfPTable tabla(String TipoUser, String Nombre, String
Curso){
//Instanciamos una tabla de 3 columnas
DefaultTableModel tablaHACD;
PdfPTable tabla = new PdfPTable(25);
tablaHACD = HistorialACD.modelo2;
//Declaramos un objeto para manejar las celdas
PdfPCell celda;
celda = new PdfPCell(new Phrase(TipoUser+" : "+Nombre));
celda.setColspan(25);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Curso : "+Curso));
celda.setColspan(25);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Fecha"));
celda.setColspan(5);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Curso"));
celda.setColspan(4);
celda.setGrayFill(2);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Seccion"));
celda.setColspan(4);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Tema"));
celda.setColspan(7);
tabla.addCell(celda);
celda = new PdfPCell(new Phrase("Estado"));
celda.setColspan(5);
tabla.addCell(celda);
for(int i=0;i<tablaHACD.getRowCount();i++){
Object [] fila = new Object[5];
fila[0] = tablaHACD.getValueAt(i,0);
celda = new PdfPCell(new Phrase(fila[0].toString()));
celda.setColspan(5);
tabla.addCell(celda);
fila[1] = tablaHACD.getValueAt(i,1);
celda = new PdfPCell(new Phrase(fila[1].toString()));
celda.setColspan(4);
tabla.addCell(celda);

fila[2] = tablaHACD.getValueAt(i,2);
celda = new PdfPCell(new Phrase(fila[2].toString()));
celda.setColspan(4);
tabla.addCell(celda);
fila[3] = tablaHACD.getValueAt(i,3);
celda = new PdfPCell(new Phrase(fila[3].toString()));
celda.setColspan(7);
celda.setHorizontalAlignment(0);
tabla.addCell(celda);
fila[4] = tablaHACD.getValueAt(i,4);
celda = new PdfPCell(new Phrase(fila[4].toString()));
celda.setColspan(5);
tabla.addCell(celda);
88

Sistema de Asistencia y Control Administrativo (SACA)

89

HISTORIAL DE ASISTENCIA DIARIA

En esta interface el docente podr ver su historial de asistencia diaria


desde una fecha de inicio hasta una fecha final, el objetivo de esta interface
es que el docente sepa que faltas an no ha justificado y las fechas en
donde ha llegado tarde.
Otra de las funcionalidades de esta interface es la posibilidad de crear
un archivo PDF que permita imprimir el reporte, de esta manera tendremos
reportes automatizados que podrn convertirse en archivos fsicos.

89

Potrebbero piacerti anche