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