1 Desarrollo del proyecto - IIT - Universidad Pontificia Comillas

Anuncio
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 “[email protected]ó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
“[email protected]”,.
- 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 [email protected]ó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 -
Descargar