Aplicación web para la gestión de la Sociedad Española de Historia

Anuncio
TRABAJO FIN DE ESTUDIOS
PROYECTO FIN DE CARRERA
Aplicación web para la gestión de la Sociedad
Española de Historia de las Ciencias y de las
Técnicas (SEHCYT)
Daniel Delgado Pinillos
Tutor: Ana Romero Ibáñez
Curso 2011-2012
Aplicación web para la gestión de la Sociedad Española de Historia de las
Ciencias y de las Técnicas (SEHCYT), trabajo fin de estudios
de Daniel Delgado Pinillos, dirigido por Ana Romero Ibáñez (publicado por la Universidad
de La Rioja), se difunde bajo una Licencia
Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los
titulares del copyright.
©
©
El autor
Universidad de La Rioja, Servicio de Publicaciones, 2012
publicaciones.unirioja.es
E-mail: [email protected]
FACULTAD DE CIENCIAS, ESTUDIOS
AGROALIMENTARIOS E INFORMÁTICA
TITULACIÓN: Ingeniería Técnica en Informática de Gestión
TÍTULO DEL PROYECTO:
Aplicación web para la gestión de la Sociedad Española de
Historia de las Ciencias y de las Técnicas (SEHCYT)
DIRECTOR DEL PROYECTO: Ana Romero Ibáñez
DEPARTAMENTO: Dpto. de Matemáticas y Computación
ALUMNO: Daniel Delgado Pinillos
CURSO ACADÉMICO: 2011/12
Memoria PFC SEHCYT
Daniel Delgado
Página 2 de 95
Memoria PFC SEHCYT
Daniel Delgado
Acuerdo inicial
Decisiones y motivaciones que se acuerdan entre el cliente y el proyectando tras la primera
reunión (feb-2011)
La Sociedad Española de Historia de las Ciencias y de las Técnicas (SEHCYT) es una institución
que agrupa a personas interesadas y a estudiosos de los ámbitos de la historia de las ciencias y
de las técnicas, cuenta con más de 20 años de antigüedad y con más de 400 socios. Tiene una
junta directiva formada por presidente, vicepresidente, secretario, tesorero y vocales.
La sociedad tiene actualmente en internet un servicio a disposición de todo el mundo, socios y
no socios, una página web: http://www.unirioja.es/dptos/dmc/Sehcyt/
Creada hace algunos años, con el auge de las nuevas tecnologías y de las nuevas posibilidades
técnicas esta web ya no cubre las necesidades de la sociedad. Además, la sociedad dispone de
otros recursos de información (lista de correo de socios, publicaciones, etc.) que deberían de
estar incorporadas al nuevo espacio web.
Para alojar la información de la sociedad, el objetivo es crear un espacio web abierto al público
en el que se incluyan todas las actividades, jornadas, congresos, etc., de la sociedad. Bajo un
nuevo diseño o siguiendo la misma estructura que hasta ahora.
Además los socios que pagan una cuota tendrían visible ciertos contenidos que son
restringidos para el usuario externo que no lo hace.
Los socios estarían almacenados en una base de datos con un perfil, sus datos personales y
otros datos de interés, lo que les daría derecho por ejemplo a consultar las revistas creadas
por SEHCYT. Podría incluso haber casos en los que un antiguo socio o ciertos miembros de
nuestra base de datos también pueden ver las revistas; esto significa que existirían ciertas
excepciones, lo que nos lleva a que debe haber un administrador que gestione todo este tipo
de asuntos y que tendrá acceso a los datos de los socios. Es interesante también que haya un
histórico de socios que cuente tanto con los socios actuales como con los miembros que ya no
pertenecen a la sociedad.
También, dentro de la intranet sería interesante que los socios tuviesen la posibilidad de enviar
mensajes a otros socios y/o a una lista de estos.
Por último, la SEHCYT edita y publica libros que pueden ser consultados en la biblioteca de la
Universidad de La Rioja, estos nos invita a crear otra base de datos propia con la información
de estos libros para que la información sea más concreta y completa.
Página 3 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 4 de 95
Memoria PFC SEHCYT
Daniel Delgado
Índice
Figuras ______________________________________________________________ 8
1.
Documento de objetivos del proyecto __________________________________ 9
1.1.
Antecedentes ________________________________________________________ 9
1.2.
Justificación _________________________________________________________ 9
1.3.
Objetivos __________________________________________________________ 10
1.4.
Descripción ________________________________________________________ 10
1.5.
Plan de comunicaciones ______________________________________________ 11
1.5.1.
1.5.2.
1.5.3.
1.6.
Estructura del equipo ____________________________________________________ 11
Tecnología para la comunicación __________________________________________ 11
Conexiones entre los miembros del equipo __________________________________ 11
Planificación del proyecto _____________________________________________ 12
1.6.1.
1.6.2.
1.6.3.
1.6.4.
1.6.5.
1.6.6.
1.6.7.
Calendario de trabajo____________________________________________________ 12
Metodología ___________________________________________________________ 13
Estructura de descomposición del proyecto _________________________________ 13
Listado de procesos, actividades y tareas ____________________________________ 13
Estimación de la duración de los procesos, actividades y tareas _________________ 16
Orden de procesos ______________________________________________________ 19
Diagrama de Gantt ______________________________________________________ 20
1.7.
Tecnología _________________________________________________________ 21
1.8.
Entregables principales del proyecto ____________________________________ 21
1.9.
Dirección de riesgos __________________________________________________ 21
2. Análisis ___________________________________________________________ 23
2.1.
Definición del sistema ________________________________________________ 23
2.1.1.
2.1.2.
2.1.3.
Determinación de los objetivos del proyecto_________________________________ 23
Identificación del entorno tecnológico ______________________________________ 24
Identificación de los usuarios participantes y finales __________________________ 24
2.2.
Obtención de requisitos ______________________________________________ 25
2.3.
Especificación de casos de uso _________________________________________ 26
2.3.1.
2.3.2.
2.3.3.
2.3.4.
2.4.
Definición de interfaces_______________________________________________ 30
2.4.1.
2.4.2.
2.4.3.
2.5.
Usuario no socio ________________________________________________________ 26
Usuario socio __________________________________________________________ 27
Tesorero ______________________________________________________________ 28
Administrador __________________________________________________________ 29
Especificación de principios generales de la interfaz ___________________________ 30
Identificación de ventanas de diálogo ______________________________________ 32
Especificación del comportamiento de la interfaz _____________________________ 35
Especificación del plan de pruebas ______________________________________ 35
3. Diseño ____________________________________________________________ 37
Página 5 de 95
Memoria PFC SEHCYT
3.1.
Definición de la arquitectura del sistema _________________________________ 37
3.1.1.
3.1.2.
3.1.3.
3.1.4.
3.2.
Definición de los niveles de arquitectura ____________________________________ 37
Identificación de requisitos de diseño y construcción __________________________ 38
Especificación del entorno tecnológico _____________________________________ 38
Especificación de los requisitos para la utilización ____________________________ 39
Diseño de la base de datos ____________________________________________ 39
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3.2.5.
3.3.
Daniel Delgado
Diseño conceptual de la base de datos ______________________________________ 40
Diseño lógico de la base de datos __________________________________________ 41
Normalización del modelo lógico de datos __________________________________ 44
Diseño físico de la base de datos __________________________________________ 45
Modificaciones al diseño de la base de datos ________________________________ 45
Diseño de interfaces _________________________________________________ 45
4. Implementación ____________________________________________________ 47
4.1.
Instalación del entorno _______________________________________________ 47
4.1.2.
4.2.
Preparación del entorno para la generación de código _________________________ 47
Generación de código ________________________________________________ 48
4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.2.5.
4.2.6.
4.2.7.
4.2.8.
4.2.9.
4.2.10.
4.2.11.
4.2.12.
Maquetación ___________________________________________________________ 48
Estilo _________________________________________________________________ 49
Navegabilidad __________________________________________________________ 53
Páginas estáticas _______________________________________________________ 53
Acceso a la zona de socios ________________________________________________ 54
Foro __________________________________________________________________ 54
Correo electrónico ______________________________________________________ 55
Revistas/actas y biblioteca _______________________________________________ 56
Sistema de publicación de noticias _________________________________________ 57
Paginación _____________________________________________________________ 57
Estructura de archivos y carpetas __________________________________________ 58
JavaScript _____________________________________________________________ 60
5. Pruebas ___________________________________________________________ 63
5.1.
Ejecución de pruebas _________________________________________________ 63
6. Instalación y configuración de un servidor virtual _________________________ 67
6.1.
Instalación del servidor virtual _________________________________________ 67
6.1.1.
6.1.2.
6.1.3.
6.1.4.
6.1.5.
7.
Sistema operativo ______________________________________________________ 68
Instalación / Configuración Apache ________________________________________ 69
Instalación / Configuración PHP ___________________________________________ 69
Instalación / Configuración MySQL _________________________________________ 69
Instalación / Configuración Exim4 __________________________________________ 70
Gestión del plan de proyecto ________________________________________ 73
7.1.
Duración real de los procesos, actividades y tareas _________________________ 73
7.2.
Comparativa de horas ________________________________________________ 75
7.3.
Otras consideraciones ________________________________________________ 77
Bibliografía __________________________________________________________ 79
Página 6 de 95
Memoria PFC SEHCYT
Daniel Delgado
Actas _______________________________________________________________ 81
Manual de usuario ____________________________________________________ 91
Página 7 de 95
Memoria PFC SEHCYT
Daniel Delgado
Figuras
Captura de pantalla de la web de SEHCYT (marzo 2011) ______________________________________ 9
Diagrama de Gantt ___________________________________________________________________ 20
Descripción de los actores ______________________________________________________________ 26
Caso de uso No Socio __________________________________________________________________ 27
Caso de uso Socio _____________________________________________________________________ 28
Caso de uso Tesorero __________________________________________________________________ 28
Caso de uso Secretario _________________________________________________________________ 30
Interfaz general ______________________________________________________________________ 31
Diálogo login ________________________________________________________________________ 32
Diagrama de actividad login ____________________________________________________________ 32
Diálogo datos para ser socio ____________________________________________________________ 33
Diagrama de actividad pedir ser socio ____________________________________________________ 33
Diálogo escribir en el foro ______________________________________________________________ 34
Diagrama de actividad escribir en el foro __________________________________________________ 34
Diagrama Entidad Relación _____________________________________________________________ 40
Tablas Base de Datos __________________________________________________________________ 41
Interfaz Página Principal _______________________________________________________________ 45
Interfaz Noticias ______________________________________________________________________ 49
Interfaz Biblioteca ____________________________________________________________________ 50
Interfaz Dialogo Login _________________________________________________________________ 50
Interfaz Zona Privada __________________________________________________________________ 51
Interfaz Listado de Socios ‘Administrador’ _________________________________________________ 51
Interfaz Temas Foro 'Administrador' ______________________________________________________ 52
Interfaz Comentarios Foro 'Administrador' _________________________________________________ 52
Interfaz Nuevo Tema Foro ______________________________________________________________ 53
Inicio SO Ubuntu______________________________________________________________________ 68
Web en servidor virtual ________________________________________________________________ 68
Configuración Exim4 (1) ________________________________________________________________ 71
Configuración Exim4 (2) ________________________________________________________________ 71
Horas de trabajo estimadas / Horas reales _________________________________________________ 76
Porcentaje horas estimadas ____________________________________________________________ 76
Porcentaje horas reales ________________________________________________________________ 77
Página 8 de 95
Memoria PFC SEHCYT
Daniel Delgado
1. Documento de objetivos del
proyecto
1.1.
Antecedentes
La Sociedad Española de Historia de las Ciencias y de las Técnicas (SEHCYT) es una institución
que agrupa a personas interesadas y estudiosos de los ámbitos de la historia de las ciencias y
de las técnicas, cuenta con más de 30 años de antigüedad y con más de 400 socios. Tiene una
junta directiva formada por presidente, vicepresidente, secretario, tesorero y vocales.
La SEHCYT tiene actualmente en internet un servicio a disposición de todo el mundo, socios y
no socios, una página web: http://www.unirioja.es/dptos/dmc/Sehcyt/
Captura de pantalla de la web de SEHCYT (marzo 2011)
1.2.
Justificación
El proyecto surge como propuesta de Luis Español, que es miembro activo de la sociedad y que
a lo largo de la realización del proyecto será nuestro cliente y con quién deberemos contar a la
hora de tomar ciertas decisiones del portal.
Creado hace algunos años, con el auge de las nuevas tecnologías y de las nuevas posibilidades
técnicas esta web ya no cubre las necesidades de la sociedad. Además, la sociedad dispone de
otros recursos de información (lista de correo de socios, publicaciones, etc.) que deberían de
estar incorporadas al nuevo espacio web.
Página 9 de 95
Memoria PFC SEHCYT
Daniel Delgado
Actualmente la web tiene un diseño basado en los estándares corporativos que sigue la página
web de la Universidad de La Rioja. En la parte izquierda podemos ver un menú con los enlaces
principales, estos enlaces nos traen la información que podemos ver en la parte central y que
contiene ciertos submenús que aparecen en la parte derecha y que enlazan con otro tipo de
información más esporádico como noticias, congresos, simposios, boletines y otros.
Es por esto que se creará una nueva aplicación web para cubrir las necesidades de publicación
de información, de noticias, de gestión de los socios, etc.
1.3.
Objetivos
El principal objetivo del proyecto que nos ocupa es la creación de una aplicación web que
cumpla las necesidades de la SEHCYT.
Si se cree conveniente, después, podrá ser alojado en un dominio de internet para el disfrute
de los miembros de la sociedad.
1.4.
Descripción
El proyecto consta de una aplicación/portal web en la que se pueda gestionar la sociedad en
cuestión. Cualquier usuario tendrá acceso al portal y podrá ver los contenidos públicos además
de identificarse si es necesario como usuario (socio) de la aplicación. Así, tendremos varios
grupos de usuarios y cada uno de ellos tendrá una restricción u otra a la hora de usar nuestra
aplicación web. Estas restricciones nos permitirán o no el poder interactuar y/o ver la
información sobre los congresos o sobre las actividades que desarrolla la sociedad. También
limitará y restringirá el acceso a otras cosas como la revista LLull que se publica
semestralmente, o a otro tipo de publicaciones como libros o artículos.
El portal web será rediseñado pero seguirá contando con los mismos contenidos que tiene
actualmente, si es caso se podrán incluso completar los que ya hay.
Ahora mismo, la sociedad tiene repartida por múltiples universidades todos sus contenidos y la
idea es agrupar todo para ayudar a su gestión. Se creará una base de datos con los socios de la
sociedad en la que cada uno tendrá un perfil y en la que el administrador podrá otorgar
permisos para poder entrar a ciertas partes de la aplicación. Por ejemplo, los socios, que pagan
una cuota tendrán acceso a través de una intranet a la consulta de la revista.
Incluso podría haber casos en los que un antiguo socio o ciertos miembros de nuestra base de
datos también pueden ver las revistas; esto significa que existirían ciertas excepciones
gestionadas por el administrador.
Es interesante también que haya un histórico de socios que cuente tanto con los socios
actuales como con los miembros que ya no pertenecen a la sociedad.
Página 10 de 95
Memoria PFC SEHCYT
Daniel Delgado
Además, la aplicación también tendrá que tener un sistema de mensajería en el que los socios
puedan enviar mensajes de correo, ya sea a uno o a un grupo de estos.
Los libros o artículos que la sociedad publica están físicamente alojados en la biblioteca de la
Universidad de La Rioja, la aplicación tendrá otra base de datos con la información sobre estos
libros.
Como ya hemos comentado, cualquier usuario tendrá acceso al portal pero dependiendo del
grupo en el que estén tendrán unas restricciones u otras.
1.5.
Plan de comunicaciones
1.5.1. Estructura del equipo
Las personas que participarán directa o indirectamente en el proyecto serán:




