Sunteți pe pagina 1din 119

UNIVERSIDAD CARLOS III DE MADRID

ESCUELA POLITCNICA SUPERIOR


Ingeniera tcnica de telecomunicacin: Telemtica
PROYECTO FIN DE CARRERA
DISEO Y DESARROLLO DE UNA
APLICACIN WEB PARA GESTIN DOCENTE
Autor: Luis lvarez lvarez
Tutores: Ral Arrabales Moreno, Juan M. Alonso Weber
Legans
Abril de 2009
MOTIVACIN
DETERMINACIN DEL ALCANCE DEL SISTEMA
IDENTIFICACIN DEL ENTORNO TECNOLGICO
IDENTIFICACIN DE LOS USUARIOS
HTML Y JAVASCRIPT
J2EE
TOMCAT
STRUTS
Tiles
Validator
MYSQL
HIBERNATE
LOG4J
CATLOGO DE REQUISITOS
Requisitos de Datos
REQ.D.001 Informacin sobre Asignaturas
REQ.D.002 Informacin sobre Alumnos
REQ.D.003 Informacin sobre Profesores
REQ.D.004 Informacin sobre Administradores
Requisitos de Aplicacin
REQ.A.001 Sistema de Cdigo Libre
REQ.A.002 Plataforma Hardware
Requisitos de Interfaz
REQ.I.001 Diferentes Perfiles de Usuario
REQ.I.002 Inicio de Sesin
REQ.I.003 Cierre de Sesin
REQ.I.004 Cliente Web o Browser
Requisitos Funcionales
REQ.F.001 Creacin de una nueva asignatura
REQ.F.002 Importacin de alumnos de una asignatura
REQ.F.003 Re-Importacin / Importacin parcial de alumnos de una asignatura
REQ.F.004 Creacin de Grupo de Prcticas
3
APLICACIN WEB PARA GESTIN DOCENTE ndice
REQ.F.005 Modificacin de Grupo de Prcticas
REQ.F.006A Insercin de Comentarios para Alumnos
REQ.F.006B Insercin de Comentarios para Profesores
REQ.F.007 Exportacin de Datos / Listados por pantalla
REQ.F.008 Activacin de Alumnos
Requisitos de Rendimiento
REQ.R.001 Tiempo de Respuesta
REQ.R.002 Carga Computacional
Requisitos de Seguridad
REQ.S.001 Registro de Acciones
REQ.S.002 Almacenamiento de Contraseas
CASOS DE USO
C.U.001 Autenticar usuario
C.U.002 Creacin de Asignatura
C.U.003 Creacin de Grupo de Asignatura
C.U.004 Creacin de Profesor
C.U.005 Importacin de Alumnos
C.U.006 Creacin de Grupo de Prcticas
C.U.007 Modificacin de Grupo de Prcticas
C.U.008 Exportacin de Datos
C.U.009 Activacin de Alumnos
C.U.010 Insercin de Comentario
C.U.011 Cerrar sesin
MODELO DE CLASES
DIAGRAMAS DE SECUENCIA E INTERFACES GRFICAS DEL USUARIO
Escenario Padre
Escenario Validacin
Escenario Creacin
Escenario Modificacin
Escenario Insercin
Escenario Exportacin
MODELO DE DATOS
DEFINICIN DE LA ARQUITECTURA
ESPECIFICACIN DE PRODUCTOS Y VERSIONES
DISEO DE CLASES
edu.gesdoc.struts
edu.gesdoc.struts.action
edu.gesdoc.struts.validator
edu.gesdoc.hibernate
4
APLICACIN WEB PARA GESTIN DOCENTE
edu.gesdoc.hibernate.persistencia
edu.gesdoc.hibernate.gestion
edu.gesdoc.util
edu.gesdoc.bean
edu.gesdoc.log4j
edu.gesdoc.exception
DISEO DE DATOS
DISEO DE INTERFACES GRFICAS
Generacin del layout general de la capa de presentacin
Diseo de la interfaz grfica
MANUAL DE INSTALACIN
MANUAL DE USUARIO
5
ndice
6
APLICACIN WEB PARA GESTIN DOCENTE
MOTIVACIN
El Departamento de Informtica de la Universidad Carlos III de Madrid necesita una aplicacin
web para la gestin docente que se desarrollar como parte del Proyecto Fin de Carrera del
alumno Luis lvarez.
En el departamento se valora la necesidad de una aplicacin sencilla y prctica que ayudara y
mejorara la gestin de las prcticas de las distintas asignaturas de dicho departamento.
Por ello se elabora un documento con todos los requisitos que debe cumplir la aplicacin y que
han de validarse por todos los participantes del proyecto.
DETERMINACIN DEL ALCANCE DEL SISTEMA
Las especificaciones de esta aplicacin se centran principalmente en la gestin de comentarios
realizados por los alumnos de una determinada asignatura sobre otros grupos de prcticas.
Principalmente esta aplicacin se encargar de:
Creacin de grupos de prcticas
Insercin de comentarios
Adems, si el usuario es profesor, podr realizar:
Importacin y activacin de alumnos de las asignaturas
Creacin y modificacin de grupos de prcticas
Exportacin de datos
Y, si el usuario es administrador:
Creacin de asignaturas y sus grupos
IDENTIFICACIN DEL ENTORNO TECNOLGICO
En este punto determinaremos el entorno tecnolgico en que se implementar el sistema
basndonos en los diferentes requisitos exigidos.
La infraestructura tecnolgica se har de acuerdo a la especificacin J2EE. Esta es una
plataforma de programacin para desarrollar y ejecutar software de aplicaciones en lenguaje
de programacin java, con arquitectura distribuida de n niveles, basndose ampliamente en
componentes de software modulares ejecutndose sobre un servidor de aplicaciones. En
nuestro caso, emplearemos el servidor de aplicaciones Apache Tomcat.
La infraestructura tecnolgica adems, seguir un patrn Modelo Vista Controlador. De
esta forma se ha decidido el empleo de Struts Apache FrameWork para facilitar el desarrollo
del sistema mediante este patrn. Las aplicaciones web basadas en servlets a veces mezclan
el cdigo de la base de datos, el cdigo del diseo y controlan el flujo de la informacin. En la
prctica, encontramos que si no separamos estas tres partes, en aplicaciones ms complejas
el mantenimiento es muy difcil. Struts est diseado para ayudar al desarrollador a crear
aplicaciones web que dividan el modelo, lgica de negocio o cdigo de la base de datos, la
vista, o diseo de las pginas web, y el controlador, que representa el cdigo de navegacin.
Aunque las primeras versiones slo incluan facilidades para la implementacin del MVC, en
7
Introduccin
especial implementaban la parte del controlador, con la creacin de nuevas versiones se le
han ido incorporando ms funcionalidades para facilitar los desarrollos. En nuestro caso, para
esta aplicacin se ha decidido el uso de estas dos libreras:
para la implementacin de la interfaz grfica. El framework Tiles component
view no solo te permite reutilizar plantillas, sino que tambin que permite organizar
layouts.
para la implementacin de las validaciones de los formularios, tanto en
el lado del cliente como en el lado del servidor.
Se proporcionar compatibilidad con base de datos MySQL. Se realizar un objeto para
cada una de las tablas de la base de datos y que ser el nico que interacte con dicha tabla.
Para ello utilizaremos la herramienta Hibernate.
En la activacin de alumnos se requerir de la librera JavaMail para el envo de correos
electrnicos.
Se ha utilizado Eclipse como entorno de desarrollo integrado.
IDENTIFICACIN DE LOS USUARIOS
Antes de comenzar los requisitos vamos a recordar los tres subconjuntos de perfil de usuario
que interactuarn con el sistema:
Sern los usuarios con los mnimos privilegios dentro de la aplicacin. Sern
dados de alta y activados por un usuario de perfil superior.
Sern aquellos usuarios que estn a cargo de una o varias asignaturas y se
les otorgarn numerosos privilegios. Sern dados de alta por un usuario administrador
Sern aquellos usuarios que tengan acceso a todas las acciones
posibles en la aplicacin, excepto la insercin de comentarios. Sern dados de alta mediante
acceso a la base de datos.
Todos aquellos usuarios que no pertenezcan a algunos de estos grupos no podrn tener acceso
a la aplicacin.
8
APLICACIN WEB PARA GESTIN DOCENTE
El desarrollo de Aplicaciones Web posee determinadas caractersticas que lo hacen diferente
del desarrollo de aplicaciones o software tradicional y sistemas de informacin.
La Ingeniera de la Web es multidisciplinar y aglutina contribuciones de diferentes reas:
arquitectura de la informacin, ingeniera de hipermedia/hipertexto, ingeniera de requisitos,
diseo de interfaz de usuario, usabilidad, diseo grafico y de presentacin, diseo y anlisis de
sistemas, ingeniera de software, ingeniera de datos, indexado y recuperacin de informacin,
testeo, modelado y simulacin, despliegue de aplicaciones, operacin de sistemas y gestin de
proyectos.
La Ingeniera de la Web no es un clon o subconjunto de la ingeniera de software aunque ambas
incluyen desarrollo de software y programacin, pues a pesar de que la Ingeniera de la Web
utiliza principios de ingeniera de software, incluye nuevos enfoques, metodologas,
herramientas, tcnicas, guas y patrones para cubrir los requisitos nicos de las aplicaciones
web.
Las alternativas para seleccionar una tecnologa para el desarrollo de aplicaciones web son
variadas; soluciones simples tales como lenguajes como Perl, PHP, etc. que pueden solucionar
el problema satisfactoriamente pero implican un costo adicional, y en el transcurrir del tiempo
se vern afectadas (como ejemplo Perl tiene la lgica de presentacin y la lgica de negocio
en un solo archivo).
Por lo expuesto surgen diferentes tecnologas que intentan solucionar y hacer este tipo de
aplicaciones ms flexibles, dotndolas de caractersticas distribuidas, que claramente separan
las cosas.
Una solucin puede ser que presentamos es el desarrollo y la fuente de este trabajo es JAVA
que es un lenguaje de programacin concurrente, orientado a objetos, con capacidades cliente-
servidor. En Java se puede abrir una conexin a una pagina Web u otra aplicacin de Internet,
y leer o escribir datos, en gran medida como un programador de C o C++ lee o escribe en el
terminal local.
Complementando Java surgen muchas aplicaciones tales como los Servlets que se ejecutan
en el servidor y en que no presentan ningn tipo de interfaz grafica puesto que estn totalmente
controlados por un servicio de red como pudiera ser un servidor Web. Hasta ahora los CGIs
eran el nico medio de proporcionar interaccin entre el cliente y el servidor. Un ejemplo muy
comn de uso de los CGIs son los tpicos formularios que el usuario ha de rellenar con sus
datos personales, que posteriormente pasan a formar parte de una base de datos.
El estado del arte del lenguaje Java, para aplicaciones, tanto del lado cliente como del servidor,
ha alcanzado un nivel de madurez que ya nadie pone en duda, y es lo que ha llevado a muchas
organizaciones, a adoptar la plataforma J2EE como base de su estrategia de actualizacin
tecnolgica para entornos distribuidos, adopcin del e-business, etc.
Sin embargo, cuando muchas de estas aplicaciones han pasado a la fase de produccin, no
se ha visto el mismo grado de madurez en capacidades como: rendimiento, disponibilidad,
escalabilidad, fiabilidad, seguridad, etc.
9
APLICACIN WEB PARA GESTIN DOCENTE Estado del Arte
Con la aparicin del J2EE, todo un nuevo catalogo de patrones de diseo apareci. Desde que
J2EE es una arquitectura por si misma que involucra otras arquitecturas, incluyendo servlets,
JavaServer Pages, Enterprise JavaBeans, y ms, merece su propio conjunto de patrones
especficos para diferentes aplicaciones empresariales.
De acuerdo con el libro J2EE PATTERNS Best Practices and Design Strategies, existen 5
capas en la arquitectura J2EE: cliente, presentacin, negocios, integracin y recurso.
El libro explica 15 patrones J2EE que estn divididos en 3 de las capas: presentacin, negocios
e integracin, las cuales no mencionaremos aqu.
La evolucin del desarrollo de aplicaciones Web tiene una trayectoria conocida en este mbito,
por su desarrollo rpido y complejo, lo cual podemos resumir en los siguientes puntos:
Modelo 1: Son las mas primitivas. Se identifican con este modelo las clsicas aplicaciones web
CGI, basadas en la ejecucin de procesos externos al servidor web, cuya salida por pantalla
era el HTML que el navegador reciba en respuesta a su peticin. Presentacin, negocio y
acceso a datos se confundan en un mismo script Perl.
Modelo 1.5 Aplicado a la tecnologa Java, se da con la aparicin de las pginas ASP de
Microsoft, y posteriormente JSPs y los Servlets. En este modelo, las responsabilidades de
presentacin (navegabilidad, visualizacin, etc) recaen en las pginas dinmicas generadas
en el servidor, mientras que los componentes incrustados en las mismas (Javabeans, ActiveX,
etc.) son los responsables del modelo de negocio y acceso a datos.
Modelo 2 Como evolucin del modelo 1.5 con la incorporacin del patrn MVC a este tipo de
aplicaciones, se define lo que se conoce como Model 2 de la arquitectura web. Se aprecia la
incorporacin de un elemento controlador de la navegacin de la aplicacin.
Modelo-Vista-Controlador (MVC), es el patrn de diseo que ha llegado a dominar el espacio
de programacin de aplicaciones web. Ahora es muy comn usar los trminos Modelo 2 y MVC
indistintamente.
Los frameworks MVC han pasado a ser una parte importante de cualquier proyecto WEB. Hoy
en da, la evolucin de la propia Web y de los estndares, han sido el caldo de cultivo de la
aparicin de un gran nmero de frameworks para facilitar y estandarizar la programacin WEB.
La mayora de ellos son OpenSource lo que permite la utilizacin en todos los proyectos
independientemente de la infraestructura de despliegue.
El ms conocido de todos los frameworks MVC es Struts. La historia de Struts es larga, y su
presencia continuada durante muchos aos hace que sea el framework de referencia.
Struts Framework originalmente fue creado por Craig R . McClanahan y donado al proyecto
Jakarta de Apache Software Foundation (ASF) in 2000. En Junio de 2001 se libera la primera
versin la cual es la 1.0, desde entonces muchos desarrolladores han participado en la mejora
continua de este Framework.
10
APLICACIN WEB PARA GESTIN DOCENTE
HTML Y JAVASCRIPT
HTML es el lenguaje de marcado predominante para la construccin de pginas web. Es usado
para describir la estructura y el contenido en forma de texto, as como para complementar el
texto con objetos tales como imgenes. HTML se escribe en forma de etiquetas, rodeadas por
corchetes angulares (<,>). HTML tambin puede describir, hasta un cierto punto, la apariencia
de un documento, y puede incluir un script (por ejemplo Javascript), el cual puede afectar el
comportamiento de navegadores web y otros procesadores de HTML.
El diseo en HTML aparte de cumplir con las especificaciones propias del lenguaje debe
respetar unos criterios de accesibilidad web, siguiendo unas pautas, o las normativas y leyes
vigentes en los pases donde se regule dicho concepto. Se encuentra disponible y desarrollado
por el W3C a travs de las Pautas de Accesibilidad al Contenido Web 1.0 WCAG.
JavaScript es un lenguaje de programacin interpretado, es decir, que no requiere compilacin,
utilizado principalmente en pginas web, con una sintaxis semejante a la del lenguaje Java y
el lenguaje C.
Al igual que Java, JavaScript es un lenguaje orientado a objetos propiamente dicho, ya que
dispone de Herencia, si bien sta se realiza siguiendo el paradigma de programacin basada
en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y
extendiendo su funcionalidad.
Todos los navegadores modernos interpretan el cdigo JavaScript integrado dentro de las
pginas web. Para interactuar con una pgina web se provee al lenguaje JavaScript de una
implementacin del DOM.
Tradicionalmente, se vena utilizando en pginas web HTML, para realizar tareas y operaciones
en el marco de la aplicacin nicamente cliente, sin acceso a funciones del servidor. JavaScript
se ejecuta en el agente de usuario al mismo tiempo que las sentencias van descargndose
junto con el cdigo HTML.
J2EE
Es una plataforma de programacin para desarrollar y ejecutar software de aplicaciones en
Lenguaje de programacin Java con arquitectura distribuida de n niveles, basndose
ampliamente en componentes de software modulares ejecutndose sobre un servidor de
aplicaciones. La plataforma Java EE est definida por una especificacin.
Java EE incluye varias especificaciones de API, tales como JDBC, RMI, e-mail, JMS, Servicios
Web, XML, etc. y define cmo coordinarlos. Java EE tambin configura algunas
especificaciones nicas para Java EE para componentes. Estas incluyen Enterprise JavaBeans,
servlets, portlets (siguiendo la especificacin de Portlets Java), JSPs y varias tecnologas de
servicios web. Esto permite al desarrollador crear una Aplicacin de Empresa portable entre
plataformas y escalable, a la vez que integrable con tecnologas anteriores. Otros beneficios
aadidos son, por ejemplo, que el servidor de aplicaciones puede manejar transacciones, la
seguridad, escalabilidad, concurrencia y gestin de los componentes desplegados, significando
que los desarrolladores pueden concentrarse ms en la lgica de negocio de los componentes
en lugar de en tareas de mantenimiento de bajo nivel.
11
Herramientas Utilizadas
La especificacin original J2EE fue desarrollada por Sun Microsystems.
Las APIs de Java EE incluyen varias tecnologas que extienden la funcionalidad de las APIs
base de Java SE.
La API Enterprise JavaBeans define un conjunto de APIs que un contenedor de objetos
distribuidos soportar para suministrar persistencia, RPCs (usando RMI o RMI-IIOP), control de
concurrencia, transacciones y control de acceso para objetos distribuidos.
Los paquetes javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap y
javax.naming.spi definen la API de JNDI. La Interfaz de Nombrado y Directorio Java es una
Interfaz de Programacin de Aplicaciones para servicios de directorio. Esto permite a los
clientes descubrir y buscar objetos y nombres a travs de un nombre. Adicionalmente,
especifica un SPI que permite que las implementaciones del servicio de directorio sean
enchufadas en el framework. Las implementaciones pueden hacer uso de un servidor, un
fichero, o una base de datos
Los paquetes java.sql y javax.sql definen la API de JDBC que permite la ejecucin de
operaciones sobre bases de datos desde el lenguaje de programacin Java
independientemente del sistema de operacin donde se ejecute o de la base de datos a la cual
se accede utilizando el dialecto SQL del modelo de base de datos que se utilice.
Estos paquetes definen la API JTA. Este API para transacciones en Java establece una serie
de Interfaces java entre el manejador de transacciones y las partes involucradas en el sistema
de transacciones distribuidas: el servidor de aplicaciones, el manejador de recursos y las
aplicaciones transaccionales.
Estos paquetes definen la API JAXP que sirve para la manipulacin y el tratamiento de archivos
XML.
Estos paquetes definen la API JMS. La API de Servicios de Mensajera de Java es la solucin
para el uso de colas de mensajes. ste es un estndar de mensajera que permite a los
componentes de aplicaciones basados en la plataforma de Java 2 crear, enviar, recibir y leer
mensajes. Tambin hace posible la comunicacin confiable de manera sncrona y asncrona.
TOMCAT
Tomcat (tambin llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de
servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat
implementa las especificaciones de los servlets y de JSP de Sun Microsystems.
12
APLICACIN WEB PARA GESTIN DOCENTE
Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat no es un servidor de
aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs
convirtindolas en servlets. El motor de servlets de Tomcat a menudo se presenta en
combinacin con el servidor web Apache.
Tomcat puede funcionar como servidor web por s mismo. En sus inicios existi la percepcin
de que el uso de Tomcat de forma autnoma era slo recomendable para entornos de desarrollo
y entornos con requisitos mnimos de velocidad y gestin de transacciones. Hoy en da ya no
existe esa percepcin y Tomcat es usado como servidor web autnomo en entornos con alto
nivel de trfico y alta disponibilidad.
Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga
de la mquina virtual Java.
STRUTS
Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrn
MVC bajo la plataforma J2EE.
Struts permite reducir el tiempo de desarrollo. Su carcter de software libre y su compatibilidad
con todas las plataformas en que Java Enterprise est disponible, lo convierte en una
herramienta bastante aplicable.
Struts se basa en el patrn del Modelo Vista Controlador (MVC) el cual se utiliza ampliamente
y es considerado de gran solidez. De acuerdo con este modelo, el procesamiento se separa en
tres secciones diferenciadas, llamadas el modelo, las vistas y el controlador.
Cuando se programan aplicaciones Web que implementa el patrn MVC, siempre surge la duda
de usar un solo controlador o usar varios. Si consideramos utilizar mejor uno solo para tener
toda nuestra lgica en un mismo lugar, nos encontramos con un grave problema, ya que se
convierte en lo que se conoce como "fat controller", es decir un controlador de peticiones. Struts
surge como la solucin a este problema ya que implementa un nico controlador (ActionServlet)
que evala las peticiones del usuario mediante un archivo configurable (struts-config.xml).
Corresponden a la lgica del negocio con la cual se comunica la aplicacin web. Usualmente
el modelo comprende accesos a Bases de Datos o sistemas que funcionan independientemente
de la aplicacin web.
Los componentes de control son los encargados de coordinar las actividades de la aplicacin,
que van desde la recepcin de datos del usuario, las verificaciones de forma y la seleccin de
un componente del modelo a ser llamado. Por su parte los componentes del modelo envan al
control sus eventuales resultados o errores de manera que puedan continuar con otros pasos
de la aplicacin.
Esta separacin simplifica enormemente la escritura tanto de vistas como de componentes del
modelo: Las pginas JSP no tienen que incluir manejo de errores, mientras que los elementos
del control simplemente deciden sobre el paso siguiente.
13
Herramientas Utilizadas
Entre las caractersticas de Struts se pueden mencionar:
Configuracin del control centralizada.
Interrelaciones entre acciones y pgina u otras acciones se especifican por tablas XML
en lugar de codificarlas en los programas o pginas.
Componentes de aplicacin, que son el mecanismo para compartir informacin
bidireccionalmente entre el usuario de la aplicacin y las acciones del modelo.
Libreras de entidades para facilitar la mayora de las operaciones que generalmente
realizan las pginas JSP.
Struts contiene herramientas para validacin de campos de plantillas bajo varios esquemas
que van desde validaciones locales en la pgina (en javaScript) hasta las validaciones de fondo
hechas a nivel de las acciones.
Struts permite que el desarrollador se concentre en el diseo de aplicaciones complejas como
una serie simple de componentes del Modelo y de la vista intercomunicados por un control
centralizado. Diseando de esta manera puede obtenerse una aplicacin ms consistente y
ms fcil de mantener.
Tiles
Normalmente en el desarrollo de una aplicacin Web, el grupo responsable de la
interfaz de usuario (UI) crea el Look and Feel (L&F) del sitio. Basndose en el Look and
Feel, este grupo crea paginas HTML que representan la funcionalidad de la aplicacin
y la forma de navegar. Con una implementacin basada en Servlet y JavaServer Pages
(JSP), donde las paginas HTML son convertidas en servlet y JSP, los diseadores de
UI, identificaron componentes HTML y JSP comunes, como la cabecera (Header), el
cuerpo (Body), el pie de pgina (Footer), el men, y la bsqueda (Search).
Validator
Para facilitar las acciones de validacin, Struts se apoya en el framework de Apache
Jakarta Commons Validator. El paquete correspondiente del Commons Validator
proporciona un framework simple y extensible para definir mtodos y reglas de
validacin a travs de un archivo xml. Tambin proporciona ayuda para la
internacionalizacin de las reglas de validacin y de los mensajes de error que se
precise emitir.
MYSQL
MySQL es un sistema de gestin de base de datos relacional, multi-hilo y multiusuario. MySQL
AB (subsidiaria de Sun Microsystems) desarrolla MySQL como software libre en un esquema
de licencia dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta
licencia, pero las empresas que quieran incorporarlo en productos privados pueden comprar a
la empresa una licencia especfica que les permita este uso.
MySQL es muy utilizado en aplicaciones web. MySQL es una base de datos muy rpida en la
lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de
integridad en entornos de alta concurrencia en la modificacin. En aplicaciones web hay baja
concurrencia en la modificacin de datos y en cambio el entorno es intensivo en lectura de
datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
14
APLICACIN WEB PARA GESTIN DOCENTE
HIBERNATE
Hibernate es una herramienta de mapeo objeto-relacional para la plataforma que facilita el
mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una
aplicacin, mediante archivos declarativos (XML) que permiten establecer estas relaciones.
Hibernate es software libre, distribuido bajo los trminos de la licencia GNU LGPL.
Como todas las herramientas de su tipo, Hibernate busca solucionar el problema de la
diferencia entre los dos modelos usados hoy en da para organizar y manipular datos: El usado
en la memoria de la computadora (orientacin a objetos) y el usado en las bases de datos
(modelo relacional). Para lograr esto permite al desarrollador detallar cmo es su modelo de
datos, qu relaciones existen y qu forma tienen. Con esta informacin Hibernate le permite a
la aplicacin manipular los datos de la base operando sobre objetos, con todas las
caractersticas de la OOP. Hibernate convertir los datos entre los tipos utilizados por Java y
los definidos por SQL. Hibernate genera las sentencias SQL y libera al desarrollador del manejo
manual de los datos que resultan de la ejecucin de dichas sentencias, manteniendo la
portabilidad entre todas las bases de datos con un ligero incremento en el tiempo de ejecucin.
Hibernate ofrece tambin un lenguaje de consulta de datos llamado HQL.
LOG4J
Log4j es una biblioteca de cdigo abierto desarrollada en Java por la Apache Software
Foundation que permite a los desarrolladores de software elegir la salida y el nivel de
granularidad de los mensajes o "logs" en tiempo de ejecucin y no de compilacin como es
comnmente realizado. La configuracin de salida y granularidad de los mensajes es realizada
tambin en ejecucin mediante el uso de archivos de configuracin externos.
Por defecto Log4J tiene 6 niveles de prioridad para los mensajes (debug, info, warn, error, fatal,
trace). Adems existen otros dos niveles adicionales (all y off).
En Log4J los mensajes son enviados a una (o varias) salida de destino.
Permite presentar el mensaje con el formato necesario para almacenarlo en un archivo. Adems
podemos aadir informacin complementaria al mensaje, como la fecha en que se gener, la
clase que lo gener, el nivel que posee...
La API es totalmente configurable, ya que se realiza mediante un archivo en formato XML o en
formato Java Properties (clave=valor).
15
Herramientas Utilizadas
16
APLICACIN WEB PARA GESTIN DOCENTE
CATLOGO DE REQUISITOS
En este punto se incluye una descripcin del comportamiento del sistema que se va
desarrollar.
Requisitos de Datos
Los requisitos de datos, tambin denominados requisitos de contenidos, requisitos
conceptuales o requisitos de almacenamiento de informacin, responden a la pregunta
de qu informacin debe almacenar y administrar la aplicacin.
17
Requisitos

REQ.D.001 Informacin sobre Asignaturas
Cdigo
Nombre
Descripcin
Criterios de Evaluacin
Grupos de la asignatura
Descripcin del grupo
Ao acadmico
Datos
Tamao mximo de los grupos de prcticas

REQ.D.002 Informacin sobre Alumnos
N.I.A.
D.N.I.
Nombre Completo
Correo Electrnico
Usuario de inicio de sesin en la aplicacin
Contrasea de inicio de sesin en la aplicacin
Informacin de pertenencia a grupos de prcticas
Informacin de pertenencia a asignaturas y grupo de la asignatura
Datos
Informacin sobre calificaciones de las prcticas en las que participa

REQ.D.003 Informacin sobre Profesores
Nombre Completo
Correo Electrnico
Informacin de localizacin y horario de tutoras
Usuario de inicio de sesin en la aplicacin
Contrasea de inicio de sesin en la aplicacin
Datos
Informacin de asignaturas y grupos que puede gestionar

REQ.D.004 Informacin sobre Administradores
Nombre Completo
Correo Electrnico
Usuario de inicio de sesin en la aplicacin
Datos
Contrasea de inicio de sesin en la aplicacin



Requisitos de Aplicacin
Los requisitos de aplicacin o sistema especifican el entorno tecnolgico y los
componentes hardware y software necesarios para la implantacin y explotacin de la
aplicacin.
Requisitos de Interfaz
Los requisitos de interfaz, tambin llamados requisitos de interaccin de usuario,
responden a la pregunta de cmo va a interactuar el usuario con la aplicacin.
18
APLICACIN WEB PARA GESTIN DOCENTE

REQ.A.001 Sistema de Cdigo Libre
Descripcin La aplicacin Web debe basarse en componentes software disponibles
bajo licencia no comercial. Por ejemplo: sistema operativo Linux, gestor
de base de datos MySQL, bibliotecas de arquitectura Web en tres capas
STRUTS, servidor Web Apache, servidor de aplicaciones Tomcat.

REQ.A.002 Plataforma Hardware
Descripcin La plataforma hardware que soporte la aplicacin debe ser un PC
Compatible capaz de ejecutar el S.O. Linux.


REQ.I.001 Diferentes Perfiles de Usuario
Descripcin La aplicacin debe gestionar de forma diferenciada los siguientes
perfiles de usuarios:
- Alumnos.
- Profesores.
- Administradores.
Cada perfil tendr un determinado nivel de acceso a las diferentes
funcionalidades de la aplicacin. Para cada funcionalidad se especificar
que perfiles pueden acceder.

REQ.I.002 Inicio de Sesin
Descripcin Todos los usuarios de la aplicacin deben realizar un inicio de sesin
previo a usar cualquier otra funcionalidad. De esta formar, siempre
podr registrarse el autor de cada accin.
El inicio de sesin de cada usuario debe autenticarse mediante usuario y
contrasea.

REQ.I.003 Cierre de Sesin
Descripcin Una vez iniciada una sesin por un usuario, la sesin se cerrar bien por
la accin del usuario que la abri o por un mecanismo automtico
basado en un determinado tiempo de espera en inactividad.

REQ.I.004 Cliente Web o Browser
Descripcin La aplicacin podr usarse al menos con los dos navegadores Web ms
extendidos: Microsoft Internet Explorer y Firefox. No se requerir la
instalacin de ningn software adicional por parte de los usuarios.


Requisitos Funcionales
Los requisitos funcionales especifican las funciones que ha de desempear la
aplicacin.
19
Requisitos

REQ.F.001 Creacin de una nueva asignatura
Descripcin Creacin de una nueva asignatura que se gestionar con la aplicacin.
Perfiles Administrador
Comentarios Se exigir la creacin de, al menos, un grupo de la asignatura.

REQ.F.002 Importacin de alumnos de una asignatura
Descripcin Carga de un fichero Excel con los campos correspondientes a los
alumnos matriculados en una determinada asignatura y grupo.
Perfiles Administrador, Profesor
Comentarios El fichero deber de tener el formato adecuado.

REQ.F.003 Re-Importacin / Importacin parcial de alumnos de una asignatura
Descripcin Carga de un fichero Excel con alumnos matriculados en una asignatura
en la que previamente se haba realizado una importacin de alumnos.
Slo deben aadirse en la aplicacin los alumnos nuevos, sin afectar a
los datos que ya estuvieran almacenados.
Perfiles Administrador, Profesor
Comentarios Se tomar como clave del alumno el DNI.

REQ.F.004 Creacin de Grupo de Prcticas
Descripcin La aplicacin ha de ofrecer un interfaz para la seleccin de un grupo de
alumnos de una misma asignatura para constituir un grupo de prcticas.
El nmero de elementos permitidos en el grupo depender de las
restricciones especificadas en la asignatura.
Perfiles Administrador, Profesor, Alumno
Comentarios Slo se podr seleccionar la asignatura y los alumnos.
Se limitar a que un alumno pertenezca a varios grupos de prcticas de
una misma asignatura.

REQ.F.005 Modificacin de Grupo de Prcticas
Descripcin La aplicacin ha de ofrecer un interfaz para la modificar un grupo de
alumnos de prcticas.
Perfiles Administrador, Profesor
Comentarios Se podrn modificar todas las propiedades del grupo

REQ.F.006A Insercin de Comentarios para Alumnos
Descripcin La aplicacin ha de ofrecer un interfaz para que un alumno pueda
insertar comentarios sobre otros grupos de prcticas que no sean el
suyo. Esta funcionalidad estar disponible slo durante un periodo de
tiempo especificado en la asignatura correspondiente.
Perfiles Alumno
Comentarios

Requisitos de Rendimiento
Los requisitos de rendimiento especifican los recursos mximos que puede consumir
la aplicacin.
Requisitos de Seguridad
Los requisitos de seguridad especifican las medidas de seguridad implementadas en
la aplicacin.
20
APLICACIN WEB PARA GESTIN DOCENTE
REQ.F.006B Insercin de Comentarios para Profesores
Descripcin La aplicacin ha de ofrecer un interfaz para que un profesor pueda
insertar comentarios sobre grupos de prcticas que estn bajo su tutela.
Perfiles Profesor
Comentarios

REQ.F.007 Exportacin de Datos / Listados por pantalla
Descripcin La aplicacin ha de ofrecer un interfaz para exportar los siguientes
datos:
- Alumnos matriculados en una asignatura.
- Grupos de prcticas de una asignatura.
- Comentarios hechos a los grupos de prcticas de una asignatura.
- Comentarios hechos por un alumno a otros grupos.
- Actividad de un determinado usuario por fecha.
Perfiles Administrador, Profesor
Comentarios

REQ.F.008 Activacin de Alumnos
Descripcin La aplicacin ha de ofrecer un interfaz para generar un usuario y
contrasea automticamente para todos los alumnos de una asignatura
y enviarles un correo electrnico con sus datos privados de inicio de
sesin.
Perfiles Administrador, Profesor
Comentarios El usuario ser el NIA y la contrasea ser aleatoria
REQ.R.001 Tiempo de Respuesta
Descripcin El tiempo de respuesta de la interfaz Web de la aplicacin debe ser
inferior a 1 segundo (sin tener en cuenta retardos de red).

REQ.R.002 Carga Computacional
Descripcin El conjunto del software necesario para la prestacin del servicio debe
poder ejecutarse en un solo PC compatible actual con 1 GB de memoria
principal.
.
REQ.S.001 Registro de Acciones
Descripcin Todas las acciones relevantes realizadas por un usuario debern quedar
registradas en un fichero histrico, indicando la direccin IP desde la
que se realizaron dichas acciones.

REQ.S.002 Almacenamiento de Contraseas
Descripcin Las contraseas sern almacenadas en la base de datos en un formato
cifrado.
Tras las anteriores definiciones de requisitos podemos ver como se relacionan en el siguiente
diagrama:
21
Requisitos
CASOS DE USO
En el siguiente diagrama presentaremos los casos de uso que describen todas las interacciones
que tendrn los usuarios con el software.
Podemos observar que para cualquier accin, se deber estar autenticado en el s
22
APLICACIN WEB PARA GESTIN DOCENTE
23
Requisitos
24
APLICACIN WEB PARA GESTIN DOCENTE
25
Requisitos
26
APLICACIN WEB PARA GESTIN DOCENTE
27
Requisitos
28
APLICACIN WEB PARA GESTIN DOCENTE
29
Requisitos
30
APLICACIN WEB PARA GESTIN DOCENTE
31
Requisitos
32
APLICACIN WEB PARA GESTIN DOCENTE
33
Requisitos
34
APLICACIN WEB PARA GESTIN DOCENTE
MODELO DE CLASES
Los diagramas de clase son el pilar bsico del modelado con UML, siendo utilizados
tanto para mostrar lo que el sistema puede hacer (anlisis), como para mostrar cmo
puede ser construido (diseo). El diagrama de clases de ms alto nivel (main class
diagram), ser lgicamente un dibujo de los paquetes que componen el sistema. A su
vez cada paquete tendr un main class diagram que muestra las clases del paquete, ya
en la parte del diseo.
Habiendo definido los requisitos que tiene que cumplir el sistema y tambin el
funcionamiento que debe tener, mediante el empleo de los casos de uso y los diagramas
de actividad, toca ahora realizar el modelo dinmico con el que contar la aplicacin.
Para eso, emplearemos en este punto varios diagramas de clases de alto nivel en el que
trataremos de abordar toda la aplicacin.
35
APLICACIN WEB PARA GESTIN DOCENTE Anlisis
36
APLICACIN WEB PARA GESTIN DOCENTE
Para seguir el MVC emplearemos Struts, permite reducir el tiempo de desarrollo. Su carcter
de software libre y su compatibilidad con todas las plataformas en que Java Enterprise est
disponible, lo convierte en una herramienta altamente disponible. Adems est demostrada su
robustez en la gran cantidad de aplicaciones que lo emplean.
Ya centrndonos ms a fondo en la aplicacin, diremos que estar principalmente basada en
los paquetes edu.gesdoc.hibernate (Capa Modelo), edu.gesdoc.struts (Capa Controlador) y
edu.gesdoc.util que explicaremos en las siguientes tablas.
37
Anlisis
Tipo Package
Nombre edu.gesdoc.hibernate
Descripcin Contendr las clases que representan el mapeo entre la lgica de la
aplicacin y una tabla que la represente en la base de datos. Estas clases
tambin realizarn todas las operaciones contra la base de datos para
almacenar, modificar, eliminar y obtener datos de esa tabla.

Tipo Package
Nombre edu.gesdoc.struts
Descripcin Estas clases responden a eventos, usualmente acciones del usuario e
invoca cambios en el modelo y probablemente en la vista.
Contendr las acciones, as como los beans que representan toda la
informacin que se muestra en las correspondientes pginas Web.

Tipo Package
Nombre edu.gesdoc.util
Descripcin Contendr las funciones necesarias en las que se apoyan las acciones,
tales como obtencin de variables de configuracin, envo de correos,
cifrado de claves, importacin y exportacin de archivos, generacin de
listas, envo de mensaje y/o errores, validacin de datos

DIAGRAMAS DE SECUENCIA E INTERFACES GRFICAS DEL USUARIO
En el punto anterior, hemos visto diagramas estticos que nos permitieron identificar a los
principales elementos de la aplicacin, pero ahora podremos centrarnos mejor en como
interactan entre ellos.
Vistos los diferentes subsistemas mediante diagramas de clases de alto nivel, ahora vamos a
enfocarnos en la definicin de varios escenarios globales que cubren todas las acciones
disponibles en el sistema.
Se aportar una breve descripcin, junto con un diagrama de secuencia y definiremos de forma
esquemtica la interfaz grfica de usuario (GUI) bsica, es decir el conjunto de objetos grficos
para representar la informacin y acciones disponibles en la aplicacin.
Para esto, hemos definido principalmente los siguientes escenarios ms relevantes:
Validacin
Creacin
Modificacin
Insercin
Exportacin
Todos los escenarios llevan implcitos un escenario que separaremos para evitar duplicidades
y que llamaremos escenario padre.
Escenario Padre
Este escenario ser el que inicialmente se produzca en cualquier interaccin del
usuario y el sistema. Realiza una comprobacin de la autenticacin del usuario en la
aplicacin. Si existe cualquier error se le enviar a la pantalla de entrada indicando el
error.
38
APLICACIN WEB PARA GESTIN DOCENTE
39
Anlisis
Escenario Validacin
En este escenario, un usuario intenta acceder a la aplicacin, entonces se le muestra
un formulario de validacin en el que tendr que introducir usuario y clave.
Si estos valores son correctos el sistema obtendr sus datos, inicializar los valores
necesarios en el sistema y mostrar la pantalla inicial de la aplicacin. Si existe
cualquier error se le enviar a la pantalla de entrada indicando el error.
40
APLICACIN WEB PARA GESTIN DOCENTE
41
Anlisis
Escenario Creacin
En este escenario, un usuario intenta crear un grupo de una asignatura.Accede a esta
opcin mediante el men principal.
Primero se muestra por pantalla la lista de asignaturas asociadas al usuario. Una vez
seleccionada y si los valores del grupo son correctos, el sistema introducir los datos
del nuevo grupo en la base de datos e indicar la accin realizada; si no, mostrar al
usuario los errores encontrados.
42
APLICACIN WEB PARA GESTIN DOCENTE
43
Anlisis
Escenario Modificacin
Un usuario realiza la modificacin de un grupo de prcticas de una asignatura.
Accede a esta opcin mediante el men principal.
Primero se muestra por pantalla la lista de grupo de prcticas de las asignaturas
asociadas al usuario. Una vez seleccionado, se mostrar una pantalla con los datos
actuales del grupo y permitiendo que sean modificados. Si los valores del grupo son
correctos, el sistema actualizar los datos del grupo en la base de datos e indicar la
accin realizada; si no, mostrar al usuario los errores encontrados.
44
APLICACIN WEB PARA GESTIN DOCENTE
45
Anlisis
Escenario Insercin
Un usuario introduce un comentario sobre un grupo de prcticas de una asignatura.
Accede a esta opcin mediante el men principal.
Primero se muestra por pantalla la lista de grupo de prcticas de las asignaturas
asociadas al usuario. Una vez seleccionado y si los datos son correctos, el sistema
introducir el comentario en la base de datos e indicar la accin realizada; si no,
mostrar al usuario los errores encontrados.
46
APLICACIN WEB PARA GESTIN DOCENTE
47
Anlisis
Escenario Exportacin
Un usuario realiza una exportacin de datos del sistema.
Accede a esta opcin mediante el men principal.
Primero se muestra por pantalla la lista de asignaturas asociadas al usuario y el
mtodo de salida de datos. Una vez seleccionado, el sistema mostrar una lista de las
distintas exportaciones de datos permitidas en la aplicacin. En algunas de stas, es
necesario indicar el usuario sobre el que consultar los datos. Si el usuario selecciona
salida por fichero se generar uno con los datos solicitados que el usuario podr
descargar a su equipo. Si selecciona por pantalla, mostrar los datos en el propio
sistema.
48
APLICACIN WEB PARA GESTIN DOCENTE
49
Anlisis
MODELO DE DATOS
Los puntos anteriores fueron dedicados a la definicin de los distintos requerimientos de la
aplicacin as como describir, ya sea mediante distintas tablas como con diferentes diagramas,
el funcionamiento de la aplicacin y los elementos que necesita esta para el correcto
cumplimiento de los requerimientos definidos.
En este punto, sin embargo, se pretende definir el modelo de datos que necesitar la aplicacin
para almacenar toda la informacin con la que va a trabajar.
50
APLICACIN WEB PARA GESTIN DOCENTE
Para ello vamos a emplear un diagrama entidad relacin. Los diagramas E-R son un lenguaje
grfico para describir conceptos. Informalmente, son simples dibujos o grficos que describen
la informacin que trata un sistema de informacin y el software que lo automatiza.
Realizaremos un diagrama en el que veremos principalmente las diferentes entidades que se
necesitarn y la interrelacin entre ellas. Tambin realizaremos una breve descripcin de cada
entidad para posteriormente, en la documentacin de diseo, hacer ms hincapi en qu tablas
se necesitan construir y que campos tiene cada una de ellas.
51
Anlisis
52
APLICACIN WEB PARA GESTIN DOCENTE
Nombre USUARIO
Descripcin Entidad que sirve para mantener la informacin de cada uno de los
usuarios de la aplicacin.

Nombre PERFIL
Descripcin Entidad que sirve para mantener los perfiles de la aplicacin.

Nombre ACCION
Descripcin Entidad que sirve para mantener las acciones disponibles por los usuarios
de la aplicacin.

Nombre PERFIL_ACCION
Descripcin Entidad que sirve para mantener las acciones habilitadas para cada perfil
de la aplicacin.

Nombre PROFESOR
Descripcin Entidad que sirve para mantener la informacin especfica de los
profesores.

Nombre ALUMNO
Descripcin Entidad que sirve para mantener la informacin especfica de los
alumnos.

Nombre ASIGNATURA
Descripcin Entidad que sirve para mantener la informacin de las asignaturas de la
aplicacin.

53
Anlisis
Nombre GRUPO_ASIGNATURA
Descripcin Entidad que sirve para mantener la informacin de los grupos de las
asignaturas de la aplicacin.

Nombre USUARIO_GRUPO_ASIGNATURA
Descripcin Entidad que sirve para mantener a qu grupos de las asignaturas pertenecen
los usuarios de la aplicacin.

Nombre GRUPO_PRACTICA
Descripcin Entidad que sirve para mantener la informacin de los grupos de prcticas
de las asignaturas de la aplicacin.

Nombre GRUPO_PRACTICA_ALUMNO
Descripcin Entidad que sirve para mantener a qu grupos de prcticas de las
asignaturas pertenecen los alumnos de la aplicacin.

Nombre COMENTARIO_GRUPO_PRACTICA
Descripcin Entidad que sirve para mantener los comentarios hechos por los usuarios a
los grupos de prcticas de las asignaturas de la aplicacin.

Nombre REGISTRO_ACCION
Descripcin Entidad que sirve para mantener las acciones relevantes realizadas por los
usuarios de la aplicacin.

54
APLICACIN WEB PARA GESTIN DOCENTE
DEFINICIN DE LA ARQUITECTURA
Centrndonos ms en el propio sistema, en este punto trataremos de dividir el sistema en las
diferentes capas que pueden distinguirse.
Como ya se ha comentado, el sistema seguir el patrn MVC. Por consiguiente, aqu estamos
estableciendo un mnimo de 3 capas.
55
Diseo
En el diagrama vemos estas capas:
Ser el diseo esttico de la aplicacin. En otras palabras, es la parte grfica, la parte
que el usuario del sistema ver en su navegador web. Esta parte estar formada por las pginas
JSP de la aplicacin.
Ser el controlador. Todas las peticiones al sistema y respuestas del sistema pasarn
por este elemento. l ser el encargado de redirigir los diferentes mensajes entre las distintas
pginas JSP y Servlets.
Ser la parte del sistema encargada del almacenamiento y recuperacin de la
informacin de la base de datos.
Para seguir el MVC emplearemos Struts, ya que permite reducir el tiempo de desarrollo. Su
carcter de software libre y su compatibilidad con todas las plataformas en que Java
Enterprise est disponible, lo convierte en una herramienta altamente disponible. Adems est
demostrada su robustez en la gran cantidad de aplicaciones que lo emplean.
Como se puede ver y ya se ha comentado, dentro del ncleo de Struts existen un conjunto de
libreras que estn definidas para la realizacin de validaciones en formularios Web, tanto en
la parte cliente como en la parte servidor. Este subconjunto de Struts est dentro de su paquete
Validator.
Y ya por ltimo, relacionado con Struts, decir que las distribuciones actuales vienen con un
conjunto de libreras que dan facilidades a la hora de construir el diseo esttico de las pginas
Web y que ser empleado por el sistema. Este conjunto de libreras est contenido dentro del
paquete tiles.jar.
56
APLICACIN WEB PARA GESTIN DOCENTE
ESPECIFICACIN DE PRODUCTOS Y VERSIONES
57
Diseo
Utilizacin Producto Empresa Versin
Servidor Jakarta Tomcat Apache
Software
Foundation
5.0.2.8
JVM J2DK Sun
Microsystems
1.4.2.16
API para Servlets J2EE Sun
Microsystems
2.3
IDE Eclipse Eclipse
Foundation
3.2
Servidor BBDD MySQL Sun
Microsystems
5.0.51a
Gestin Software BBDD Hibernate Red Hat 3.1.3
Framework Struts Apache
Software
Foundation
1.2.9
Framework Component Struts Tiles Apache
Software
Foundation
1.1
Framework Component Struts Validator Apache
Software
Foundation
1.1.3
Biblioteca (Mail) JavaMail Sun
Microsystems
1.4
Biblioteca (Log) Log4J Apache
Software
Foundation
1.2.15

APLICACIN WEB PARA GESTIN DOCENTE
58
DISEO DE CLASES
Los diagramas de clase son el pilar bsico del modelado con UML, siendo utilizados tanto para
mostrar lo que el sistema puede hacer (anlisis), como para mostrar cmo puede ser construido
(diseo).
El propsito de este punto, es transformar el modelo de clases lgico, que proviene del anlisis
funcional, en un modelo de clases de diseo.
En este caso, realizaremos una definicin bsica del sistema identificando diferentes
subsistemas basndonos en los principales paquetes y haciendo una breve descripcin de
ellos y las clases que estn contenidas.
edu.gesdoc.struts
Este paquete puede subdividirse en dos partes. Por un lado, se agrupan todas aquellas
acciones que pueden realizar cualquier usuario y, por otro, mejoras de las validaciones
proporcionadas por Struts personalizadas para nuestra aplicacin, ya que contienen
errores de software (bugs).
59
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
60
Paquete: edu.gesdoc.struts.action
Este paquete maneja todas las acciones entre la aplicacin y el usuario.
61
Diseo
Paquete edu.gesdoc.struts.action
Nombre MainAction
Descripcin Heredar del Action de struts y que representar las acciones a realizar en el servidor
cuando el usuario interacta con la aplicacin.
De esta clase heredarn todas aquellas que vayan a realizar una accin del servidor
por una orden del cliente. Esto se debe a que esta clase ser la encargada de la
comprobacin de la sesin del usuario para cualquier accin que quiera realizar.

Paquete edu.gesdoc.struts.action
Nombre LoginAction
Descripcin Valida el usuario y contrasea que introduzca el usuario para darle el acceso con su
correspondiente perfil o denegrselo.

Paquete edu.gesdoc.struts.action
Nombre NavegacionAction
Descripcin Redirecciona a la accin correspondiente dependiendo de la opcin del men que
pulse el usuario y genera las listas de datos necesarias.

Paquete edu.gesdoc.struts.action
Nombre InvalidateSessionAction
Descripcin Cierra la sesin del usuario

Paquete edu.gesdoc.struts.action
Nombre CreacionAsignaturaAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta la asignatura en la
base de datos.
Enva un mensaje al usuario indicando la accin realizada.

Paquete edu.gesdoc.struts.action
Nombre CreacionGrupoAsignaturaAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta el grupo de la
asignatura en la base de datos.
Enva un mensaje al usuario indicando la accin realizada.
APLICACIN WEB PARA GESTIN DOCENTE
62
Paquete edu.gesdoc.struts.action
Nombre CreacionProfesorAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta el profesor en la
base de datos.
Enva un mensaje al usuario indicando la accin realizada.

Paquete edu.gesdoc.struts.action
Nombre CreacionGrupoPracticaDatosAction
Descripcin Obtiene la asignatura seleccionada por el usuario en la que se crear el nuevo grupo
de prcticas

Paquete edu.gesdoc.struts.action
Nombre CreacionGrupoPracticaAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta el grupo de prcticas
de la asignatura en la base de datos.
Valida previamente si se ha superado el tamao mximo de alumnos de los grupos de
prcticas de la asignatura.
Enva un mensaje al usuario indicando la accin realizada.

Paquete edu.gesdoc.struts.action
Nombre InsercionComentarioAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta el comentario sobre
el grupo de prcticas en la base de datos.
Enva un mensaje al usuario indicando la accin realizada.

Paquete edu.gesdoc.struts.action
Nombre ModificacionGrupoPracticaDatosAction
Descripcin Obtiene los datos del grupo de practicas a modificar de la asignatura seleccionada por
el usuario

63
Diseo
Paquete edu.gesdoc.struts.action
Nombre MainAction
Descripcin Heredar del Action de struts y que representar las acciones a realizar en el servidor
cuando el usuario interacta con la aplicacin.
De esta clase heredarn todas aquellas que vayan a realizar una accin del servidor
por una orden del cliente. Esto se debe a que esta clase ser la encargada de la
comprobacin de la sesin del usuario para cualquier accin que quiera realizar.

Paquete edu.gesdoc.struts.action
Nombre LoginAction
Descripcin Valida el usuario y contrasea que introduzca el usuario para darle el acceso con su
correspondiente perfil o denegrselo.

Paquete edu.gesdoc.struts.action
Nombre NavegacionAction
Descripcin Redirecciona a la accin correspondiente dependiendo de la opcin del men que
pulse el usuario y genera las listas de datos necesarias.

Paquete edu.gesdoc.struts.action
Nombre InvalidateSessionAction
Descripcin Cierra la sesin del usuario

Paquete edu.gesdoc.struts.action
Nombre CreacionAsignaturaAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta la asignatura en la
base de datos.
Enva un mensaje al usuario indicando la accin realizada.

Paquete edu.gesdoc.struts.action
Nombre CreacionGrupoAsignaturaAction
Descripcin Obtiene los datos del formulario enviado por el usuario e inserta el grupo de la
asignatura en la base de datos.
Enva un mensaje al usuario indicando la accin realizada.
APLICACIN WEB PARA GESTIN DOCENTE
64
Paquete edu.gesdoc.struts.validator
Nombre FieldChecks
Descripcin Se utilizar esta clase para la validacin required, que valida los campos
obligatorios.
Se reprograma la clase original debido a la utilizacin de la clase
ValidatorUtils.

Paquete edu.gesdoc.struts.validator
Nombre ValidWhen
Descripcin Se utilizar esta clase para la validacin validwhen, que valida un campo
frente a otro.
Se reprograma la clase original debido a la utilizacin de la clase
ValidatorUtils.

Paquete edu.gesdoc.struts.validator
Nombre ValidatorUtils
Descripcin Se arregla un bug de la librera de validacin de Struts para la validacin
de campos de seleccin mltiples.
Paquete: edu.gesdoc.struts.validator
Este paquete realiza algunas de las validaciones de los datos introducidos por el
usuario
65
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
66
Paquete: edu.gesdoc.hibernate
Como ya se ha dicho, este paquete constar de todas aquellas clases que asocien los
datos de una tabla de la base de datos con un objeto lgico que vaya a emplearse en
la aplicacin.
Paquete: edu.gesdoc.hibernate.persistencia
Este paquete constar con todas aquellas clases (beans) que asocien los datos de
una tabla de la base de datos con un objeto lgico que vaya a emplearse en la
aplicacin, adems de los ficheros XML de configuracin de cada una.
Cada una de las tablas de la base de datos y sus columnas estar representada por
una clase y sus atributos, respectivamente.
67
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
68
Paquete: edu.gesdoc.hibernate.gestion
Agrupa a las clases que realizan operaciones de insercin, obtencin y eliminacin en
la base de datos, apoyndose en los beans de persistencia
Paquete edu.gesdoc.hibernate.gestion
Nombre Borrar
Descripcin Eliminacin de informacin de la base de datos: grupos de prcticas

Paquete edu.gesdoc.hibernate.gestion
Nombre Insertar
Descripcin Insercin de informacin en la base de datos: usuarios, asignaturas, grupos
de prcticas, comentarios, registros

Paquete edu.gesdoc.hibernate.gestion
Nombre Obtener
Descripcin Obtencin de informacin en la base de datos: usuarios, asignaturas,
grupos de prcticas, comentarios del grupo, alumnos matriculados, tamao
mximo del grupo de prcticas
69
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
70
Paquete: edu.gesdoc.uti
Contiene las clases que realizan diferentes funciones necesarias para el
funcionamiento de la apli cacin.
71
Diseo
Paquete edu.gesdoc.util
Nombre AppConfiguration
Descripcin Gestiona el manejo del fichero de propiedades de configuracin de la
aplicacin. Permite obtener los distintos valores de configuracin.

Paquete edu.gesdoc.util
Nombre Cifrador
Descripcin Utilizada para encriptar y desencriptar texto utilizando
PBEWithMD5AndDES [ PBE (Password-Based Encryptation = Cifrado
basado en contrasea) con MD5 de la contrasea y DES para el cifrado ]

Paquete edu.gesdoc.util
Nombre Constantes
Descripcin Almacena literales (atributos de sesin, parmetros de peticin, nombres
de mappings...), identificadores (modo de salida, celdas del fichero excel,
perfiles) y consultas HQL.

Paquete edu.gesdoc.util
Nombre EnviarMail
Descripcin Utilizada para el envo de correos.

Paquete edu.gesdoc.util
Nombre Exportacion
Descripcin Obtiene la informacin requerida para la exportacin y los muestra por
pantalla o genera un fichero excel con ellos.

APLICACIN WEB PARA GESTIN DOCENTE
72
Paquete edu.gesdoc.util
Nombre Importacion
Descripcin Carga los alumnos de la asignatura que contiene el fichero a la base de
datos.

Paquete edu.gesdoc.util
Nombre Listas
Descripcin Genera todas las listas de valores necesarias para mostrar en las pginas y
formularios, tales como asignaturas, aos, acciones, grupos de
asignatura

Paquete edu.gesdoc.util
Nombre Messages
Descripcin Enva mensajes y errores o literales al interfaz de usuario

Paquete edu.gesdoc.util
Nombre Util
Descripcin Distintas funciones como la generacin aleatoria de una contrasea,
obtencin de texto a mostrar, conversiones de tipos de datos


73
Diseo
Paquete edu.gesdoc.bean
Nombre ExportacionDatosBean
Descripcin Contiene los datos para la exportacin por pantalla o fichero

Paquete edu.gesdoc.log4j
Nombre Log4JInit
Descripcin Servlet que se encarga de configurar la utilidad en el arranque de la
aplicacin obteniendo los datos del fichero de configuracin

APLICACIN WEB PARA GESTIN DOCENTE
74
Paquete: edu.gesdoc.bean
Contiene los beans utilizados en la aplicacin.
Paquete: edu.gesdoc.log4j
Contiene las clases y los archivos de configuracin necesarios para la configuracin
de Log4J.
Paquete edu.gesdoc.exception
Nombre GesdocException
Descripcin Excepcin personalizada para la aplicacin

Paquete edu.gesdoc.exception
Nombre GesdocExceptionHandler
Descripcin Gestor de excepciones propio para la aplicacin

Paquete: edu.gesdoc.exception
Contiene lo relacionado con las excepciones de la aplicacin.
DISEO DE DATOS
Los puntos anteriores fueron dedicados a la definicin de los distintos requerimientos de la
aplicacin as como describir, ya sea mediante distintas tablas como con diferentes diagramas,
el funcionamiento de la aplicacin y los elementos que necesita sta para el correcto
cumplimiento de los requerimientos definidos.
En este punto, sin embargo, se habla del modelo de datos que necesitar la aplicacin para
almacenar toda la informacin con la que va a trabajar. Adems, contemplaremos tambin
puntos importantes como son la carga inicial de datos que deber tener la aplicacin, as como
la forma de conectar el sistema con la base de datos.
En el documento de anlisis funcional del sistema hemos definido el modelo de datos mediante
el empleo de diferentes diagramas entidad relacin. Pues basndonos en esos diagramas
realizaremos ahora el paso a tablas definiendo cada uno de los campos que contendr cada
tabla y una breve descripcin de cada uno de ellos.
75
Diseo

Nombre USUARIO
Descripcin Usuarios de la aplicacin.
Descripcin campos
ID_USUARIO Identificador del usuario (Clave primaria de la tabla USUARIO)
ID_PERFIL Identificador del perfil (Clave fornea de la tabla PERFIL)
NOMBRE Nombre completo
CORREO Correo electrnico
USUARIO Usuario de inicio de sesin en la aplicacin
CONTRASENA Contrasea de inicio de sesin en la aplicacin

Nombre PERFIL
Descripcin Perfiles de los usuarios de la aplicacin.
Descripcin campos
ID_PERFIL Identificador del perfil (Clave primaria de la tabla PERFIL)
DESCRIPCION Descripcin

Nombre ALUMNO
Descripcin Alumnos de la aplicacin.
Descripcin campos
ID_ALUMNO Identificador del alumno (Clave primaria de la tabla
ALUMNO)
ID_USUARIO Identificador del usuario (Clave fornea de la tabla
USUARIO)
NIA Nmero de Identificacin del Alumno
DNI Documento Nacional de Identidad


Capitulo APLICACIN WEB PARA GESTIN DOCENTE
76
Nombre PROFESOR
Descripcin Profesores de la aplicacin.
Descripcin campos
ID_PROFESOR Identificador del profesor (Clave primaria de la tabla
PROFESOR)
ID_USUARIO Identificador del usuario (Clave fornea de la tabla
USUARIO)
INFO Informacin de localizacin y horario de tutoras

Nombre ASIGNATURA
Descripcin Asignaturas de la aplicacin.
Descripcin campos
ID_ASIGNATURA Identificador de la asignatura (Clave primaria de la tabla
ASIGNATURA)
CODIGO Cdigo de Asignatura (nico alfanumrico)
NOMBRE Nombre
DESCRIPCION Descripcin
CRITERIOS Criterios de Evaluacin
PERIODO_COMENTARIOS Perodo de tiempo en que un alumno puede insertar
comentarios sobre otros grupos de prcticas
ANIO Ao acadmico
TAMANO_MAX_GRUPO Tamao mximo de los grupos de prcticas


Nombre GRUPO_ASIGNATURA
Descripcin Grupos de las asignaturas.
Descripcin campos
ID_GRUPO_ASIGNATURA Identificador del grupo de la asignatura (Clave primaria de
la tabla GRUPO_ASIGNATURA)
ID_ASIGNATURA Identificador de la asignatura (Clave fornea de la tabla
ASIGNATURA)
CODIGO Cdigo del Grupo
DESCRIPCION Descripcin


77
APLICACIN WEB PARA GESTIN DOCENTE Diseo
Nombre USUARIO_GRUPO_ASIGNATURA
Descripcin Relaciona usuarios con grupos de asignaturas.
Descripcin campos
ID_USUARIO_GRUPO_ASIGNATURA Identificador del usuario del grupo de la
asignatura (Clave primaria de la tabla
USUARIO_GRUPO_ASIGNATURA)
ID_USUARIO Identificador del usuario (Clave fornea de la
tabla USUARIO)
ID_GRUPO_ASIGNATURA Identificador del grupo de la asignatura
(Clave fornea de la tabla
GRUPO_ASIGNATURA)


Nombre GRUPO_PRACTICA
Descripcin Grupos de prcticas de las asignaturas.
Descripcin campos
ID_GRUPO_PRACTICAS Identificador del grupo de prcticas de la
asignatura (Clave primaria de la tabla
GRUPO_PRACTICA)
ID_ASIGNATURA Identificador de la asignatura (Clave fornea de la
tabla ASIGNATURA)
NUMERO Nmero de grupo
NOMBRE Nombre del grupo
FECHA_INICIO_COMENTARIOS Fecha de inicio del perodo de tiempo en que un
alumno puede insertar comentarios del grupo
FECHA_FIN_COMENTARIOS Fecha final del perodo de tiempo en que un
alumno puede insertar comentarios del grupo










APLICACIN WEB PARA GESTIN DOCENTE
78
Nombre GRUPO_PRACTICA_ALUMNO
Descripcin Relaciona alumnos con grupos de prcticas de las
asignaturas.
Descripcin campos
ID_GRUPO_PRACTICAS_ALUMNOS Identificador del alumno del grupo de
prcticas de la asignatura (Clave primaria de la
tabla GRUPO_PRACTICA_ALUMNO)
ID_GRUPO_PRACTICAS Identificador del grupo de prcticas de la
asignatura (Clave fornea de la tabla
GRUPO_PRACTICA)
ID_ALUMNO Identificador del usuario (Clave fornea de la
tabla USUARIO)


Nombre COMENTARIO_GRUPO_PRACTICA
Descripcin Comentarios sobre grupos de prcticas
realizados por usuarios.
Descripcin campos
ID_COMENTARIO_GRUPO_PRACTICAS Identificador del comentario sobre el
grupo de prcticas realizado por el
usuario (Clave primaria de la tabla
COMENTARIO_GRUPO_PRACTICA)
ID_GRUPO_PRACTICAS Identificador del grupo de prcticas de la
asignatura (Clave fornea de la tabla
GRUPO_PRACTICA)
ID_USUARIO Identificador del usuario (Clave fornea
de la tabla USUARIO)
COMENTARIO Comentario
FECHA Fecha del comentario

Nombre ACCION
Descripcin Acciones relevantes realizadas por un usuario.
Descripcin campos
ID_ACCION Identificador de la accin (Clave primaria de la tabla ACCION)
DESCRIPCION Descripcin
ORDEN rden en el que se muestra la accin en el men del usuario

79
Diseo

Nombre REGISTRO_ACCION
Descripcin Registro de acciones.
Descripcin campos
ID_REGISTRO_ACCION Identificador del registro de acciones (Clave
primaria de la tabla REGISTRO_ACCION)
ID_USUARIO Identificador del usuario (Clave fornea de la tabla
USUARIO)
ID_ACCION Identificador de la accin (Clave fornea de la tabla
ACCION)
IP Direccin IP
FECHA Fecha de realizacin
DESCRIPCIN Descripcin


Nombre PERFIL_ACCION
Descripcin Acciones permitidas para cada perfil.
Descripcin campos
ID_PERFIL_ACCION Identificador de la accin del perfil (Clave primaria de la tabla
PERFIL_ACCION)
ID_PERFIL Descripcin
ID_ACCION rden en el que se muestra la accin en el men del usuario

APLICACIN WEB PARA GESTIN DOCENTE
80
Hasta ahora hemos hecho una descripcin de las tablas, y de los campos de stas, que va a
necesitar el sistema.
Pero con la sola existencia de estas tablas el sistema no estara preparado correctamente. Esto
se debe a que muchas de las tablas son slo para el almacenamiento de datos de, por ejemplo,
grupos de prcticas, comentarios, etc., pero otras muchas eran necesarias para mostrar
informacin inicial de datos, esto es por ejemplo las acciones, los perfiles existentes, etc.
En este punto indicaremos las tablas que necesitan estar cargadas al inicio de la aplicacin. Sus
datos iniciales se pueden obtener del fichero create-db-gesdoc.sql.
Las tablas son:
ACCION
PERFIL
PERFIL_ACCION
USUARIO (Un administrador por defecto)
Para obtener la conexin a la base de datos, se utiliza el fichero de configuracin de Hibernate
hibernate.cfg.xml.
En este fichero se definen los parmetros de la base de datos:
<property name=connection.username>GESDOC_APP</property>
<property name=connection.url>jdbc:mysql:///GESDOC</property>
<property name=dialect>org.hibernate.dialect.MySQLDialect</property>
<property name=connection.password>GESDOC_APP</property>
<propertyname=connection.driver_class>com.mysql.jdbc.Driver</property>
<property name=connection.pool_size>30</property>
DISEO DE INTERFACES GRFICAS
Como es lgico, la existencia de una interfaz grfica de fcil manejo y diseo atractivo es
bsica.
En un entorno web es fundamental que la interfaz de usuario sea sencilla, intuitiva y atractiva,
y que no necesite un tiempo de aprendizaje adicional.
En este caso, la interfaz ser similar para los diferentes usuarios de los que constar la
aplicacin. Deber ser homognea y la nica diferencia que exista, dependiendo del usuario
que haya accedido, estar en la cantidad de opciones a las que tenga acceso.
Generacin del layout general de la capa de presentacin
Este punto ser dedicado a la definir como se va a implementar la capa de
presentacin haciendo especial atencin a aquellos ficheros que sean ms relevantes.
Como ya se ha explicado, en la capa de presentacin se han estructurado las pginas
mediante Tiles, que permiten una mayor facilidad a la hora de estructurar la pgina web.
Empleando estas libreras, el diseo genrico finalmente quedar de la siguiente
manera:
81
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
82
Todas las definiciones de las pginas de la aplicacin pueden encontrarse en el fichero
WEB-INF/tiles.xml. Este fichero se define en el fichero /WEB-INF/struts_config.xml de
la siguiente forma:
<plug-in className=org.apache.struts.tiles.TilesPlugin>
<! Path to XML definition file >
<set-property property=definitions-config value=/WEB-INF/tiles-definitions.xml />
<! Set Module-awareness to true >
<set-property property=moduleAware value=true />
<set-property property=definitions-parser-validate value=true />
</plug-in>
El fichero tiles-definitions.xml tiene las definiciones dadas en la imagen anterior. Las
definiciones permiten herencia por lo que existir una definicin base y de sta
extendern todas las dems.
La definicin base contiene:
path: pgina que especifica como se organizarn los siguientes atributos:
header: pgina de la cabecera
tools: pgina que muestra el usuario activo y la opcin Salir
menu: pgina del men
messages: pgina que muestra los mensajes y errores
<definition name=base.definition path=/WEB-INF/jsp/tiles/layout.jsp>
<put name=header value=/WEB-INF/jsp/tiles/header.jsp />
<put name=tools value=/WEB-INF/jsp/tiles/tools.jsp />
<put name=menu value=/WEB-INF/jsp/tiles/menu.jsp />
<put name=messages value=/WEB-INF/jsp/tiles/messages.jsp />
</definition>
Ahora cada definicin especifica el contenido y su ttulo, que ser la parte variable.
Por ejemplo para la pgina de creacin de asignaturas:
<definition name=page.creacion.asignatura extends=base.definition>
<put name=title value=Creacin de asignatura />
<put name=body value=/WEB-INF/jsp/creacionAsignatura.jsp />
</definition>
Por ltimo en este apartado decir que todos los textos de las pginas se han incluido
en el fichero ApplicationResources.properties ubicado en el paquete edu.gesdoc.struts,
por lo que la administracin de literales y la internacionalizacin de la aplicacin se
podran realizar de forma sencilla.
Diseo de la interfaz grfica
En este punto mostraremos las distintas interfaces que se emplearn en la aplicacin.
Para ello, podremos abarcar casi todas las situaciones de la aplicacin mediante el
empleo de diferentes capturas de pantalla para cada uno de los escenarios mostrados
en los diagramas de iteracin.
83
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
84
85
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
86
87
Diseo
APLICACIN WEB PARA GESTIN DOCENTE
88
Diseo
89
APLICACIN WEB PARA GESTIN DOCENTE
90
Diseo
91
APLICACIN WEB PARA GESTIN DOCENTE
92
Diseo
93
APLICACIN WEB PARA GESTIN DOCENTE
94
INTRODUCCIN
El presente punto contiene la lista de pruebas de sistema a realizar en la aplicacin.
El motivo por el cual se quieren ejecutar estas pruebas es para demostrar el correcto
funcionamiento de la aplicacin para posteriormente realizar su puesta en produccin.
Pruebas
95
APLICACIN WEB PARA GESTIN DOCENTE
96
Pruebas
97
APLICACIN WEB PARA GESTIN DOCENTE
98
99
Pruebas
APLICACIN WEB PARA GESTIN DOCENTE
100
Manuales
101
MANUAL DE INSTALACIN
En este documento se presenta la manual de instalacin de la aplicacin Web para Gestin
Docente.
A continuacin se especifican los requisitos bsicos necesarios para el funcionamiento de la
aplicacin.
Es necesario disponer del siguiente entorno:
MySQL 5 instalada [http://dev.mysql.com/downloads/mysql/5.0.html]
JRE 1.4.2 instalada [http://java.sun.com/j2se/1.4.2/download.html]
Tomcat 5 instalado [http://tomcat.apache.org/download-55.cgi]
La aplicacin ha sido probada bajo el entorno y versiones descritos. La aplicacin puede ser
compatible con otros entornos y versiones, si bien no han sido probados.
A continuacin se detallan los pasos a seguir para realizar la instalacin de las aplicaciones que
conforman el entorno sobre el que se ejecuta la aplicacin.
La instalacin del entorno puede hacerse bajo distintos sistemas operativos. Para un mayor
detalle consulte las guas de instalacin proporcionadas por cada una de las aplicaciones.
A. Instalar MySQL-5.0
Pasos para la instalacin de MySQL-5.0:
Configure MySQL Server Now:
Detailed Configuration
Server Machine
Multifunctional Database
InnoDB: valores por defecto
Manual Setting: 50 concurrent
Port 3306 y Enable Strict Mode
Standard Character Set
Install as windows service y chequear Include bin directory
Root password: [contrasea]
Pulsar execute.
B. Instalar JRE 1.4.2_16
Instalacin Tpica.
APLICACIN WEB PARA GESTIN DOCENTE
102
C. Instalar Tomcat 5
Aceptar licencia
Instalar tomcat y start menu item
Puerto 8080 por defecto, introduzca usuario y password de administrador de Tomcat.
Seleccionar JRE: seleccionar directorio en el que se instalo el jre. Por defecto en
Windows C:\Archivos de programa\Java\jre1.4.2_16
instalar
Seleccionar Run Apache Tomcat
A continuacin se detallan los pasos a seguir para la instalacin de la aplicacin en el entorno
descrito en el paso anterior.
Para la instalacin de la aplicacin nicamente es necesario realizar los siguientes pasos:
A. Desplegar el fichero WAR: gesdoc.war bajo el contenedor de JSPs elegido. Si el
contenedor es Tomcat basta con copiar el fichero gesdoc.war en el directorio
$CATALINA_HOME/webapps.
B. El modulo servidor usa MySQL como base de datos relacional para almacenar
informacin. Por ello es necesario que la base de datos est preparada para el uso del
modulo servidor.
Para la creacin del esquema de base de datos:
$\MySQL\MySQL Server 5.0\bin> mysql -h localhost -u root p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.0.45-community-nt MySQL Community Edition
(GPL)
Type help; or \h for help. Type \c to clear the buffer.
mysql> create database GESDOC;
Query OK, 1 row affected (0.03 sec)
mysql> grant CREATE,INSERT,DELETE,UPDATE,SELECT on FORMDB.* to
GESDOC_ADMIN@localhost IDENTIFIED BY GESDOC_ADMIN;
Query OK, 0 rows affected (0.15 sec)
Y para la carga de informacin bsica se proporciona un script SQL: create-db-
gesdoc.sql. Conectar al servidor de base de datos MySQL y ejecutar el script (create-
db-gesdoc.sql) encargado de la creacin de la base de datos y de la carga de
informacin bsica.
Manuales
103
Para ejecutar la aplicacin es necesario:
A. Arrancar el servidor MYSQL
B. Arrancar el servido TOMCAT
C. Arrancar navegador web y acceder a la aplicacin a travs de la siguiente URL:
http://localhost:8080/gesdoc/
Si no se accede desde el propio servidor o no se utiliza el puerto por defecto del Tomcat
modificar el 8080 por el puerto especificado. Acceder mediante:
http://servername:port/gesdoc/
D. Introduzca el usuario y contrasea. El usuario y contrasea administrador que se
instala por defecto es admin / admin.
Modificaciones de contrasea por defecto
Para generar contraseas cifradas o descifrar otras ya existentes se proporciona la
clase Cifrador.
Para obtener la contrasea, por ejemplo del administrador por defecto, se ejecutar de
la siguiente manera:
$> java Cifrador D zf1CbCmFckg=
zf1CbCmFckg= -> DESENCRIPTACION -> admin
obteniendo as la contrasea descifrada.
Para generar un nuevo usuario administrador:
A. Generar la contrasea cifrada:
$> java Cifrador E admin2
admin2 -> ENCRIPTACION -> au5IwJrfcaw=
B. Insertar el usuario en la base de datos:
INSERT INTO USUARIO
(ID_USUARIO, ID_PERFIL, NOMBRE, CORREO, USUARIO, CONTRASENA)
VALUES (2, 1, Administrador2, admin2@uc3m.es, admin2, au5IwJrfcaw=);
Modificaciones de la configuracin general de la aplicacin
Para ello es necesario modificar el fichero app-config.properties y definir los nuevos
valores para las variables que queramos modificar:
A. TIEMPO_MAX_INACTIVIDAD_SESION: Nmero de minutos de duracin
mxima de la sesin de cada usuario
B. RUTA_TEMPORAL: Directorio temporal para la generacin de los ficheros excel
de exportacin
C. CORREO_ENVIO_SMTP: Servidor SMTP
D. CORREO_ENVIO_PUERTO: Puerto SMTE
E. CORREO_ENVIO_CUENTA: Cuenta de correo origen para los envos
F. CORREO_ENVIO_USUARIO: Usuario de la cuenta de correo origen
APLICACIN WEB PARA GESTIN DOCENTE
104
G. CORREO_ENVIO_CONTRASENA: Contrasea de la cuenta de correo orig
H. CORREO_ENVIO_ASUNTO: Asunto genrico del correo con los datos
personales
Modificaciones de la configuracin de la base de datos de la aplicacin
La configuracin de la conexin de la aplicacin a la base de datos se encuentra en el
fichero hibernate.cfg.xml.
Podremos alterar la configuracin bsica de la base de datos:
hibernate.connection.driver_class: clase del driver JDBC
hibernate.connection.url : JDBC URL
hibernate.connection.username : usuario de la base de datos
hibernate.connection.password : contrasea de la base de datos
hibernate.connection.pool_size: Nmero mximo de conexiones del pool
Tambin podremos modificar los valores por defecto de propiedades de configuracin
opcionales
http://www.hibernate.org/hib_docs/v3/reference/en-US/html/configuration-optional.html
MANUAL DE USUARIO
Este manual le permitir aprender a utilizar todas las funcionalidades bsicas de Gesdoc.
Gesdoc es una herramienta para la gestin de prcticas de asignaturas de la universidad, con
la posibilidad de creacin de asignaturas y sus diferentes grupos, grupos de practicas,
profesores, alumnos, insercin de comentarios
Cada perfil tendr un determinado nivel de acceso a las diferentes funcionalidades de la
aplicacin.
Al tratarse de una aplicacin web, los usuarios pueden acceder a ella mediante un navegador.
Por lo tanto slo es necesario que el usuario tenga instalado en su equipo un navegador web
como Mozilla Firefox o Internet Explorer.
Manuales
105
Iniciar Sesin
Acceda a la URL de la aplicacin y una vez se le muestra el formulario de entrada,
introduzca su usuario y contrasea y pulse Enviar.
Cerrar Sesin
Una vez dentro de la aplicacin, en la parte superior derecha encontrar su perfil, nombre de
usuario y un enlace con el texto Salir. Plselo para cerrar su sesin.
Administrador
Crear una asignatura
Pulse en la opcin Creacin de la asignatura en el men de la izquierda.
Rellene al menos los datos obligatorios del formulario y pulse Crear.
APLICACIN WEB PARA GESTIN DOCENTE
106
Crear un grupo de una asignatura
Pulse en la opcin Creacin de grupo de asignatura en el men de la izquierda.
Rellene el formulario y pulse Crear.
Crear un profesor
Pulse en la opcin Creacin de profesor en el men de la izquierda.
Rellene al menos los datos obligatorios del formulario y pulse Crear.
Manuales
107
Importar alumnos
Pulse en la opcin Importacin de alumnos en el men de la izquierda.
Seleccione el grupo de la asignatura en el que va a importar los alumnos. Pulse en
Examinar y seleccione de su disco duro local el fichero que contiene los datos de
los alumnos. El fichero deber tener el siguiente formato:
Pulse Importar.
APLICACIN WEB PARA GESTIN DOCENTE
108
Modificar un grupo de prcticas
Pulse en la opcin Modificacin de grupo de prcticas en el men de la izquierda.
Seleccione el grupo de prcticas que va a modificar y pulse Enviar.
Rellene el formulario si lo desea, seleccione los alumnos disponibles que compondrn
el grupo y pulse Modificar.
Exportar datos
Pulse en la opcin Exportacin de datos en el men de la izquierda.
Seleccione la asignatura de la que va a exportar datos, el modo de salida de stos y
pulse Enviar.
Manuales
109
Pulse sobre la exportacin que desea realizar, seleccionando un usuario en el caso
de que la exportacin lo exija.
Si ha seleccionado el modo de salida por pantalla mostrar los datos por pantalla.
Si ha seleccionado el modo de salida por fichero se lanzar la descarga del fichero
que mostrar los mismos datos.
APLICACIN WEB PARA GESTIN DOCENTE
110
Activar alumnos
Pulse en la opcin Activacin de alumnos en el men de la izquierda.
Seleccione la asignatura en la que va a activar los alumnos y pulse Activar.
Insertar un comentario
Pulse en la opcin Insercin de comentario en el men de la izquierda.
Seleccione el grupo de prcticas del que va a insertar el comentario y pulse Insertar.
Crear un grupo de prcticas
Pulse en la opcin Creacin de grupo de prcticas en el men de la izquierda.
Seleccione la asignatura en la que va a crear el grupo de prcticas y pulse Enviar.
Seleccione los alumnos disponibles que compondrn el grupo y pulse Crear
Presupuesto APLICACIN WEB PARA GESTIN DOCENTE
111
En la siguiente tabla se muestra el presupuesto detallado que supondra la realizacin del sistema
en la modalidad llave en mano.
Se muestra el precio y las horas especficas para cada tarea y la total para el proyecto.
JP: Jefe de Proyecto
AN: Analista
AP: Analista Programador
PR: Programador
DW: Diseador Web
En la siguiente imagen se muestra la planificacin del proyecto.
112
APLICACIN WEB PARA GESTIN DOCENTE
113
Presupuesto
El desarrollo de software basado en componentes, como es ste, permite reutilizar piezas de cdigo
pre-elaborado que permiten realizar diversas tareas.
Aqu se presenta un nuevo presupuesto estimando el coste de un segundo proyecto similar en el que
se reutilice cdigo ya disponible.
114
APLICACIN WEB PARA GESTIN DOCENTE
Application Programming Interface (Interfaz de Programacin de Aplicaciones)
DataBase (Base de Datos)
Data Encryption Standard (Estndar de Cifrado de Datos)
Document Object Model (Modelo en Objetos para la representacin de Documentos)
Entity-Relationship (Entidad-Relacin)
GNU Public License (Licencia Pblica General de GNU)
Graphical User Interface (Interfaz Grfica de Usuario)
HyperText Markup Language (Lenguaje de Marcas de Hipertexto)
Hibernate Query Language (Lenguaje de Consulta de Hibernate)
Integrated Development Environment (Entorno de Desarrollo Integrado)
Internet Inter-ORB Protocol (Protocolo Entre ORBs para Internet, es decir para TCP/IP)
Internet Protocol (Protocolo de Internet)
Java API for XML Processing (API Java para Procesado de XML)
Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2
Platform, Enterprise Edition o J2EE hasta la versin 1.4)
Java Development Kit 2
Java DataBase Connectivity (Conectividad Java a Bases de Datos)
Java Message Service (Servicios de Mensajera de Java)
Java Naming and Directory Interface (Interfaz de Nombrado y Directorio)
Java Runtime Environment (Entorno en Tiempo de Ejecucin Java)
Java Server Page (Pgina Java de Servidor)
Java Transaction API (API para Transacciones en Java)
Java Virtual Machine (Mquina Virtual de Java)
Look and Feel (El estlo, que aplicado al internet tiene que ver con el interfaz grfico)
Log For Java (Registro para Java)
Message-Digest Algorithm 5 (Algoritmo de Resumen del Mensaje 5)
Model View Controller (Modelo Vista Controlador)
Object-Oriented Programming (Programacin Orientada a Objetos)
Object Request Broker (Broker de Peticin de Objeto)
Remote Method Invocation (Invocacin de Mtodo Remoto)
115
Acrnimos
Remote Procedure Call (Llamada a Procedimiento Remoto)
Operating System (Sistema Operativo)
(Service Provider Interface) Interfaz de Proveedor de Servicio
Structured Query Language (Lenguaje de consulta estructurado)
Transmission Control Protocol (Protocolo de Control de Transmisin)
User Interface (Interfaz de Usuario)
Unified Modeling Language (Lenguaje Unificado de Modelado)
Web Application Resource (Recurso de Aplicacin Web)
World Wide Web Consortium (Consorcio Web)
Web Content Accessibility Guidelines (Directrices de Accesibilidad para el Contenido Web)
Extensible Markup Language (Lenguaje de marcas ampliable)
116
APLICACIN WEB PARA GESTIN DOCENTE
Java en castellano. Foros de debate. Java (bsico). Programa Encriptacin.
22 de Mayo de 2005
MySQL. MySQL 5.0 Reference Manual.
MySQL. MySQL 5.0 Reference Manual. 11.6 Date and Time Functions
Wikipedia. Model-view-controller
Wikipedia. Apache Struts
Wikipedia. Tomcat
Wikipedia. HTML
Wikipedia. Modelo entidad-relacin
Wikipedia. Hibernate
Wikipedia. Java EE
Wikipedia. Javascript
Wikipedia. Log4j
Wikipedia. Modelo Vista Controlador
117
Referencias
APLICACIN WEB PARA GESTIN DOCENTE
118
Wikipedia. MySQL
HONTZA - Vigilancia Competitiva. Manual de uso. Versin 1.0
20 de Marzo de 2006
Plataforma IE Mdulo Servidor. Manual de instalacin. Versin 1.0
Java BluePrints. Design Patterns: Model-View-Controller
Java 2 Platform, Standard Edition, v 1.4.2 API Specification
Java Boutique. Handling Messages, Errors and Exceptions in Struts 1.1 - Page 3
Mundo Geek. Hibernate
27 de Enero de 2007
Apache POI . Java API To Access Microsoft Format Files. Documentation
The Apache Software Foundation. Struts 1. Documentation. User Guide
The Apache Software Foundation. Apache Tiles. Documentation. Tutorial. Configuration
Ana Fernndez Vilas. Introduccin a UML. Diagrama de clases (estructura esttica)
20 de Marzo de 2001
log4j Wiki. Log4jXmlFormat
Adictos al Trabajo. Tutoriales. Extender la validacin en Struts
17 de Febrero de 2006
All App Labs. Tiles. Create a Tile Definition
Bharti SoftLand. The Technology and skill Sets We Use. Cake PHP Developments
Ejemplos java y C/linux. Tutoriales y Ejemplos de Java. Herramientas tiles. Enviar un correo
con JavaMail
Hibernate - Relational Persistence for Idiomatic Java. Chapter 14. HQL: The Hibernate Query
Language
Java Hispano. Documentacin. Artculos. Tiles en Struts
1 de Septiembre de 2002
Java Hispano. Foro. Persistencia. CMP, BMP, POJOS... Hibernate Ventajas
2 de Agosto de 2004
Rose India. Frameworks. Struts Validator Framework Tutorial with Example
RefWorks. Manual de Usuario
Agosto de 2006
World Wide Web Consortium. Technical Reports and Recommendations. Web Content Ac-
cessibility Guidelines 1.0
5 de Mayo de 1999
World Wide Web Consortium. Introduccin a las Pautas de Accesibilidad al Contenido en la
Web (WCAG)
119
Referencias