1 Desarrollo del proyecto -1- 1.1 DOCUMENTO DE CONCEPTOS DEL SISTEMA -2- 1.1.1 Objetivos del sistema La web del Proyecto Perú nace como una solución para gestionar la información que se va generando con cada promoción. Desde 1999, grupos de estudiantes de diferentes especialidades viajan a Perú por dos meses en una experiencia de Cooperación al Desarrollo. La Oficina de Cooperación al Desarrollo y Compromiso Solidario de la Universidad Pontificia Comillas es la encargada de gestionar este proyecto. Los objetivos principales del proyecto son: • Crear una Comunidad de miembros del Proyecto Perú, para hacer más fácil la colaboración de antiguos participantes y su comunicación con los nuevos miembros. • Creación de una base de datos con las experiencias, fotos, y proyectos realizados en cada promoción, de tal modo que sea útil para promociones venideras. • Diseño de un área de acceso público destinada a promover el Proyecto Perú tanto dentro como fuera de la universidad. • Una interfaz de gestión sencilla e intuitiva que permita la gestión de la web sin necesidad de poseer conocimientos de programación. • Inclusión de un foro de discusión en el que se puedan desarrollar temas relacionados con el Proyecto Perú. -3- 1.1.2 Entrevista A continuación se expone el extracto de la entrevista realizada con Don Carlos Prieto Dávila, director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario (OCDS). En ella se obtuvieron los objetivos, requisitos y restricciones de la aplicación. Fecha: 15 /06 /2006 GUIÓN GENERAL • VISIÓN GENERAL o Objetivo social de la OCDCS. o Organización de la OCDCS. • FUNCIONAMIENTO ACTUAL DE LA OFICINA o Funcionamiento actual del sistema. o Encargados de gestionar la información • DETALLES o Cambios que se desean hacer en el funcionamiento actual. o Objetivos de la OCDCS a medio y corto plazo. o Estimación de la impresión de los usuarios finales acerca de la aplicación. -4- VISIÓN GENERAL 1. ¿Cuál es el objetivo social de la institución? Promover los valores de la cooperación y la solidaridad con los países del Tercer y Cuarto mundo entre los alumnos de la Universidad Pontificia Comillas. 2. ¿Cómo está organizada? Yo ejerzo la labor de dirección en los centros de Alberto Aguilera y Canto Blanco. Normalmente cuento con cuatro becarios distribuidos entre las dos sedes para llevar a cabo el trabajo. FUNCIONAMIENTO ACTUAL. 3. ¿Cómo se gestiona y planifica en la actualidad el Proyecto Perú? Comienza con un contacto con las instituciones de Perú para ver qué es lo que más necesitan. Esto suele requerir mi traslado a tierras peruanas para hacer un estudio y valorar la envergadura de posibles proyectos que puedan salir. Al mismo tiempo se desarrolla un proceso de selección junto con un seminario de sensibilización para todos aquellos que quieran participar. Una vez se ha reducido el grupo de candidatos entonces organizamos los proyectos y entrevistamos a los candidatos para ver su experiencia y su personalidad. Según los proyectos que tengamos y las capacidades y virtudes de los candidatos se seleccionan 10 y se asignan a los proyectos (puede haber proyectos en que participen más de un candidato, y al mismo tiempo un candidato puede participar en más de un proyecto). Paralelamente se va contactando con las familias en Perú que puedan alojar a los participantes durante su estancia en el país. Tras esta fase, los alumnos elegidos atienden a una serie de reuniones acerca de la realidad de Perú y se les informa de los proyectos que van a realizar. Una vez en Perú, los alumnos son alojados en las casas de las familias elegidas y se les pone en contacto con las instituciones para comenzar a -5- desarrollar los proyectos. Aquí llega nuestra gran deficiencia, que es la falta de una plataforma que nos permita gestionar la información de los proyectos. El problema es que el material generado año tras año en cada promoción suele perderse, cuando podría ser útil para las promociones venideras. Este es uno de los requisitos principales de la web del Proyecto Perú. Gran parte del material empleado se encuentra en formato físico y por ello no puede ser accedido por los participantes cuando están en Perú. Además queremos recopilar material visual (fotos y vídeos), que es muy valioso a la hora de promocionar la experiencia a otros alumnos. La falta de medios de comunicación nos impide llegar a más gente y por eso que otro de los objetivos sea emplear todas las herramientas posibles por hacer accesible al público la información acerca de lo que es el Proyecto Perú. Herramientas como foros de discusión, galerías de imágenes, información de la estancia en el país, normas de seguridad y sanidad, consejos, etc. 4. ¿Quiénes serán los encargados de llevar la web? Yo mismo junto con los alumnos becarios nos encargaremos de la administración y actualización de la web. Los colaboradores se encargarán de añadir y gestionar sus proyectos y subir material o contenido multimedia a la web. Obviamente, deberían haber 3 roles principales: • Administrador, que seríamos los miembros de la OCDCS, con acceso total al sistema. • Colaborador: capaz de acceder a contenidos privados, y otros recursos como gestión de proyectos, creación de álbumes de fotos y consultas al administrador. • Visitante: cualquier usuario que visite la web y que por tanto tenga privilegios para ver el contenido público de la misma. Esta área tendrá como motivo promocionar el Proyecto Perú y captar la atención del usuario. -6- DETALLES. 5. ¿Qué cambios se desean hacer sobre el funcionamiento actual? Necesitamos una herramienta que nos permita gestionar y ampliar toda la documentación y el material del Proyecto Perú, y que pueda ser manejada desde cualquier sitio y con requisitos mínimos de hardware. Por ello el solicitar que el formato sea el de un portal web. 6. ¿Cuáles son los objetivos de la OCDCS a medio y corto plazo? A corto plazo nuestro objetivo es que los colaboradores antiguos y de promociones venideras se afilien a la Comunidad y aporten material a la misma para crear una base de datos que nos será muy útil como referencia y para promover la Comunidad. A largo plazo nos gustaría ampliar esta plataforma a otros proyectos con el mismo formato o con las mejoras que encontremos haciendo uso de la misma. 7. ¿Cómo cree usted que será la reacción de los usuarios ante la aplicación? Yo creo que por tratarse mayoritariamente de gente joven, se mostrarán entusiasmados con el servicio que ofrecerá y nos encargaremos de que hagan uso de ella desde el principio. El único problema viene con las primeras promociones del Proyecto Perú, que se mostrarán más reacias a emplear la plataforma, aunque obviamente les ayudaremos y enseñaremos a incluir su material en la web y a hacer uso de los servicios que ésta ofrecerá. -7- 1.1.3 Alcance del sistema Una vez realizada la entrevista, se ha analizado la información obtenida para especificar las funciones principales que persigue la aplicación, las cuales son: • Ver una página de inicio con una breve introducción. • Acceso al listado de noticias de la Comunidad. • Visualizar un listado con los detalles de las instituciones involucradas en el Proyecto Perú. • Ver información acerca del proceso de selección de participantes. • Información sobre el alojamiento en Perú. • Normas de seguridad y otros consejos útiles. • Acceso a álbumes de fotos de tipo público. • Acceso a los foros de discusión de tipo público. • Capacidad de participar en los foros. • Posibilidad de enviar un correo al administrador para solicitar información. Para los Colaboradores, las funciones son, además de las anteriores: • Gestión de proyectos, que incluye: o Ver los proyectos en los que el Colaborador es participante. o Capacidad de editar la información (detalles, listado de miembros e instituciones) de sus proyectos. o Capacidad de subir y descargar documentos de proyectos. o Crear proyectos. o Eliminar un proyecto. o Buscar en la base de datos proyectos por categorías o promociones y acceso al contenido detallado de los mismos (en modo lectura). • Crear un álbum de fotos de tipo privado (sólo visible por Colaboradores y Administrador) o de tipo público (visible para todos los usuarios). • Subir fotos a los álbumes creados por el Colaborador. -8- • Editar la descripción de las fotos. • Ver álbumes de fotos de tipo privado. • Editar datos personales (nombre, apellidos, correo, descripción…) • Acceso a canales privados del foro. • Enviar una consulta al Administrador. • Cerrar sesión y volver al área pública de la web. Para el administrador de la aplicación, además de lo anterior, cuenta con las siguientes facilidades: • Gestión de noticias. • Gestión de colaboradores. • Gestión de instituciones. • Gestión de promociones. • Gestión de proyectos. • Gestión de categorías de proyectos. • Gestión de álbumes de fotos: el Administrador es capaz de crear álbumes de fotos de tipo oculto (sólo visibles por él). • Hacer la función de moderador del foro. • Solucionar y responder a todas las dudas, consultas e incidencias que los Visitantes y Colaboradores envíen. • Realizar copias de seguridad de la aplicación y de toda la información que se gestiona. • Promover la ampliación de la comunidad al mayor número de usuarios posible. • Mantener actualizada la información. Especialmente la de tipo público. -9- 1.1.4 Restricciones No existen restricciones de tipo económico ya que el proyecto se realiza usando recursos propios, y no se precisan fondos de ningún tipo para su desarrollo. En cuanto a restricciones de tiempo, el proyecto debe ponerse en producción para el comienzo del año académico del 2006 – 2007, para poder emplear la plataforma en la promoción de ese año. Como posibles problemas habría que considerar algún problema de compatibilidad que pueda ocurrir al instalar la plataforma en los recursos de la Universidad Pontificia Comillas, lo que podría llevar a modificar parte de la aplicación, también hay que valorar cómo será la relación con el Centro de Cálculo para implantar la web en sus servidores o dar información acerca de los recursos del Centro. Sobre restricciones de personal, la persona que llevará a cabo la administración del portal ya está seleccionada, y los colaboradores ya han sido avisados del lanzamiento inminente de la web. - 10 - 1.1.5 Tipología de usuarios finales El perfil de los usuarios finales atiende a tres tipos determinados: Visitantes: cualquier usuario que acceda a la web de manera voluntaria. Tendrá derecho a ver el contenido público de la web. Tal como noticias, instituciones, descripción del proyecto, foros y álbumes de fotos públicos, y contactos. Se asume que este tipo de usuario tiene conocimientos básicos de navegación en Internet. Colaboradores: son los participantes del Proyecto Perú y personas que puedan aportar algún tipo de información útil para la Comunidad. Estos usuarios contarán con una cuenta privada que les dará derecho a acceder a contenidos de tipo privado (material, documentos, proyectos, contactos…). Además tienen derecho a acceder a la base de datos de proyectos para buscar información que les pueda ayudar a desarrollar los suyos propios. Administrador: se trata de la persona indicada a mantener actualizado el contenido de la Web, solucionar los problemas que los usuarios y los visitantes puedan tener, y promover la expansión de la Comunidad al mayor número de usuarios posible. - 11 - 1.1.6 Organización y entidades involucradas La Oficina de Cooperación al Desarrollo y Compromiso Solidario, localizada en las oficinas de la Universidad Pontificia Comillas, será el centro de gestión de la web. Otras entidades que entran en el ámbito del proyecto son los Colaboradores, desde ordenadores personales localizados en cualquier parte, y las Instituciones (asociaciones de cooperación, ONGs, centros educativos y otras organizaciones) españolas y peruanas que contribuyan con su apoyo a promover la Comunidad. Debajo se muestra esta estructura en un gráfico. Oficina de Cooperación al Desarrollo y Compromiso Solidario Instituciones Colaboradores Sistema - 12 - 1.1.7 Antecedentes La Oficina de Cooperación al Desarrollo y Compromiso Solidario cuenta desde hace un año con un espacio en la web de la Universidad en el que se pueden incluir noticias y enlaces de interés. Esta web es muy limitada y no atiende a las necesidades ni al funcionamiento del Proyecto Perú. Por ello la razón de desarrollar una plataforma que siga los flujos de información que se llevan a cabo en la Oficina. La web del proyecto Perú aparecerá como un enlace en esta web para ofrecer el listado de servicios explicado anteriormente. Gran parte de la documentación y material del Proyecto Perú (fotos, memorias, documentos, proyectos, documentación, informes…) está en formato papel y tendrá que ser escaneada y migrada a la web una vez este operativa. El único proceso llevado a cabo en formato electrónico es el de Contactos, por medio de emails. - 13 - 1.2 ANÁLISIS DE REQUISITOS - 14 - 1.2.1 Contexto general del sistema Sistema actual Oficina de Cooperación al Desarrollo y Compromiso Solidario Gestiona Material y documentación en Espacio exclusivo en la web de la universidad formato físico Visitan Usuarios - 15 - • Noticias • Enlaces • Contactos • Información general Nuevo sistema Oficina de Cooperación al Desarrollo y Compromiso Solidario Colaboradores Emplean e introducen información Gestiona Web del Proyecto Perú Visitan Usuarios - 16 - • Información general • Contactos • Proyectos • Instituciones • Fotos • Foro • Noticias • Consultas • Herramienta de gestión En el sistema actual, el administrador, desde la OCDCS, accede a la zona privada dentro de la Web de la Universidad Pontificia Comillas, donde tiene acceso a la gestión de noticias, información de interés y un listado de enlaces. Las funcionalidades aquí son muy limitadas. Además, gestiona una cantidad considerable de documentos del Proyecto Perú en formato físico o que se encuentran dispersos en correos electrónicos o carpetas en el ordenador de la oficina. Los usuarios acceden a la página web, donde la información es muy reducida, y ven el resto de la información acerca del Proyecto Perú por medio de los paneles de información dispersos por la Universidad. En el nuevo sistema, se pretende centralizar la documentación actual y añadir nuevas funcionalidades. El Administrador accederá a la Web del Proyecto Perú (estará enlazada el área exclusiva de la OCDCS en la web de Comillas) y tendrá acceso a una serie de funciones para gestionar la información. Por otro lado los Colaboradores se registrarán en la aplicación y la alimentarán con proyectos, fotos, comentarios en los foros, documentación y demás contenidos. Por último, los Visitantes accederán a la zona pública de la web donde tendrán acceso a contenidos informativos del Proyecto Perú de tipo público. Estos contenidos serán siempre validados previamente por el Administrador antes de ser expuestos de cara al público. Una base de datos centralizada almacenará toda la información y la web hará de interfaz de comunicación con los usuarios para visualizar y actualizar la información contenida en ella. La web del Proyecto Perú pasará a alojarse en los servidores de la Universidad, ganando en seguridad, accesibilidad y disponibilidad para todos sus usuarios. - 17 - 1.2.2 Representación del flujo de información A continuación se describe el proceso completo de la gestión de una promoción del Proyecto Perú. El diagrama se lee de arriba a abajo y de izquierda a derecha. Las tareas están numeradas y algunas se desarrollan en paralelo. Tras el diagrama viene la explicación de cada uno de los flujos. 1 2.1 Actualización del Selección de contenido público proyectos 2.2 Proceso de selección 3 Selección de participantes 4.1 4.2 Creación de cuentas Actualización de de colaboradores instituciones involucradas - 18 - 5.1 5.1 Desarrollo de los Creación de proyectos álbumes de fotos 6 Entrega de memorias y material 7 Actualización de la web - 19 - 1 Actualización del contenido público Consiste en preparar la web para que sirva de motor de promoción del Proyecto Perú. Incluye: • Actualizar la información de tipo público (inicio, noticias, instituciones, participantes, álbumes de fotos). • Promover la web por la Universidad. 2.1 Selección de Proyectos Un representante del Proyecto Perú viaja al país para establecer contacto con las instituciones y recoger información acerca de posibles proyectos que puedan llevarse a cabo. 2.2 Proceso de Selección Los estudiantes interesados en participar asistirán a un seminario y pasarán por un proceso de selección y una entrevista personal. 3 Selección de Candidatos Entre los proyectos seleccionados y las características de los candidatos se eligen 10 estudiantes y se les asigna a los proyectos. 4.1 Creación de cuentas de Colaboradores Los alumnos elegidos pasan a ser Colaboradores y son registrados en la Web del Proyecto Perú. 4.2 Actualización de la información de las instituciones Se añade al sistema los datos de las nuevas instituciones que están involucradas en los nuevos proyectos. 5.1 Desarrollo de los proyectos Los Colaboradores viajan a Perú y desarrollan los proyectos ayudándose de las herramientas que ofrece la web. - 20 - 5.2 Creación de álbumes de fotos Los Colaboradores suben fotos a la web para que ésta pueda estar al tanto de las actividades realizadas y mostrar este contenido en el área pública a modo de seguimiento del desarrollo de la promoción. 6 Entrega de memorias y material Los Colaboradores vuelven de Perú y suben a la web las memorias acerca de su experiencia en Perú. También se hace entrega del material que no esté en formato electrónico para su posterior digitalización y subida al servidor de la web. 7 Actualización de la web Con las memorias y los proyectos realizados se procede a remodelar los contenidos de la web y prepararla para la siguiente promoción. - 21 - 1.2.3 LISTA DE REQUISITOS Con la información obtenida en la entrevista se pasa a conitinuación a especificar la lista de requisitos. REQUISITO 1 Fecha: 15 /06 /2006 Título: Creación de un área de contenido público. Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: creación de un área de contenido público que será empleada para informar a los visitantes de la web de qué se trata el Proyecto Perú. Deberá incluir información tal como noticias, instituciones, proceso de selección, participantes, álbumes de fotos, foros de discusión y un formulario de contacto con el administrador para solicitar información. BENEFICIOS Promover el Proyecto Perú entre los alumnos de la Universidad. El objetivo consiste en explicar con texto, imágenes y cualquier contenido multimedia en qué consiste el Proyecto Perú. REQUISITOS RELACIONADOS Muchas de estas páginas contendrán contenido estático con lo que se deberá tener acceso a documentación acerca del Proyecto Perú para poder ser visualizada en las mismas. - 22 - REQUISITO 2 Fecha: 15 /06 /2006 Título: Creación de un área de servicios o Intranet para los Colaboradores de la Comunidad del Proyecto Perú. Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: creación de un área protegida que sirva de Intranet de servicios para los Colaboradores. Éste área les permitirá gestionar sus proyectos durante su estancia en Perú (detalles de proyecto, participantes, instituciones, material, enlaces). Además permitirá buscar material de otros proyectos, creación de álbumes de fotos, acceso a los canales privados del foro de la Comunidad, edición de datos personales y contacto directo con el Administrador. BENEFICIOS • Ayudar al Colaborador a tener una herramienta que le sirva de base de datos para el desarrollo de nuevos proyectos. • Reutilizar el material de promociones pasadas. • Continuar con proyectos que requieran más de una promoción para ser finalizados. • Ayudar al Administrador a recolectar una memoria de los proyectos realizados así como el material empleado en ellos. REQUISITOS RELACIONADOS Se tendrán que establecer grados de privilegio para determinar qué acciones puede o no puede realizar un colaborador dentro de la Intranet. La navegación por la web debe estar controlada para que el usuario no acceda a contenido no permitido. - 23 - REQUISITO 3 Fecha: 15 /06 /2006 Título: Creación de un área de Administración que permita gestionar la información de la web, sin precisar de conocimientos de programación. Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: se solicita desarrollar una interfaz que permita al Administrador modificar el contenido de la web sin precisar acceder al código fuente de la misma. Para ello es necesario elaborar una serie de páginas web dentro de la Intranet que permitan, de una forma sencilla e intuitiva, la gestión de: • Noticias • Instituciones • Colaboradores • Promociones • Proyectos • Álbumes • Foro BENEFICIOS La herramienta permitirá gestionar la aplicación más fácilmente y sin la dependencia de un tercero con conocimientos de programación web. REQUISITOS RELACIONADOS Se debe analizar la estructura de la base de datos para la creación de las páginas y que la información transmitida entre el Administrador y la Base de datos sea consistente. Para ello habrá que realizar validaciones de los datos asegurar este objetivo y evitar errores. - 24 - REQUISITO 4 Fecha: 15 /06 /2006 Título: Finalización de la aplicación para el mes de septiembre. Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: se exige terminar el proyecto a finales del mes de septiembre como fecha tope. BENEFICIOS Esto permitirá preparar la web para su lanzamiento en el nuevo año académico. Con lo que se podrá emplear como experiencia piloto con la promoción del 2006 – 2007. REQUISITOS RELACIONADOS Será necesario ayudarse de herramientas de código abierto, generación automática de código y desarrollo incremental basado en prototipos para poder acelerar el proceso de desarrollo cumpliendo con los requisitos de calidad y creando un sistema final consistente. - 25 - REQUISITO 5 Fecha: 15 /06 /2006 Título: Incluir la posibilidad de poder subir ficheros al servidor Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: para poder llevar a cabo la gestión de proyectos, álbumes e imágenes de las noticias, es necesario crear una interfaz que permita subir archivos al servidor para que estén disponibles después, y un sistema de archivos para alojarlos. BENEFICIOS Colabora con la centralización de datos y la recolección de información. El alojamiento del material de los proyectos y las fotos que los Colaboradores suban servirá para alimentar la base de datos del Proyecto Perú con valiosa información que puede ser empleada en otras promociones. La reutilización de la información colaborará en gran medida a aumentar el rendimiento del desarrollo de los proyectos en promociones venideras. REQUISITOS RELACIONADOS Es preciso crear una estructura de ficheros que aloje los archivos y lo que es más importante, que guarde una organización coherente con el contenido de la base de datos. Los archivos se alojarán físicamente en carpetas mientras en el la base de datos se almacenarán su descripción y su localización en el servidor. Será necesario llevar a cabo programas de testeo para comprobar esta coherencia. Además se deberá buscar algún método o herramienta que facilite la transmisión de ficheros al servidor de una forma segura y sencilla. - 26 - REQUISITO 6 Fecha: 15 /06 /2006 Título: Creación de una interfaz que permita crear álbumes de fotos Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: el material fotográfico es muy preciado en cada promoción para el Proyecto Perú. Por ello, una táctica para hacerse con las fotos de los colaboradores el permitirles crear álbumes de fotos en la web que puedan compartir entre ellos. BENEFICIOS Recaudar material fotográfico de forma pasiva. Este material se puede emplear para promocionar las promociones venideras y además los álbumes se podrán publicar en el área pública de la web por el Administrador. REQUISITOS RELACIONADOS Se necesita emplear la capacidad de subir ficheros, crear tablas en la base de datos para alojar la información de los álbumes y de sus fotos, y crear un sistema de categorías de álbumes para restringir su acceso. Por defecto un colaborador sólo podrá crear álbumes de tipo privado (sólo accesibles por el administrador y los colaboradores de su promoción). Mientras que el administrador podrá crear álbumes de tipo público (accesible por todos los tipos de usuarios) , privado ( sólo accesible por Colaboradores y Administrador), u oculto (únicamente accesible por el Administrador). - 27 - REQUISITO 7 Fecha: 15 /06 /2006 Título: creación de un foro de discusión. Fuente: Don Carlos Prieto Dávila. Categoría: director de la Oficina de Cooperación al Desarrollo y Compromiso Solidario. Descripción: la inclusión de un foro de discusión permitiría el diálogo entre antiguos participantes, candidatos y otros usuarios sobre temas que conciernen al Proyecto Perú. Otros canales de tipo privado pueden desarrollarse sobre otros temas con el objetivo de hacer más fuertes los lazos de comunicación dentro de la Comunidad del Proyecto Perú. BENEFICIOS Facilitar la comunicación entre los usuarios de la aplicación. Solucionar dudas, consultas, crear una base de datos con información interesante para Visitantes, Colaboradores y el Administrador. REQUISITOS RELACIONADOS Se precisa desarrollar un sistema de hilos de comunicación con mensajes encadenados para almacenar los hilos. Se deben establecer categorías para clasificar los hilos (públicos o privados). El administrador hará las veces de moderador, editando o eliminando los mensajes que pueda considerar ofensivos. - 28 - REQUISITO 8 Fecha: 29/07/2006 Título: Empleo de una arquitectura cliente servidor Fuente: Don David Contreras Bárcena Categoría: director del Laboratorio de Comunicaciones de la Universidad Pontifica Comillas Descripción: con los requisitos exigidos por Don Carlos Prieto Dávila, la mejor opción para realizar el desarrollo de la aplicación es basarse en una arquitectura cliente servidor. El servidor estará alojado en el Centro de Cálculo de la Universidad. Estará conectado a una base de datos y procesará las consultas de los clientes que se conectarán desde sus ordenadores personales. BENEFICIOS Esto ayuda en la centralización de datos y cumple con los requisitos de seguridad. También hace accesible la información a nivel global y con unos requisitos mínimos en la máquina cliente. REQUISITOS RELACIONADOS Será necesario configurar un servidor de pruebas que haga las veces de Servidor Web y Servidor de Base de datos antes de pasar la aplicación a producción real. Tras esto se migrará la aplicación a los servidores de la Universidad para su instalación en los sistemas del Centro de Cálculo. - 29 - REQUISITO 9 Fecha: 29/07/2006 Título: Aplicar normas de seguridad Fuente: Don David Contreras Bárcena Categoría: director del Laboratorio de Comunicaciones de la Universidad Pontifica Comillas Descripción: se debe controlar el acceso a las áreas restringidas de la web. Así como evitar que cualquier usuario acceda al sistema de ficheros y modifique el contenido, ya que esto rompería la consistencia con la base de datos. Se debe comprobar también que los datos introducidos por cualquier usuario son correctos antes de introducirlos en la base de datos. BENEFICIOS Mantener consistencia, asegurar la integridad de la información. REQUISITOS RELACIONADOS Se deberá emplear un sistema de sesiones para controlar la navegación de los usuarios en la aplicación. Para el tema de integridad del sistema de ficheros. Se protegerán con clave las carpetas que contengan información privada o restringida. Por último, la validación de datos por parte del usuario se tratará de llevarse a cabo en el lado del cliente siempre que se pueda. Ya que esto alivia al servidor y le exime de tener que comprobar los datos de todas las consultas que recibe, con lo que el rendimiento general es mejor. Los Colaboradores y el Administrador se validarán ante la aplicación mediante nombre de usuario y contraseña. El nombre de usuario será único en la base de datos de modo que se pueda identificar al usuario en todo momento. - 30 - 1.2.4 Modelo lógico del nuevo sistema 1.2.4.1 Introducción, técnicas y herramientas Una vez finalizada la recolección de la información y analizados los requisitos se procede a diseñar la representación lógica de la aplicación. Para ello se empleará la metodología UML, la cuál es Orientada a Objetos y permite una representación más cercana a la vida real. Además, incorpora una serie de propiedades como: • encapsulamiento de la información en los objetos, lo cuál facilita el almacenamiento, extracción y validación de la información, • herencia, que ayuda en la reutilización de código, • polimorfismo, el cuál permite tratar objetos de distintas clases del mismo modo por medio de una clase de nivel general. Para almacenar la información de estos diagramas y la posterior generación de código se ha empleado el editor UML Poseidon versión 4.1. Se exponen a continuación los Diagramas de Casos de Uso, que representan a los actores (Visitante, Colaborador y Administrador) y su interacción con el Sistema (a web del Proyecto Perú). Tras cada diagrama se describen los diálogos paso a paso y se incluyen flujos de error y variaciones que puedan ocurrir durante el diálogo, así como el estado en que termina cada uno de ellos. - 31 - 1.2.4.2 Representación general de las tareas Diagrama de casos de uso 1: Actores y tareas generales Tareas de Visitante - 32 - Descripción de las tareas Ver información general del Proyecto Perú Acceso a información de tipo público acerca del Proyecto Perú. Tal como: • Introducción • Noticias • Información del proceso de selección • Alojamiento • Instituciones participantes • Información para candidatos Ver álbumes de fotos de tipo público Acceso a álbumes de fotos de tipo público. El contenido de éstos álbumes es gestionado por el Administrador Acceder al foro de la comunidad Ver los hilos de discusión existentes, leer los comentarios y participar en los mismos Enviar un correo solicitando información Enviar un correo al administrador de la aplicación solicitando información general. Iniciar sesión Iniciar sesión como colaborador o administrador. - 33 - Tareas de Colaborador - 34 - Descripción de las tareas Ver mis proyectos Ver los proyectos en los que el colaborador es participante. Esta tarea se desarrolla en otro diagrama. Dentro del proyecto se pueden realizar una serie de tareas: • Ver los detalles del proyecto. • Editar el listado de participantes. • Editar el listado de instituciones involucradas. • Gestionar el material (documentos de texto, presentaciones, vídeos) asociado al proyecto. • Gestionar enlaces de interés para el proyecto. Acceso privilegiado a álbumes de fotos Un colaborador es capaz de crear álbumes de fotos (siempre de tipo privado) y visitar otros álbumes de otros colaboradores que no son accesibles por los Visitantes. Editar datos personales Permite mantener actualizados los datos personales y de contacto del Colaborador. Acceso privilegiado al foro Un Colaborador tiene derecho a crear nuevos hilos de discusión (de tipo privado o público) y abrir y participar otros hilos accesibles sólo por los miembros de la Comunidad. Contactar con el administrador Envío de un correo electrónico al administrador. Cerrar sesión Finalización de la sesión como colaborador, eliminación de la información temporal y vuelta a la página de inicio de la web. - 35 - Tareas de Administrador - 36 - Descripción de las tareas Gestionar noticias Creación, edición, y eliminación de noticias. Gestionar colaboradores Altas, bajas y modificaciones de la información de los colaboradores. Gestionar promociones y proyectos En esta área se pueden modificar todos los datos de las instituciones que participan en cada promoción. Tales como Nombre, dirección, descripción y persona de contacto. Gestionar categorías de proyectos En esta área el Administrador actúa como moderador eliminando los mensajes que pueda crear ofensivos o creando nuevos hilos de discusión. Gestionar categorías de proyectos Gestión de las diferentes categorías a las que puede pertenecer un proyecto. Gestionar álbumes de fotos Creación, edición y eliminación de los álbumes de fotos existentes. Posibilidad de crear un álbum de fotos de tipo oculto (disponible exclusivamente para el administrador). Gestionar el foro Hacer la labor de moderador en el foro, creando hilos de discusión y eliminando mensajes que no guardan relación con el hilo. - 37 - 2.4.1 Especificación de las tareas y diálogos de interacción Tras este diagrama de introducción, pasamos a detallar las tareas y los diálogos de los actores. Las flechas con comentarios de <incluye> se refieren a que incluyen comportamientos de otras tareas. Mientras que las flechas que tengan el estereotipo de <extend> son variaciones en la ejecución de la tarea y permiten al usuario acceder a otras tareas. Tareas de Visitante - 38 - Diálogos de las tareas de Visitante V1: Iniciar Sesión 1. Visitante solicita a Sistema iniciar sesión. 2. Sistema muestra a visitante un formulario para que introduzca su nombre de usuario y contraseña. 3. Visitante escribe nombre de usuario y contraseña y envía datos a Sistema. 4. Sistema comprueba que el nombre de usuario existe y que la contraseña es correcta, y lleva al usuario a una pantalla de bienvenida. Excepciones: E1 Faltan campos por rellenar. 4.1 Sistema detecta que Visitante no ha rellenado nombre de usuario o contraseña y envía un mensaje a Visitante solicitándole que rellene ambos campos. Tras esto vuelve al punto 2. E2 Nombre de usuario o contraseña son incorrectos. 4.1 Sistema detecta que el nombre de usuario no existe o la contraseña no es correcta. Envía un mensaje a Visitante solicitándole que los introduzca de nuevo. Tras esto vuelve al punto 2. V2: Ver listado de noticias 1. Visitante solicita a Sistema ver el listado de noticias 2. Sistema muestra al usuario un listado con las últimas 10 noticias. - 39 - Variaciones V1 No hay noticias. 2.1 Sistema detecta que no hay noticias y devuelve un mensaje comunicándolo. V3: Ver detalle noticia 1 Visitante solicita a Sistema ver el detalle de una noticia. 2. Sistema muestra a Visitante el detalle de la noticia. V4: Ver listado de instituciones 1. Visitante solicita a Sistema ver el listado de instituciones 2. Sistema elabora un listado con las instituciones. Variaciones V1 No hay instituciones. 2.1 Sistema detecta que no hay instituciones y devuelve un mensaje comunicándolo. V5: Detalles de institución 1 Visitante solicita a Sistema ver los detalles de una institución. 2 Sistema muestra a Visitante los datos de la institución. - 40 - V6: Acceso público al foro 1. Visitante solicita a Sistema ver hilos de discusión de tipo público del foro. 2. Sistema muestra el listado de hilos de discusión. Variaciones V1 No hay hilos. 2.1 Sistema detecta que no hay hilos de discusión y devuelve un mensaje comunicándolo. V7: Ver mensajes de un hilo 1. Visitante solicita a Sistema ver los mensajes de un hilo de discusión. 2. Sistema muestra el listado de mensajes escritos.. Variaciones V1 No hay mensajes. 2.1 Sistema detecta que no hay mensajes en el hilo de discusión y devuelve un mensaje comunicándolo. V8: Escribir un mensaje 1 Visitante solicita a Sistema escribir un mensaje en un hilo de discusión. 2. Sistema muestra un formulario para que Visitante escriba el mensaje.. 3. Visitante rellena nombre, apellidos, dirección de correo y cuerpo del mensaje, y envía correo. - 41 - 4. Sistema muestra una pantalla comunicando que el correo se ha enviado satisfactoriamente. E1 Faltan campos por rellenar. 4.1 Sistema detecta que Visitante no ha rellenado todos los campos envía un mensaje a Visitante solicitándole que lo haga. Tras esto vuelve al punto 2. V9: Ver álbumes de fotos de tipo público 1. Visitante solicita a Sistema ver los álbumes de fotos. 2. Sistema crea un listado de los álbumes de fotos de tipo público y lo muestra por pantalla. Variaciones V1 No hay álbumes. 2.1 Sistema detecta que no hay álbumes de fotos de tipo público y devuelve un mensaje comunicándolo. V10: Ver detalles de un álbum 1. Visitante solicita a Sistema ver los detalles de un álbum de fotos. 2. Sistema extrae los detalles del álbum y crea un listado con las fotos del mismo. Variaciones V1 No hay fotos. 2.1 Sistema detecta que el álbum no tiene fotos y muestra un mensaje por pantalla - 42 - V11: Ver detalles de una foto 1. Visitante solicita a Sistema ver los detalles de una foto. 2. Sistema extrae los detalles de la foto y los muestra por pantalla junto con la foto. V12: Escribir un correo al administrador 1 Visitante solicita a Sistema escribir un correo al administrador. 2. Sistema muestra un formulario para que Visitante escriba correo. 3. Visitante rellena nombre, apellidos, dirección de correo y cuerpo del mensaje, y envía correo. 4. Sistema muestra una pantalla comunicando que el correo se ha enviado satisfactoriamente. E1 Faltan campos por rellenar. 4.1 Sistema detecta que Visitante no ha rellenado todos los campos envía un mensaje a Visitante solicitándole que lo haga. Tras esto vuelve al punto 2. - 43 - Tareas de Colaborador - 44 - Diálogos de las tareas de Colaborador Ver mis proyectos Ver los proyectos en los que el colaborador es participante. Dentro del proyecto se pueden realizar una serie de tareas: • Ver los detalles del proyecto. • Editar el listado de participantes. • Editar el listado de instituciones involucradas. • Gestionar el material (documentos de texto, presentaciones, vídeos) asociado al proyecto. • Gestionar enlaces de interés para el proyecto. Esta tarea se desglosa en otro diagrama (Colaborador – Gestión de proyectos) en el que se explican los diálogos de las sub tareas. C1: Crear Proyecto 1. Colaborador solicita a Sistema crear un proyecto 2. Sistema muestra un formulario con título, descripción, fecha de inicio, fecha de fin, y un listado para elegir los miembros de la promoción que van a participar, así como las instituciones que estarán involucradas en el mismo. 3. Colaborador rellena los datos y los envía a Sistema. 4. Sistema valida los datos y crea el proyecto. Excepciones E1 faltan campos por rellenar 4.1 Sistema detecta que el usuario no ha rellenado todos los campos. Envía un mensaje notificándolo y vuelve al punto 2. - 45 - Detalles de proyecto Esta tarea por ser más compleja y contener extensiones a otras tareas se explica en el diagrama Colaborador - Gestión de proyectos C3: Ver proyectos por promociones 1. Colaborador solicita a Sistema ver un listado de proyectos ordenados por la promoción a la que pertenecen 2. Sistema elabora un listado de proyectos ordenados por promoción, con enlaces a los detalles de cada uno de ellos. Variaciones: V1 No hay proyectos 2.1 Sistema detecta que no hay proyectos en la base de datos y lo comunica mediante un mensaje. C4: Ver proyectos por categorías 1. Colaborador solicita a Sistema ver un listado de proyectos ordenados por categorías. 2. Sistema elabora un listado de proyectos ordenados por categorías, con enlaces a los detalles de cada uno de ellos. Variaciones: V1 No hay proyectos 2.1 Sistema detecta que no hay proyectos en la base de datos y lo comunica mediante un mensaje. - 46 - C5: Ver proyecto 1. Colaborador solicita a Sistema ver los detalles del proyecto. 2. Sistema muestra por pantalla la descripción del proyecto, los colaboradores que participan, instituciones involucradas, material y enlaces de interés. C6: Acceso privilegiado a álbumes de fotos Este diálogo es similar al de Ver álbumes de tipo público de Visitante, de modo que no se detalla. C7: Ver álbumes de fotos privados Este diálogo es similar al de Ver detalles de un álbum de Visitante, de modo que no se detalla. - 47 - C8: Editar datos personales 1. Colaborador solicita a Sistema modificar sus datos personales. 2. Sistema muestra a colaborador su nombre, apellidos, contraseña, dirección, y descripción con capacidades de edición. 3. Colaborador modifica sus datos y los envía de vuelta al Sistema. 4. Sistema actualiza los datos y muestra una tabla con los datos personales a Colaborador. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Colaborador notificándole que rellene los campos obligatorios y vuelve al punto 2. C9: Acceso privilegiado al foro Similar a Acceso al foro de Visitante solo que en el caso de Colaborador se muestran también los hilos de discusión de tipo privado. - 48 - C10: Contactar con el administrador 1 Colaborador solicita a Sistema escribir un correo al administrador. 2. Sistema muestra un formulario para que Colaborador escriba correo. 3. Visitante escribe el mensaje y envía el correo. 4. Sistema muestra una pantalla comunicando que el correo se ha enviado satisfactoriamente. E1 Faltan campos por rellenar. 4.1 Sistema detecta que Colaborador ha enviado un mensaje vacío y lo comunica a Colaborador. Tras esto vuelve al punto 2. C11: Crear hilo de discusión 1. Colaborador solicita a Sistema crear un hilo de discusión 2. Sistema muestra un formulario con título, descripción y tipo del hilo de discusión (público o privado). 3. Colaborador rellena los datos y los envía a Sistema. 4. Sistema valida los datos y crea el hilo de discusión. E1 faltan campos por rellenar 4.1 Sistema detecta que el usuario no ha rellenado todos los campos. Envía un mensaje notificándolo y vuelve al punto 2. C12: Cerrar sesión 1. Colaborador solicita a Sistema cerrar la sesión. 2. Sistema elimina toda la información temporal del colaborador y le redirecciona a la página de inicio de la web. - 49 - Tareas de Colaborador – Gestión de proyectos - 50 - Diálogos de las tareas de Colaborador – Gestión de Proyectos C13: Ver mis proyectos 1. Colaborador solicita a Sistema ver Mis Proyectos 2. Sistema elabora un listado con los proyectos en los que el Colaborador es participante y lo muestra por pantalla. Variaciones V1 No hay proyectos en los que el Colaborador sea participante. 2.1 Sistema detecta que no hay proyectos en los que el Colaborador sea participante. Cancela la operación y comunica lo ocurrido a Colaborador mediante un mensaje. C14: Detalles de proyecto 1. Colaborador solicita a Sistema ver los detalles del proyecto. 2. Sistema muestra por pantalla la descripción del proyecto, los colaboradores que participan, instituciones involucradas, material y enlaces de interés. También se incluyen enlaces para gestionar toda esta información C15: Editar detalles 1. Colaborador solicita actualizar los datos de un proyecto. 2. Sistema muestra un formulario con todos los datos del proyecto en campos editables. 3. Colaborador actualiza los datos y los envía a Sistema. 4. Sistema valida los datos y actualiza la base de datos. - 51 - Excepciones E1 faltan campos por rellenar 4.1 Sistema detecta que el usuario no ha rellenado todos los campos. Envía un mensaje notificándolo y vuelve al punto 2. C16: Eliminar proyecto 1. Colaborador solicita a Sistema eliminar un proyecto. 2. Sistema comprueba que no hay material asociado al proyecto, y lo elimina. Excepciones: E1. El proyecto tiene material asociado. 2.1 Sistema detecta que el proyecto tiene material asociado. Cancela la operación y comunica lo ocurrido a colaborador mediante un mensaje. C17: Editar participantes 1. Colaborador solicita a Sistema editar el listado de participantes de un proyecto. 2. Sistema elabora un listado con los colaboradores que pertenecen a la promoción, exceptuando al creador del proyecto. 3. Colaborador selecciona o deselecciona los participantes. 4. Sistema actualiza el listado y redirecciona a Colaborador a los detalles del proyecto. Variaciones: - 52 - V1 No hay colaboradores 2.1 Sistema detecta que no hay colaboradores en la promoción aparte del creador del proyecto. Muestra un mensaje a Colaborador comunicando lo ocurrido. C18: Editar instituciones 1. Colaborador solicita a Sistema editar el listado de instituciones involucradas en un proyecto. 2. Sistema elabora un listado con las instituciones. 3. Colaborador selecciona o deselecciona las instituciones.. 4. Sistema actualiza el listado y redirecciona a Colaborador a los detalles del proyecto. Variaciones: V1 No hay instituciones 2.1 Sistema detecta que no hay instituciones en la base de datos. Muestra un mensaje a Colaborador comunicando lo ocurrido. C19: Subir material 1. Colaborador solicita subir material a uno de sus proyectos 2. Sistema muestra a Colaborador un formulario para elegir el material que desea subir, así como la descripción del mismo. 3. Colaborador selecciona material, escribe descripción y envía los datos a Sistema. - 53 - 4. Sistema recibe los datos, actualiza la base de datos y confirma a Colaborador la recepción. Tras esto redirecciona al Colaborador a los detalles del proyecto. Excepciones E1 Faltan campos por rellenar. 4.1 Sistema detecta que Colaborador no ha rellenado todos los campos envía un mensaje solicitándole que lo haga. Tras esto vuelve al punto 2. C20: Editar material 1. Colaborador solicita a Sistema editar los datos de un archivo de material de un proyecto. 2. Sistema muestra los datos del material en campos editables para que Colaborador actualice los datos. 3. Colaborador actualiza los datos y los envía de vuelta a Sistema. 4. Sistema valida los datos y actualiza la base de datos. Excepciones E1 Faltan campos por rellenar. 4.1 Sistema detecta que Visitante no ha rellenado todos los campos envía un mensaje a Visitante solicitándole que lo haga. Tras esto vuelve al punto 2. C21: Eliminar material 1. Colaborador solicita a Sistema eliminar material. 2. Sistema elimina el material. - 54 - C22: Añadir enlace 1. Colaborador solicita a Sistema añadir un enlace de interés a un proyecto. 2. Sistema muestra un formulario con nombre y dirección URL del enlace. 3. Colaborador rellena los campos y envía los datos de vuelta a Sistema. 4. Sistema Comprueba que colaborador ha rellenado todos los campos, crea el enlace y redirecciona a Colaborador a los detalles del proyecto. Excepciones E1 Faltan campos por rellenar. 4.1 Sistema detecta que Colaborador no ha rellenado todos los campos envía un mensaje solicitándole que lo haga. Tras esto vuelve al punto 2. C23: Eliminar enlace 1. Colaborador solicita a Sistema eliminar material. 2. Sistema elimina el material. - 55 - Tareas de Administrador - 56 - Diálogos de las tareas de Administrador A1: Crear noticia 1. Administrador solicita a Sistema crear una noticia 2. Sistema muestra a Administrador título, texto, imagen y ancho de imagen en un formulario. 3. Administrador rellena los datos y los envía al sistema. 4. Sistema recibe los datos, comprueba que sean correctos y comunica al Administrador que la operación ha sido satisfactoria. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos como título o texto. 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. A2: Editar noticia 1. Administrador solicita a Sistema editar una noticia 2. Sistema muestra a Administrador los detalles de la noticia en campos editables para que Administrador los actualice. 3. Administrador actualiza los datos y los envía al sistema. 4. Sistema recibe los datos, comprueba que sean correctos, actualiza la noticia y comunica al Administrador que la operación ha sido satisfactoria. Excepciones: - 57 - E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos como título o texto. 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. A3: Eliminar noticia 1. Administrador solicita eliminar una noticia. 2. Sistema muestra un mensaje de confirmación. 3. Administrador confirma la eliminación. 3. Sistema elimina la noticia. Termina mostrando por pantalla un mensaje de operación satisfactoria. Variaciones: V1 Administrador cancela eliminación 3.1 Sistema cancela la operación y vuelve a detalles de la noticia. A4: Ver listado de colaboradores 1. Colaborador solicita a Sistema ver el listado de colaboradores. 2. Sistema elabora un listado con los colaboradores y enlaces a detalles de cada colaborador. - 58 - Variaciones V1 No existen colaboradores 2.1 Sistema no encuentra colaboradores en la base de datos y elabora un mensaje para el Administrador A5: Crear una cuenta de colaborador 1. Administrador solicita a Sistema crear una cuenta de colaborador 2. Sistema muestra a Administrador nombre, apellidos, nombre de usuario, contraseña y descripción del Colaborador. También elabora una lista de promociones para que Administrador elija de cuáles es miembro. Esto luego se traduce en privilegios de edición de esas promociones. 3. Administrador rellena los datos y los envía al sistema. 4. Sistema recibe los datos, comprueba que sean correctos y comunica al Administrador que la operación ha sido satisfactoria. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. E2 El nombre de usuario ya existe en la base de datos. - 59 - 4.1 Sistema comprueba que el nombre de usuario ya existe en la base de datos. Notifica a Administrador que introduzca un nombre de usuario diferente y vuelve al punto 2. A6: Eliminar colaborador 1. Colaborador solicita a Sistema eliminar un colaborador. 2. Sistema elimina al colaborador y lo redirecciona al listado de colaboradores. Excepciones E1 Colaborador tiene proyectos 2.1 Sistema detecta que el colaborador tiene proyectos asociados y cancela la operación. Muestra lo ocurrido mediante una alerta al Colaborador. A7: Editar colaborador 1. Administrador solicita a Sistema editar los datos de un colaborador. 2. Sistema muestra a Administrador los detalles del colaborador en campos editables para que Administrador los actualice. 3. Administrador actualiza los datos y los envía al sistema. 4. Sistema recibe los datos, comprueba que sean correctos, actualiza la noticia y comunica al Administrador que la operación ha sido satisfactoria. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos como título o texto. - 60 - 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. A8: Crear Institución 1. Administrador solicita crear una institución. 2. Sistema muestra un formulario con nombre, dirección y descripción. 3. Administrador rellena los datos y los envía al Sistema. 4. Sistema valida los datos y crea la institución. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. A9: Editar institución 1. Administrador solicita modificar una institución. 2. Sistema muestra un formulario con campos editables de nombre, dirección y descripción. 3. Administrador rellena los datos y los envía al Sistema. 4. Sistema valida los datos y actualiza la institución. - 61 - Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. A10: Eliminar Institución 1. Administrador solicita a Sistema borrar institución. 2. Sistema muestra un mensaje de confirmación. 3. Administrador confirma eliminación. 4. Sistema comprueba que la institución no participa en ningún proyecto y elimina los datos. Excepciones E1 La institución participa en algún proyecto. 4.1 Sistema detecta que la institución participa en al menos un proyecto y cancela la operación. A11: Eliminar hilo de discusión 1. Colaborador solicita a Sistema eliminar un hilo de discusión 2. Sistema elimina el hilo de discusión y todos los mensajes asociados. Tras esto redirecciona a Colaborador al listado de hilos de discusión. - 62 - A12: Crear un álbum de fotos oculto El funcionamiento es similar a la creación de un álbum de fotos por un Colaborador. Sólo que el administrador tiene privilegios para crear un álbum que sólo él pueda visualizar. - 63 - Tareas de Administrador – Diagrama 2 - 64 - Diálogos de las tareas de Administrador – Diagrama 2 A13: Ver promociones 1. Administrador solicita a sistema ver un listado de las promociones. 2. Sistema crea un listado con las promociones y enlaces a cada una de ellas, y lo muestra por pantalla a Administrador. Variaciones V1 No hay promociones 2. Sistema detecta que no hay promociones en la base de datos y comunica lo ocurrido a Administrador mediante un mensaje. A14: Crear promoción 1. Administrador solicita a Sistema crear una promoción. 2. Sistema muestra un formulario con fecha inicio, fecha fin y descripción de la promoción. 3. Administrador rellena los datos y los envía a Sistema. 4. Sistema comprueba los datos, crea la promoción y redirecciona a Administrador a los detalles de la promoción para poder configurarla (añadir colaboradores). Excepciones E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. - 65 - A15: Ver detalles de promoción 1. Administrador solicita ver los detalles de una promoción. 2. Sistema extrae los detalles de la promoción tales como fechas de inicio y fin, descripción, participantes, instituciones y proyectos, y los muestra por pantalla a Administrador. A16: Editar promoción 1. Administrador solicita a Sistema editar los datos de una promoción. 2. Sistema muestra los datos de la promoción en campos editables para que Administrador los modifique. 3. Administrador modifica los datos y los envía de vuelta a Sistema. 4. Sistema actualiza los datos y redirecciona a Administrador a los detalles de la promoción. Excepciones: E1 Faltan campos por rellenar 4.1 Sistema encuentra que el usuario no ha rellenado alguno de los campos (excepto descripción que no es obligatorio). 4.2 Sistema muestra un mensaje al Administrador notificándole que rellene los campos obligatorios y vuelve al punto 2. E2 Imposible eliminar participante 4.1 Sistema detecta que se está intentando eliminar un participante que tiene proyectos asociados en la promoción. Cancela la operación y comunica lo ocurrido a Administrador. - 66 - E3. Imposible eliminar institución: 4.1 Sistema detecta que se está intentando eliminar una institución que tiene proyectos asociados en esa promoción. Cancela la operación y comunica lo ocurrido a Administrador. A17: Añadir participantes a promoción 1. Administrador solicita añadir nuevos participantes a una promoción. 2. Sistema elabora una lista con colaboradores que no pertenecen a la promoción, con casillas de selección para poder ser añadidos. 3. Administrador marca los colaboradores que van a ser participantes en la promoción. 4. Sistema añade los colaboradores a la promoción. Variaciones V1. Todos los colaboradores participan en la promoción 2.1 Sistema detecta que todos los colaboradores pertenecen a la promoción. Muestra un mensaje por pantalla a Administrador explicando lo ocurrido. A18: Eliminar participante de una promoción 1. Administrador solicita eliminar un participante de una promoción. 2. Sistema comprueba que tal participante no tiene proyectos en esa promoción. Y elimina al participante. Excepciones: E1. Participante tiene proyectos en promoción - 67 - 2.1 Sistema detecta que el participante tiene proyectos en esa promoción. Cancela la operación y lo comunica a Administrador. A19: Eliminar promoción 1. Administrador solicita a Sistema eliminar una promoción 2. Sistema comprueba que la promoción no tiene proyectos asociados y la elimina. Excepciones E1 La promoción tiene proyectos. 2.1 Sistema detecta que la promoción tiene proyectos asociados, cancela la operación y comunica un mensaje a Visitador. A20: Crear una categoría 1. Administrador solicita a Sistema crear una categoría. 2. Sistema muestra un formulario para que Administrador introduzca el nombre de la categoría. 3. Administrador escribe la categoría y la envía a Sistema. 4. Sistema comprueba que la categoría no existe y la añade en la base de datos. Excepciones E1 La categoría ya existe. 4.1 Sistema detecta que la categoría ya existe en la base de datos. Cancela la operación y comunica a Administrador lo ocurrido mediante un mensaje. Tras esto vuelve al punto 2. - 68 - A21: Eliminar categoría 1. Administrador solicita a Sistema eliminar una categoría. 2. Sistema comprueba que la categoría no tiene proyectos asociados, y la elimina de la base de datos. Excepciones E1 La categoría tiene proyectos asociados. 2.1 Sistema detecta que la categoría tiene proyectos asociados. Cancela la operación y comunica lo ocurrido a Administrador mediante un mensaje. A22: Editar categoría 1. Administrador solicita a Sistema modificar el nombre de una categoría. 2. Sistema muestra un formulario con el nombre de la categoría en un campo editable. 3. Administrador escribe el nombre de la categoría y envía a Sistema de vuelta. 4. Sistema comprueba que el nuevo nombre de la categoría no está repetido en la base de datos y guarda la categoría. Excepciones E1 La categoría ya existe. 4.1 Sistema detecta que el nombre de la categoría ya existe en la base de datos. Comunica lo ocurrido a Administrador y vuelve al punto 2. - 69 - A23: Ver categorías 1. Administrador solicita a Sistema modificar el nombre de una categoría. 2. Sistema muestra un listado con las categorías existentes. V1 No hay categorías. 2.1 Sistema detecta que no hay categorías en la base de datos y comunica lo ocurrido a Administrador mediante un mensaje. - 70 - 1.2.5 Modelo conceptual de datos (Diagrama de clases) Una vez especificados los Diagramas de Casos de Uso, se pasa a diseñar el modelo de objetos que empleará la aplicación. Se han definido una serie de clases. La mayoría de ellas representan entidades del proyecto y se utilizan para almacenar y validar los datos, mientras que otras son utilidades que proporcionan funcionalidades específicas. El resultado han sido 2 diagramas de clases. En el primero se exponen las clases fundamentales y las relaciones existentes entre ellas, mientras que en el segundo diagrama se representan las clases que tienen como objetivo realizar funciones para la aplicación, y por otro lado las relaciones de herencia existentes entre las clases. El diagrama 1 atiende a la siguiente descripción: • 1 Proyecto es una entidad con significado propio y que guarda relación con las siguientes entidades: o Es desarrollado por una serie de Colaboradores. o Pertenece a una categoría. o Pertenece a una promoción. o En él colaboran una serie de Instituciones. o Puede tener un listado de enlaces a otros sitios web de interés para el proyecto. o Tiene material asociado. • Por otro lado, una institución y una noticia pueden contener una imagen asociada a cada una de ellas. - 71 - Diagrama de clases 1 – Clases principales e interrelaciones entre las mismas. - 72 - Diagrama de clases 2 – Otras clases y representación de relaciones de herencia. - 73 - El diagrama 2 atiende a la siguiente descripción: • Un Archivo es cualquier tipo de documento con un nombre de archivo, un tamaño y un tipo. • Una Imagen es un Archivo que almacena una imagen y además tiene un ancho determinado. • Un Material es un archivo de cualquier tipo que además tiene información adicional como título, descripción y fecha. • Un álbum está compuesto por un título, descripción, tipo (público, privado u oculto), una Fecha y una colección de Fotos. • Una Fecha está compuesta por día, mes y año. • Una Foto contiene una Imagen e información adicional como descripción, título y Fecha. • Un Hilo de discusión está formado por un título, una descripción, fecha y una serie de Mensajes. • Un Mensaje pertenece a un Hilo de discusión y contiene autor, fecha, descripción, y texto. • La clase ConexiónBBDD permite realizar conexiones con la base de datos para poder ejecutar consultas SQL. • La clase UploadBean se emplea para subir ficheros al servidor. Contiene funcionalidades como políticas de sobre escritura, restricciones de tamaño, tipo de archivo, etc. • La clase Thumbnail se utiliza para crear imágenes en miniatura de fotos para ser luego empleadas en las galerías de imágenes de un álbum. - 74 - 1.2.6 Reglas de integridad Debido a que el comportamiento de las clases es el de albergar y validar datos, la mayoría de sus operaciones son para insertar datos en los objetos, extraerlos, formatearlos en algún modo determinado o comprobar de la existencia de un atributo en un objeto. Por ello, su período de vida es muy sencillo y no hay necesidad de explicarlo mediante Diagramas de Estados. Sin embargo, las relaciones existentes entre las clases establecen una serie de reglas de integridad referencia. Estas reglas hacen referencia a cómo afecta a otras entidades el evento de creación, modificación o eliminación de una entidad. Ejemplo: “No se puede eliminar un proyecto si el mismo tiene material asociado” Esto se traduce en que si el usuario de la aplicación decide eliminar un proyecto, el sistema tendrá que comprobar que éste no tenga material asociado, y si lo tiene, cancelar la operación y mostrar un mensaje de alerta al usuario. Previamente se deberá eliminar el material para poder eliminar un proyecto. El listado de reglas de integridad se representa en forma de una tabla de Procesos / Entidades: En la columna de la izquierda se muestran los procesos y en la primera fila las entidades (o clases). Cada proceso provoca altas, bajas o modificaciones en las entidades. En los casos en que hay una regla de integridad se anota una R y un número de regla que se explica después. - 75 - Tabla 1 (Correspondiente al diagrama de clases 1) PROCESOS/ ENTIDADES Promoción Proyecto Categoría Colaborador Institución Material Enlaces Crear Alta promoción Eliminar promoción Baja * Crear proyecto Modific. Alta Alta Crear categoría Eliminar categoría Eliminar proyecto Crear colaborador Eliminar colaborador Crear institución Eliminar institución * Modific. Baja Baja * Alta Modific. Modific. Baja Alta Modific. Modific. Baja Crear material Modific. Alta Eliminar material Modific. Baja Crear enlace Modific. Alta Eliminar enlace Modific Baja Explicación de las reglas: • El proceso de crear una promoción crea una entidad de Promoción. • El proceso de eliminar una promoción sólo puede llevarse a cabo si la promoción no tiene proyectos asociados. • El proceso de crear un proyecto implica una nueva ocurrencia de la entidad Proyecto, y una modificación en el listado de proyectos de la Promoción a la que corresponde. - 76 - • El proceso de eliminar un proyecto solamente se puede llevar a cabo si el proyecto no tiene material asociado. En caso de realizarse implica eliminar el proyecto del listado de proyectos de la Promoción a la que pertenece. • La creación de una categoría produce una nueva ocurrencia de Categoría de proyecto. • La eliminación de una categoría sólo se puede llevar a cabo si no existen proyectos que pertenezcan a esa categoría. • Al crear un colaborador se crea una nueva instancia de Colaborador. • Sólo se podrá eliminar un Colaborador si este no es participante de ningún Proyecto. Si esto se cumple entonces tras eliminar el Colaborador se debe modificar el listado de participantes de la Promoción a la que pertenecía. • La creación de una institución implica una nueva ocurrencia de Institución. • La eliminación de una institución conlleva a eliminar la instancia de esa institución, y a modificar los listados de instituciones en los Proyectos y Promociones en las que figure. • El proceso de crear un nuevo material implica crear la instancia de Material y añadir el material en el listado de materiales del Proyecto al que pertenece. • La eliminación de un material implica el borrado de su instancia y la modificación del listado de materiales del proyecto al que pertenece. • La creación de un enlace supone crear la correspondiente instancia de Enlace y agregarlo en la lista de enlaces del proyecto al que pertenece. • La eliminación de un enlace conlleva a eliminar la instancia de Enlace y a modificar la lista de enlaces del proyecto al que pertenece. - 77 - Tabla 2 (Correspondiente al diagrama de clases 2) PROCESOS/ ENTIDADES Institución Noticia Imagen Álbum Foto Hilo Mensaje Crear institución Eliminar institución Alta Alta Baja Baja Crear noticia Alta Alta Eliminar noticia Alta Alta Crear álbum Alta Eliminar álbum Baja * Crear foto Modific. Alta Eliminar foto Modific. Baja Crear hilo Alta Eliminar hilo Baja Baja Crear mensaje Modific. Alta Eliminar mensaje Modific. Baja Explicación de las reglas: • La creación de una Institución puede o no implicar la creación de una Imagen asociada a la misma. • La eliminación de una Institución implica la eliminación de la imagen que puede o no tener asociada. • La creación de una Noticia puede o no implicar la creación de una Imagen asociada a la misma. • La eliminación de una Noticia implica la eliminación de la imagen que puede o no tener asociada. • La creación de un álbum implica la creación de una instancia de Álbum. - 78 - • La eliminación de un álbum de fotos sólo puede llevarse a cabo si el álbum no tiene fotos asociadas. • La creación de una foto implica una nueva instancia de Foto y la modificación en el listado de fotos del álbum al que pertenece. • La eliminación de una foto implica la eliminación de su instancia y la actualización del álbum de fotos la que pertenece. • La creación de un hilo de discusión implica una nueva instancia de Hilo. • La eliminación de un hilo de discusión implica el borrado de su instancia y la eliminación de todos los mensajes asociados al hilo. • La creación de un mensaje implica una nueva instancia de Mensaje y añadir el mismo al listado de mensajes del hilo al que pertenece. • La eliminación de un mensaje supone eliminar su instancia y actualizar el listado de mensajes del hilo de discusión al que pertenece. - 79 - 1.3 ESTUDIO DE ARQUITECTURA - 80 - 1.3.1 Especificación de las alternativas A continuación se explica cómo se han estudiado, valorado y finalmente comparado entre sí las diferentes alternativas para desarrollar el proyecto. De cada alternativa se muestra su descripción, ventajas, desventajas, requisitos necesarios y costes si es que hay alguno. A) Desarrollar la aplicación y todas sus funcionalidades íntegramente Descripción La primera alternativa y la más simple consiste en desarrollar todos los servicios solicitados desde cero y sin ninguna ayuda de códigos existentes o herramientas de generación de código del mercado. Necesidades Hardware Sería necesario contar con un servidor de pruebas que haga las veces de Servidor de Archivos, Servidor Web y Servidor de Base de datos. Necesidades Software Será necesario instalar en el servidor paquetes de programación de alto nivel, el software del Servidor Web, el programa de Gestión de Bases de Datos y un navegador web para probar el funcionamiento de la aplicación. Ventajas Al desarrollar completamente la aplicación no hay ninguna restricción secundaria ya que no se integra ningún software externo en la aplicación. - 81 - Desventajas La primera desventaja es que el tiempo empleado en el desarrollo del proyecto aumenta considerablemente ya que el peso de la fase de programación aumenta muy considerablemente. Por otra parte al ser un desarrollo más grande pueden ocurrir más errores y por tanto la fase de testeo de la aplicación deberá ser más exhaustiva. B) Desarrollar la aplicación parcialmente e integrar pequeñas aplicaciones cuando sea útil Descripción La segunda alternativa consiste en desarrollar las áreas de la aplicación que requieran un comportamiento más estricto y particular, mientras que para otras funcionalidades, como por ejemplo la gestión de álbumes de fotos, se integren aplicaciones ya desarrolladas. Necesidades Hardware Las mismas que en la alternativa A. Necesidades Software Las mismas que en la alternativa A. Ventajas Esta alternativa acelera considerablemente el proceso de desarrollo. Además, la aparición del software libre permite encontrar robustos códigos fuentes muy útiles que son fácilmente integrables en otras Web y que liberan al programador el tener que preocuparse por tareas que no son propiamente concernientes con el proyecto. - 82 - A modo de ejemplo, en vez de desarrollar desde cero el foro y los álbumes de fotos, se pueden buscar soluciones en Internet y adaptarlas a los requisitos de la aplicación. Desventajas Se requiere algo de experiencia en Software Libre para saber dónde encontrar el material. También es una cuestión de tiempo la fase de testeo de soluciones para un requisito determinado (por ejemplo probar varios foros antes de decidirse por uno). C) Hacer uso de un gestor de contenidos para crear la aplicación y adaptarlo a los requisitos de la misma Descripción La última alternativa consiste en hacer uso de una herramienta de gestión de contenidos para generar la web al completo. Este tipo de herramientas son capaces de crear automáticamente una web mediante la configuración de una serie de parámetros. Tanto las páginas web como el estilo y la base de datos son generados dinámicamente por el motor. Estas aplicaciones funcionan como conjuntos de módulos que vienen predefinidos y se activan desde un área de gestión. Necesidades Hardware Las mismas que en las alternativas A y B Necesidades Software Las mismas que en las alternativas A y B Ventajas La ventaja principal de esta alternativa es la consistencia de la aplicación generada. Las webs generadas con estas herramientas suelen estar libres de - 83 - errores y con altas prestaciones de seguridad incluidas. Con lo que la fase de testeo queda prácticamente eliminada. Desventajas Se requiere un proceso de aprendizaje del funcionamiento de la aplicación antes de pasar a generar una web. Además el problema principal consiste en que estas web suelen ser muy complejas para modificar manualmente ya que generan un código fuente difícilmente legible por un humano. Otra de las desventajas es que pueden surgir todo tipo de restricciones en el sentido de que la web resultante no cumpla con todos los requisitos especificados en el proyecto. - 84 - 1.3.2 Valoración de las alternativas y conclusión Tras explicar cada una de las alternativas se pasa a la valoración de las mismas: • La primera alternativa es la más sencilla pero también la que supone un desarrollo más largo y trabajoso. En consecuencia a esto la fase de testeo debe ser más extensa y hay un mayor riesgo de error en el funcionamiento de la aplicación. • La segunda alternativa es mucho más flexible ya que permite focalizarse en las partes del proyecto que requieren un funcionamiento más específico, y hacer uso de herramientas genéricas para otras áreas que no son tan estrictas. Esto acelera el proceso de desarrollo y el resultado es una aplicación más consistente. • La tercera alternativa es la más rápida de todas y la que puede generar un producto más consistente. Sin embargo sería muy difícil encontrar una herramienta que pueda reproducir con la exactitud con la que se precisa aspectos del proyecto como la gestión de Promociones y Proyectos. Además el proceso de aprendizaje del uso de la aplicación lleva un tiempo que es indefinido y las restricciones sólo se pueden saber una vez hecho este aprendizaje, lo cual es un riesgo bastante alto a asumir. Como conclusión debido a factores de tiempo y calidad de la aplicación resultante, se ha decidido optar por la segunda alternativa. Se llevará a cabo el desarrollo de las partes que requieran un comportamiento específico y, siempre que se pueda, se tratará de integrar otras aplicaciones para las áreas que no sean tan restrictivas. - 85 - 1.4 DISEÑO EXTERNO - 86 - 1.4.1 Entorno operativo del sistema Entrada, salida y recogida de datos La interacción entre el usuario y el sistema se realiza exclusivamente a través de la interfaz web. Salvo casos muy particulares, no es necesario acceder al código fuente ni a la base de datos, puesto que esto es uno de los requisitos principales de la aplicación. La gran mayoría de parámetros de la aplicación son configurables por medio de la web Todos los procesos que la aplicación realiza son online. Salvo los de copia de seguridad de las bases de datos. Mantenimiento de ficheros Para garantizar una recuperación segura de los datos en caso de catástrofe será necesario realizar copias de seguridad de la base de datos periódicamente. La frecuencia de las copias variará según la época del año ya que esto implica actividad en el año académico (por ejemplo en los meses de julio y agosto es cuando se está desarrollando una promoción en Perú y por tanto son los dos meses de mayor actividad en el sistema). A continuación se expone un diagrama que incluye la frecuencia con la que se deben realizar los procesos de copia de seguridad. - 87 - MES5 FRECUENCIA ENERO Poca actividad, 1 copia de todo el mes FEBRERO Comienza la fase de promoción, 2 copias MARZO 1 copia cada dos semanas ABRIL 1 copia cada dos semanas MAYO Se preparan los proyectos, semanalmente JUNIO Semanalmente JULIO Comienza el Proyecto Perú, semanalmente AGOSTO Semanalmente SEPTIEMBRE Semanalmente Fase de recogida de datos, 1 copia cada dos OCTUBRE semanas NOVIEMBRE 1 copia cada dos semanas DICIEMBRE Poca actividad, 1 copia de todo el mes Generación de informes El Administrador tiene a su disposición una serie de informes que le sirven de herramienta de apoyo en la gestión de la aplicación. Tales como: • El detalle de una promoción, que incluye la descripción, los colaboradores, las instituciones involucradas y los proyectos realizados. • El detalle de un proyecto incluye toda la documentación recogida (participantes, instituciones, material y enlaces). • Listados de instituciones, colaboradores, categorías, álbumes, hilos de discusión del foro, etc. Control de información y seguridad del sistema La seguridad hardware del sistema será llevada a cabo por el Centro de Cálculo de la Universidad Pontifica Comilllas, con lo que no se describe en este documento. - 88 - En cuanto a las medidas de seguridad a nivel software, el sistema incluye las siguientes capacidades: • Validación de usuarios a través de nombre de usuario y contraseña. El administrador será el encargado de crear las cuentas de usuario y contraseñas de los colaboradores y de este modo controlar el acceso al contenido privado de la aplicación. Se permite que los Colaboradores cambien su contraseña si lo desean. • Seguimiento de la navegación mediante variables de sesión en el servidor. Cuando un usuario inicia sesión en la aplicación se guardará temporalmente parte de su información personal en el servidor para de este modo controlar su navegación por la web. De este modo, incluso si un usuario introduce el nombre de una página web que pertenece a un área restringida, este no podrá acceder porque la página solicitará información al servidor acerca de la persona que desea acceder, y entonces cancelará la petición de acceso. • Validación de datos. Todos los formularios controlarán que los campos obligatorios sean rellenados y formateados debidamente, por ello: o Los campos de texto deberán tener algún contenido. o Los campos numéricos deberán contener sólo números. En algunos campos sólo se permiten la entrada de números bloqueándose el resto de teclas. o Los campos de dirección de correo deberán estar formados por la estructura “nombreDeUsuario@dominio.extensión”. De este modo se asegura mantener la integridad de la base de datos evitando la entrada de datos que pueden producir errores. • Reglas de integridad. Ya explicadas en el punto 2.6. Su objetivo es respetar las relaciones existentes entre las tablas de la base de datos, controlando si la edición o eliminación de datos de una tabla afecta a las de algún modo. • Gestión de contenidos privados. Se han establecido niveles de privacidad en foros y álbumes de fotos. De tal modo que un foro puede ser de tipo público (accesible por cualquiera), o privado (sólo accesible - 89 - por miembros de la Comunidad). Por otro lado un álbum de fotos puede ser publico (visible por cualquiera), privado (sólo por los miembros de la comunidad, u oculto (solamente accesible por el Administrador). Procesos de recuperación: Comprende los procesos o procedimientos de recuperación en caso de fallo crítico. A continuación se explican los pasos a seguir en caso de que se produzca alguno de los problemas o fallos expuestos. a) Pérdida de la conexión con la base de datos Si se realizan modificaciones sobre el servidor de base de datos es posible que los parámetros de conexión varíen. Si esto produce la pérdida de la conexión con el servidor, se deben llevar a cabo los siguientes pasos para solucionarlo: • Abrir la carpeta donde esté instalada la aplicación. • Ir al directorio web src java util util. • Abrir el fichero ConexiónBBDD.java con un editor de texto. Worpad por ejemplo. Microsoft Word o el Bloc de Notas no abrirán correctamente el archivo. • Modificar los parámetros host, username y password para reestablecer la conexión. • Guardar los cambios y cerrar ConexionBBDD.java. • Abrir la aplicación y comprobar que la página de bienvenida se abre correctamente. b) Migración de la aplicación a otro servidor. En caso de precisar transferir la aplicación y los datos a otro servidor se deberán seguir las siguientes pautas: • Abrir el servidor de base de datos y realizar una copia de seguridad completa de la base de datos. - 90 - • Acceder al directorio raíz de la aplicación y copiar todo el contenido del mismo en un archivo comprimido. • Crear una carpeta en el servidor destino y descomprimir todo el contenido. • Cambiar los permisos de las carpetas y archivos descomprimidos permitiendo acciones de lectura y escritura para todos los usuarios. • Abrir el servidor web y crear un sitio web para la aplicación. Dar permisos de ejecución de scripts al mismo. Configurar como página principal index.asp, que se encuentra en el directorio raíz de la aplicación. • Abrir el servidor de base de datos y ejecutar el archivo SQL que contiene la copia de seguridad de la base de datos. • Ejecutar los pasos de la resolución del problema A para configurar los parámetros de conexión con la base de datos. - 91 - 1.4.2 CONFIGURACIÓN HARDWARE Y SOFTWARE Debido a que aún se desconocen los sistemas finales que albergarán la aplicación, se pasan a especificar los requisitos hardware y software que son necesarios: Requisitos hardware (Mínimos) Prácticamente cualquier servidor de gama media puede soportar la carga de trabajo de la aplicación incluso en los tiempos más críticos. Los requisitos principales son una conexión a Internet de Banda Ancha que permita la transmisión de archivos grandes, y espacio en disco duro para albergar los mismos. La aplicación almacenará una base documental de todas las promociones anteriores, más los álbumes de fotos de los colaboradores. Esto quiere decir que en poco tiempo será gestionará una gran cantidad de información. • Procesador Pentium 4 o Athlon XP a 2500Mhz. • 1024Mb de memoria RAM DDR. • 80Gb de disco duro. • Conexión a Internet de banda ancha. - 92 - Requisitos software Debido a que la plataforma de programación seleccionada es Java, hay independencia del Sistema operativo a utilizar, con lo que este puede ser Linux, Windows u otro. A continuación se dan unas guías que pueden ser de utilidad para soportar la aplicación. • Servidor web: Apache Tomcat 5.0 o posterior. • Servidor de base de datos: My SQL 5.0 o posterior o Se puede realizar una migración a Microsoft SQL Server si es necesario. • JDK 1.4 o posterior, incluyendo la biblioteca servlet.jar, para compilar los archivos .java o .jsp. • Driver MySQL para conexión vía JDBC. • Navegador web. • Un programa de edición de imagen en la máquina del Administrador sería útil si hay que formatear alguna imagen antes de subirla a la aplicación. • Servidor de correo para enviar las consultas al administrador. Sería conveniente crear un “usuario@proyectoperu.upcomillas.es”,. - 93 - dominio como 1.4.3 MODELO FÍSICO DEL NUEVO SISTEMA Una vez especificados los requisitos, desarrollado el modelo lógico, las medidas de seguridad, las reglas de integridad, y las especificaciones hardware y software, se pasa a la representación conceptual de la aplicación. Para ello, se emplea una extensión de UML denominada WAE (del inglés Web Application Extensión) que significa Extensión para Aplicaciones Web. La metodología WAE toma los diálogos de los Diagramas de Casos de Uso y hace una representación de qué procesos se realizan en el Servidor y cuáles en el Cliente. Una página web de servidor se representa como una clase con el estereotipo <servidor> y el nombre de la página. Mientras que una página de cliente lleva el estereotipo <cliente>. Las páginas se enlazan mediante flechas que indican si la página de destino es una página existente a la cual se está redireccionando, es una página creada dinámicamente por el servidor, o es una página de servidor que recibe datos de un formulario. Estas flechas pueden informar además de si se ha producido una excepción o una variación en la ejecución mediante el código de la excepción (Ej. E1 o V2). Los formularios se representan como páginas anexas a una página de cliente y en ellos se representan como atributos los campos del formulario. Cuando es necesario el empleo de clases estas se representan y enlazan con aquellas páginas que necesitan alguna funcionalidad de ellas. Estos diagramas se leen de arriba abajo y de izquierda a derecha, y siguen paso a paso el diálogo redactado por cada tarea de los diagramas de casos de uso. A continuación se incluyen todos los diagramas WAE, uno por cada tarea de los Diagramas de Casos de uso. Primero se representan los diagramas correspondientes al actor Visitante, luego al actor Colaborador, y finalmente los correspondientes al Administrador. - 94 - 1.4.3.1 Diagramas WAE de Visitante V1: Iniciar Sesión - 95 - V2: Ver listado de noticias - 96 - V3: Ver detalle noticia - 97 - V4: Ver listado de instituciones - 98 - V5: Detalles de institución - 99 - V6: Acceso público al foro - 100 - V7: Ver mensajes de un hilo - 101 - V8: Escribir un mensaje - 102 - V9: Ver álbumes de fotos de tipo público - 103 - V10: Ver detalles de un álbum - 104 - V11: Ver detalles de una foto - 105 - V12: Escribir un correo al administrador - 106 - 1.4.3.2 Diagramas WAE de Colaborador C1: Crear Proyecto - 107 - C3: Ver proyectos por promociones - 108 - C4: Ver proyectos por categorías - 109 - C5: Ver proyecto - 110 - C8: Editar datos personales - 111 - C10: Contactar con el administrador - 112 - C11: Crear hilo de discusión - 113 - C12: Cerrar sesión - 114 - C13: Ver mis proyectos - 115 - C14: Detalles de proyecto - 116 - C15: Editar detalles Proyecto - 117 - C16: Eliminar proyecto - 118 - C17: Editar participantes - 119 - C18: Editar instituciones - 120 - C19: Subir material - 121 - C20: Editar material - 122 - C21: Eliminar material - 123 - C22: Añadir enlace - 124 - C23: Eliminar enlace - 125 - 4.3.3 Diagramas WAE de Administrador A1: Crear noticia - 126 - A2: Editar noticia - 127 - A3: Eliminar noticia - 128 - A4: Ver listado de colaboradores - 129 - A5: Crear una cuenta de colaborador - 130 - A6: Eliminar colaborador - 131 - A7: Editar colaborador - 132 - A8: Crear Institución - 133 - A9: Editar institución - 134 - A10: Eliminar Institución - 135 - A11: Eliminar hilo de discusión - 136 - A13: Ver promociones - 137 - A14: Crear promoción - 138 - A15: Ver detalles de promoción - 139 - A16: Editar promoción - 140 - A17: Añadir participantes a promoción - 141 - A18: Eliminar participante de una promoción - 142 - A19: Eliminar promoción - 143 - A20: Crear una categoría - 144 - A21: Eliminar categoría - 145 - A22: Editar categoría - 146 - A23: Ver categorías - 147 - 1.4.4 Modelo lógico de datos El modelo lógico de datos se encarga de completar la información recabada en el modelo conceptual, cubriendo los siguientes aspectos. • Entidades entre datos: definición, atributos y relaciones con otras clases. • Atributos: definición, clasificación por tipos y descripción de sus características tales como longitud, rango de valores, reglas de validación y valores por defecto. • Claves de entidad: determinación de la clave primaria o principal y de otras posibles claves candidatas: secundarias o extranjeras. Al introducir una clave extranjera en una estructura, desnormalizamos el modelo pero a cambio lo hacemos más acorde con las necesidades de la aplicación. • Relaciones entre entidades: las relaciones o asociaciones establecidas en el modelo conceptual son derivadas a otras relaciones o tablas, de acuerdo con el modelo relacional. A continuación tomaremos los diagramas de clases y representaremos cómo cada clase se convierte en una tabla en la base de datos relacionar. Por otro lado, las relaciones entre clases generan tablas adicionales, claves mixtas, claves extranjeras, o tablas que relacionan identificadores de otras tablas. Para realizar la conversión a tablas, se siguen las siguientes pautas: • Cada clase es una tabla. • Si una clase tiene relación 1 a 1con otra, considerar juntar las dos clases en una tabla. • Un atributo múltiple se convierte en una tabla adicional, con clave principal la de la tabla original. • Si existe una relación de cardinalidad de 1 a 0 entre dos tablas, colocar la clave extranjera en aquella tabla con menos filas. - 148 - • En tablas con relación de cardinalidad 1 a n, la clave extranjera va en el lado de n. • En tablas con relación n a m, el resultado es una tabla asociativa cuya clave principal es la unión de las claves principales de las tablas originales. • Si los valores que puede tomar un atributo se encuentran en un rango (por ejemplo la categoría de un proyecto), considerar almacenar estos valores en otra tabla. • En casos de relación recursiva (de una clase a sí misma) el resultado es un atributo más que hace de clave extranjera. - 149 - 1.4.4.1 Extracción de tablas del diagrama de clases 1 - 150 - Relación “Promoción desarrolla Proyectos” 1 desarrolla * Promoción • Proyecto “En una promoción se desarrollan de 0 a n proyectos. Mientras que un proyecto es desarrollado exclusivamente en una promoción.” • Es una relación de 1 a N. Por tanto Proyecto pasa a tener como clave extranjera el identificador de Promoción • Tablas resultantes Promoción= { id, fechaInicio, fechaFin, descripcion} Proyecto= { id, titulo, descripcion, fechaInicio, fechaFin, idPromocion*} Relación “Proyecto pertenece a categoría” * pertenece 1 Proyecto • Categoría “Un proyecto pertenece exclusivamente a una categoría. Pero una categoría puede contener de 0 a muchos proyectos..” • Es una relación de 1 a N. Por tanto Proyecto pasa a tener como clave extranjera el identificador de Categoría • Tablas resultantes: Proyecto2 = { id, titulo, descripción, fechaInicio, fechaFin, idPromocion*, idCategoria* } Categoría = { id, nombre } - 151 - Relación “Proyecto contiene enlace” contiene Proyecto • 1 * Enlace “Un proyecto puede contener una serie de enlaces, mientras que a un enlace le corresponde únicamente un proyecto” • Es una relación de 1 a N. Por tanto Proyecto pasa a ser clave extranjera en Enlace • Tablas resultantes: Proyecto2 = { id, titulo, descripción, fechaInicio, fechaFin, idPromocion*, idCategoria* } Enlace = { id, nombre, URL, idProyecto * } Relación “Proyecto es desarrollado por Colaborador” es desarrollado por Proyecto • * * Colaborador “Un proyecto puede ser desarrollado por más de un colaborador. Un colaboradro puede desarrollar más de un proyecto.” • Es una relación de M a N. Por tanto se crea una nueva entidad ProyectoColaborador que contendrá las claves principales de ambas clases. • Tablas resultantes: Proyecto2 = { id, titulo, descripción, fechaInicio, fechaFin, idPromocion*, idCategoria* } - 152 - Colaborador = { id, nombre, apellidos, direccion, email, descripción, usuario, clave } ProyectoColaborador = { idProyecto*, idColaborador* } Relación “Institución participa en Proyecto” participa en Institución • * * Proyecto “En un proyecto puede participar más de una institución. Una institución puede participar en varios proyectos.” • Es una relación de M a N. Por tanto se crea una nueva entidad ProyectoInstitucion que contendrá las claves principales de ambas clases. • Tablas resultantes: Proyecto2 = { id, titulo, descripción, fechaInicio, fechaFin, idPromocion*, idCategoria* } Institucion = { id, nombre, descripción, teléfono, contato, web, fax, dirección} ProyectoInstitucion = { idProyecto*, idInstitucion* } - 153 - Relación “Proyecto tiene asociado Material” tiene asociado Proyecto • 1 * Material “Un proyecto puede tener asociados varios elementos de material. Un elemento de material pertenece únicamente a un proyecto” • Es una relación de 1 a N. Por tanto Proyecto pasa a ser clave extranjera en Material. • Tablas resultantes: Proyecto2 = { id, titulo, descripción, fechaInicio, fechaFin, idPromocion*, idCategoria* } Material = { id, nombre, nombreArchivo, tipo, tamanio, fecha, idProyecto *} Relación “Institución tiene Imagen” tiene Institución • 1 1..0 Imagen “Una institución puede o no tener una imagen. Una imagen pertenece exclusivamente a una institución.“ • Es una relación de 1 a 1..0. Por tanto Institución pasa a ser clave extranjera en Imagen. Sin embargo, para hacer más rápidas las consultas a la base de datos, añadiremos los datos de Imagen en Institución y se emplearán valores nulos cuando no haya imagen. De todas maneras la clase Imagen seguirá existiendo y se empleará a la hora de extraer los datos. - 154 - • Tablas resultantes: Institucion2 = { id, nombre, descripción, teléfono, contato, web, fax, dirección, imagen, ancho, tipo, tamanio} Relación “Noticia tiene Imagen” tiene Noticia • 1 1..0 Imagen “Una noticia puede o no tener una imagen. Una imagen pertenece exclusivamente a una noticia.“ • Es una relación de 1 a 1..0. Por tanto Noticia pasa a ser clave extranjera en Imagen. Sin embargo, para hacer más rápidas las consultas a la base de datos, añadiremos los datos de Imagen en Noticia y se emplearán valores nulos cuando no haya imagen. De todas maneras la clase Imagen seguirá existiendo y se empleará a la hora de extraer los datos. • Tablas resultantes: Noticia = { id, titulo, fecha, texto, imagen, ancho, tipo, tamanio} - 155 - 1.4.4.2 Extracción de tablas del diagrama de clases 2 - 156 - Relación “Album es creado en Fecha” es creado en Album • 1 1 Fecha “Un álbum es creado en una fecha determinada. Una fecha corresponde a un álbum“. • Es una relación de 1 a 1. Por tanto añadiremos los datos fecha en Álbum. De todas maneras la clase Fecha seguirá existiendo y se empleará a la hora de extraer los datos. • Tablas resultantes: Album = { id, nombre, descripción, fecha, tipo} Relación “Foto es creada en Fecha” es creada en Album • 1 1 Fecha “Una foto es creada en una fecha determinada. Una fecha corresponde a una foto.“ • Es una relación de 1 a 1. Por tanto añadiremos los datos fecha en Foto. De todas maneras la clase Fecha seguirá existiendo y se empleará a la hora de extraer los datos. • Tablas resultantes: Foto = { id, nombre, descripción, fecha} - 157 - Relación “Album contiene Foto” contiene Album • 1 * Foto “Un álbum contiene de 0 a muchas fotos. Una foto es contenida exclusivamente en un álbum.“ • Es una relación de 1 a N. Por tanto la clave de álbum pasa a ser clave extranjera en Foto. • Tablas resultantes: Album = { id, nombre, descripción, fecha, tipo} Foto2 = { id, nombre, descripción, fecha, idAlbum *} Relación “Foto tiene asociada Imagen” Tiene asociada Foto • 1 1 Imagen “Una foto tiene asociada una imagen. Una imagen se asocia solamente a una foto.“ • Es una relación de 1 a 1. Por tanto añadiremos los campos de Imagen a foto aunque mantendremos la clase Imagen para la extracción de datos • Tablas resultantes: Foto2 = { id, nombre, descripción, fecha, imagen, ancho, tipo, tamanio, idAlbum *} - 158 - Relación “Mensaje pertenece a Hilo” pertenece Mensaje • * 1 Hilo “Un hilo contiene muchos o ningún mensaje. Un mensaje pertenece a un hilo.“ • Es una relación de 1 a N. Por tanto la clave de hilo pasa a ser clave extranjera en Mensaje. • Tablas resultantes: Hilo = { id, nombre, descripción, fecha, tipo} Mensaje = { id, autor, texto, fecha, idHilo *} Relación “Mensaje es respondido por Mensaje” es respondido Mensaje • 1 1..0 Mensaje “Una mensaje puede ser respondido por uno o ningún mensaje. Un mensaje puede responde únicamente a otro mensaje.“ • Es una recursiva en la que una clase tiene una relación consigo misma. Por ello lo que se hace es añadir un campo idRespuesta que contendrá el identificador de la respuesta, si es que la hay. • Tablas resultantes: Mensaje2 = { id, autor, texto, fecha, idHilo *, idRespuesta *} - 159 - Resto de clases Material: hereda los campos de la superclase Archivo: Material2 = {id, titulo, descripción, fecha, nombre, tamanio, tipo, idProyecto *} ConexionBBDD y UploadBean son clases que se utilizan como herramientas en la aplicación con lo que no se crean tablas de ellas. - 160 - 1.4.5 Planes El Diseño externo finaliza con la preparación de la estrategia de los planes de Pruebas, Conversión, Formación e Implantación. Estos planes serán completados en la fase de Diseño Interno, estableciéndose las pautas generales de ellos en esta fase, sobre todo de cara a la preparación de las fases de Pruebas e Implantación. La estrategia del Plan de Pruebas debe establecer los diferentes tipos de pruebas a realizar para comprobar la integridad y funcionalidad del software generado, en la etapa de Pruebas del Sistema. Asimismo, debe establecerse la necesidad o no de un entorno específico para llevar a cabo las pruebas, los procesos de migración a este entorno, y los equipos que realizarán dichas pruebas. Estos equipos pueden ser los mismos que componen el proyecto, o como ocurre en algunas organizaciones, utilizar el equipo de Testeo. Siempre aportará mayores garantías que las pruebas del sistema se realicen con equipos externos a los del proyecto. Las actividades concretas a llevar a cabo para la ejecución del plan, serán determinadas en la fase siguiente, una vez que sea detallado el software a desarrollar. La estrategia del Plan de Conversión debe establecer los procesos necesarios para la puesta en marcha del sistema y para la conversión de formatos de ficheros o documentos de entrada/salida que van a ser utilizados por el sistema. Debe tenerse en cuenta que podemos aprovechar tanto datos como software o hardware del sistema actual para convertirlos al nuevo sistema. La estrategia del Plan de Formación debe establecer las pautas a seguir para la realización de la formación de los diferentes usuarios finales del sistema, en cuanto a la utilización del sistema, su administración, y mantenimiento. Deberá estudiarse la necesidad de un entorno específico para realizar la formación y los materiales a utilizar, tanto manuales o guías con software apropiado para - 161 - realizar la formación o autoformación. También deberá planificarse formación, si se trata de un sistema con una población elevada de usuarios finales. La estrategia del Plan de Implantación establecerá la política a seguir para poner en marcha el sistema, el tipo de implantación a seguir, y los procesos a realizar ante la marcha atrás en caso de detectarse anomalías o complicaciones. 1.4.5.1 Plan de Pruebas: Pruebas de navegación de ventanas. Descripción: comprobar el acceso y visualización de todas las áreas de navegación de la aplicación: correcta apertura, ausencia de anomalías, y visualización clara de cada componente. Tiempo estimado: un día. Pruebas de obtención de la información. Descripción: cerciorarse que los datos que visualiza el usuario son reales y correctos, que no hay errores en la obtención de la información y que los datos son coherentes y justificables. Tiempo estimado: dos días. Funcionalidad de operación y consulta. Descripción: ejecutar búsquedas y consultas sobre los datos y verificar los resultados mediante comprobaciones con la base de datos u otros medios. Comprobar que el borrado, recuperación e correctamente Tiempo estimado: dos horas. - 162 - inserción de datos se realiza Pruebas de prestaciones Ocupación en disco: la aplicación gestionará una base de datos que irá creciendo considerablemente con el paso de cada promoción. Las fotos, los documentos, las presentaciones…son archivos pesados y por tanto se deberán alojar los mismos en un servidor con altas capacidades de almacenamiento en disco. Tráfico en las líneas de comunicación: la Universidad Pontificia Comillas posee una red de comunicaciones de altas prestaciones, la cual soporta eficientemente el tráfico de datos actual. Por tanto, no se espera que la instalación de la web cause un impacto importante sobre el número de transacciones realizadas en un día. Tiempos de respuesta: una navegación ágil a través de la aplicación es esencial para que el objetivo final para el que se desarrolló tenga éxito. Se deberán estudiar aquellas consultas críticas y medir el tiempo de respuesta tanto en horas valle como en horas punta. Medidas como esta ya se tuvieron en cuenta en casos como en el análisis de la base de datos de material, que contiene los documentos asociados a cada proyecto. Dado que al almacenar los documentos dentro de la base de datos se provocaba un retardo extra, estos han pasado a almacenarse en el disco duro y la base de datos ahora guarda la localización de cada fichero. Pruebas de implantación El desarrollo de las páginas se realizará en los equipos localmente, pero conforme vayan añadiéndose funcionalidades éstas ya se incorporarán al servidor de datos en un área auxiliar para que se puedan ir realizando las correspondientes pruebas. Una vez se haya desarrollado y probado la aplicación no se esperan problemas de implantación ya que el software ya se habrá probado en el servidor. Aunque si que pueden ocurrir problemas de capacidad o tiempo de respuesta en la fase de explotación real. - 163 - 1.4.5.2 Plan de Conversión: Conversión de ficheros Conversión de un tipo de terminal a otro. En principio no se esperan problemas de compatibilidad con la aplicación. Si acaso el único problema que pueda ocurrir sería por emplear un navegador con altas medidas de seguridad que pueda bloquear la ejecución del algún script. Sin embargo cuando esto ocurre es el propio navegador el que alerta al usuario del contenido bloqueado y ofrece la opción de desbloquearlo. El sistema reconocerá al tipo de usuario que accede y pondrá a su disposición un sistema de ayuda acorde con las funcionalidades que le ofrece. Si este sistema proporciona una ayuda insuficiente automáticamente se dará la opción a enviar una incidencia al administrador de la aplicación para que pueda responderla personalmente por correo electrónico. 1.4.5.3 Plan de Implantación: Para la implantación del nuevo sistema se deberán realizar los siguientes pasos: • Copia de la aplicación en el servidor de destino. • Configuración de la Administración de los Servicios Web del servidor de datos. Especificar aspectos como reglas de acceso, directorio de la aplicación, localización de las bases de datos, nombre de la aplicación, página de inicio, etc. • Ejecución del fichero SQL para crear la base de datos. • Configuración de la conexión con la base de datos (para más detalles ver en Procesos de Recuperación, el apartado “Pérdida de la conexión con la base de datos”). • Realización de las pruebas de implantación y conversión. • Ejecución de las Pruebas de Navegación, Funcionales, Aceptación, etc. • Testeo de la aplicación con una serie de usuarios voluntarios. - 164 - • Ejecución del Plan de Formación • Paso a explotación real. 1.4.5.4 Plan de Formación: Existen tres tipos de usuarios ya definidos: visitantes, colaboradores y el administrador. El primero no necesita una formación, ya que con el sistema de ayuda implantado y las incidencias podrán resolver todas sus dudas acerca del funcionamiento de la aplicación. Se deberá realizar una reunión con el administrador para que se le explique qué funcionalidades ofrece la aplicación y debe él gestionar. Esto son sólo una serie de pautas y apoyándonos en que vamos a desarrollar una interfaz muy intuitiva esperamos que no haya ningún tipo de problema por parte de ellos para aprender a obtener el máximo partido de la aplicación. Además, en esa reunión se le entregará un Manual de usuario, que estará disponible en la web para Visitantes y Colaboradores, y un Manual de explotación, donde se detallan todas las funcionalidades de gestión de la aplicación mediante capturas de pantalla. - 165 - 1.4.6 Mapa de la aplicación A continuación se muestra la estructura final que la aplicación va a tener, en forma de lista. Si una página web tiene enlaces a otras páginas, se representa mediante una sub lista. Inicio • Bienvenida • Noticias • Instituciones • Proceso de Selección • Alojamiento • Participantes • Foros o Ver listado de hilos de discusión • Ver mensajes de un hilo Escribir un mensaje Fotos o Ver listado de álbumes Abrir álbum • • Contacto • Inicio de sesión Ver detalles de una foto o Panel de Control de Colaborador Inicio Mis Proyectos Crear un proyecto Ver detalles de un proyecto • Editar descripción de proyecto • Eliminar Proyecto • Editar lista de participantes • Editar lista de instituciones. - 166 - • Añadir nuevo material • Eliminar material • Añadir nuevo enlace. • Eliminar enlace Buscar proyectos • Por promociones o Ver detalles de proyecto • Por categorías o Ver detalles de proyecto Listar álbumes de fotos públicos y privados • Ver detalles de álbum o Ver detalles de una foto Editar detalles de una foto o Editar detalles de un álbum • Crear álbum de fotos • Editar datos personales Ver hilos de discusión públicos y privados. • Ver mensajes de un hilo o Escribir un mensaje. • Crear hilo de discusión • Editar detalles de un hilo Enviar consulta al Administrador Cerrar sesión o Área de administración Inicio Noticias • Crear noticia • Editar noticia • Eliminar noticia Colaboradores • Crear colaborador • Editar colaborador • Eliminar colaborador - 167 - Instituciones • Crear institución • Editar institución • Eliminar institución Promociones • Ver una promoción • Editar datos de una promoción • Eliminar promoción Categorías • Crear categoría • Editar categoría • Eliminar categoría Fotos • Crear álbum de fotos • Editar álbum de fotos • Eliminar álbum de fotos • Ver álbum de fotos o Ver detalles de una foto o Editar detalles de una foto Foro • Crear hilo de discusión • Editar hilo de discusión • Eliminar hilo y mensajes • Ver mensajes de un hilo de discusión o Eliminar un mensaje - 168 - 1.4.7 Modelo físico de datos Para definir la codificación de objetos que forman la base de datos, debemos basarnos en una codificación estándar existente en la organización. Al objeto de facilitar la labor del administrador. Dependiendo del gestor de base de datos a utilizar, se usarán unos componentes u otros, cuya estructura también difiere. Estos componentes u objetos en general son: Base de datos Es un conjunto de datos que se tratarán como una unidad y que pueden pertenecer a una o más aplicaciones. Físicamente está constituida por ficheros del sistema operativo para contener información de: • Tablas e índices de usuario y catálogo (database files). • Datos para recuperación (log files). • Identificación y descripción de la base de datos (control file). Su estructura lógica viene dada por la combinación de las autorizaciones a distingos usuarios o grupos y por la definición de espacios para tablas, que contendrán tablas, índices y otros objetos utilizados para control de transacciones. En la web del Proyecto Perú, se han definido una serie de tablas para gestionar toda la información. La mayoría de las tablas se asocia con una clase en el modelo lógico, la cual se encargará de validar los datos y formatearlos al introducirlos o al extraerlos de la base de datos. Las tablas que se han definido son: • Administrador: almacena el listado de usuarios en calidad de administradores de la aplicación • Colaborador: listado de usurarios registrados como colaboradores del Proyecto Perú - 169 - • Promoción: contiene las promociones que se desarrollan en el Proyecto Perú. • Noticia: detalles de todas las noticias. • Institución: listado de instituciones participantes en el Proyecto Perú. • Proyecto: detalles de un proyecto asociado a una promoción. • Material: detalles de material asociado a un proyecto. • Álbum: descripción de un álbum de fotos. • Foto: detalles de una foto perteneciente a un álbum. • Hilo: descripción de un hilo de discusión. • Mensaje: texto y detalles de un mensaje perteneciente a un hilo de discusión. • Categoría: listado de las diferentes categorías a las que puede pertenecer un proyecto. • Enlace: descripción de un enlace a una web de interés para un proyecto. • PromociónParticipante: listado de colaboradores que participan en una promoción. • ProyectoParticipante: listado de colaboradores que participan en un proyecto. • ProyectoInstitución: listado de instituciones que colaboran en un Proyecto. - 170 - 1.5 PROGRAMACIÓN - 171 - 1.5.1 INTRODUCCIÓN El objetivo de esta etapa es alcanzar la transformación del sistema en un conjunto de programas que puedan ser ejecutados correctamente, bajo criterios de calidad. La dificultad estriba en cómo realizar esta transformación de la mejor manera posible, ya que va a depender de factores como el leguaje de programación a utilizar, herramientas y utilidades de software disponibles, y el equipo empleado para realizar la programación. En esta etapa comienzan las pruebas de software, de modo que cada módulo debe garantizar que su pieza o programa funciona y que lo hace correctamente. No basta con una compilación o interpretación correcta, deben probarse todas las circunstancias en que el programa pueda ejecutarse a fin de comprobar que resulta satisfactorio en todas ellas. Sobre todo, el programa debe tener control de auditación, de modo que en caso de fallo él mismo lo detecte y lo informe para hacer más clara su identificación y resolución. Además de realizar la codificación de los programas, de acuerdo con los cuadernos de carga desarrollados en la etapa de Diseño Interno, deben codificarse los procedimientos catalogados o Scripts de ejecución, que constituyen los programas de control de ejecución de las funciones de negocio o transacciones. - 172 - 1.5.2 Funciones más importantes de la aplicación A continuación se muestra el código fuente de aquellas partes de la aplicación que se consideran más complejas. El código es fácilmente legible ya que está documentado en su totalidad. Las páginas son: • Colaborador detalleProyecto.jsp • Colaborador editarParticipantes.jsp • Colaborador nuevoMaterial.java • Administrador verHilo.jsp DetalleProyecto.jsp Esta página es de vital importancia ya que extrae todos los datos relacionados con un proyecto (descripción, participantes, instituciones, material y enlaces) y los muestra por pantalla. Para ello accede a la base de datos, extrae la información según la va almacenando en objetos, y luego estos objetos son empleados para mostrar la información en la página web. • Parámetros de entrada: el identificador de proyecto. • Código fuente: // Creamos una instancia de categoría de proyecto y un proyecto para almacenar los datos Categoria categoria= new Categoria(); Proyecto proy = new Proyecto(); - 173 - try { // Extraemos los detalles del proyecto DbConnection conn= new DbConnection(); String query= "SELECT * FROM proyecto WHERE id=" + request.getParameter("id"); ResultSet rs= conn.executeQuery(query); rs.next(); // Almacenamos los datos en el objeto proyecto proy.setId(rs.getInt("id")); proy.setDescripcion(rs.getString("descripcion")); proy.setFechaFin(rs.getString("fechaFin")); proy.setFechaInicio(rs.getString("fechaInicio")); proy.setIdCategoria(rs.getInt("idCategoria")); proy.setIdPromocion(rs.getInt("idPromocion")); proy.setTitulo(rs.getString("titulo")); // Extraemos un listado de las instituciones participantes en el proyecto query= "SELECT * FROM institucion WHERE id IN(SELECT idInstitucion FROM proyectoinstitucion WHERE idProyecto=" + request.getParameter("id") + ") ORDER BY nombre"; rs= conn.executeQuery(query); while (rs.next()) { Institucion i= new Institucion(); // Almacenamos los datos en un objeto institución y lo añadimos al vector de instituciónes del objeto proyecto i.setId(rs.getInt("id")); i.setNombre(rs.getString("nombre")); proy.addInstitucion(i); } rs.close(); - 174 - // Extraemos la categoría a la que pertenece el proyecto query= "SELECT * FROM categoria WHERE id =" + proy.getIdCategoria(); rs= conn.executeQuery(query); while (rs.next()) { categoria.setId(rs.getInt("id")); categoria.setNombre(rs.getString("nombre")); } rs.close(); // Hacemos un listado de los colaboradores que pertenecen al proyecto query= "SELECT * FROM colaborador WHERE id IN (SELECT dColaborador from proyectoparticipante WHERE idProyecto=" + proy.getId() + ")"; rs= conn.executeQuery(query); while (rs.next()) { // Almacenamos los datos en un objeto Colaborador y lo añadimos al vector de participantes del objeto proyecto Colaborador c= new Colaborador(); c.setId(rs.getInt("id")); c.setNombre(rs.getString("nombre")); c.setApellidos(rs.getString("apellidos")); proy.addParticipante(c); } rs.close(); // Hacemos un listado del material que pertenece al proyecto query= "SELECT * FROM material WHERE idProyecto=" + proy.getId() + " ORDER BY nombre"; rs= conn.executeQuery(query); - 175 - while (rs.next()) { // Almacenamos los datos en un objeto Material y lo añadimos al vector de material del objeto proyecto Material m= new Material(); m.setId(rs.getInt("id")); m.setNombre(rs.getString("nombre")); m.setNombreArchivo(rs.getString("nombrearchivo")); m.setTamanio(rs.getString("tamanio")); m.setTipo(rs.getString("tipo")); m.setFecha(rs.getString("fecha")); proy.addMaterial(m); } rs.close(); // Hacemos un listado de los enlaces de interés del proyecto query= "SELECT * FROM enlace WHERE idProyecto=" + proy.getId() + " ORDER BY nombre"; rs= conn.executeQuery(query); while (rs.next()) { // Almacenamos los datos en un objeto Enlace y lo añadimos al vector de enlaces del objeto proyecto Enlace e = new Enlace(); e.setId(rs.getInt("id")); e.setNombre(rs.getString("nombre")); e.setURL(rs.getString("URL")); proy.addEnlace(e); } rs.close(); conn.close(); }catch (SQLException sqle) {sqle.printStackTrace(); } - 176 - Tras esto, los datos son extraídos de los objetos y representados en la página web. EditarParticipantes.jsp Una de las opciones del detalle de un proyecto es la de editar el listado de participantes del mismo. Para esto se ha desarrollado un sistema muy sencillo y eficaz que extrae el listado de colaboradores de una promoción, junto con casillas de verificación que indican si el colaborador es un participante del proyecto o no. Para ello se extraen dos vectores de Colaboradores, el primero incluye todos los colaboradores pertenecientes a la promoción. El segundo, el listado de aquellos que participan en ese proyecto (y que por tanto también pertenecen a esa promoción). El usuario simplemente tiene que marcar y desmarcar los colaboradores para crear el listado. Esto luego se traduce en inserciones o eliminaciones en la base de datos. • Parámetros de entrada: el identificador de proyecto se pasa en la URL, mientras que el identificador de la promoción para extraer los participantes se obtiene de la base de datos, y el identificador de el colaborador que ha abierto el proyecto se obtiene de una variable de sesión. • Código fuente: Vector colaboradores= new Vector(); // Contiene los colaboradores de una promocion Vector participantes= new Vector(); // Contiene los participantes de un proyecto try { // Extraemos los colaboradores de la promoción DbConnection conn= new DbConnection(); - 177 - String query= "SELECT * FROM colaborador WHERE id IN (SELECT idColaborador FROM promocionparticipante WHERE idPromocion=" + request.getParameter("idPromocion") + ") ORDER BY apellidos"; ResultSet rs= conn.executeQuery(query); // Incluimos los colaboradores en el Vector en objetos Colaborador while(rs.next()) { Colaborador c= new Colaborador(); c.setId(rs.getInt("id")); c.setNombre(rs.getString("nombre")); c.setApellidos(rs.getString("apellidos")); colaboradores.add(c); } rs.close(); // Extraemos los participantes del proyecto conn= new DbConnection(); query= "SELECT * FROM colaborador WHERE id IN (SELECT idColaborador FROM proyectoparticipante WHERE idProyecto=" + request.getParameter("id") + ") ORDER BY apellidos"; rs= conn.executeQuery(query); while(rs.next()) { // Almacenamos los pariticpantse en el vector Participantes en objetos Colaborador Colaborador c= new Colaborador(); c.setId(rs.getInt("id")); c.setNombre(rs.getString("nombre")); c.setApellidos(rs.getString("apellidos")); participantes.add(c); } rs.close(); - 178 - conn.close(); }catch (SQLException sqle) { sqle.printStackTrace(); } catch(NullPointerException npe){} %> <!-- Mostramos los participantes en una tabla --> <h3>Listado de participantes del proyecto</h3> <table border=0 cellpadding=5> <tr><th>Incluir</th><th>Nombre</th><th>Apellidos</th></tr> <form action="../actualizaParticipantes" method="POST"> <% Enumeration e= colaboradores.elements(); int counter=0; while(e.hasMoreElements()) { Colaborador c= (Colaborador)e.nextElement(); %> <tr><td><input type=checkbox name="<%=c.getId()%>" <%= participantes.contains(c)?"checked":""%>><td><%= c.getNombre()%></td><td><%= c.getApellidos()%></td></tr> <% } %> <tr><td colspan="3"><hr /></td></tr> <input type="hidden" name="idProyecto" value="<%=request.getParameter("id")%>"> <input type="hidden" name="idPromocion" value="<%=request.getParameter("idPromocion")%>"> <tr><td colspan=3 align="right"><input type="submit" name="enviar" value="Enviar"> <input type="button" name="Volver" onClick="window.location='detalleProyecto.jsp?id=<%= request.getParameter("id")%>'"/></td></tr> </form> </table> - 179 - value="Volver" NuevoMaterial.java Este servlet recibe los datos de un material y el archivo a subir al servidor. Y ayudándose de un bean (UploadBean) guarda el fichero en el servidor. Se ha tenido que desarrollar una política de sobre escritura. La cuál, en el caso de que el archivo a subir tenga el mismo nombre que otro existente, se añada la hora actual del servidor, en milisegundos, al final del archivo. En la base de datos se almacena, además de la descripción del material, el tamaño, tipo y nombre del fichero. • Parámetros de entrada: nombre del material, descripción, archivo a subir e identificador del proyecto. Estos datos vienen contenidos en una variable de un formulario Multipart, necesario para transferencia de ficheros vía HTTP. • Código fuente // Creación del bean para subir el fichero UploadBean upload= new UploadBean(); UploadParameters upParam; java.util.Date d= new java.util.Date(); //Especificación de la política de sobre escritura String overwriteValue= Long.toString(d.getTime()); String overwriteFilename=""; upload.setOverwritepolicy("_" + overwriteValue); // Flag para comprobar si la operación es satisfactoria UploadFile file=null; out.println(request.getParameter("id")); String path="E:/ICAI/ProyectoPeru/web/material"; try { upload.setFolderstore(path); if (MultipartFormDataRequest.isMultipartFormData(request)) - 180 - { // Empleo del objeto MultipartFormDataRequest para extraer el fichero y el resto de parámetros MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request); String todo = null; if (mrequest != null) todo = mrequest.getParameter("todo"); if ( (todo != null) && (todo.equalsIgnoreCase("upload")) ) { // Extracción del fichero Hashtable files = mrequest.getFiles(); if ( (files != null) && (!files.isEmpty()) ) { file = (UploadFile) files.get("archivo"); File f= new File(path + "/" + file.getFileName()); // Obtención del nombre del fichero en nuestro servidor if(f.exists()) overwriteFilename=ile.getFileName(). substring(0,file.getFileName().indexOf(".")) + "_" + overwriteValue + file.getFileName().substring(file.getFileName().indexOf ".")); // Almacenamiento del fichero en la localización especificada upload.store(mrequest, "archivo"); } } - 181 - // Inserción de los datos del material en la base de datos DbConnection conn= new DbConnection(); String query="INSERT INTO material(nombre, idProyecto, fecha, nombrearchivo, tamanio, tipo) VALUES ('" + mrequest.getParameter("nombre") + "', '" + mrequest.getParameter("id") + "', NOW(), '" + (overwriteFilename.equals("")?file.getFileName(): overwriteFilename) + "',"+ file.getFileSize() + ", '"+ file.getContentType() + "')"; conn.executeUpdate(query); // Operación satisfactoria response.sendRedirect("colaborador/detalleProyecto.jsp?id="+ mrequest.getParameter("id")); } // Si se produce un error, comunicarlo al cliente enviando un parámetro de //error a la página web de creación de material }catch(UploadException ue) { response.sendRedirect("colaborador/detalleProyecto.jsp?id="+ request.getParameter("id") + "&upload=false"); } VerHilo.jsp El almacenamiento de un hilo de discusión y sus mensajes se ha desarrollado en forma de lista enlazada. Siguiendo las siguientes normas: • Un hilo tiene un campo idMensaje que almacena el identificador del primer mensaje del hilo de discusión. Si este campo contiene un valor nulo, el hilo no tiene mensajes. • Cada mensaje tiene un campo idRespuesta que es el identificador del siguiente mensaje del hilo. Por tanto, el último mensaje tendrá este campo con valor nulo. - 182 - Para extraer los datos de un hilo, se crea un objeto Hilo, y si el campo idRespuesta tiene un identificador, se va accediendo a la base de datos iterativamente hasta extraer un mensaje con campo idRespuesta con valor nulo. Lso mensajes son almacenados en el vector mensajes del objeto Hilo. Después son mostrados por pantalla en una tabla. • Parámetros de entrada: el identificador del hilo. • Código fuente Hilo h= new Hilo(); // Extraemos los datos del hilo DbConnection conn= new DbConnection(); String query= "SELECT * FROM hilo WHERE id=" + request.getParameter("id"); ResultSet rs= conn.executeQuery(query); try { // Almacenamos los datos en el objeto Hilo rs.next(); h.setFecha(rs.getString("fecha")); h.setId(rs.getInt("id")); h.setNombre(rs.getString("nombre")); h.setTipo(rs.getString("tipo")); h.setPrimerMensaje(rs.getInt("idMensaje")); rs.close(); if(h.getPrimerMensaje()!=-1) // si el hilo tiene mensajes… { // Hacemos un listado con los mensajes del hilo int sigMensaje= h.getPrimerMensaje(); while(sigMensaje!=-1) { query= "SELECT * FROM mensaje WHERE id=" + sigMensaje; rs= conn.executeQuery(query); - 183 - rs.next(); // Creamos un objeto mensaje para almacenar los datos y lo añadimos al vector de mensajes del objeto Hilo Mensaje m= new Mensaje(); m.setId(rs.getInt("id")); m.setNombre(rs.getString("nombre")); m.setTexto(rs.getString("texto")); m.setFecha(rs.getString("fecha")); m.setAutor(rs.getString("autor")); m.setIdRespuesta(rs.getInt("idRespuesta")); h.addMensaje(m); rs.close(); sigMensaje= m.getIdRespuesta(); } } }catch (SQLException sqle) { sqle.printStackTrace(); } conn.close(); %> Tras esto, el hilo y sus mensajes son mostrados por pantalla en una tabla extrayéndo los datos de los objetos. - 184 - 1.5.3 Mensajes de error En el desarrollo se han tenido en cuenta todos los mensajes que pueden aparecer, y para ello se ha desarrollado un sistema de detección de errores, lo que facilita su detección y resolución tanto al usuario como al administrador para solucionar el problema con la mayor eficacia posible. Los errores típicos que se muestran por pantalla como mensajes son: • El usuario ha introducido un nombre de usuario o contraseña incorrectos. • En los formularios, todos los campos son validados en el lado del cliente mediante javascript. De modo que o Si un campo sólo puede contener números, entonces solamente las teclas numéricas del teclado están habilitadas para ese campo. o Si se trata de una dirección de correo electrónico, se comprueba que tenga la estructura usuario@servidordecorreo.extensión. o Se comprueba que los campos necesarios hayan sido rellenados para evitar enviar valores nulos a la base de datos. • Notificaciones al usuario cuando desea eliminar un elemento que tiene dependencias que deben ser eliminadas previamente. Tales como un proyecto (no se puede eliminar si tiene material) o un colaborador (se cancela su eliminación si tiene proyectos asociados). • Alertas de errores en la transmisión de ficheros a la aplicación. • Notificación de intento de acceso a un área restringida de la aplicación. • Notificación de error al acceder a un fichero. - 185 - 1.6 PRUEBAS DEL SISTEMA - 186 - 1.6.1 INTRODUCCIÓN Una vez desarrollados y probados cada uno de los componentes y programas que forman el software, deben realizarse una serie de pruebas para conseguir integrar todo el sistema, de acuerdo al Plan de Pruebas establecido en la etapa Diseño Interno. Así, el objetivo global de esta fase es someter al sistema desarrollado y a sus componentes, a una serie de verificaciones encaminadas a garantizar un nivel de fiabilidad aceptable. Esta fase es crítica y debe por tanto ser planificada, diseñada y realizada con el mismo rigor y control con el que se realiza el desarrollo del sistema. Si los resultados de las pruebas son satisfactorios, se procederá a la aceptación de las mismas y a la implantación del sistema, pero en caso contrario habrá que subsanar las anomalías encontradas, lo que significa volver al diseño o la codificación realizada. De acuerdo con el Plan de Pruebas, debe ejecutarse el ciclo de pruebas necesarias. Este ciclo recoge las distintas pruebas a las que puede someterse el software, desde las pruebas de encadenamiento entre programas, hasta las pruebas de estrés para diagnosticar el rendimiento del sistema ante condiciones extremas de operación y concurrencia de usuarios. Como consecuencia de las pruebas realizadas sobre un entorno si no igual, de características similares al de producción, se desarrollará el manual de instalación y configuración, determinando qué componentes deben instalarse en cada equipo hardware, y cómo debe realizarse dicha instalación. Esto se desarrolla el Manual de Instalación, el cual se encuentra en los Anexos. - 187 - 1.6.2 TIPOS DE PRUEBAS A REALIZAR En esta etapa se realiza el bloque de pruebas completo, al objeto de comprobar la funcionalidad y rendimiento exigido en los requisitos. Para ello, previamente se habrán realizado las pruebas unitarias de cada componente software, y posteriormente se volverán a realizar pruebas de carga y rendimiento pero ahora ya sobre el entorno real de producción. Los diversos tipos de prueba a realizar son: • Pruebas de Encadenamiento. Verifican las llamadas entre componentes. Se deberá comprobar todas las posibles funciones de navegación de ventanas web. Todas ellas deberán visualizarse correctamente, y los datos que se pasen entre ellas como argumentos deberán mantener coherencia de una ventana a otra. Habrá que poner especial detalle en la localización de los directorios para subir imágenes y material al servidor. • Pruebas de Integración. Verifican la funcionalidad de todo el sistema integrado, y el rendimiento de los recursos utilizados. Aquí se comprobará sobre todo el rendimiento de los accesos pesados a bases de datos, generación de listados y visualización de gráficos. Se establece que el tiempo de respuesta máximo que un usuario puede esperar para ver una ventana completa debe ser inferior a 2 segundos. • Pruebas de Explotabilidad. Verifican la correcta operación del sistema. Se deberá comprobar cómo la aplicación responde ante las peticiones de los usuarios, ante una búsqueda, o ante un alta o baja de un registro. • Pruebas de Seguridad. Verifican los aspectos de seguridad exigidos en los requisitos del sistema. Los aspectos más importantes de seguridad a revisar serán la coherencia de límites de acceso para cada perfil de usuario, es decir, que ningún usuario tenga en ningún momento - 188 - posibilidad de navegar más allá de sus límites establecidos. Por ello se deberán controlar y mantener las claves para saber de qué usuario se trata en todo momento. Otra norma de seguridad es la privacidad de los datos. • Pruebas de Sobrecarga: verifican el correcto comportamiento del sistema ante los estados de estrés en los que puede verse envuelto. Para este tipo de prueba se deberá buscar a diez voluntarios más para realizar la siguiente prueba durante diez minutos. Todo el grupo de pruebas deberá utilizar la aplicación realizando peticiones web continuamente. Para garantizar que se está solicitando información al servidor los usuarios desactivarán el historial y la caché de su explorador para que cada vez se soliciten páginas nuevas y estas no se guarden en memoria del cliente. Además, se analizará la carga de trabajo en el servidor con un software específico de análisis de rendimiento de aplicaciones web. Se analizarán los resultados y se comprobará si cumplen los requisitos mínimos de tiempos de respuesta. • Pruebas de Recuperación. Verifican la capacidad del sistema para recuperar información o incidencias anómalas. Para realizar estas pruebas se acudirán a los Procedimientos de Recuperación especificados en la etapa de Diseño Externo. Habrá que verificar el correcto funcionamiento y respuesta de cada uno de los pasos descritos, y su resultado satisfactorio. • Pruebas de Regresión. Verifican el correcto comportamiento del sistema ante la modificación de alguno de sus componentes. En todas las partes de la aplicación donde se puedan realizar altas, bajas o modificaciones se realizarán pruebas para comprobar la coherencia al añadir o eliminar un registro. Estas partes son noticias, instituciones, colaboradores, proyectos, foro, álbumes de fotos y categorías. • Pruebas de aceptación del usuario. Certifican, por parte de los usuarios, la funcionalidad y rendimiento del sistema, de acuerdo con los - 189 - requisitos especificados. Para esta prueba se solicitará la ayuda de 5 de los 10 voluntarios, para que nos den su opinión y todas las sugerencias que se les ocurran, tanto de operativa del sistema como de interfaz y diseño. Todas aquellas dificultades que vean en la aplicación deben ser informadas y posteriormente estudiadas. Esta es una de las pruebas de mayor relevancia y de las que hay que estar más seguro de que su resultado sea satisfactorio, pues si así es, los voluntarios darán una buena opinión al resto de la plantilla y esto facilitará la aceptación de la aplicación cuando se ponga en producción real. • Pruebas de usabilidad. Certifican, por parte de los usuarios, la manejabilidad y usabilidad del sistema. El grupo anteriormente seleccionado deberá también especificar qué partes de la aplicación son más complicadas de manejar y cómo creen que esto mejoraría o sería más fácil de realizar. - 190 - 2 Planificación y Presupuesto - 191 - 2.1 Planificación de tareas - 192 - En este apartado se describe mediante un diagrama de Gant la estrategia y distribución de tiempo para llevar a cabo el proyecto. Este se ha dividido en una serie de etapas de desarrollo, a las cuales se les ha asignado un tiempo determinado para su ejecución. El método empleado es el Ciclo de Vida en Cascada, en el cuál los documentos de salida de una etapa sirven de entrada para la siguiente etapa. En el diagrama, cada etapa tiene una barra horizontal que representa el tiempo dedicado a desarrollarla. El proyecto se comenzó a desarrollar a finales del mes de Febrero, y tanto la documentación y como la programación se llevaron más o menos a la par durante todo el proceso. Las dificultades más destacadas durante su desarrollo fueron el estar en otro país (Reino Unido) en el programa Erasmus, y el haber trabajado durante los tres últimos meses del Proyecto. - 193 - - 194 - 2.2 Presupuesto - 195 - El proyecto se ha desarrollado sin ninguna retribución real. Por ello los costes especificados a continuación son sólo orientativos y por tanto no exactos. Además, la mayoría del software que se ha empleado es de código abierto con lo que los costes de su uso o adquisición de licencias son nulos. Parámetros principales • Período de desarrollo del proyecto: 8 meses • Número de horas empleadas en el desarrollo: 300 • Coste de trabajo por hora: 8€ Especificación del presuspuesto • Coste total de mano de obra: • Requisitos hardware para el desarrollo 2.400€ o Equipo portátil IBM • • 700€ Requisitos software o Macromedia DreamWeaver 300€ o Java NetBeans 0€ o Servidor web Apache Tomcat 0€ o Servidor de base de datos MySQL 0€ o Gestor de base de datos PHPMyAdmin 0€ o Gestor UML Poseidon 150€ o Microsoft Office 2003 Profesional 200€ Total 3.750€ - 196 - 3 CONCLUSIÓN - 197 - Satisfacción personal y académica. Esa es la sensación que me ha quedado al finalizar este proyecto. Durante las incontables horas de su desarrollo, todos los años de mi carrera universitaria han pasado por mi mente. Y he visto cómo me he ido desarrollando como alumno, como ingeniero, y sobre todo como persona. Este proyecto es una confirmación de ese desarrollo. Este sentimiento de satisfacción personal viene dado porque el haber realizado este proyecto tiene un doble sentido para mí. No sólo he creado un portal de servicios, algo que me fascina y con lo que puedo estar horas y horas aprendiendo sin parar, sino que también tiene un valor Solidario. Una buena causa. Se trata de la web de una experiencia maravillosa que la Oficina de Cooperación al Desarrollo y Compromiso Solidario gestiona cada año. Esto para mí ha sido una doble motivación para esforzarme al máximo en lograr un producto consistente y de calidad. La satisfacción académica viene dada por haber logrado poner en práctica todos los conceptos que he aprendido en estos 5 años en un proyecto, más los que he aprendido con mi experiencia laboral. Me siento orgulloso de lo que he desarrollado y muy expectante ante su lanzamiento para el próximo año académico. A lo largo de mis años de estudiante de Ingeniería Informática, iba haciéndome la pregunta “¿Y qué voy a hacer cuando termine la carrera?”. Bueno, este proyecto ha sido la clave para demostrarme que se pueden hacer cosas productivas para los países subdesarrollados trabajando como Ingeniero Informático. Esto es lo que me gratifica tanto: el poder colaborar en algo tan importante para mí, haciendo lo que me gusta. Sin duda seguiré por este camino, tratando de desarrollarme como ingeniero, y sobre todo como persona. - 198 - 4 BIBLIOGRAFÍA - 199 - Libros • BARRA01] Barranco de Areba, Jesús; “METODOLOGÍA DEL ANÁLISIS ESTRUCTURADO DE SISTEMAS”; 2º Edición, Universidad Pontificia de Comillas, 2001. • [Tuto02] “Manual de referencia HTML”; 2º Edición, Espasa Calpe, 2002. • [Mind01] “Mind Phonex Pro User Reference”, Mind Solutions, 2001. • [GAUS02] Gauss Enseñanza y Formación; “Dreamweaver MX”, 2002 • [GAUS02] Gauss Enseñanza y Formación; “HTML y CSS”, 2002 Direcciones web Página oficial java • www.java.sun.com Web del bean para subir ficheros • www.javazoom.net/jzservlets/uploadbean/ Web del bean para crear miniaturas de imágenes para los álbumes de fotos • http://schmidt.devlib.org/java/save-jpeg-thumbnail.html Webs de programación general • www.w3schools.com/ • www.desarrolloweb.com • www.programacionfacil.com • www.guruprogramacion.com Webs de SQL • www.sqladvanced.com • www.sqlreference.com • www.mysql.com Webs de javascript • www.solojavascript.com Diseño • www.iconwebdesign.com • www.macromedia.com • www.webicons.com • www.tutorialesql.com • www.css.com - 200 - 5 APÉNDICE - 201 - 5.1 Glosario A continuación se expone un glosario de tecnicismos empleados en la documentación y en la aplicación. Convendría distribuir este glosario o colgarlo en la web para que usuarios no experimentados puedan comprender mejor estos conceptos básicos. • Administrador: persona física que tiene privilegios sobre el resto de usuarios para explotar una aplicación. • Antivirus: programa desarrollado para rastrear, detectar, y eliminar virus informáticos. • Base de datos: estructura lógica de registros que almacena datos para su eficaz tratamiento. • Dominio: Un dominio de Internet es un nombre de equipo o alias que proporciona nombres más fácilmente recordados en lugar de la IP numérica. (ej. www.google.com). • Firewall: complemento hardware y/o software utilizado para filtrar la información de entrada y de salida de la Intranet del Ayuntamiento con la red Internet. Funciona conjuntamente con el Antivirus para limpiar los datos. • Hardware: componentes informáticos físicos diseñados con un propósito y unas funcionalidades determinadas. • Hub: concentrador de conexiones de red en una oficina. • Internet: red mundial de computadoras interconectadas con un conjunto de protocolos, el más destacado, el TCP/IP. • Intranet: Una intranet es una red de ordenadores de una privada empresarial o educativa que proporciona herramientas de Internet, las cuales tienen como función principal proveer lógica de negocios con el fin de auxiliar la producción de sus grupos de trabajo • IP: Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un dispositivo (habitualmente un ordenador) dentro de una red. - 202 - • Navegador web: Un navegador web o browser es un programa que permite al usuario recuperar y visualizar documentos de hipertexto, comúnmente descritos en HTML, desde servidores web de todo el mundo a través de Internet. • Ordenador cliente: estación de trabajo de un usuario conectada a una red de comunicaciones. • Perfil de usuario: conjunto de permisos o facilidades de navegación de un usuario en una aplicación. • Router: encaminador de datos en una red de comunicaciones. • Red: conjunto de equipos informáticos y elementos de interconexión cuya finalidad es compartir datos, recursos y servicios. • Servidor: equipo informático con una configuración hardware y software capaz de proveer servicios a múltiples usuarios al mismo tiempo. • Software: todo servicio informático diseñado para cubrir una necesidad. • Web: conjunto de páginas web comunes a un dominio empleadas para transmitir información a través de un navegador web instalado en el ordenador cliente. - 203 - 5.2 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN ÍNDICE 1. Introducción 1.1 Descripción general de la arquitectura del sistema 1.2 Documentación relacionada 2. Configuración hardware y software 3. Estructura de directorios 4. Creación de la Base de Datos 5. Instalación de la aplicación - 204 - Introducción 1. 1.1 Descripción general de la arquitectura del sistema A nivel hardware: • La aplicación se instalará en los servidores de la Universidad Pontificia Comillas. • Los usuarios se conectarán a la misma a través de la red por medio de sus estaciones de trabajo. • El método de comunicación entre cliente y servidor será mediante el protocolo TCP/IP, siguiendo la arquitectura Cliente/Servidor. A nivel software: • Se utilizará el servidor de aplicaciones Apache Tomcat para alojar la aplicación. • El acceso a la aplicación se realizará por medio de un navegador web (Internet Explorer, Firefox o cualquier otro). • Como Sistema Servidor de Base de datos, es preferible emplear MySQL. El sistema no se ha sometido a test funcionando bajo Microsoft SQL Server. • El sistema operativo que contenga la aplicación en el servidor puede ser Linux o Windows. • Java Development Kit, versión 1.4 o superior, con la librería servlet.jar. Para poder interpretar y compilar los archivos java. 1.2 Documentación relacionada • Contexto general del sistema, en Análisis de Requisitos. • Configuración hardware y software, en el documento de Diseño Externo. • Plan de Pruebas, Implantación y Formación, en Diseño Interno. • Presentación de la aplicación, en Programación. - 205 - 2. Configuración hardware y software Los requisitos de la aplicación son básicos para cualquier plataforma web. Por tanto no se prevé que se tenga que instalar ningún software adicional. 3. Estructura de directorios A continuación se describe la estructura de ficheros de la aplicación. Esta estructura se deberá situar en el directorio raíz del sitio web. Por ejemplo, en la imagen a continuación, el directorio raíz es ProyectoPeru. Por tanto, la estructura va contenida en este directorio. - 206 - Directorio Descripción Hojas de estilo, archivos de funciones /lib javascript, archivo de configuración de la aplicación. Almacena las páginas JSP del área /albumes de gestión de álbumes de fotos. Este área es común para Visitantes, Colaboradores y el Administrador. /colaborador /foro Páginas JSP del Panel de Control del usuario Colaborador. Contiene los JSPs para gestionar y visualizar los foros. Esta área es común para los tres tipos de usuarios de la aplicación Almacena imágenes de la aplicación /Imagenes (fondos, bordes, logos). Contiene subcarpetas con imágenes de otras áreas. /Imágenes/instituciones /Imágenes/noticias Imágenes y logos de las instituciones que están registradas en la aplicación Imágenes y logos asociados al área de noticias. Iconos y fondos del editor de texto /Imágenes/textEditor enriquecido empleado para editar los textos de las noticias, los comentarios y las descripciones. - 207 - Directorio Descripción Contiene /administrador las relacionadas páginas con el JSP área de administración /libFotos Librería con las fotos pertenecientes a los álbumes de fotos de la aplicaciónMiniaturas de las fotos empleadas en /libFotos/iconos las galerías de imágenes de los álbumes. /material Contiene todos los documentos de material asociados a cada proyecto. /META-INF Meta información de la aplicación. Contiene /WEB-INF acerca el archivo web.xml, encargado de establecer parámetros de la aplicación y la localización de los servlets. Ficheros java compilados con las /WEB-INF/classes/classes clases generales de la aplicación. (Proyecto, Institución, Promoción…) Clases java que actúan como utilidades de la aplicación. Tales como la conexión con la base de /WEB-INF/classes/util datos, la creación de miniaturas de imágenes o información la extracción de del archivo de configuración. /WEB-INF/classes/web Servlets empleados en la aplicación. Librerías jar para la transmisión de /WEB-INF/lib ficheros al servidor y driver conexión con la base de datos. - 208 - de Creación de la Base de Datos 4. Antes de poner en funcionamiento la aplicación, se debe crear la base de datos que contendrá los datos de llamadas, incidencias, administradores, y grupos de consulta. Para ello la aplicación incluye un fichero SQL que al ser ejecutado en un servidor de bases de datos crea la base de datos, tablas e información mínima necesaria en cada tabla para que la aplicación pueda arrancar satisfactoriamente. Este fichero se encuentra en la carpeta BaseDeDatos y se llama creacionBBDD.sql. Para su ejecución, se puede copiar y pegar su contenido en un editor SQL de un servidor de base de datos, o se puede dar la localización del fichero al servidor para que lo ejecute. Tras esto, un mensaje comunicará si la base de datos se ha creado satisfactoriamente o si ha ocurrido algún error en el proceso. Instalación de la aplicación 5. Los pasos a seguir para instalar la aplicación son: • Instalar la aplicación en el servidor Tomcat. Para ello colocaremos el fichero proyectoPeru.war en el la carpeta webbapps del directorio donde está instalado Tomcat, o utilizaremos el gestor de Tomcat para indicarle dónde se encuentra el fichero war para que lo instale él mismo. • Tras esto, debemos ir al directorio donde está instalado Tomcat y abrir la carpeta webbapps. En esta carpeta veremos todas las aplicaciones instaladas en Tomcat, y además veremos que la nuestra se ha creado automáticamente en una carpeta llamada ProyectoPeru. Una vez en el directorio de nuestra aplicación debemos abrir la carpeta lib y allí encontraremos el fichero configuracion.xml. Este fichero sirve para establecer los parámetros de conexión con la base de datos, y los directorios donde se almacenarán las fotos, documentos e imágenes. - 209 - Edite este fichero introduciendo sus parámetros, sin dejar espacios en blanco. • Abra su servidor de base de datos y ejecute el fichero baseDeDatos.sql para crear la base de datos, tablas e información necesaria de las tablas para arrancar la aplicación. • Tras esto, arranque Tomcat y pruebe a acceder al directorio raíz de la aplicación. La página index.jsp debería abrirse automáticamente. • Navegue por la aplicación y compruebe que las páginas se visualizan correctamente. • Puede acceder al área de administración. Utilice los datos de esta cuenta. Una vez dentro, puede cambiar la clave. o Usuario: admin. o Contraseña: admin. • Si todo ha funcionado correctamente. Ya puede empezar a utilizar la aplicación, creando noticias, promociones, cuentas de colaborador… - 210 - 5.3 MANUALES DE USUARIO En este punto se adjuntan los manuales de usuario respectivos para las operaciones que puede realizar cada tipo de usuario. Se ha puesto gran esfuerzo en aplicar el mayor detalle posible en las acciones explicadas para evitar confusiones. Se adjuntan 2 manuales: • Un manual de usuario para los Colaboradores de la aplicación. • Un segundo manual para el Administrador de la aplicación. Debido a que el área de contenido público es suficientemente intuitiva para que un Visitante se desenvuelva sobre ella sin problemas, no se ha desarrollado un manual de usuario para este. Estos manuales están disponibles en la web para ser descargados en PDF por los usuarios de la aplicación. - 211 - 5.3.1 Manual de Usuario del Colaborador A continuación se detallan paso a paso las acciones que un Colaborador puede ejecutar en su Panel de Control. 1. Inicio de sesión 2. Gestión de proyectos 2.1 Crear un proyecto 2.2 Ver detalles de un proyecto 2.3 Editar descripción de un proyecto 2.4 Eliminar un proyecto 2.5 Editar lista de participantes 2.6 Editar lista de instituciones 2.7 Añadir material 2.8 Editar material 2.9 Añadir enlace de interés 3. Buscar proyectos 4. Editar datos personales 5. Gestión de álbumes de fotos 5.1 Crear un álbum de fotos 5.2 Agregar fotos a un álbum 5.3 Eliminar un álbum de fotos 6. Foro 6.1 Crear un hilo de discusión 6.2 Escribir un mensaje 7. Enviar consulta a Administrador 8. Cerrar sesión - 212 - 1. Inicio de sesión Una vez creada una nueva promoción. El administrador crea las cuentas de usuario Colaborador y envía los datos de estas cuentas (nombre de usuario y contraseña) a los alumnos elegidos como miembros de la nueva promoción. Para que un colaborador acceda a su panel de control, debe validarse como Colaborador ante la aplicación. Esto se realiza del siguiente modo: a) Tras acceder a la página de bienvenida, pulsaremos sobre el enlace “Colaborador”, en el extremo superior derecho de la pantalla. b) Tras esto, una ventana como la que aparece a continuación nos solicitará introducir los datos que el Administrador nos envió. Si los datos son incorrectos, la aplicación nos pedirá que los escribamos de nuevo. c) Si la validación ha salido con éxito, el usuario será redireccionado a la página de bienvenida del Panel de Control. - 213 - 2. Gestión de proyectos 2.1 Crear un proyecto a) Si un colaborador está visualizando el listado de aquellos proyectos de los cuales es participante, tiene la opción de crear un nuevo proyecto, pulsando sobre el enlace “Crear un Proyecto”. b) Tras pulsar sobre este enlace aparece un formulario en el que se nos solicitará los detalles del proyecto, el tipo, los colaboradores que participan en él, y las instituciones involucradas. En la siguiente página se muestra un ejemplo con los campos rellenados. d) El sistema alertará al usuario si detecta que algún campo no está bien formateado (por ejemplo que haya escrito letras en la fecha) antes de crear el nuevo proyecto. e) Si los datos que se han enviado son válidos. El sistema crea el proyecto y vuelve al listado de proyectos del colaborador. - 214 - - 215 - 2.2 Ver detalles de un proyecto a) Estando en el listado de proyectos de un colaborador, podemos acceder a los detalles de un proyecto en particular, haciendo clic en el botón “Detalles”. b) Esto nos lleva a una página donde, además de mostrar todo el contenido del proyecto, permite modificar las diferentes áreas del mismo mediante enlaces. A continuación se muestran los detalles de un proyecto de ejemplo. Cada área contiene enlaces para modificar su contenido. - 216 - - 217 - 2.3 Editar descripción de un proyecto a) Para editar la descripción de un proyecto, haga clic sobre el enlace “Editar” que aparece en la descripción del proyecto, estando en los detalles del mismo. b) Tras pulsar editar será llevado a un formulario donde podrá editar la descripción del mismo. c) Una vez haya editado los campos, pulse sobre “Actualizar” para actualizar el contenido en la base de datos. 2.4 Eliminar un proyecto Para eliminar un proyecto, pulse el enlace “Eliminar” en los detalles del mismo. Sin embargo, la eliminación sólo podrá realizarse si el proyecto no tiene material asociado. En este caso deberá eliminar primero todo el material antes de poder suprimir el proyecto. - 218 - 2.4 Editar lista de participantes a) Para modificar la lista de participantes de un proyecto, simplemente haga clic en “Editar lista” en el área de participantes de un proyecto. b) Una vez se haya accedido al área de edición de participantes, aparecerá un listado con todos los colaboradores de la promoción, y estarán marcados como participantes aquellos que aparecieran en la lista de los detalles del proyecto. Un colaborador no podrá eliminarse a sí mismo de un proyecto. Esto evita que un proyecto se quede sin colaboradores y por tanto resulte invisible para estos. c) Tras haber elegido a los colaboradores del listado, sólo queda pulsar el botón “Actualizar” para que la aplicación actualice los datos. - 219 - 2.5 Editar lista de instituciones a) Para modificar la lista de instituciones de un proyecto, simplemente haga clic en “Editar lista” en el área de instituciones de un proyecto. b) Una vez se haya accedido al área de edición de instituciones, aparecerá un listado con todas las instituciones pertenecientes a la promoción, y estarán marcadas aquellas que aparecieran en la lista de los detalles del proyecto. c) Tras haber elegido las instituciones del listado, sólo queda pulsar el botón “Actualizar” para que la aplicación actualice los datos. - 220 - 2.6 Añadir material a) Si se desea añadir un documento, vídeo, o cualquier tipo de archivo que pueda resultar útil al proyecto o que forme parte del mismo, basta con hacer clic sobre el enlace “Añadir material”. b) En el formulario de añadir material se solicita un nombre para describir al material, y la localización del mismo en el equipo del cliente. Se recomienda emplear el botón Examinar para localizar el archivo y no escribirlo a mano, ya que esto puede ocasionar que el sistema no encuentre el archivo y se deba repetir el proceso. c) Tras enviar los datos el archivo será subido a la aplicación junto con el nombre y aparecerá en el listado de material de la descripción del proyecto. - 221 - 2.7 Editar material a) Para editar el nombre asignado a un documento de material basta con hacer clic sobre el enlace “Editar” del material en cuestión. No es posible editar o cambiar el archivo de material. Si se desea hacer esto entonces hay que eliminar el material y añadir en nuevo material al proyecto. b) Aparecerá un pequeño formulario en el que podremos actualizar el nombre del archivo de material c) Tras enviar los datos, el sistema comprobará que el campo se haya rellenado, y actualizará el material. El usuario será redireccionado de vuelta a los detalles del proyecto, donde podrá ver los detalles actualizados. - 222 - 2.8 Añadir enlaces de interés a) Si se desea añadir un enlace de interés en el proyecto se debe pulsar sobre el enlace “Añadir enlace” en el área de enlaces del proyecto. b) Esto nos llevará a un pequeño formulario que nos solicitará el título que le pondremos al enlace, y la dirección URL para acceder a él. (Se ruega respetar el formato http://www.dominio.extension para evitar enlaces erróneos. c) Tras insertar los datos y pulsar Enviar, nuestro nuevo enlace se habrá creado y figurará en la lista de enlaces del proyecto. - 223 - 3. Buscar proyectos a) Los colaboradores tienen la posibilidad de consultar información de los proyectos existentes en la base de datos. Para realizar sus búsquedas disponen de una vista de proyectos ordenados por promoción, y otra que clasifica los proyectos por categorías. b) Tras elegir una de estas opciones, se muestra un listado con las distintas promociones o categorías, y el título de cada proyecto. - 224 - c) Tras pulsar sobre los detalles de un proyecto. Se accede a los detalles del mismo. En ellos se puede ver la descripción, los participantes, las instituciones, el material y los enlaces de interés del proyecto. - 225 - 4. Editar datos personales a) Un colaborador puede modificar sus datos personales pulsando sobre el enlace “Mis datos” en el menú principal del Panel de Control. b) Esto le llevará a un formulario donde podrá editar sus datos personales. c) Una vez haya modificado estos datos, pulse Actualizar para que estos se envíen al sistema y sean actualizados. d) Tras esto, será llevado de vuelta a la descripción de sus datos personales. - 226 - 5. Gestión de álbumes de fotos 5.1 Crear un álbum de fotos a) Si desea crear un álbum de fotos, pulse sobre el enlace “Mis fotos” en el Panel de Control. b) Esto le llevará al listado de álbumes de fotos públicos y privados. En la parte superior izquierda verá un enlace a la creación de un álbum. c) Introduzca el título, fecha y descripción. Tras esto pulse en Enviar. d) Su álbum de fotos se habrá creado satisfactoriamente y será visible por todos los miembros de la comunidad. Será decisión del Administrador hacerlo público en la web y gestionarlo él mismo. - 227 - 5.2 Agregar fotos a un álbum a) Para incluir fotos en un álbum, debemos abrir los detalles del mismo una vez estemos en el listado de álbumes. b) Después, pulsar sobre el enlace “Incluir fotos”. c) Aparecerá un formulario en el que debemos introducir el título de la foto, la descripción y seleccionar la foto que deseamos subir. Tras rellenar los datos, pulsar “Enviar”. d) Si la foto se ha cargado con éxito en el sistema. Seremos trasladados a la galería de imágenes del álbum, en la que podremos ver nuestra foto. 5.3 Eliminar un álbum de fotos Si desea eliminar un álbum de fotos, pulse sobre el enlace “Eliminar” en los detalles del mismo. Sin embargo, no podrá eliminar el álbum si éste tiene fotos en su galería de imágenes. Deberá borrar primero las fotos antes de eliminar el álbum - 228 - 6. Foro 6.1 Crear un hilo de discusión a) Para crear un hilo de discusión, pulse sobre “Foro” en el Panel de Control, y después sobre “Crear hilo”. b) Aparecerá un sencillo formulario en el que puede introducir el título del hilo de discusión y la descripción del mismo. Por defecto los hilos de discusión creados por un Colaborador son de tipo privado (visible sólo por los miembros de la Comunidad. El administrador puede cambiarlo posteriormente a tipo público. c) Tras pulsar enviar, el hilo se habrá creado y aparecerá en el listado de hilos de discusión. - 229 - 6.2 Escribir un mensaje a) Los colaboradores pueden escribir mensajes tanto en los hilos de discusión públicos como en privados. Para ello, abra los detalles de un hilo de discusión para ver el listado de mensajes. b) Pulse sobre el enlace “Escribir mensaje” c) Aparecerá un formulario en el que el campo autor aparecerá automáticamente con su nombre, y en el que podrá escribir además el título de su mensaje, y el texto del mismo. d) Una vez rellenados estos campos, pulse sobre “Enviar” para enviar su mensaje al sistema. e) El mensaje se añadirá a la cola del hilo de discusión y aparecerá al final del mismo en el listado de mensajes del hilo. - 230 - 7. Enviar consulta a Administrador a) Los colaboradores pueden enviar una consulta al Administrador sin necesitar especificar sus datos personales. Simplemente acceda al servicio de consulta pulsando sobre el enlace “Enviar consulta”. b) Aparecerá un listado con los datos de contacto de la Oficina de Cooperación al Desarrollo y Compromiso Solidario, y un pequeño formulario en el que deberá escribir sus datos. c) Una vez pulsado el botón Enviar, se creará un correo electrónico con sus datos y su mensaje y será enviado al Administrador de la aplicación. 8. Cerrar sesión Cuando haya acabado su sesión como colaborador, puede pulsar sobre el enlace “Cerrar sesión” en el extremo superior izquierdo del Panel de Control. Esto eliminará la información almacenada temporalmente en el sistema sobre usted y le llevará a la página de bienvenida del área pública de la aplicación. - 231 - 5.3.2 Manual de Administración A continuación se detallan paso a paso las tareas que puede realizar el Administrador en el área de gestión de la aplicación. 1. Noticias 1.1 Crear una noticia 1.2 Editar una noticia 2. Colaboradores 2.1 Crear un colaborador 2.2 Editar un colaborador 2.3 Eliminar un colaborador 3. Instituciones 3.1 Crear una institución 3.2 Editar una institución 4. Promociones 4.1 Crear una promoción 4.2 Editar una promoción 4.3 Eliminar una promoción 5. Categorías de proyectos 5.1 Crear una categoría 5.2 Editar una categoría 5.3 Eliminar una categoría 6. Álbumes de fotos 6.1 Crear un álbum de fotos 6.2 Editar un álbum de fotos 6.3 Añadir fotos a un álbum 6.4 Eliminar un álbum de fotos 7. Foro 7.1 Crear un hilo de discusión 7.2 Editar un hilo de discusión 7.3 Escribir un mensaje 7.4 Eliminar hilo de discusión - 232 - 1. Noticias 1.1 Crear una noticia a) Para crear una noticia, pulse sobre el enlace “Noticias” en el menú principal del área de Administración. Aparecerá el listado de noticias existentes en el sistema. b) Haga clic sobre el enlace “Añadir una noticia”. c) Podrá ver un formulario con todos los campos que necesita para crear la noticia. Rellene los campos título y texto de la noticia. Opcionalmente puede subir una imagen a la aplicación y especificar un ancho determinado. d) Pulse sobre “Enviar” para enviar la noticia a la aplicación. e) El sistema creará la noticia y le redireccionará al listado de noticias donde podrá verla junto con el resto. - 233 - 1.2 Editar una noticia a) Para editar una noticia, pulse el enlace “Editar” que aparece debajo de los detalles de la misma. b) Esto le llevará a una página donde verá la noticia en campos editables donde podrá modificarla. c) Tras haber hecho sus cambios, pulse sobre “Actualizar” para actualizar los datos en el sistema. - 234 - 2. Colaboradores 2.1 Crear un colaborador a) Para crear un colaborador, pulse sobre el enlace “Colaboradores”, aparecerá un listado con los colaboradores existentes en el sistema. b) Haga clic en el enlace “Añadir colaborador” c) Podrá ver un formulario en el que podrá introducir todos los datos referentes al colaborador, tales como nombre, apellidos, descripción, clave, nombre de usuario, y demás. d) Una vez haya rellenado los campos, pulse sobre “Enviar”. Los datos serán recibidos por el sistema, que creará el colaborador y después le llevará al listado de colaboradores. En él podrá ver el nuevo colaborador. - 235 - 2.2 Editar un colaborador a) Para editar los datos de un colaborador, pulse sobre “Detalles” en el listado de colaboradores. b) Verá una tabla con los datos del colaborador (excepto la clave, por motivos de seguridad). Pulse sobre “Editar”. c) Se visualizará un formulario con todos los datos del colaborador en campos editables para que pueda modificarlos a su antojo. d) Una vez haya introducido los nuevos datos, pulse sobre “Actualizar” para enviar los datos al Sistema. e) El colaborador será creado y usted será redireccionado al listado de colaboradores, donde podrá ver el nuevo colaborador. 2.3 Eliminar un colaborador Para eliminar un colaborador, vaya a los detalles del mismo y pulse sobre “Eliminar”. Sin embargo, no podrá eliminar un colaborador si este participa en algún proyecto. Deberá retirar al colaborador de sus proyectos antes de eliminarlo. - 236 - 3. Instituciones 3.1 Crear una institución a) Para crear una institución, pulse sobre el enlace “Instituciones” en el menú principal del área de Administración. Aparecerá el listado de las instituciones existentes en el sistema. b) Haga clic sobre el enlace “Añadir una institución”. c) Podrá ver un formulario con todos los campos que necesita para crear la institución. La mayoría de estos son opcionales. También puede subir una imagen a la aplicación y especificar un ancho determinado. d) Pulse sobre “Enviar” para enviar los datos de la institución al sistema. e) El sistema creará la institución y le redireccionará al listado de instituciones donde podrá verla junto con el resto. - 237 - 3.2 Editar una institución a) Para editar una institución, pulse el enlace “Editar” que aparece debajo de los detalles de la misma. b) Esto le llevará a una página donde verá la institución en campos editables donde podrá modificarla. c) Tras haber hecho sus cambios, pulse sobre “Actualizar” para actualizar los datos en el sistema. - 238 - 4. Promociones 4.1 Crear una promoción a) Para crear una promoción, pulse sobre el enlace “Promociones” en el menú principal. b) Haga clic sobre “Añadir una promoción”. c) Verá un formulario donde deberá especificar las fechas de inicio y fin de la promoción, y la descripción de la misma. d) Tras rellenar los datos y ser estos validados, serán enviados al sistema. e) Se creará la nueva promoción y usted será llevado al listado de promociones donde podrá verla junto al resto. - 239 - 4.2 Editar una promoción a) Para editar los datos de una promoción, pulse sobre “Detalles” en el listado de promociones. b) Aparecerá una ventana con todos los datos de la promoción, tales como descripción, colaboradores, instituciones y proyectos. c) Puede editar la descripción y fechas pulsando sobre el enlace “Editar”, bajo la descripción de la promoción. d) También puede modificar la lista de participantes de la promoción pulsando sobre “Incluir participantes”. Esto le llevará a un listado donde podrá añadir más colaboradores a la promoción. e) Por último usted mismo puede crear proyectos, o editar los existentes en la promoción, pulsando “Crear proyecto” o “Detalles”, respectivamente. - 240 - 4.3 Eliminar una promoción Puede eliminar una promoción pulsando sobre el enlace “Eliminar” en los detalles de la misma. Sin embargo no podrá realizar esta operación si la promoción en cuestión tiene proyectos asociados. Deberá eliminar estos antes. - 241 - 5. Categorías de proyectos Todo proyecto pertenece a una categoría, aquí puede gestionar el listado de categorías. 5.1 Crear una categoría a) Para crear una categoría, pulse sobre el enlace “Categorías” en el menú principal. b) Haga clic sobre “Añadir una categoría”. c) Aparecerá un sencillo formulario donde podrá añadir la nueva categoría. Pulse Enviar cuando haya escrito el nombre. d) El sistema comprobará que el nombre de categoría no existe y la añadirá a la base de datos. - 242 - 5.2 Editar una categoría a) Para editar una categoría, pulse “Editar” en el listado de categorías. b) Verá un formulario con el nombre de la categoría en un campo de texto para que pueda modificarla. Pulse “Actualizar” cuando haya terminado. 5.4 Eliminar una categoría Puede eliminar una categoría pulsando sobre el enlace “Eliminar” en los detalles de la misma. Sin embargo, esta operación será cancelada por el sistema si la categoría tiene proyectos relacionados. - 243 - 6. Álbumes de fotos El Administrador tiene total privilegio de acceso a los álbumes de fotos. Éstos tienen tres grados de privacidad: • Público: visibles por cualquier usuario que visite la web. • Privado: accesibles sólo dentro del Panel de Control de los colaboradores. • Oculto: visible sólo por el administrador. 6.1 Crear un álbum de fotos a) Para crear un álbum de fotos, pulse sobre el enlace “Fotos” en el menú principal de la izquierda. b) Haga clic sobre el enlace “Crear un álbum”. c) Verá un formulario donde podrá especificar el título, la fecha, el tipo (público, privado u oculto) y la descripción del álbum. Cuando haya rellenado estos campos, pulse “Enviar” d) Su álbum se creará y aparecerá en el listado de álbumes. El siguiente paso es añadir las fotos a su álbum. 6.2 Editar un álbum de fotos a) Para editar un álbum de fotos, pulse sobre el enlace “Editar”, en los detalles del mismo. b) Podrá ver un formulario con los detalles del álbum en campos editables para que pueda modificarlos. c) Cuando pulse sobre “Actualizar”, se modificarán los datos del álbum y volverá a los detalles del mismo. - 244 - 6.3 Añadir fotos a un álbum a) Para añadir fotos a un álbum, pulse sobre “Incluir fotos”, estando en los detalles del mismo. b) Podrá ver un formulario con campos como título de la foto, descripción, y un enlace a su disco duro para que pueda seleccionarla. c) Cuando pulse “Enviar” la foto se añadirá al sistema y podrá verse en la galería de imágenes. - 245 - 6.4 Eliminar un álbum de fotos Usted podrá eliminar un álbum de fotos únicamente y si este está vacío. De lo contrario, tendrá que eliminar todas las fotos que contenga antes de poder eliminarlo. - 246 - 7. Foro Existen dos tipos de hilos de discusión que el administrador puede gestionar: • Públicos: visibles por todo tipo de usuario y en los que puede participar cualquiera, incluso sin ser miembro de la comunidad. • Privados: sólo accesibles por miembros de la comunidad. 7.1 Crear un hilo de discusión a) Para crear un hilo de discusión, pulse sobre el enlace “Foro” en el menú principal. b) Esto le llevará al listado de foros. En la parte superior verá un enlace “Crear un hilo”. Haga clic con el ratón sobre él. c) Verá un formulario en el que podrá especificar el título del hilo, el tipo (público o privado). d) Tras pulsar “Enviar”, podrá ver los detalles del hilo en el listado de hilos de discusión. - 247 - 7.2 Editar un hilo de discusión a) Para modificar los detalles de un hilo de discusión, pulse sobre “Editar” estando en los detalles del mismo. b) Podrá ver los datos del hilo en campos editables. c) Tras editar la información, pulse “Actualizar” y los datos del hilo serán modificados. 7.3 Escribir un mensaje a) Para escribir un mensaje, pulse sobre “Escribir mensaje”, estando en el listado de mensajes del hilo en cuestión. b) Verá un pequeño formulario con autor, título y texto del mensaje. c) Una vez haya escrito su mensaje pulse sobre “Enviar”. Esto creará el mensaje y podrá verlo al final del hilo de discusión. - 248 - 7.4 Eliminar hilo de discusión Puede eliminar un hilo de discusión cuando desee. Tras una advertencia, se eliminarán todos los mensajes que contenga y su descripción. - 249 -