Director del proyecto: Daniel Delgado
-dedicación completa.
Tutora del proyecto: Ana Romero
-dedicación esporádica.
Cliente: SEHCYT (por mediación de Luis Español)
-dedicación esporádica.
Miembros del tribunal de evaluación: grupo de profesores que evalúa el proyecto.
-dedicación esporádica.
1.5.2. Tecnología para la comunicación
Las herramientas que se utilizarán para la comunicación entre los miembros del equipo serán:



Correo electrónico: para resolver dudas puntuales, para concertar citas o para el envío
de documentos.
Reuniones: jugarán el papel más importante en la toma de decisiones del proyecto.
Defensa del proyecto: se presentarán los puntos más importantes del proyecto usando
presentaciones, demostraciones online y cualquier otra herramienta para la mejor
comprensión de lo presentado.
1.5.3. Conexiones entre los miembros del equipo



Comunicación Daniel – Ana: A través de correo electrónico y mediante reuniones
cuando se crea conveniente.
Comunicación Daniel – Luis: A través de correo electrónico y mediante reuniones
cuando se crea conveniente.
Comunicación Daniel – Tribunal: Personalmente el día de la defensa del proyecto.
Página 11 de 95
Memoria PFC SEHCYT
1.6.
Daniel Delgado
Planificación del proyecto
1.6.1. Calendario de trabajo
2011
Febrero
Marzo
Lun Mar Mie Jue Vie Sab Dom
Lun Mar Mie Jue Vie Sab Dom
7
14
21
28
1
8
15
22
2
9
16
23
3
4
10 11
17 18
24 25
5
12
19
26
6
13
20
27
7
14
21
28
1
8
15
22
29
2
9
16
23
30
3
4
10 11
17 18
24 25
31
5
12
19
26
6
13
20
27
Abril
Mayo
Junio
Lun Mar Mie Jue Vie Sab Dom
Lun Mar Mie Jue Vie Sab Dom
Lun Mar Mie Jue Vie Sab Dom
4
11
18
25
5
12
19
26
6
13
20
27
1
7
8
14 15
21 22
28 29
2
9
16
23
30
3
10
17
24
2
9
16
23
30
3
10
17
24
31
4
11
18
25
Julio
Lun Mar Mie Jue Vie
4
11
18
25
5
12
19
26
6
13
20
27
1
7
8
14 15
21 22
28 29
5
6
12 13
19 20
26 27
7
14
21
28
1
8
15
22
29
6
13
20
27
7
14
21
28
Agosto
Sab Dom
2
3
9
10
16
17
23
24
30
31
Lun Mar Mie Jue Vie
1
8
15
22
29
2
9
16
23
30
3
10
17
24
31
4
5
11 12
18 19
25 26
1
8
15
22
29
2
3
9 10
16 17
23 24
30
4
11
18
25
5
12
19
26
Septiembre
Sab Dom
6
7
13
14
20
21
27
28
Lun Mar Mie Jue Vie Sab Dom
5
12
19
26
6
13
20
27
7
14
21
28
1
2
8
9
15 16
22 23
29 30
3
10
17
24
Este calendario de trabajo da una idea de la disponibilidad para la realización del proyecto.
Nuestra estimación se basa en tres posibilidades.
En color amarillo, los días en los que se dedicará la mayor parte del tiempo a la realización del
proyecto.
En color rojo se muestran los días en los que se combinará el trabajo con el estudio de la
asignatura que tengo pendiente.
En color azul, los días que por viaje no se le dedicará tiempo al proyecto.
Además los fines de semanas no están marcados en el calendario porque a día de hoy no se
puede evaluar si se va a realizar trabajo o no, en cualquier caso, estos se aprovecharán cuando
sea posible para recuperar trabajo. Tampoco puedo decir que podré hacer en los meses de
Julio, Agosto y Septiembre así que en un principio se podría decir que serán meses de
dedicación intensa aunque habrá más o menos dos semanas en las que no se podrá realizar
trabajo por las vacaciones. Ahora mismo no podemos concretar qué días tendremos
disponibles o no en esos meses pero en principio y a estas alturas supondremos las mismas
horas de trabajo que los meses precedentes.
Página 12 de 95
4
11
18
25
Memoria PFC SEHCYT
Daniel Delgado
1.6.2. Metodología
Para nuestro proyecto habíamos barajado la posibilidad de seguir como metodología la
métrica 3 pero para un proyecto de estas características y dada su extensión hemos declinado
seguirla.
Así, vamos a seguir una metodología propia basándonos en la descomposición de ciertos
procesos en actividades más pequeñas. El orden asignado a estas actividades no debe
interpretarse como una secuencia lineal, aunque si que debemos acabar cada proceso para
poder empezar con el siguiente. A su vez, estas actividades pueden ser subdivididas en tareas.
El orden de estos procesos se puede ver en la sección 1.6.6 Orden de procesos.
1.6.3. Estructura de descomposición del proyecto
Gestión del proyecto
D.- Dirección
A.- Análisis
D1.- Gestión
A1.- Definición
del sistema
del plan
D2.- Reuniones
A2.- Obtención
de requisitos
D3.- Creación del
DOP
A3.Especificación de
casos de uso
D4.- Creación de
la memoria
Di.- Diseño
I.- Implementación
Di1.- Definición
de la arquitectura
del sistema
Di2.- Diseño de
base de datos
I1.- Instalación
del entorno
P1.- Ejecución
de pruebas
I2.- Generación
de código
P2.- Creación
de manuales
de usuario
Di3.- Diseño de
interfaces
A4.- Definición
de interfaces
D5.- Preparación
de la defensa
In1.- Integración
P.- Pruebas
A5.Especificación del
plan de pruebas
In1.Establecimiento
del plan de
implantación
In2.- Carga de
datos
In3.- Pruebas
de aceptación
del sistema
In4.Presentación del
sistema
1.6.4. Listado de procesos, actividades y tareas
A continuación se describen los procesos, sus actividades y si es necesario, las tareas que se
van a desarrollar. Los seis procesos principales son: Dirección, Análisis, Diseño,
Implementación, Pruebas e Integración.
D.- Dirección
Página 13 de 95
Memoria PFC SEHCYT
Daniel Delgado
Este proceso sirve para mantener y establecer un desarrollo desde el inicio hasta el final del
proyecto.
D1.- Gestión del plan
D1.1.- Seguimiento del plan de objetivos
D1.2.- Seguimiento del plan de comunicaciones
D1.3.- Seguimiento del plan de riesgos
D2.- Reuniones
D2.1.- Preparación de temas a tratar
D2.2.- Exposición de temas
D2.3.- Redacción de actas
D3.- Creación del DOP
D3.1.- Recopilación de información para la realización del proyecto
D3.2.- Análisis de la información obtenida
D3.3.- Redacción de la memoria
D4.- Creación de la memoria
D4.1.- Documentación y recopilación de información necesaria
D4.2.- Redacción de la memoria
D5.- Preparación de la defensa
D5.1.- Resumen con los puntos importantes
D5.2.- Preparación de material para la presentación
D5.3.- Ensayo de la defensa
A.-Análisis
Este proceso servirá para la obtención de una especificación detallada del sistema de
información siendo esta la base para el diseño de nuestro proyecto.
A1.- Definición del sistema
A1.1.- Determinación de los objetivos del proyecto
A1.2.- Identificación del entorno tecnológico
A1.3.- Identificación de los usuarios participantes y finales
A2.- Obtención de requisitos
A3.- Especificación de casos de uso
A4.- Definición de interfaces
A4.1.- Especificación de principios generales de la interfaz
A4.2.- Identificación de ventanas de diálogo
A4.3.- Especificación del comportamiento de la interfaz
A5.- Especificación del plan de pruebas
Página 14 de 95
Memoria PFC SEHCYT
Daniel Delgado
Di.- Diseño
Este proceso es la definición de la arquitectura del sistema, el diseño de la base de datos y el
diseño de elementos visuales tales como las interfaces.
Di1.- Definición de la arquitectura del sistema
Di1.1.- Definición de los niveles de arquitectura
Di1.2.- Identificación de requisitos de diseño y construcción
Di1.3.- Especificación del entorno tecnológico
Di1.4.- Especificación de los requisitos para la utilización
Di2.- Diseño de la base de datos
Di2.1.- Diseño conceptual de la base de datos
Di2.2.- Diseño lógico de la base de datos
Di2.3.- Normalización del modelo lógico de datos
Di2.4.- Diseño físico de la base de datos
Di3.- Diseño de interfaces
I.- Implementación
Este proceso tiene como objetivo principal la creación del entorno de trabajo y la generación
del código que dará resultado a nuestra aplicación.
I1.- Instalación del entorno
I1.1.- Implantación de la base de datos
I1.2.- Preparación del entorno para la generación de código
I2.- Generación de código
P.-Pruebas
Este proceso tiene por objetivo hacer las pruebas necesarias para comprobar el correcto
funcionamiento del sistema y la creación de los manuales de usuario que sean necesarios.
P1.-Ejecución de pruebas
P1.1.- Pruebas de integración en el sistema
P1.2.- Pruebas del sistema
P2.- Creación de manuales de usuario
In.- Integración
Este proceso tiene como objetivo principal la entrega y aceptación del sistema y la realización
de las actividades necesarias para el paso a producción.
In1.- Establecimiento del plan de implantación
In2.- Carga de datos
Página 15 de 95
Memoria PFC SEHCYT
Daniel Delgado
In3.- Presentación del sistema
In3.1.- Convocatoria de la presentación del sistema
In3.2.- Aprobación del sistema
1.6.5. Estimación de la duración de los procesos, actividades y
tareas
D.- Dirección
D1.- Gestión del plan
D1.1.- Seguimiento del plan de objetivos 2 h.
D1.2.- Seguimiento del plan de comunicaciones 2 h.
D1.3.- Seguimiento del plan de riesgos 2h.
6h.
D2.- Reuniones
D2.1.- Preparación de temas a tratar 2h.
D2.2.- Exposición de temas 5h.
D2.3.- Redacción de actas 4h.
11h.
D3.- Creación del DOP
D3.1.- Recopilación de información para la realización… 5h.
D3.2.- Análisis de la información obtenida 10h.
D3.3.- Redacción de la memoria 10h.
25h.
D4.- Creación de la memoria
D4.1.- Documentación y recopilación… 10h.
D4.2.- Redacción de la memoria 40h.
50h.
D5.- Preparación de la defensa
D5.1.- Resumen con los puntos importantes 4h.
D5.2.- Preparación de material para la presentación 4h.
D5.3.- Ensayo de la defensa 4h.
12h.
Total Dirección.- 104h.
A.-Análisis
A1.- Definición del sistema
A1.1.- Determinación de los objetivos del proyecto 3h.
A1.2.- Identificación del entorno tecnológico 1h.
A1.3.- Identificación de los usuarios participantes y finales 1h.
5h.
A2.- Obtención de requisitos
7h.
A3.- Especificación de casos de uso
5h.
A4.- Definición de interfaces
A4.1.- Especificación de principios generales de la interfaz 3h.
13h.
Página 16 de 95
Memoria PFC SEHCYT
Daniel Delgado
A4.2.- Identificación de ventanas de diálogo 5h.
A4.3.- Especificación del comportamiento de la interfaz 5h.
A5.- Especificación del plan de pruebas
8h.
Total Análisis.- 38h.
Di.- Diseño
Di1.- Definición de la arquitectura del sistema
Di1.1.- Definición de los niveles de arquitectura 2h.
Di1.2.- Identificación de requisitos de diseño y construcción 1h.
Di1.3.- Especificación del entorno tecnológico 1h.
Di1.4.- Especificación de los requisitos para la utilización 1h.
Di2.- Diseño de la base de datos
Di2.1.- Diseño conceptual de la base de datos 15h.
Di2.2.- Diseño lógico de la base de datos 5h.
Di2.3.- Normalización del modelo lógico de datos 5h.
Di2.4.- Diseño físico de la base de datos 4h.
Di3.- Diseño de interfaces
5h.
29h.
25h.
Total Diseño.- 59h.
I.- Implementación
I1.- Instalación del entorno
10h.
I1.1.- Implantación de la base de datos 7h.
I1.2.- Preparación del entorno para la generación de código 3h.
I2.- Generación de código
P.-Pruebas
P1.-Ejecución de pruebas
P1.1.- Pruebas de integración en el sistema 2h.
P1.2.- Pruebas del sistema 8h.
P2.- Creación de manuales de usuario
In.- Integración
In1.- Establecimiento del plan de implantación
In2.- Carga de datos
In3.- Presentación del sistema
180h.
Total Implementación.- 190h.
10h.
15h.
Total Pruebas.- 25h.
3h.
10h.
2h.
Página 17 de 95
Memoria PFC SEHCYT
Daniel Delgado
In3.1.- Convocatoria de la presentación del sistema 1h.
In3.2.- Aprobación del sistema 1h.
Total Integración.- 15h.
Así, el total de horas estimadas para la realización del proyecto es de 431 horas.
A continuación mostramos el calendario previsto para la realización de cada proceso, actividad
y tarea. La duración se refiere a la aproximada en días.
Proceso/Actividad/Tarea
Fecha de inicio Fecha de fin Duración
Proyecto completo
14/02/2011 23/08/2011
114
Dirección
Gestión del plan
D1.1
D1.2
D1.3
Reuniones
D2.1
D2.2
D2.3
Creación del DOP
D3.1
D3.2
D3.3
Creación de la memoria
D4.1
D4.2
Preparación de la defensa
D5.1
D5.2
D5.3
Análisis
Definición del sistema
A1.1
A1.2
A1.3
Obtención de requisitos
Especificación de casos de uso
Definición de interfaces
A4.1
A4.2
A4.3
Especificación del plan de pruebas
Diseño
14/02/2011
14/02/2011
14/02/2011
14/02/2011
14/02/2011
14/02/2011
14/02/2011
14/02/2011
14/02/2011
21/02/2011
21/02/2011
22/02/2011
24/02/2011
04/03/2011
04/03/2011
04/03/2011
18/08/2011
18/08/2011
19/08/2011
22/08/2011
04/03/2011
04/03/2011
04/03/2011
04/03/2011
04/03/2011
07/03/2011
09/03/2011
10/03/2011
10/03/2011
11/03/2011
14/03/2011
15/03/2011
17/03/2011
114
114
114
114
114
114
114
114
114
6
1
2
3
100
100
100
3
1
1
1
9
1
1
1
1
2
1
3
1
1
1
2
18
23/08/2011
23/08/2011
23/08/2011
23/08/2011
23/08/2011
23/08/2011
23/08/2011
23/08/2011
23/08/2011
01/03/2011
22/02/2011
24/02/2011
01/03/2011
18/08/2011
18/08/2011
18/08/2011
23/08/2011
19/08/2011
20/08/2011
23/08/2011
17/03/2011
05/03/2011
05/03/2011
05/03/2011
05/03/2011
09/03/2011
10/03/2011
15/03/2011
11/03/2011
12/03/2011
15/03/2011
17/03/2011
15/04/2011
Página 18 de 95
Memoria PFC SEHCYT
Daniel Delgado
Definición de la arquitectura del sistema
Di1.1
Di1.2
Di1.3
Di1.4
Diseño de la base de datos
Di2.1
Di2.2
Di2.3
Di2.4
Diseño de interfaces
Implementación
Instalación del entorno
I1.1
I1.2
Generación de código
Pruebas
Ejecución de pruebas
P1.1
P1.2
Creación de manuales de usuario
Integración
Establecimiento del plan de implantación
Carga de datos
Presentación del sistema
In3.1
In3.2
17/03/2011
17/03/2011
18/03/2011
21/03/2011
22/03/2011
23/03/2011
23/03/2011
28/03/2011
01/04/2011
05/04/2011
06/04/2011
15/04/2011
15/04/2011
15/04/2011
20/04/2011
28/04/2011
15/07/2011
15/07/2011
15/07/2011
18/07/2011
20/07/2011
10/08/2011
10/08/2011
11/08/2011
16/08/2011
16/08/2011
17/08/2011
23/03/2011
18/03/2011
19/03/2011
22/03/2011
23/03/2011
06/04/2011
26/03/2011
29/03/2011
05/04/2011
06/04/2011
15/04/2011
15/07/2011
21/04/2011
20/04/2011
21/04/2011
15/07/2011
10/08/2011
20/07/2011
16/07/2011
20/07/2011
10/08/2011
18/08/2011
11/08/2011
16/08/2011
18/08/2011
17/08/2011
18/08/2011
4
1
1
1
1
7
3
1
2
1
7
49
4
3
1
45
18
3
1
2
15
6
1
3
2
1
1
1.6.6. Orden de procesos
Dirección
Análisis
Diseño
Integración
Implementación
Pruebas
Página 19 de 95
Memoria PFC SEHCYT
Daniel Delgado
1.6.7. Diagrama de Gantt
Diagrama de Gantt
Página 20 de 95
Memoria PFC SEHCYT
1.7.
Daniel Delgado
Tecnología
El cliente no nos ha especificado las tecnologías que debemos usar. Por lo tanto, y ya que
personalmente me interesa por motivos de formación las tecnologías que se aplicarán para el
desarrollo del proyecto serán:



Tecnología software web: PHP
Tecnología contenedor web: Apache
Servidor de bases de datos: MySQL
Esto no quiere decir que serán únicas y exclusivas. Además, si por algún motivo nos vemos en
dificultades en las fases iniciales podremos optar por cambiarlas.
Notar que estas tecnologías son todas de código libre lo que nos ayuda para con el trabajo y su
difusión.
1.8.





DOP (Documento de objetivos del proyecto).
Aplicación web.
Manual de usuario.
Memoria.
Presentación pública del proyecto ante los miembros del tribunal.
1.9.




Entregables principales del proyecto
Dirección de riesgos
Pérdida de información debido a problemas informáticos.
o Actuación: Se recupera la última versión del backup.
Enfermedad o accidente tanto del director del proyecto como del tutor.
o Actuación: Podría ser necesario ampliar los plazos de entrega o reducir el
alcance del proyecto.
El cliente no está satisfecho con el trabajo presentado o hay errores en la compresión
de los requisitos.
o Actuación: Se intentará que desde un primer momento esto no pase
consultando al cliente si está de acuerdo con el proyecto tanto en las fases
iniciales de obtención de requisitos como en las fases de diseño. El cliente
debe dar confirmación cuando se le presenten los borradores de las interfaces
gráficas para su posterior implementación.
Desconocimiento de las herramientas necesarias.
o Actuación: Se amplían los plazos de entrega o se reduce el alcance del
proyecto.
Página 21 de 95
Memoria PFC SEHCYT

Daniel Delgado
Mala estimación de la duración real del proyecto.
o Actuación: Se tiene en cuenta que esto puede ocurrir y entonces se necesitaría
replanificar el proyecto y volver a hacer otra estimación.
Página 22 de 95
Memoria PFC SEHCYT
Daniel Delgado
2. Análisis
Este proceso servirá para la obtención de una especificación detallada del sistema de
información siendo ésta la base para el diseño de nuestro proyecto. Parte de este trabajo
puede haber sido ya hecho en el DOP.
2.1.
Definición del sistema
2.1.1. Determinación de los objetivos del proyecto
[Adaptación de la sección 1.4 Descripción del DOP]
Se desea construir una aplicación/portal web en la que se pueda gestionar vía web diversos
aspectos de la sociedad española de historia de las ciencias y de las técnicas.
Cualquier usuario tendrá acceso al portal y podrá ver los contenidos públicos además de
identificarse si es necesario como usuario (socio) de la aplicación. Así, tendremos varios grupos
de usuarios y cada uno de ellos tendrá una restricción u otra a la hora de usar nuestra
aplicación web. Estas restricciones nos permitirán o no el poder interactuar y/o ver la
información sobre los congresos o sobre las actividades que desarrolla la sociedad. También
limitará y restringirá el acceso a otras cosas como la revista Llull que se publica
semestralmente, o a otro tipo de publicaciones como libros o artículos.
El portal web será rediseñado pero seguirá contando con los mismos contenidos que tiene
actualmente, si es caso se podrán incluso completar los que ya hay. Además, será posible el
crear una plantilla/ejemplo para que si un miembro de la sociedad es el encargado de
organizar una conferencia o unas jornadas pueda fácilmente seguir la estructura y el diseño de
nuestra web para su difusión. Así todo quedará más organizado y visualmente más atractivo.
Ahora mismo, la sociedad tiene repartida por múltiples universidades todos sus contenidos y la
idea es agrupar todo para ayudar a su gestión. Se creará una base de datos con los socios de la
sociedad en la que cada uno tendrá un perfil y en la que el administrador podrá otorgar
permisos para poder entrar a ciertas partes de la aplicación. Por ejemplo, los socios, que pagan
una cuota tendrán acceso a través de una intranet a la consulta de la revista.
Incluso podría haber casos en los que un antiguo socio o ciertos miembros de nuestra base de
datos también pueden ver las revistas; esto significa que existirían ciertas excepciones
gestionadas por el administrador.
Existirá un administrador único, el secretario, pero también habrá un tesorero que tendrá
acceso a los datos bancarios de la sociedad, sólo a estos datos, que no podrán ser vistos por los
socios normales.
Página 23 de 95
Memoria PFC SEHCYT
Daniel Delgado
Si hay alguien que quiere ser socio de SEHCYT tiene que pedirlo a la junta directiva, en nuestro
caso personificado en el secretario (administrador), tras realizar la junta y tras los pagos será el
administrador el que dé de alta en el sistema a este usuario, entonces al nuevo socio se le
enviarán los datos de acceso a la intranet.
Es interesante también que haya un histórico de socios que cuente tanto con los socios
actuales como con los miembros que ya no pertenecen a la sociedad.
Además, la aplicación también tendrá que tener un sistema de mensajería en el que los socios
puedan enviar mensajes de correo, ya sea a uno o a un grupo de ellos.
Se creará un foro para que además de los mensajes privados que los usuarios se envíen
también se puedan escribir noticias u otro tipo de cosas.
Los libros o artículos que la sociedad publica están físicamente alojados en la biblioteca de la
Universidad de La Rioja, la aplicación tendrá otra base de datos con la información sobre estos
libros.
2.1.2. Identificación del entorno tecnológico
El objetivo es definir más concretamente el entorno tecnológico que se requiere para dar
respuesta a las necesidades del proyecto, especificando sus posibles condicionantes y
restricciones.

Hardware
En principio, el ordenador con el que se va a trabajar será mi ordenador personal. En él se
van a realizar las pruebas y prácticas que vayan surgiendo. Este ordenador actuará como
servidor y alojará la base de datos. También es posible que se usen de forma circunstancial
otros ordenadores como los de la universidad.
Si al final el cliente cree conveniente la incorporación del sistema a otro servidor para
alojar y disponer de la aplicación en la vida real más allá del proyecto fin de carrera se
estudiarán las necesidades que requiere y sus posibilidades.

Software
El ordenador sobre el que correrá la aplicación tiene como sistema operativo Windows, la
base de datos MySQL y la propia aplicación que desarrollemos. Se espera que la aplicación
funcione correctamente en los navegadores habituales del mercado como Internet
Explorer, Mozilla Firefox, Google Chrome, etc.
2.1.3. Identificación de los usuarios participantes y finales
Se identifican a continuación los usuarios participantes tanto en la obtención de requisitos
como en la validación de las distintas fases del producto y la aceptación del sistema.
Página 24 de 95
Memoria PFC SEHCYT




Daniel Delgado
Daniel Delgado: Director del proyecto
o Encargado del desarrollo del proyecto y gestión del mismo. Tomador de las
decisiones finales y participación total a lo largo de todo el proyecto.
Ana Romero: Tutora del proyecto
o Encargada de la supervisión del proyecto. Orientadora en la toma de
decisiones y su participación es esporádica. Cuando sea necesario.
Luis Español: Cliente del proyecto
o Es quien ha encargado la realización del proyecto. Representante de SEHCYT.
Determina los requisitos que ha de cumplir el sistema. Su participación
también es esporádica.
Miembros del tribunal: Grupo de profesores que evalúan el proyecto.
o Evalúan el proyecto y sólo participan una vez, al final.
2.2.
Obtención de requisitos
A continuación se muestra un listado de los requisitos que debe cumplir nuestro sistema.

Usuario: El sistema contará con cuatro tipos diferentes de usuario, el secretario como
administrador, el tesorero, los socios y los no socios.
o
No socio: Usuario que no requiere de identificación.
- Visualiza toda la información pública y abierta del sistema.
- Tiene acceso a las revistas antiguas de SEHCYT (más de 2 años).
- Tiene acceso a las noticias publicadas.
- Puede leer la información de los libros publicados.
- Pide ser miembro de la sociedad al administrador.
o
Socio: Cada uno de ellos se identifica bajo un usuario y una contraseña.
- Tiene acceso a las revistas publicadas en los dos últimos años.
- Puede leer y escribir en el foro de la comunidad.
- Puede acceder a su correo privado y enviar mensajes a otros socios.
- Puede modificar sus datos personales.
- Puede consultar las plantillas para la difusión de eventos.
- Tiene todas las posibilidades de los no socios excepto obviamente
pedir ser socio.
o
Tesorero: Es único y se identifica bajo un usuario y una contraseña.
- Tiene el privilegio de ver los datos bancarios de los demás socios.
- Tiene todas las posibilidades de los socios y los no socios.
o
Administrador: Es único y se identifica bajo un usuario y una contraseña.
- Incluye y borra (bloquea) nuevos socios.
- Envía el usuario y la contraseña a los nuevos socios.
- Incluye, borra y modifica las revistas y las actas en el sistema.
Página 25 de 95
Memoria PFC SEHCYT
-
2.3.
Daniel Delgado
Incluye, borra y modifica la información sobre los libros publicados por
SEHCYT.
Incluye, borra y modifica noticias y otra información ya sea pública o
en la intranet.
Tiene todas las posibilidades del tesorero, del socio y del no socio.
Especificación de casos de uso
A continuación se muestran únicamente los actores del sistema. Estos siguen un esquema muy
claro de herencia.
Descripción de los actores
2.3.1. Usuario no socio





Ver contenido: el usuario pulsa en los enlaces que son abiertos para consulta.
Ver revistas antiguas: el usuario tiene a su disposición una lista con las revistas con
más de dos años de antigüedad. Si pulsa sobre alguna de ellas puede verlas en el
formato subido, normalmente pdf.
Leer noticia: el usuario tiene a su disposición una lista con las dos últimas noticias
publicadas. Puede pulsar el botón correspondiente para ver las dos siguientes noticias
publicadas ordenadas de acuerdo a su fecha de publicación.
Pedir ser socio: el usuario rellena un formulario que es enviado al administrador para
aprobación.
Leer información sobre los libros publicados: el usuario puede ver la información sobre
los libros publicados por SEHCYT. Los libros se muestran en listas de cinco y pulsando
sobre ellos se puede ver toda la información relativa a ese libro.
Página 26 de 95
Memoria PFC SEHCYT
Daniel Delgado
Caso de uso No Socio
2.3.2. Usuario socio
El usuario socio ya ha sido dado de alta en el sistema por el administrador.








Acceder al sistema: el usuario escribe su usuario y su contraseña para identificarse.
Escribir/leer en foro: el usuario una vez registrado lee y/o deja un mensaje en el foro.
Los mensajes vienen organizados en grupos de cuatro mensajes.
Modificar datos: el usuario modifica sus datos personales.
Leer revista: el usuario tiene a su disposición una lista con las últimas revistas
publicadas. Si pulsa sobre alguna de ellas puede verlas en el formato subido,
normalmente formato pdf.
Leer acta: el usuario tiene a su disposición una lista con las últimas actas publicadas. Si
pulsa sobre alguna de ellas puede verlas en formato pdf. También puede pulsar en el
botón correspondiente para ver las siguientes diez actas ordenadas de acuerdo a su
fecha de publicación.
Enviar correo-e: el usuario escribe un mensaje y lo envía a otro.
Leer correo-e: el usuario lee los correos que ha recibido.
Consultar plantillas: el usuario pulsa para ver la plantilla de difusión de eventos.
Notemos que un usuario no socio únicamente puede leer las revistas con más de dos años de
antigüedad. A su vez, un usuario socio puede leer todas las revistas publicadas ya sean
antiguas o recién publicadas.
Página 27 de 95
Memoria PFC SEHCYT
Daniel Delgado
Caso de uso Socio
2.3.3. Tesorero
El tesorero ya ha sido dado de alta en el sistema por el administrador.


Acceder al sistema: el tesorero escribe su usuario y su contraseña para identificarse.
Consultar datos bancarios: el tesorero pulsa para consultar los datos bancarios de los
socios. Podrá hacer búsquedas por nombre, por dni o por número de socio. Obtendrá
una lista de los datos bancarios de los socios buscados.
Caso de uso Tesorero
Página 28 de 95
Memoria PFC SEHCYT
Daniel Delgado
2.3.4. Administrador
El administrador del sistema será el secretario de la sociedad.














Ver contenido: el secretario pulsa en los enlaces que son abiertos para consulta.
Acceder al sistema: el secretario escribe su usuario y su contraseña para identificarse.
Publicar acta: el secretario publica las actas en la intranet para consulta de socios.
Modificar/borrar acta: el secretario modifica o borra un acta que ha sido publicada
previamente.
Subir revista: el secretario cuelga una nueva revista para su lectura.
Modificar/borrar revista: el secretario modifica o borra una revista que ha sido
publicada previamente.
Subir noticia: el secretario cuelga una noticia para su lectura, estas están disponibles
para lectura de cualquier usuario.
Modificar/borrar noticia: el secretario modifica o borra una noticia que ha sido
publicada previamente para cualquier usuario.
Dar de alta socios: el secretario crea un usuario nuevo y envía el usuario y la
contraseña al nuevo socio creado.
Modificar datos socios: el secretario modifica los datos personales de los socios.
Borrar socio: el secretario elimina un socio de la base de datos del sistema.
Subir información sobre los libros: el secretario cuelga la información sobre los libros
publicados por SEHCYT para su consulta, esta información está disponible para lectura
de cualquier usuario.
Modificar/borrar información sobre los libros: el secretario modifica o borra la
información que ha sido publicada previamente sobre un libro publicado.
Borrar mensajes del foro: el secretario borra mensajes escritos en el foro.
Página 29 de 95
Memoria PFC SEHCYT
Daniel Delgado
Caso de uso Secretario
2.4.
Definición de interfaces
2.4.1. Especificación de principios generales de la interfaz
El objetivo de esta tarea es especificar los estándares, directrices y elementos generales a
tener en cuenta en la definición de la interfaz de usuario.
Página 30 de 95
Memoria PFC SEHCYT
Daniel Delgado
El objetivo es crear una interfaz de usuario acorde a las necesidades de la sociedad, flexible,
coherente, eficiente y sobre todo, sencilla de usar.
El diseño de las páginas se hará teniendo en cuenta las preferencias del cliente. Aún así, la idea
es seguir dentro de lo que se pueda una línea visual más o menos parecida a la que ya existe
en la actual web de SEHCYT. De esta forma, el cambio no será tan brusco y además parecerá
más amigable.
En la parte superior se mostrará una cabecera que contendrá una imagen, logo o similar de tal
forma que siempre quede claro qué página web se está visualizando. A su vez, en la parte de
abajo habrá un pie en el que se incluirán los aspectos formales de la sociedad y que también
estará siempre visible. El otro elemento que permanente de la aplicación será el menú, que se
situará a la izquierda y en la que se podrán ver ciertas opciones de información y que darán
origen a las páginas estáticas (en la parte central).
Además, en este menú tendremos acceso a la página de acceso a la intranet y también al foro
de la comunidad.
En la parte central se generará el contenido de cada página y ocupará casi la totalidad de la
vista.
Menú
Cabecera
Contenido central
Pie
Interfaz general
El aspecto de todos los elementos de la aplicación será similar en cuanto al tipo de texto y los
colores, homogeneizando así el diseño. El tamaño del texto de los títulos será superior al del
contenido.
Se tendrá en cuenta que el usuario no tiene por qué saber nada sobre programación web por
lo que se tratará de que el lenguaje sea lo más orientado hacia el usuario estándar posible para
que no haya problemas a la hora de la navegación.
Página 31 de 95
Memoria PFC SEHCYT
Daniel Delgado
2.4.2. Identificación de ventanas de diálogo
A continuación se va a hacer una aproximación de lo que serán las ventanas, desde un punto
de vista estático, en las que la aplicación tiene una “conversación” con el usuario. Estos
diálogos son parte de la aplicación y aparecerán en el portal dentro de él como un contenido
con los tres elementos fijos (cabecera, menú y pie) siempre visibles.

Diálogo de login: El usuario ya tiene un usuario y una contraseña.
Diálogo login
El comportamiento de esta ventana se puede seguir a través del diagrama de actividad.
Diagrama de actividad login

Diálogo para pedir ser socio: El usuario (que no es socio) pide a través de un formulario
ser socio.
Página 32 de 95
Memoria PFC SEHCYT
Daniel Delgado
Diálogo datos para ser socio
El comportamiento de esta ventana se puede seguir a través del diagrama de actividad.
Diagrama de actividad pedir ser socio

Diálogo para escribir un mensaje en el foro: El usuario escribe un mensaje en el foro de
la comunidad bajo un nuevo tema o bajo uno ya existente.
Página 33 de 95
Memoria PFC SEHCYT
Daniel Delgado
Diálogo escribir en el foro
El comportamiento de esta ventana se puede seguir a través del diagrama de actividad. En
este caso se supone que el usuario está ya registrado. De no ser así, previamente tendría que
registrarse siguiendo los diálogos anteriores.
Diagrama de actividad escribir en el foro
Página 34 de 95
Memoria PFC SEHCYT
Daniel Delgado
2.4.3. Especificación del comportamiento de la interfaz
Como ya se ha comentado, al abrir la página web veremos cuatro módulos diferentes, tres de
ellos fijos y uno de ellos que se modifica de acuerdo a las opciones que vayamos pulsando.
Los tres módulos fijos son:



Cabecera
Menú
Pie
Y el módulo central, el más grande de ellos que será el que nos aportará el contenido.
Tanto si pulsamos cualquiera de las opciones de los elementos fijos como si pulsamos una
opción disponible dentro del contenido central lo que cambiará será el módulo central. Cabe
destacar que puede haber ciertos contenidos que se muestren en ventanas o pestañas nuevas
como por ejemplo los contenidos en formato pdf porque es mucho más legible y claro.
2.5.
Especificación del plan de pruebas
En esta actividad se comienza a definir el plan de pruebas, el cual sirve como guía para la
realización de las pruebas, y permite verificar que la aplicación desarrollada cumple las
necesidades requeridas por el cliente con las debidas garantías de calidad.
Las pruebas serán ejecutadas en el proceso Pruebas pero ahora definiremos los aspectos más
importantes a tener en cuenta cuando éstas se produzcan.
Necesitaremos un entorno diferente para realizar las pruebas ya que podría ser que bajo el
puesto que hemos estado creando la aplicación funcione perfectamente pero no en otro. Así
tendremos que instalar todo el software necesario y comprobar las especificaciones de
hardware. De esta forma, las pruebas se pueden considerar más exactas.
Evidentemente el portal debe tener un comportamiento totalmente funcional pero para que
se cumplan los criterios de aprobación más específicos debemos prestar especial atención a
ciertas partes críticas del sistema:




Login
Funcionamiento del foro
Funcionamiento del correo-e
Restricción de contenidos
Además, el rendimiento de la aplicación debe ser óptimo, los tiempos de respuesta no deben
de ser muy altos y el espacio en disco usado tampoco debe ser muy grande.
Debemos completar un acta para cada una de las pruebas que tomemos.
Página 35 de 95
Memoria PFC SEHCYT
Prueba nº:
Daniel Delgado
Fecha: ____ /____ / 201__
Se prueba:
Probador:
Satisfactorio:
Sí
No
Comentarios:
Página 36 de 95
Memoria PFC SEHCYT
Daniel Delgado
3. Diseño
Este proceso es la definición de la arquitectura del sistema, el diseño de la base de
datos y el diseño de elementos visuales tales como las interfaces.
3.1.
Definición de la arquitectura del sistema
En esta actividad se definirá la arquitectura general del sistema de información, especificando
las distintas particiones físicas del mismo, la descomposición lógica en subsistemas de diseño y
la ubicación de cada subsistema en cada partición, así como la especificación detallada de la
infraestructura tecnológica necesaria para dar soporte al sistema.
3.1.1. Definición de los niveles de arquitectura
En esta tarea se describen los niveles de la arquitectura software, mediante la definición de las
principales particiones físicas del sistema, representadas como nodos y comunicaciones entre
estos.
El sistema de información estará formado por dos capas:

Capa de persistencia (datos): Será la responsable del acceso a las fuentes de datos del
sistema. Independizará a la aplicación de las características, almacenamiento y estructura
de los datos. Su labor principal será la de implementar las operaciones de creación,
lectura, actualización y eliminación de los datos del sistema.

Capa de presentación: Se encargará de mostrar la información devuelta por la capa de
persistencia, así como de recibir las peticiones del usuario y procesarlas, tras el proceso,
los datos se muestran en esta capa de presentación de nuevo.
Estas dos capas se localizarán en dos máquinas distintas dando lugar a una topología de dos
niveles: un ordenador como cliente, o navegador web, y otro ordenador como servidor. La
topología denominada cliente/servidor. Los datos estarán en el servidor y la capa de
presentación se mueve al cliente.
Servidor
Cliente
Datos
Present.
Página 37 de 95
Memoria PFC SEHCYT
Daniel Delgado
Se ha decidido trabajar solo con dos capas y no con las tres habituales. El motivo de omitir la
capa de lógica es que la aplicación no va tener algoritmos grandes o complicados por lo cual,
los algoritmos que se creen se integrarán dentro de la capa de presentación.
Las ventajas de este sistema son:




Los clientes son independientes entre sí.
Los datos se almacenan en los servidores, así que existe una mayor capacidad para el
control de la seguridad.
Se puede aumentar la capacidad de clientes y servidores por separado.
Se pueden tener varias capas de presentación dependiendo del tipo de usuario
(administrador, socio, no socio).
3.1.2. Identificación de requisitos de diseño y construcción
En esta tarea se especifican los requisitos que están relacionados y pueden condicionar el
diseño y la construcción de la aplicación.
Tendremos que tener en cuenta y deberemos añadir a los requisitos algún otro, por ejemplo:


El servidor debe permitir que varios usuarios se conecten al mismo tiempo.
La base de datos y el sistema de gestión de bases de datos deben encontrarse en el
mismo puesto que el contenedor web y sus componentes.
3.1.3. Especificación del entorno tecnológico
En esta tarea se definen con más detalle los distintos elementos de la infraestructura técnica
que dan soporte al sistema, durante el desarrollo de la aplicación tanto en la parte del cliente
como en la del servidor se utiliza el ordenador personal del proyectando, un HP 6710b, Intel
Core 2 Duo T7250, con 1GB de memoria RAM y 120GB de memoria ROM bajo Windows XP.
Al finalizar el proyecto, el cliente y el servidor cambiarán:

Cliente
o Hardware: Son todos los puestos desde los cuales se podrá acceder al servidor.
o Software: El sistema operativo que usan los clientes no tiene porque ser el
mismo que el del servidor. El navegador de los clientes podrá ser cualquiera de
los habituales, Internet Explorer, Mozilla Firefox, Google Chrome.

Servidor
o Hardware: Deberá ser un servidor lo suficientemente grande como para
almacenar todos los datos de la base de datos y que a ser posible pueda
trabajar lo más rápidamente posible.
Página 38 de 95
Memoria PFC SEHCYT
o
o
Daniel Delgado
Software: En el sistema habrá un sistema gestor de bases de datos (SGBD) para
poder acceder a los datos de la BD. Usaremos PHP y Apache como tecnología a
usar en el servidor web, así como MySQL como servidor de la base de datos.
Comunicaciones: El sistema se comunicará por uno de los protocolos estándar,
TCP/IP.
3.1.4. Especificación de los requisitos para la utilización
Definiremos a continuación los procedimientos de seguridad y de control de acceso para
garantizar la protección del sistema y minimizar el riesgo de errores.

Acceso al sistema: Nuestro portal web será pensado y diseñado como si finalmente se
fuese a implantar en un servidor externo y de acceso a cualquier tipo de usuario. Por lo
tanto, el acceso al sistema será a través de la web.

Acceso a la intranet: El acceso a los servicios restringidos de la intranet estará
protegido mediante un usuario y una contraseña para garantizar que nadie pueda
entrar libremente sin identificación.

Confidencialidad de los datos: Los usuarios tendrán asegurado que sus datos
personales privados no son mostrados al resto de usuarios. El administrador sí que
podrá acceder a estos datos, excepto los del login.

Mantenimiento de la integridad de los datos: Se proporcionará la capacidad de
realizar operaciones concurrentes, por ello, las operaciones de actualización, de
inserción y de borrado de datos se realizarán como transacciones.

Copias de seguridad: Cada cierto tiempo se realizarán copias de seguridad en CD-ROM
o en discos duros externos extraíbles.

Bloqueo de usuarios: El administrador tendrá la capacidad de bloquear y borrar
usuarios que por algún motivo no deban de tener acceso al sistema.
3.2.
Diseño de la base de datos
En esta actividad se define la estructura de la base de datos que utilizará el sistema para
conseguir una mayor eficiencia en el tratamiento de los datos.
Para la realización de esta actividad nos basamos en los requisitos obtenidos en la fase de
Análisis.
Página 39 de 95
Memoria PFC SEHCYT
Daniel Delgado
3.2.1. Diseño conceptual de la base de datos
El objetivo de esta tarea es producir un esquema conceptual de la base de datos que sea
independiente del sistema de gestión de bases de datos que utilicemos. Usamos el modelo de
entidad relación.
Diagrama Entidad Relación
El diagrama muestra las entidades con sus atributos. Además se pueden ver cuatro relaciones,
las cuatro son relaciones 1..N.
Para la creación del foro de discusión vamos a tener en cuenta dos entidades principales
además del usuario que nos permitirán su creación y gestión. Un usuario podrá escribir uno o
varios temas pero un tema solo será escrito por un único usuario. De ahí la relación “escribe”
entre usuario y tema. Cada tema tiene un asunto y un mensaje y de cada tema dependerán los
comentarios a ese tema. Los comentarios van asociados a un tema que ha sido previamente
escrito. Así, puede haber varios comentarios asociados a un mismo tema. A su vez, es obvio
Página 40 de 95
Memoria PFC SEHCYT
Daniel Delgado
que los comentarios son escritos por usuarios, que pueden ser diferentes al usuario que
escribió el tema principal.
Además, tenemos la relación paga que nos dará una idea de las cuotas que ha pagado cada
usuario y cuando. Cada usuario podrá pagar varias cuotas pero cada una de ellas es pagada por
un único usuario.
3.2.2. Diseño lógico de la base de datos
En esta tarea se transforma lo diseñado en la tarea anterior al modelo de datos. Se generan las
especificaciones para la creación de la base de datos mediante el gestor elegido.
Tablas Base de Datos
Página 41 de 95
Memoria PFC SEHCYT
Daniel Delgado
En nuestro caso la base de datos será MySQL.
Las tablas corresponden directamente a las entidades porque las relaciones que existen son
todas 1..N. Las tablas que intervienen en nuestra base de datos son las mostradas en el gráfico
anterior.
A continuación expresamos las tablas en formato SQL.
-- Base de datos: `sehcyt`
USE `sehcyt` ;
-- ------------------------------------------------------ Table `sehcyt`.`Usuario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Usuario` (
`numero` INT NOT NULL AUTO_INCREMENT ,
`dni` VARCHAR(45) NOT NULL ,
`nombre` VARCHAR(45) NOT NULL ,
`nombreusuario` VARCHAR(45) NOT NULL ,
`password` VARCHAR(45) NOT NULL ,
`apellido1` VARCHAR(45) NOT NULL ,
`apellido2` VARCHAR(45) NULL ,
`mail` VARCHAR(45) NOT NULL ,
`telefono` INT NULL ,
`direccion` VARCHAR(45) NULL ,
`localidad` VARCHAR(45) NULL ,
`cuenta bancaria` VARCHAR(45) NULL ,
`activo` TINYINT(1) NULL ,
`admin` TINYINT(1) NULL ,
`tesorero` TINYINT(1) NULL ,
`fechaalta` DATE NULL ,
PRIMARY KEY (`numero`) ,
UNIQUE INDEX `nombreusuario_UNIQUE` (`nombreusuario` ASC) ,
UNIQUE INDEX `dni_UNIQUE` (`dni` ASC) );
-- ------------------------------------------------------ Table `sehcyt`.`Tema`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Tema` (
`idTema` INT NOT NULL AUTO_INCREMENT ,
`usuario` VARCHAR(45) NULL ,
`asunto` VARCHAR(45) NULL ,
`mensaje` MEDIUMTEXT NULL ,
`fecha` DATE NULL ,
PRIMARY KEY (`idTema`),
Página 42 de 95
Memoria PFC SEHCYT
Daniel Delgado
INDEX `escribe` (`usuario` ASC) ,
CONSTRAINT `escribe`
FOREIGN KEY (`usuario` )
REFERENCES `sehcyt`.`Usuario` (`nombreusuario` ) );
-- ------------------------------------------------------ Table `sehcyt`.`Noticia`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Noticia` (
`idNoticia` INT NOT NULL AUTO_INCREMENT ,
`titulo` VARCHAR(45) NULL ,
`texto` LONGTEXT NULL ,
`fechapubli` DATE NULL ,
PRIMARY KEY (`idNoticia`) );
-- ------------------------------------------------------ Table `sehcyt`.`Acta`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Acta` (
`idActa` INT NOT NULL AUTO_INCREMENT ,
`fechapubli` DATE NULL ,
`ruta` VARCHAR(45) NULL ,
PRIMARY KEY (`idActa`) );
-- ------------------------------------------------------ Table `sehcyt`.`Revista`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Revista` (
`idRevista` INT NOT NULL AUTO_INCREMENT ,
`fechapubli` DATE NULL ,
`ruta` VARCHAR(45) NULL ,
PRIMARY KEY (`idRevista`) );
-- ------------------------------------------------------ Table `sehcyt`.`Libro`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Libro` (
`idLibro` INT NOT NULL AUTO_INCREMENT ,
`nombre` VARCHAR(45) NOT NULL ,
`autor` VARCHAR(45) NOT NULL ,
`fechapubli` VARCHAR(45) NULL ,
`descripcion` LONGTEXT NULL ,
Página 43 de 95
Memoria PFC SEHCYT
Daniel Delgado
PRIMARY KEY (`idLibro`) );
-- ------------------------------------------------------ Table `sehcyt`.`Comentario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Comentario` (
`idComentario` INT NOT NULL AUTO_INCREMENT ,
`tema` INT NULL ,
`usuario` VARCHAR(45) NULL ,
`fecha` DATE NULL ,
`mensaje` MEDIUMTEXT NULL ,
PRIMARY KEY (`idComentario`),
INDEX `tiene` (`tema` ASC) ,
INDEX `escribe_` (`usuario` ASC) ,
CONSTRAINT `tiene`
FOREIGN KEY (`tema` )
REFERENCES `sehcyt`.`Tema` (`idTema` ),
CONSTRAINT `escribe_`
FOREIGN KEY (`usuario` )
REFERENCES `sehcyt`.`Usuario` (`nombreusuario` ) );
-- ------------------------------------------------------ Table `sehcyt`.`Cuota`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sehcyt`.`Cuota` (
`idCuota` INT NOT NULL AUTO_INCREMENT ,
`fecha` DATE NULL ,
`cantidad` INT NULL ,
`usuario` VARCHAR(45) NULL ,
PRIMARY KEY (`idCuota`) ,
INDEX `paga` (`usuario` ASC) ,
CONSTRAINT `paga`
FOREIGN KEY (`usuario` )
REFERENCES `sehcyt`.`Usuario` (`nombreusuario` ) );
3.2.3. Normalización del modelo lógico de datos
El objetivo de esta tarea es comprobar si los modelos anteriores cumplen con la tercera forma
normal.
Tras analizar este hecho se comprueba que todas las tablas cumplen con esta forma normal
con lo cual el diseño no sufre ninguna modificación.
Página 44 de 95
Memoria PFC SEHCYT
Daniel Delgado
3.2.4. Diseño físico de la base de datos
A la vista del número de tablas y sus campos se prevé que nuestra base de datos no sea
especialmente grande. Es por esto que no se crearán índices diferentes de los de las claves
primarias o foráneas ni otras estructuras especiales de almacenamiento.
3.2.5. Modificaciones al diseño de la base de datos
Tras analizar el diseño y ver que podrían mejorarse ciertos aspectos a continuación se
describen en esta tarea los cambios que se han ido realizando en la base de datos.

Nuevo campo en la tabla tema llamado fechultcom en el que se almacena la fecha del
último comentario dependiente de ese tema concreto.
ALTER TABLE `tema` ADD `fechultcom` DATE NOT NULL
3.3.
Diseño de interfaces
El diseño del portal web seguirá los siguientes estilos. El fondo será de color gris que contrasta
con otro azul mucho más oscuro para los menús. Este contraste es evidente y su lectura es
muy clara. Además, al elegir un color muy suave para el fondo nos aseguramos que el resto del
contenido que será de color negro se lea con claridad. La cabecera será una imagen con
aproximadamente los mismos colores y en el que se pueden ver las siglas de la sociedad.
A continuación mostramos una interfaz de la página principal en la que su diseño es ya
prácticamente definitivo. El diseño final variará muy poco de este.
Interfaz Página Principal
Página 45 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 46 de 95
Memoria PFC SEHCYT
Daniel Delgado
4. Implementación
Este proceso tiene como objetivo principal la creación del entorno de trabajo y la generación
del código que dará resultado a nuestra aplicación.
4.1.
Instalación del entorno
4.1.1. Implantación de la base de datos
Tras el diseño de la base de datos la implantación de esta se ha hecho bajo MySQL. Se han
cargado algunos datos en las tablas creadas para poder realizar pruebas y nos hemos apoyado
cuando lo hemos necesitado en herramientas tales como MySQL Workbench 5.2 CE y el propio
phpMyAdmin por comodidad y sencillez.
Para la realización del código se ha trabajado en el puesto personal del proyectando por lo que
la base de datos con estos datos iniciales quedaba almacenada ahí.
Inicialmente la base de datos ha sido creada bajo el diseño inicial. Para los cambios posteriores
simplemente se han añadido los campos necesarios insertando el código SQL en
phpMyAdmin.
4.1.2. Preparación del entorno para la generación de código
A la hora de crear el código fuente de la aplicación nos hemos ayudado de Adobe
Dreamweaver CS3.
Para la creación de las imágenes y/o logos hemos usado Adobe Photoshop CS4.
Para poder trabajar en el puesto del proyectando hemos necesitado instalar en ese puesto un
servidor independiente. En este caso, para nuestra tarea hemos usado un servidor bajo
licencia GNU, XAMPP en la versión 2.5, que consiste en la base de datos MySQL, el servidor
web Apache, Mercury para el sistema de correo electrónico y el lenguaje PHP entre otras
cosas.
Para el sistema de correo electrónico se ha configurado en Mercury lo necesario para que
envíe los correos a y mediante la dirección de correo [email protected] que ha sido creada
para nuestra tarea.
En nuestro caso, el archivo PHP.ini no hemos tenido que modificarlo en ningún caso ya que los
valores por defecto nos han servido para nuestros objetivos.
Página 47 de 95
Memoria PFC SEHCYT
4.2.
Daniel Delgado
Generación de código
4.2.1. Maquetación
En la primera fase de la implementación se lleva a cabo la maquetación de la interfaz. Para ello
se ha utilizado CSS con etiquetas <div>. A cada uno de estas etiquetas le denominamos capa.
En nuestra aplicación hemos creado un archivo ‘estilos.css’ con el cual hemos definido la
siguiente estructura de capas.
contenedor
cabecera
lateral
navbar
conten
pie
El contenedor exterior tiene una anchura de 744 pixeles y una altura ‘automática’ que
depende de las demás capas.
La capa lateral tiene una anchura del 20% del ancho del contenedor exterior. Por su parte, la
capa conten ocupa un 76%. Así tenemos espacio entre ellas para un mejor diseño. Dentro de
esta capa conten también tenemos una capa de altura y anchura automática que se sitúa en la
parte de arriba y que nos servirá como menú para las secciones de los socios y/o del
administrador.
Finalmente, en la parte de abajo tenemos la capa llamada pie que ocupa el ancho total del
contenedor.
Cada una de estas capas tienen sus propias características y propiedades de diseño. Todas ellas
especificadas en el archivo estilos.css.
Página 48 de 95
Memoria PFC SEHCYT
Daniel Delgado
4.2.2. Estilo
El fondo de nuestra aplicación tendrá un color gris (#cccccc) que contrasta con el negro de las
letras del contenido y con el color azul (#134878) del menú. Hemos buscado colores que
contrasten entre sí para que la lectura sea cómoda.
En el menú de la capa lateral, que es de color azul oscuro, las letras (que son los hipervínculos
a las secciones del portal) son del color del fondo lo que nos permite leerlas sin problemas.
En la capa denominada navbar podemos encontrar la barra de navegación para los socios. En
ella se distinguen varios botones que siguen el mismo estilo de colores y que nos permiten
consultar las secciones privadas para los socios, para el tesorero o para el tesoreroadministrador.
Todas las fuentes tanto por tamaño como por tipografía nos permiten una gran legibilidad.
Para hacernos una idea del estilo de la aplicación mostramos algunas de las interfaces más
representativas. Estas interfaces ya definitivas apenas han variado del diseño propuesto en
“3.3 Diseño de interfaces”.
Interfaz Noticias
Página 49 de 95
Memoria PFC SEHCYT
Daniel Delgado
Interfaz Biblioteca
Interfaz Dialogo Login
Página 50 de 95
Memoria PFC SEHCYT
Daniel Delgado
Interfaz Zona Privada
Interfaz Listado de Socios 'Administrador'
Página 51 de 95
Memoria PFC SEHCYT
Daniel Delgado
Interfaz Temas Foro 'Administrador'
Interfaz Comentarios Foro 'Administrador'
Página 52 de 95
Memoria PFC SEHCYT
Daniel Delgado
Interfaz Nuevo Tema Foro
4.2.3. Navegabilidad
La cabecera del portal es un hipervínculo a las áreas iniciales. Los hipervínculos del menú
lateral nos llevan a diferentes áreas de información.
Una vez que un usuario se ha logueado, el menú lateral permanece prácticamente igual salvo
que el enlace para entrar se cambia y aparece el link para visitar el foro de la sociedad. Además
aparece una barra de navegación con más enlaces.
En esa barra de navegación se puede ver un enlace ‘Salir’ que cierra la sesión actual que se ha
abierto al hacer el login, borra las variables de sesión creadas y nos devuelve a la página inicial
mediante la función header.
4.2.4. Páginas estáticas
Las páginas estáticas de la aplicación están escritas en formato HTML y son aquellas que nos
muestran información por lo general pública. Toda esta información ha sido extraída de la
página actual de la sociedad alojada en los servidores de la universidad de La Rioja,
http://www.unirioja.es/dptos/dmc/Sehcyt/ .
Página 53 de 95
Memoria PFC SEHCYT
Daniel Delgado
Además, las secciones que hay en esta página ya existente también se han respetado. En
nuestro nuevo portal tenemos las mismas secciones además de las nuevas a las que
obviamente se accede mediante nuevos links.
4.2.5. Acceso a la zona de socios
Para poder entrar a la zona restringida es necesario loguearse, es por esto que necesitamos
tener la seguridad de que ningún usuario no reconocido entre la zona privada. Para ello, en las
páginas privadas incluiremos al inicio un archivo ‘seguridad.php’ (o ‘seguridadadmin.php’, o
‘seguridadteso.php’ si corresponde) en el cual si la variable de sesión validado (“adminis” en el
caso del administrador, o “estesorero” en el caso del tesorero) no es “si” se redirige a la página
del login.
Esto nos ayuda en la seguridad porque si un usuario malintencionado escribiese el nombre de
la url directamente en el navegador no le dejaría entrar.
El archivo seguridad.php es:
<?
session_start();
if( $_SESSION["validado"]!="si"){
header("Location: ../index.php?page=entrar&errorusuario=si");
exit();
}
?>
Los archivos ‘seguridadadmin.php’ y ‘seguridadteso.php’ siguen el mismo estilo salvo que
cambiamos las variables de sesión.
Estas variables de sesión se crean en la función ‘validar.php’ al reconocer al usuario logueado,
esta función comprueba que tipo de socio es y crea la variable cuando el usuario escribe su
nombre de usuario y su contraseña. Además nos redirige a la zona correspondiente de acuerdo
al nivel de usuario que sea.
4.2.6. Foro
El foro de la sociedad está separado en dos partes, por un lado los temas y por otro los
comentarios a ese tema.
Cualquier socio de la sociedad puede escribir un nuevo tema. Todos estos son listados en la
página foro.php y para cada uno de los temas aparece el número de respuestas que tiene. En
esta página los temas están ordenados de acuerdo a la fecha en la que se ha introducido el
último comentario. De esta forma, si un tema ha sido creado hace mucho tiempo aparecerá en
primer lugar si alguien lo ha comentado recientemente. Para esto ha sido necesario actualizar
la tabla tema cada vez que se actualizaba la tabla comentario.
Página 54 de 95
Memoria PFC SEHCYT
Daniel Delgado
Al insertar un tema o un comentario se toma la fecha actual mediante la función propia de php
date("Y-m-d"); y lo mostramos usando también la función substr(); para extraer por
separado el día, el mes y el año y poder mostrarlo más claramente.
Al hacer click sobre las respuestas podemos ver el texto completo junto con los comentarios.
Estos comentarios también son ordenados por la fecha en la que se escribieron.
4.2.7. Correo electrónico
Como ya se ha explicado anteriormente para el sistema de correo electrónico se ha
configurado en Mercury lo necesario para que envíe los correos a y mediante la dirección de
correo ‘[email protected]’ que ha sido creada para nuestra tarea.
Si el sistema se instalase en otro servidor habría que configurar el sistema de correo de
acuerdo a la configuración de ese servidor.
Si un usuario quiere ser socio puede pedir serlo enviando un correo electrónico directamente
desde la aplicación. En ella no tendrá que escribir ninguna dirección porque mediante la
función mail(); lo hacemos sin problemas.
Por otra parte, si el usuario se ha logueado y es socio de SEHCYT la aplicación permite enviar
correos electrónicos con su nombre de usuario a cualquier dirección de correo. La dirección
desde la que se envían estos correos es la propia de la aplicación ‘[email protected]’ y
siempre el nombre de usuario que envía el correo aparecerá en el cuerpo del mensaje.
Esta función también la realizamos sin problemas, simplemente tendremos que pasar como
primer parámetro de la función mail(); la dirección escrita e insertar al inicio del cuerpo del
mensaje creado el nombre de usuario que lo ha escrito.
A su vez, cuando se quieren enviar correos a varios destinatarios elegimos mediante una lista
desplegable a quién queremos enviarlo.
Esto nos lleva a una página en la que escribir el mensaje y a la cual mediante el método “get”
le hacemos saber cuál de los cuatro tipos de mail múltiple se quiere enviar. A través de
consultas a la base de datos obtenemos las direcciones de correo y luego tenemos que
concatenar todas esas direcciones de forma seguida separándolas mediante comas. Esto lo
realizamos recorriendo con un “while” todos los resultados obtenidos.
Página 55 de 95
Memoria PFC SEHCYT
Daniel Delgado
$aa="";
while ($registro = mysql_fetch_array($resultado))
{
$b = $registro['mail'];
$aa=$aa.$b.", ";
$mail=$aa;
}
Completamos los campos necesarios en la función mail(); con una cabecera especial porque
los mails se envían como copia oculta BCC. La primera variable de la función es una cadena
vacía y el header queda de la siguiente manera: $headers = "Bcc: ".$email."\r\n"; teniendo en
la variable $email todas las direcciones de correo separadas por comas.
En el cuerpo del mensaje además de lo que el usuario escribe incluimos quién es el usuario que
envía el mensaje de correo electrónico.
Cabe destacar que los mensajes de correo no serán almacenados por el sistema ni tampoco
existirá un servidor de almacenamiento de estos correos, con lo cual, la función de lectura de
correo se hará siempre desde el correo propio y privado del socio, externo a la sociedad. El
cumplimiento de este requisito se separa bastante del alcance real de este PFC.
4.2.8. Revistas/actas y biblioteca
En el área de revistas o actas se ha seguido el mismo procedimiento porque ambas secciones
alojarán el mismo tipo de archivos.
Cada una de las actas (o revistas) vendrá identificada por la fecha ya que para el usuario es
más cómodo. Aún así cada una de las actas tiene internamente un número en la base de datos.
Obtenemos las revistas que son de hace más de dos años simplemente restando 730 días a la
fecha actual, de esta manera obtenemos una fecha por la cual comparar al hacer la consulta.
Al insertar una revista o acta se crea en la base de datos un nuevo registro con la ruta que se
ha seleccionado. Además para evitar duplicidad de nombres se colocan 3 caracteres aleatorios
delante del nombre del archivo, de esta manera la ruta de los archivos queda por ejemplo así:
“privada/filesactas/actas/6de_acta1.pdf” o “privada/filesrevistas/revistas/0cd_revista1.pdf”.
Cuando queremos borrar un acta del sistema tenemos que borrar tanto el registro de la base
de datos como el archivo en sí.
Primeramente se debe borrar el archivo y después el registro. Dentro del registro tenemos la
ruta, y así, con la función unlink($ruta); el archivo es borrado. Una vez eliminado ya podemos
borrar el registro de la base de datos que lo haremos simplemente mediante SQL.
Las revistas siguen los mismos métodos que las actas.
Página 56 de 95
Memoria PFC SEHCYT
Daniel Delgado
Para el caso de la biblioteca tenemos que hacer una diferenciación ya que sólo el
administrador puede insertar, eliminar o modificar libros, es por esto que tendremos que ver si
la variable ‘adminis’ (variable de sesión) tiene el valor “si” para mostrar esas opciones.
4.2.9. Sistema de publicación de noticias
Para ver las noticias simplemente tomamos mediante una sentencia SQL a la base de datos y
obtenemos todas las noticias.
El listado de noticias será público para todo usuario de la web, pero será únicamente el
administrador el que tenga la potestad de incluir o borrar noticias en el sistema.
Mostramos los campos e igual que para el caso del foro mostramos la fecha en formato “día
de mes de año” extrayendo del campo ‘fecha’ los datos con la función substr();.
En el archivo ‘estilos.css’ se incluye el formato del título de la noticia (#titulonoticia) y de la
fecha (#fecha).
4.2.10.
Paginación
En ciertas secciones de la aplicación los listados de datos que aparecen pueden ser muy largos
y en muchos casos podría dar lugar tanto a páginas muy extensas y complicadas de leer como
a grandes consultas a la base de datos que podrían ralentizar la aplicación.
Por estas razones hemos optado por paginar los resultados cuando mostramos los libros de la
aplicación, en el apartado de noticias y en el foro tanto para listar los temas como para
mostrar los comentarios.
El proceso de paginación es el siguiente (tomamos como ejemplo el caso del listado de
noticias):
1. Calculamos el número de noticias total.
2. Comprobamos si estamos entrando en la página a través de una página anterior y que
ya ha sido paginada o si es totalmente externa y empezamos de cero comprobando si
la variable $pagina existe o no. Si no existe inicializamos $pagina.
3. Calculamos el número de páginas ($numPags) que habrá dividiendo el número de
noticias entre el número de estas que queremos que aparezcan en cada página
($registros).
4. Obtenemos únicamente los registros que queremos haciendo la consulta en MySQL
con la clausula “LIMIT” indicándole el primer registro a mostrar y la cantidad de ellos
que queremos ver.
$conexion = get_db_conn();
include('../consultas.php');
Página 57 de 95
Memoria PFC SEHCYT
Daniel Delgado
$resultado=lasnoticias($conexion);
$totalresultados = mysql_num_rows($resultado);
$registros=2;
////////////////////////////////////
if(!isset($pagina))
{
$pagina=1;
}
//calculo del limite inferior
$limitInf=($pagina-1)*$registros;
//calculo del numero de paginas
$numPags=ceil($totalresultados/$registros);
$resultado1=lasnoticias2($conexion,$limitInf,$registros);
5. Para hacer los botones de navegación simplemente tenemos que tener en cuenta la
variable $pagina y hacer un listado con el número de páginas ($numPags) que tenemos
calculado.
if(($pagina - 1) > 0) {
echo "<a href=privada.php?page=noticias&pagina=".($pagina-1).">< Anterior</a>
";
}
for ($indice=1; $indice<=$numPags; $indice++){
if ($pagina == $indice)
{
echo "<b>".$pagina."</b> ";
}
else
{
echo "<a
href=privada.php?page=noticias&pagina=".$indice.">".$indice."</a> ";
}
}
if(($pagina + 1)<=$numPags)
{
echo " <a href='privada.php?page=noticias&pagina=".($pagina+1)."'>Siguiente
></a>";
}
6. Los botones quedarán de la siguiente manera (pudiendo aparecer más números de
página en función de las noticias que haya):
4.2.11.
Estructura de archivos y carpetas
Página 58 de 95
Memoria PFC SEHCYT
Daniel Delgado
Tal y como se había diseñado la arquitectura de la aplicación existen dos capas, la capa de
datos y la de presentación.
De este modo, hemos decidido crear dos archivos con las funciones necesarias y que hacen las
consultas, inserciones o modificaciones a la base de datos, estos son, ‘consultas.php’ y
‘consultasforo.php’. Estos dos archivos conforman la capa datos y de este modo todos los
demás archivos y carpetas estarán destinados a la capa de presentación.
Se han decidido colocar las funciones del foro en otro archivo aparte simplemente por
comodidad y limpieza.
La estructura de las carpetas del sistema es la siguiente:
sehcyt
sociosp
foro
funciones
privada
pagesp
funciones
foro
pages
filesrevistas
revistas
jscripts
images
auxi
filesactas
actas
plantilla
En el nivel principal (sehcyt) tenemos los archivos ‘index.php’, ‘socios.php’, ‘estilos.css’ y los
mencionados ‘consultas.php’ y ‘consultasforo.php’.
El ‘index.php’ hace referencia a las páginas que se encuentran en la carpeta pages.
El ‘socios.php’ que es la página a la cual los socios (que no son administradores) acceden hace
referencia a sociosp y en la cual se encuentran todos los archivos necesarios así como las
carpetas con funciones específicas, el foro o la plantilla para la web de los congresos.
Si un administrador es el que se registra automáticamente es redirigido a ‘privada.php’ que se
encuentra en la carpeta privada. A partir de ahí, el administrador tiene acceso a todos los
archivos en pagesp con las funciones específicas, además de los archivos del foro para el caso
de que sea administrador así como los archivos para la gestión de revistas y actas que se
encuentran en filesrevistas y filesactas.
Dentro de estas dos carpetas tenemos respectivamente una carpeta llamada revistas y otra
llamada actas que son las encargadas de almacenar físicamente los archivos.
En la carpeta images se almacenan todos los archivos de imágenes que se usan en todo el sitio
web.
Página 59 de 95
Memoria PFC SEHCYT
Daniel Delgado
La carpeta jscripts contiene los archivos necesarios para poder usar “TinyMCE”, un editor
WYSIWYG para poder escribir con formato fácilmente.
Por último encontramos la carpeta auxi en la que encontramos varios archivos necesarios para
el funcionamiento dinámico de la aplicación; contamos con el archivo ‘conexiondb.php’ para la
conexión al servidor (en nuestro caso y primeramente al localhost) y a la base de datos
(sehcyt).
<?
$GLOBALS['DB_IP'] = 'localhost';
$GLOBALS['DB_USER'] = 'root';
$GLOBALS['DB_PASS'] = '';
$GLOBALS['DB_NAME'] = 'sehcyt';
function get_db_conn() {
$conn = mysql_connect($GLOBALS['DB_IP'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASS']);
mysql_select_db($GLOBALS['DB_NAME'], $conn);
if (!$conn) {
echo "No pudo conectarse a la BD: " . mysql_error();
exit;
}
return $conn;
}
?>
También tenemos el archivo ‘salir.php’ que nos permite cerrar la sesión abierta al loguearse.
Además, ‘validar.php’ es el encargado de aceptar o no la conexión a un usuario que escribe su
nombre de usuario y su contraseña. Este archivo creará las variables de sesión necesarias que
determinan si un usuario es simplemente socio, tesorero o administrador.
En esta carpeta auxi también podemos encontrar los archivos de seguridad ya mencionados
anteriormente que sirven para que un usuario malintencionado no puede entrar en la
aplicación sino se ha logueado y ha sido validado.
4.2.12.
JavaScript
En este apartado se explican las funciones JavaScript que se usan en la aplicación.
4.2.12.1. Función borrar
A la hora de borrar un registro de la base de datos no tenemos mayor problema que usar el
comando DELETE de SQL, esto no nos causa mayor problema. Ahora bien, el borrado es
Página 60 de 95
Memoria PFC SEHCYT
Daniel Delgado
irreversible y es importante que no se borre automáticamente ya que podría haber un error al
hacer click sobre un registro.
Es por esto que nos interesa que haya una ventana (en nuestro caso un pop-up) para
confirmar el borrado. Esto lo logramos con una función en JavaScript.
Tomamos como ejemplo el borrado de un socio que se encuentra en ‘listado.php’ para el caso
del administrador que es quien puede hacerlo.
<script language="JavaScript">
function Borra(idsocio)
{
var agree=confirm("¿Realmente desea eliminar el socio "+idsocio +"?");
if (agree) { document.location="pagesp/funciones/borra.php?id="+idsocio; }
else return false ;
}
</script>
Este script nos mostraría una ventana como la siguiente:
En el caso en el que se acepte, el script se dirige a ‘borra.php’ y este archivo aplica el comando
DELETE mencionado.
Seguimos el mismo esquema para el caso de borrado de libros, actas, revistas o mensajes del
foro.
4.2.12.2. TinyMCE
TinyMCE, desarrollado por Moxiecode Systems, es un editor visual gráfico que permite
convertir las áreas de texto en editores WYSIWYG rellenando una serie de opciones.
Página 61 de 95
Memoria PFC SEHCYT
Daniel Delgado
En nuestra aplicación hemos decidido que algunas de las áreas de texto lleven el editor, estas
son las de los mensajes del foro, o las de la inclusión de noticias y tendrán opciones de formato
de texto como: negrita, cursiva, subrayado y tachado, alineación de texto: izquierda, centrado,
derecha o justificado, posibilidad de crear listas ordenadas o desordenadas, de insertar
hipervínculos, o incluso deshacer o rehacer los cambios entre otras opciones.
Por ejemplo, al insertar un nuevo tema, el área de texto será de la siguiente manera:
Para ello tenemos que incluir la carpeta jscripts (descargada de la página
http://tinymce.moxiecode.com/) y hacer referencia a ella. Incluimos el siguiente código:
<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme: "advanced",
style_formats : [
{title : 'Bold text', inline : 'b'},
{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}}
]
});
</script>
Con este código configuramos las opciones que queremos que aparezcan en el área de texto.
Página 62 de 95
Memoria PFC SEHCYT
Daniel Delgado
5. Pruebas
Este proceso tiene por objetivo hacer las pruebas necesarias para comprobar el correcto
funcionamiento del sistema y la creación de los manuales de usuario que sean necesarios.
5.1.
Ejecución de pruebas
Según la sección ‘Análisis’ seguiremos una tabla para cada prueba realizada y su resolución.
Prueba nº: 1
Fecha:
27 / Abr / 2011
.
Se prueba: Funcionamiento de la parte estática. Información inicial.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


Todas las secciones se ven correctamente.
Prueba ejecutada correctamente.
Prueba nº: 2
Fecha:
27 / Abr / 2011
.
Se prueba: Login de un usuario registrado.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


Los usuarios acceden insertando su nombre de usuario y su contraseña.
Prueba ejecutada correctamente.
Prueba nº: 3
Fecha:
27 / Abr / 2011
.
Se prueba: Acceso a zonas restringidas
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:



Con acceso si el usuario ha sido validado.
Diferenciación entre socio, tesorero y administrador.
Prueba ejecutada correctamente.
Página 63 de 95
Memoria PFC SEHCYT
Prueba nº: 5
Daniel Delgado
Fecha:
27 / Abr / 2011
.
Se prueba: Insertar nuevo tema en el foro y orden de aparición.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


Se inserta un nuevo tema y aparece en primera posición.
Prueba ejecutada correctamente.
Prueba nº: 6
Fecha:
27 / Abr / 2011
.
Se prueba: Insertar nuevo comentario en un tema del foro y orden de aparición.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:



Se inserta un nuevo comentario asociado a un tema.
Los temas se ordenan de acuerdo al último comentario escrito.
Prueba ejecutada correctamente.
Prueba nº: 7
Fecha:
27 / Abr / 2011
.
Se prueba: Enviar correo electrónico pidiendo ser socio.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


La cuenta recibe el mail enviado por la aplicación.
Prueba ejecutada correctamente.
Página 64 de 95
Memoria PFC SEHCYT
Prueba nº: 8
Daniel Delgado
Fecha:
27 / Abr / 2011
.
Se prueba: Enviar correo electrónico a una dirección mail desde SEHCYT
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


El mail llega con el nombre de usuario de quien lo envía.
Prueba ejecutada correctamente.
Prueba nº: 9
Fecha:
28 / Abr / 2011
.
Se prueba: Enviar correo electrónico múltiple.
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:


El mail llega tras un pequeño retraso de algunos segundos pero sin problemas a todas
las direcciones especificadas.
Prueba ejecutada correctamente.
Prueba nº: 10
Fecha:
28 / Abr / 2011
.
Se prueba: Inserción o eliminación de archivos del sistema. (revistas/actas)
Probador: Daniel Delgado (proyectando)
Satisfactorio: Sí
Comentarios:



Tanto para las revistas como las actas la inserción se hace sin problemas.
El administrador elimina los archivos del sistema.
Prueba ejecutada correctamente.
Página 65 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 66 de 95
Memoria PFC SEHCYT
Daniel Delgado
6. Instalación y configuración de un
servidor virtual
Este proceso no había sido previsto inicialmente en la planificación pero finalmente y para
completar el proyecto se ha decidido almacenar la web en un servidor abierto al público y que
el portal no funcionase únicamente de manera local.
Para ello, y dado que es un proyecto final de carrera se ha optado por tomar herramientas que
fuesen gratuitas. Además, usaremos una de las tecnologías que está más en auge a día de hoy,
el “Cloud Computing” o simplemente “Cloud”.
Las ventajas del cloud computing son varias, por un lado y prácticamente lo más importante es
el ahorro de dinero que supone, no tendremos que comprar hardware, además, es totalmente
escalable, por otro lado, las empresas que nos ofrecen este tipo de servicio, en nuestro caso
Amazon se compromete a una alta disponibilidad del servicio así como de copias de seguridad
de nuestros sistemas.
La empresa Amazon proporciona un servicio que ofrece capacidad informática con tamaño
modificable en la nube. Para nuestro proyecto, usaremos la capa de uso gratuito de Amazon
Web Services que nos ofrece 1 año gratis de una instancia Linux en una de sus máquinas
virtuales.
De esta manera, nuestro servidor será un servidor virtual.
6.1.
Instalación del servidor virtual
Una vez que nos hemos dado de alta en el servicio Amazon Web Service y contratamos nuestra
máquina, tenemos que instalar tanto el sistema operativo como todo lo necesario para que
nuestra máquina sea un servidor web totalmente funcional.
Amazon nos proporciona una DNS pública que es la que utilizaremos tanto para conectarnos a
la máquina, por ejemplo, a través de un programa como Putty a través del puerto 22, como
para la visualización del portal web a través de un navegador. En nuestro caso, será la
siguiente:
ec2-46-137-17-160.eu-west-1.compute.amazonaws.com
A continuación mostramos como queda el sistema visitando la página desde uno de los
navegadores más comunes.
Página 67 de 95
Memoria PFC SEHCYT
Daniel Delgado
Web en servidor virtual
6.1.1. Sistema operativo
Como ya hemos comentado, hemos optado por herramientas de software libre y hemos
instalado un sistema operativo Linux, concretamente con la distribución Ubuntu 10.04.2.
Inicio SO Ubuntu
Página 68 de 95
Memoria PFC SEHCYT
Daniel Delgado
6.1.2. Instalación / Configuración Apache
Para instalar Apache simplemente teníamos que ejecutar el comando:
sudo aptitude install apache2
Una vez que tenemos Apache ya instalado tendremos que configurarlo de acuerdo a nuestras
necesidades.
Debemos tener en cuenta ciertas directivas que tenemos en el archivo default en
/etc/apache2/sites-available como ServerAdmin [email protected] que será lo que aparecerá
en los mensajes de error generados por el servidor.
También debemos tener la directiva DocumentRoot /var/www, esta ruta nos servirá para
alojar nuestros archivos fuente en ese directorio. Además, queremos que la página inicial que
se muestre cuando escribimos la dns pública sea ‘index.php’ y para ello hemos colocado la
directiva DirectoryIndex index.php en <Directory /var/www/>.
Otra de las cosas que hemos modificado es la información que se muestra en las páginas de
error. Dentro del archivo ‘security’ que podemos encontrar en /etc/apache2/conf.d/ tenemos
que cambiar la directiva ServerTokens a Prod que es la más restrictiva. Con ello conseguimos
que solo aparezca el nombre del servidor web (Apache) y no su versión y otros datos que
podrían dar información a usuarios malintencionados.
6.1.3. Instalación / Configuración PHP
Tal y como se ha hecho en el caso anterior, la instalación de PHP se realiza mediante el
comando aptitude install php5. Necesitamos también los archivos necesarios para que MySQL
soporte PHP5 y apache2 con lo que instalamos los módulos libapache2-mod-auth-mysql y
php5-mysql.
6.1.4. Instalación / Configuración MySQL
Como anteriormente, para instalar MySQL simplemente tenemos que ejecutar el comando
(instalamos 3 paquetes):
apt-get install mysql-server mysql-common mysql-client
Una vez que tenemos el SGBD instalado podemos modificar el archivo de configuración
‘my.cnf’ que está en /etc/mysql/. En este archivo se configuran aspectos generales como la
contraseña, el puerto a utilizar pero no modificaremos nada porque la configuración por
defecto nos sirve.
Además, hemos instalado phpMyAdmin, lo que nos ayudará a la hora de cargar la base de
datos en nuestro servidor.
Página 69 de 95
Memoria PFC SEHCYT
Daniel Delgado
Un aspecto muy importante a tener en cuenta es que tenemos que modificar el archivo fuente
que nos permite conectar nuestra web con la base de datos. La conexión a la base de datos la
realizamos a través del archivo ‘conexiondb.php’. Mientras que en el archivo local teníamos la
siguiente definición de variables:
$GLOBALS['DB_IP'] =
$GLOBALS['DB_USER']
$GLOBALS['DB_PASS']
$GLOBALS['DB_NAME']
'localhost';
= 'root';
= '****';
= 'sehcyt';
Ahora, tenemos que poner $GLOBALS['DB_IP'] = '10.48.237.196'; que es la
dirección ip privada que nos ha proporcionado el servicio de Amazon como ip privada.
6.1.5. Instalación / Configuración Exim4
Tal y como se hacía en la máquina local, tenemos que configurar el servidor para que podamos
enviar correos. Por ello se ha instalado un servidor smtp, concretamente Exim4. Hemos
elegido este servidor porque es bastante conocido y fiable, además, nos permite con cierta
naturalidad configurarlo para enviar correos desde nuestra cuenta creada en gmail,
[email protected], sin que estos sean considerados como spam.
La instalación básica se realiza con el comando apt-get install exim4.
Hemos modificado el fichero ‘passwd.client’, en /etc/exim4/ y hemos incluido las siguientes
líneas que nos permitirán el envío a través de gmail.
gmail-smtp.l.google.com:[email protected]:contraseña
*.google.com:[email protected]: contraseña
smtp.gmail.com:[email protected]: contraseña
Además de esto, en la ruta /etc/exim4/conf.d/transport/ debemos modificar el archivo
30_exim4-config_remote_smtp_smarthost para que se utilice el puerto 587 para el correo
saliente.
Por último, al ejecutar el configurador, dpkg-reconfigure exim4-config, tenemos que poner la
opción de que el mail será enviado por un smarthost, en nuestro caso gmail, y que la dirección
para los mensajes salientes será: smtp.gmail.com::587
Página 70 de 95
Memoria PFC SEHCYT
Daniel Delgado
Configuración Exim4 (1)
Configuración Exim4 (2)
Página 71 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 72 de 95
Memoria PFC SEHCYT
Daniel Delgado
7. Gestión del plan de proyecto
La gestión del plan tiene como objetivo principal la planificación, el seguimiento y el control de
las actividades realizadas. Se realiza una comparativa entre lo que se había estimado en un
principio y lo que finalmente se ha realizado.
7.1. Duración real de los procesos, actividades
y tareas
D.- Dirección
D1.- Gestión del plan
D1.1.- Seguimiento del plan de objetivos 2 h.
D1.2.- Seguimiento del plan de comunicaciones 2 h.
D1.3.- Seguimiento del plan de riesgos 2h.
D2.- Reuniones
D2.1.- Preparación de temas a tratar 1h.
D2.2.- Exposición de temas 5h.
D2.3.- Redacción de actas 1h.
D3.- Creación del DOP
D3.1.- Recopilación de información para la realización… 5h.
D3.2.- Análisis de la información obtenida 12h.
D3.3.- Redacción de la memoria 8h.
D4.- Creación de la memoria
D4.1.- Documentación y recopilación… 10h.
D4.2.- Redacción de la memoria 40h.
D5.- Preparación de la defensa
D5.1.- Resumen con los puntos importantes 4h.
D5.2.- Preparación de material para la presentación 4h.
D5.3.- Ensayo de la defensa 4h.
6h.
7h.
25h.
50h.
12h.
Total Dirección.- 100h.
A.-Análisis
A1.- Definición del sistema
A1.1.- Determinación de los objetivos del proyecto 3h.
A1.2.- Identificación del entorno tecnológico 1h.
A1.3.- Identificación de los usuarios participantes y finales 1h.
5h.
Página 73 de 95
Memoria PFC SEHCYT
Daniel Delgado
A2.- Obtención de requisitos
12h.
A3.- Especificación de casos de uso
5h.
A4.- Definición de interfaces
A4.1.- Especificación de principios generales de la interfaz 3h.
A4.2.- Identificación de ventanas de diálogo 5h.
A4.3.- Especificación del comportamiento de la interfaz 10h.
A5.- Especificación del plan de pruebas
4h.
Total Análisis.- 44h.
Di.- Diseño
Di1.- Definición de la arquitectura del sistema
Di1.1.- Definición de los niveles de arquitectura 10h.
Di1.2.- Identificación de requisitos de diseño y construcción 1h.
Di1.3.- Especificación del entorno tecnológico 1h.
Di1.4.- Especificación de los requisitos para la utilización 1h.
Di2.- Diseño de la base de datos
Di2.1.- Diseño conceptual de la base de datos 15h.
Di2.2.- Diseño lógico de la base de datos 10h.
Di2.3.- Normalización del modelo lógico de datos 1h.
Di2.4.- Diseño físico de la base de datos 4h.
30h.
Total Diseño.- 73h.
I.- Implementación
I1.- Instalación del entorno
I1.1.- Implantación de la base de datos 10h.
I1.2.- Preparación del entorno para la generación de código 5h.
P.-Pruebas
P1.-Ejecución de pruebas
P1.1.- Pruebas de integración en el sistema 0h.
P1.2.- Pruebas del sistema 2h.
P2.- Creación de manuales de usuario
13h.
30h.
Di3.- Diseño de interfaces
I2.- Generación de código
18h.
15h.
aprox. 190 - 200h.
Total Implementación.- 245h.
2h.
10h.
Total Pruebas.- 12h.
Página 74 de 95
Memoria PFC SEHCYT
Daniel Delgado
In.- Integración
In1.- Establecimiento del plan de implantación
1h.
In1.1.- Instalación y configuración de un servidor virtual
22h.
In2.- Carga de datos
0h.
In3.- Presentación del sistema
In3.1.- Convocatoria de la presentación del sistema 1h.
In3.2.- Aprobación del sistema 1h.
2h.
Total Integración.- 25h.
Así, el total de horas reales para la realización del proyecto es de 499 horas.
7.2.
Comparativa de horas
La duración estimada del proyecto fue de 431 horas y la duración real ha sido de
aproximadamente 499 horas. A pesar de que la estimación nos llevaba a acabar el proyecto a
finales de agosto de 2011, el proyecto ha podido ser acabado dos meses antes. Esto ha sido
debido a que el calendario de trabajo pensado previamente no se ha seguido en ningún
momento.
Prácticamente desde el principio del proyecto se ha trabajado muchas más horas de las
esperadas, tanto los días de entre semana como en el fin de semana. Lo que al final nos ha
llevado a finalizar el trabajo antes de lo previsto.
Además, durante la época estival y gracias a la realización de cursos de formación se ha
decidido crear un servidor virtual en una plataforma bajo entorno Linux, con las herramientas
y el software necesario para no tener que alojar nuestro sistema de forma local.
Es por esto, que la planificación del proyecto que habíamos previsto ha sido modificada un
poco ya que hemos incluido el apartado ‘In1.1 Instalación y configuración de un servidor
virtual’.
En el gráfico se muestra una comparativa entre las horas estimadas y las horas reales de
trabajo.
Página 75 de 95
Memoria PFC SEHCYT
Daniel Delgado
250
200
150
100
Estimadas
50
Reales
0
Horas de trabajo estimadas / Horas reales
A continuación, se presenta un diagrama de sectores con el porcentaje de las horas dedicadas
a cada proceso con respecto a la dedicación total.
Pruebas Integración
3%
6%
Dirección
24%
Implementación
44%
Horas
estimadas
Diseño
14%
Análisis
9%
Porcentaje horas estimadas
Y, a continuación, el diagrama con las horas reales que se han dedicado.
Página 76 de 95
Memoria PFC SEHCYT
Daniel Delgado
Pruebas
2%
Integración
5%
Horas reales
Dirección
20%
Análisis
9%
Implementación
49%
Diseño
15%
Porcentaje horas reales
De esta forma, podemos concluir que del total de las horas que se han invertido, el porcentaje
dedicado al análisis y al diseño es prácticamente igual a lo estimado. Así, la dedicación que se
estimó para las pruebas y para la dirección ha sido menor, lo que ha hecho aumentar el
porcentaje que se ha destinado a los aspectos más técnicos como son la implementación y la
integración.
7.3.
Otras consideraciones
En este apartado se explican ciertos aspectos a tener en cuenta tras la realización del proyecto.
Uno de los aspectos fundamentales a tener en cuenta es que finalmente se ha instalado el
sistema en un servidor virtual como ya se explica en su sección correspondiente.
Esta opción nos ayuda a completar el sistema y que funcione de manera más real. La opción de
integrarlo en otro tipo de servidores físicos se ha desechado por el gasto económico además
de por otras razones que se explican en el apartado ‘Instalación y configuración de un servidor
virtual’.
Para el proyecto que nos ocupa no se ha realizado la carga de datos de la sociedad. Todo son
simulaciones que se ajustan de una manera bastante fiel a la realidad de los datos que serían
migrados desde los servidores actuales de la sociedad. Además, aunque el sistema es muy
sencillo de usar, necesitaríamos una pequeña formación para que los miembros de SEHCYT
utilizaran el portal.
A pesar de esto, todos los requisitos pedidos por el cliente se cumplen dentro del proyecto.
Página 77 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 78 de 95
Memoria PFC SEHCYT
Daniel Delgado
Bibliografía
Programación PHP, MySQL y Apache; Julie C. Meloni. Anaya Multimedia
MySQL 5.1; Juan Diego Gutiérrez Gallardo. Anaya Multimedia
PHP 6; Francisco Charte Ojeda. Anaya Multimedia
CSS y DHTML; Xavier Colomés Fornós. Anaya Multimedia
Fundamentos. Programación web con HTML, XHTML y CSS; Jon Duckett. Anaya Multimedia
Desarrollo web con PHP 6 y MySQL 5.1; Juan Diego Gutiérrez Gallardo. Anaya Multimedia
Recursos web:
http://tinymce.moxiecode.com/
http://weblatam.com/wp/enviar-emails-con-mercury32-y-xampp/
http://www.desarrolloweb.com/manuales/6/
http://linvx.org/Exim4Gmail
Página 79 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 80 de 95
Memoria PFC SEHCYT
Daniel Delgado
Actas
Nº 1
Fecha: 14 de febrero de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
17:00 h
Hora finalización:
17:30 h
Asistentes:
Orden del día:


Ana Romero
Daniel Delgado
Posibilidad de creación del PFC
Documentos relacionados:

Temas tratados:
 Creación del PFC sobre aplicación web para SEHCYT
 Ana Romero será directora del proyecto
 Luis Español será el cliente

Tareas pendientes:
 Reunión con Luis Español para búsqueda de requisitos y aprobación
Página 81 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 2
Fecha: 18 de febrero de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho del cliente
Hora inicio:
17:00 h.
Hora finalización:
17:30 h.
Asistentes:
Orden del día:


Luis Español
Daniel Delgado
Búsqueda de requisitos
Documentos relacionados:

Temas tratados:
 Aprobación del cliente sobre el pfc
 Requisitos que deberá tener el sistema

Tareas pendientes:
 Creación de un contrato sobre lo que debe hacer nuestra aplicación
Página 82 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 3
Fecha: 10 de marzo de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho del cliente
Hora inicio:
18:00 h
Hora finalización:
18:30 h
Asistentes:
Orden del día:


Luis Español
Daniel Delgado
Dudas sobre el login
Documentos relacionados:

Temas tratados:
 Cómo debe funcionar el login. El usuario (no socio) pide ser miembro
de la sociedad y tras la junta directiva se decide si es miembro, cuando
se decida, es el secretario como administrador el que le da de alta y le
manda los datos (usuario, contraseña) al nuevo socio

Tareas pendientes:
 Modificar requisitos, dop, o análisis, todo aquello que sea necesario
tras los temas tratados
Página 83 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 4
Fecha: 15 de marzo de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
12:00h.
Hora finalización:
12:30h.
Asistentes:


Ana Romero
Daniel Delgado
Orden del día:
Corrección de la parte de Análisis.
Documentos relacionados:
Análisis.docx

Temas tratados:
 Corrección del Análisis
 Requisitos del sistema y sus especificaciones. Hay varios requisitos que
deben de quedar mejor explicados y otros que no están bien.

Tareas pendientes:
 Preguntar a Luis las dudas que tengo para completar los requisitos y
los casos de uso.
 Dibujar los casos de uso con herencia entre los actores.
 Corrección de errores de ortografía, acentos, etc.
Página 84 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 5
Fecha: 16 de marzo de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Luis Español
Hora inicio:
18:00h
Hora finalización:
18:30h
Asistentes:
Orden del día:


Luis Español
Daniel Delgado
Aclaración de requisitos
Documentos relacionados:

Temas tratados:
 Tenía varias dudas con ciertos requisitos.
 El foro debe ser sólo para los socios.
 Los socios no pueden ver los datos personales de los otros socios.

Tareas pendientes:
 Modificar la parte del análisis de acuerdo a lo que se ha comentado.
Página 85 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 6
Fecha: 31 de marzo de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
12:00h
Hora finalización:
13:00h
Asistentes:


Ana Romero
Daniel Delgado
Orden del día:
Revisión del diseño de la aplicación
Documentos relacionados:
Diseno.docx

Temas tratados:
 Revisión del diseño de la aplicación
 Problema para realizar las tres capas típicas en la arquitectura porque
no habrá algoritmos complicados. Se opta por hacer sólo dos.
 Cambios en el diseño de la base de datos para completar las tablas, las
relaciones, etc.
 Se propone crear dos tablas, Tema y Comentario para realizar el foro y
una más, Cuota para llevar el control sobre estas.

Tareas pendientes:
 Modificar el diseño de acuerdo a lo comentado.
Página 86 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 7
Fecha: 14 de abril de 2010
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
18:00h
Hora finalización:
19:00h
Asistentes:
Orden del día:


Ana Romero
Daniel Delgado
Revisión de la implementación hecha hasta ahora
Documentos relacionados:

Temas tratados:
 Revisión de la web y de toda la implementación hecha hasta ahora.
 Cambios en diseño.

Tareas pendientes:
 Corrección de errores.
 Hablar con Luis para la creación del sistema de correo. Hay varias
dudas. No se pueden enviar correos desde los correos privados de
cada socio.
Página 87 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 8
Fecha: 25 de abril de 2010
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
12:30h
Hora finalización:
13:00h.
Asistentes:


Ana Romero
Daniel Delgado
Orden del día:
Revisión de documentos de la memoria
Documentos relacionados:
Implementacion.docx

Temas tratados:
 Revisión del documento Implementacion.docx
 Revisión del diseño para comprobar si está correcto con respecto a lo
que finalmente se ha hecho.

Tareas pendientes:
 Corrección de errores.
Página 88 de 95
Memoria PFC SEHCYT
Daniel Delgado
Nº 9
Fecha: 14 de junio de 2011
Acta de
Reunión
Portal web SEHCYT
Lugar:
Despacho de Ana Romero
Hora inicio:
12:30h
Hora finalización:
12:45h.
Asistentes:
Orden del día:


Ana Romero
Daniel Delgado
Integración/Implantación del sistema
Documentos relacionados:

Temas tratados:
 Integración del sistema en un servidor virtual.
 Pasos a seguir para incluirlo en la memoria.

Tareas pendientes:
 Creación de un nuevo punto en la memoria para explicar la integración
del sistema en el servidor virtual de Amazon.
Página 89 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 90 de 95
Memoria PFC SEHCYT
Daniel Delgado
Manual de usuario
El manual de usuario de nuestra aplicación no será un amplio manual en el que se especifiquen
paso a paso todas las opciones ya que el funcionamiento es claro y bastante obvio. A modo de
ejemplo se verán 4 opciones básicas que nos ayudan a conocer el funcionamiento general.
Acceso al sistema
Para acceder al sistema como usuario registrado simplemente hay que hacer click sobre el
botón ‘Entrar’ que se encuentra en el menú lateral. Esto nos llevará a una página en la que
deberemos escribir nuestro nombre de usuario y la contraseña.
Si el sistema valida al usuario aparecerá una barra de navegación para los servicios restringidos
a socios y el botón ‘Entrar’ se habrá convertido en un enlace al foro.
Barra de navegación tras la
validación de un socio.
Página 91 de 95
Memoria PFC SEHCYT
Daniel Delgado
Insertar/Modificar datos de un socio
Para insertar un nuevo socio o modificar los datos de alguno de estos en el sistema es
necesario que el usuario sea administrador.
Si el usuario no es administrador podrá únicamente modificar sus propios datos.
Estas opciones se pueden realizar haciendo click dentro del listado de socios y seleccionando la
opción deseada.
Para modificar los datos habrá que completar un formulario como el siguiente:
Tras completar los cambios, los datos serán guardados haciendo click en el botón ‘Insertar’ que
se encuentra al final del formulario.
Página 92 de 95
Memoria PFC SEHCYT
Daniel Delgado
Envío de correo electrónico
Para enviar un correo electrónico desde la aplicación habrá que hacer click sobre el botón de la
barra de navegación superior ‘Enviar mail’.
En esta página podremos elegir enviar un mail:
---------------------------------Enviando desde SEHCYT
---------------------------------De: josesehcyt
---------------------------------Este es un mensaje enviado desde la aplicación para mostrarlo
en el manual de usuario.
Mensaje que se recibirá en la
dirección de correo especificada
----------------------------------
Para enviar un mail múltiple a un grupo de usuarios tendremos que hacer click en el grupo y
pulsar ‘Ir’. A continuación, podremos escribir el mensaje y enviarlo.
En el caso del mail múltiple todos los correos serán enviados como copia oculta y el formato
será el mismo que el anterior.
Nota: El asunto del mail será: “Envio desde SEHCYT”.
Página 93 de 95
Memoria PFC SEHCYT
Daniel Delgado
Escribir/Responder a un tema del foro
El foro es una herramienta que nos permite escribir mensajes visibles a los miembros de la
comunidad y que estos sean respondidos por otros miembros.
Al pulsar sobre ‘Foro’ (botón solo visible si estás logueado) vemos un listado de cuatro temas
escritos. La fecha de publicación de un tema o de un comentario a ese tema será el criterio de
ordenación para su aparición. Es decir, cuando escribimos un nuevo tema, este aparecerá en
primer lugar, además, si escribimos un comentario a ese tema también ese tema aparecerá en
primer lugar a pesar de que la fecha de creación del tema sea anterior.
Para escribir un nuevo tema, tras pulsar sobre ‘Insertar nuevo tema’ y aparecerá una nueva
página en la que escribir el asunto y el mensaje.
Para contestar a un tema escribiendo un comentario simplemente hay que pulsar en
‘Responder a este tema’ que se encuentra dentro de la página de visualización de los mensajes
de los temas y de los comentarios.
Página 94 de 95
Memoria PFC SEHCYT
Daniel Delgado
Página 95 de 95
Descargar