P. 1
wae

wae

5.0

|Views: 883|Likes:

More info:

Published by: David Alejandro García Graterón on Sep 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/03/2013

pdf

text

original

Sections

  • 1.- Introducción
  • 1.1.- El cliente
  • 1.2.- El proyecto
  • 2.- Análisis
  • 2.1.- Especificación de requerimientos
  • 2.1.1.- Módulo de gestión de usuarios
  • 2.1.2.- Módulo de gestión de proyectos
  • 2.1.3.- Módulo de gestión de trabajos
  • 2.2.- Estudio de las tecnologías
  • 2.2.1.- Desarrollo mediante paquetes
  • Tabla 2.1.- Estudio de paquetes
  • 2.2.2.- Solución hecha a medida
  • Tabla 2.2.- Estudio de lenguajes
  • 2.3.- Metodología utilizada
  • Figura 2.1.- Componentes de la comunicación
  • 3.1.- Bases de datos
  • Figura 3.1.- Diagrama Entidad-Relación de la base de datos
  • 3.1.1.- Tabla Personas
  • Tabla 3.1.- Atributos de la tabla Personas
  • 3.1.2.- Tabla Proyectos
  • Tabla 3.2.- Atributos de la tabla Proyectos
  • 3.1.3.- Tabla Areas
  • 3.1.4.- Tabla Asignaturas
  • Tabla 3.4.- Atributos de la tabla Asignaturas
  • 3.1.5.- Tabla Categoria
  • 3.1.6.- Tabla Requisitos
  • Tabla 3.6.- Atributos de la tabla Requisitos
  • 3.1.7.- Tabla Operaciones
  • Tabla 3.7.- Atributos de la tabla Operaciones
  • 3.1.8.- Tabla Idiomas
  • 3.1.9.- Otras Tablas
  • 3.1.9.1.- Tabla Personas_Areas
  • Tabla 3.9.- Atributos de la tabla Personas_Areas
  • 3.1.9.2.- Tabla Notas
  • Tabla 3.10.- Atributos de la tabla Notas
  • 3.1.9.3.- Tabla Personas_Categoria
  • Tabla 3.11.- Atributos de la tabla Personas_Categoria
  • 3.1.9.4.- Tabla Permisos
  • Tabla 3.12.- Atributos de la tabla Permisos
  • 3.1.9.5.- Tabla Proyectos_Requisitos
  • Tabla 3.13.- Atributos de la tabla Proyectos_Requisitos
  • 3.1.9.6.- Tabla Personas_Proyectos
  • Tabla 3.14.- Atributos de la tabla Personas_Proyectos
  • 3.2.- Funcionalidades
  • 3.2.1.- Diagramas de flujo de datos
  • 3.2.1.1.- Operaciones de usuarios
  • Figura 3.3.- DFD de Nivel 1 – Operaciones de usuarios
  • Figura 3.4.- DFD de Nivel 2 – Entrada al sistema
  • Figura 3.5.- DFD de Nivel 2 – Formularios de usuarios
  • Figura 3.6.- DFD de Nivel 2 – Muestra informaciones
  • 3.2.1.2.- Operaciones de proyectos
  • Figura 3.8.- DFD de Nivel 2 – Lista de proyectos solicitados
  • Figura 3.10.- DFD de Nivel 2 – Lista de proyectos libres
  • 3.2.1.3.- Operaciones de trabajos
  • Figura 3.12.- DFD de Nivel 2 – Lista de trabajos solicitados
  • Figura 3.14.- DFD de Nivel 2 – Lista de trabajos libres
  • 3.2.1.4.- Operaciones de gestión
  • 3.2.1.5.- Otras operaciones
  • Figura 3.16.- DFD de Nivel 1 – Otras operaciones
  • Figura 3.17.- DFD de Nivel 2 – Correo
  • 3.2.2.- Diagramas WAE
  • 3.2.2.1.- Operaciones de usuarios
  • 3.2.2.2.- Operaciones de proyectos
  • 3.2.2.3.- Operaciones de trabajos
  • 3.2.2.4.- Operaciones de gestión
  • Figura 3.40.- WAE – Insertar área
  • Figura 3.42.- WAE – Modificar área
  • Figura 3.44.- WAE – Formulario de modificación de operación
  • Figura 3.46.- WAE – Formulario de modificación de contenido
  • 3.2.2.5.- Otras operaciones
  • 4.- Desarrollo
  • 4.1.- Proceso de implementación
  • Figura 4.1.- Fases del desarrollo
  • 4.2.- Consideraciones generales
  • 4.2.1.- Archivo de configuración
  • 4.2.2.- Variables de sesión
  • Tabla 4.3.- Variables de sesión
  • 4.3.- Sistema de información
  • 4.3.1.- Sentencias de creación
  • 4.3.2.- Sentencias de inicialización
  • Tabla 4.5.- Sentencias SQL para la inicialización de la base de datos
  • 4.4.- Seguridad en el sistema
  • 4.4.1.- Inicio de sesión
  • Figura 4.2.- Protocolo para validar el inicio de sesión
  • 4.4.2.- Módulo de seguridad
  • Tabla 4.6.- Inicialización de las variables de sesión
  • 4.4.3.- HTTPS
  • 4.4.4.- Formularios
  • 4.5.- Soporte para varios idiomas
  • Tabla 4.7.- Estudio de las alternativas para soportar varios idiomas
  • 4.6.- Funcionalidades
  • 4.6.1.- Operaciones de usuarios
  • Tabla 4.8.- Operaciones de usuario
  • 4.6.2.- Operaciones de proyectos
  • 4.6.3.- Operaciones de trabajos
  • Tabla 4.10.- Operaciones de trabajos
  • 4.6.4.- Operaciones de gestión
  • Tabla 4.11.- Operaciones de gestión
  • 4.6.5.- Otras operaciones
  • 5.- Implantación
  • 5.1.- Instalación de la aplicación web
  • Tabla 5.1.- Archivos y carpetas de la instalación
  • 5.2.- Inicialización del sistema
  • 6.- Estudio económico
  • 6.1.- Costes hardware
  • 6.2.- Costes software
  • Tabla 6.1.- Relación de costes software
  • 6.3.- Recursos humanos
  • 6.3.1.- Distribución en fases
  • Tabla 6.3.- Dedicación de horas en la fase de diseño
  • Tabla 6.4.- Dedicación de horas en la fase de implementación
  • Tabla 6.5.- Dedicación de horas en la fase de pruebas
  • Tabla 6.7.- Dedicación de horas en la fase de documentación
  • Figura 6.1.- Dedicación de horas por fases
  • 6.3.2.- Costes de personal
  • Figura 6.2.- Dedicación de horas por empleados
  • 7.- Conclusiones y líneas futuras
  • 7.1.- Beneficios del proyecto
  • 7.2.- Conclusiones
  • 7.3.- Líneas de futuro
  • Bibliografía
  • Anexo - Manuales
  • A.1.- Manual de administrador
  • A.1.1.- Puesta a punto
  • A.1.1.1.- Situación inicial
  • A.1.1.2.- Configuración
  • Tabla A.2.- Campos de formulario para insertar un usuario
  • A.1.2.- Mantenimiento del sistema
  • A.1.2.1.- Gestión de las áreas
  • Tabla A.3.- Campos de formulario para insertar un área
  • A.1.2.2.- Gestión de las asignaturas
  • Tabla A.4.- Campos de formulario para insertar una asignatura
  • A.1.2.3.- Gestión de los requisitos
  • Tabla A.5.- Campos de formulario para insertar un requisito
  • A.1.2.4.- Gestión de los contenidos
  • Tabla A.6.- Campos de formulario para insertar un contenido
  • A.1.2.5.- Gestión de las categorías
  • A.1.2.6.- Gestión de las operaciones
  • Tabla A.8.- Campos de formulario para insertar una operación
  • A.1.2.7.- Gestión de los permisos
  • A.2.- Manual de profesor
  • A.2.1.- Mantenimiento de usuarios
  • A.2.1.1.- Registro de usuarios
  • Tabla A.9.- Campos de formulario para insertar un usuario
  • A.2.1.2.- Búsqueda de usuarios
  • Tabla A.10.- Criterios de consulta de usuarios
  • A.2.1.3.- Modificar un usuario
  • A.2.1.4.- Eliminar un usuario
  • A.2.2.- Mantenimiento de proyectos
  • A.2.2.1.- Registro de un proyecto
  • Tabla A.12.- Campos de formulario para registrar un proyecto
  • A.2.2.2.- Asignación de proyectos
  • Tabla A.13.- Funcionalidades de la asignación de proyectos
  • A.2.2.3.- Búsqueda de proyectos
  • Tabla A.14.- Criterios de consulta de proyectos
  • A.2.2.4.- Modificar un proyecto
  • Tabla A.15.- Detalles del formulario de la modificación de proyectos
  • A.2.2.5.- Eliminar un proyecto
  • A.2.3.- Mantenimiento de trabajos
  • A.2.3.1.- Registro de un trabajo
  • Tabla A.16.- Campos del formulario para registrar un trabajo
  • A.2.3.2.- Asignación de trabajos
  • Tabla A.17.- Funcionalidades de la asignación de trabajos
  • A.2.3.3.- Búsqueda de trabajos
  • A.2.3.4.- Modificar un trabajo
  • Tabla A.19.- Detalles del formulario de la modificación de trabajos
  • A.2.3.5.- Eliminar un trabajo
  • A.3.- Manual de colaborador
  • A.3.1.- Registro
  • A.3.2.- Acceso al sistema
  • Figura A.1.- Captura de la página de acceso
  • A.3.3.- Operaciones sobre proyectos
  • A.3.3.1.- Solicitar proyectos
  • A.3.3.2.- Proponer un proyecto
  • Tabla A.20.- Campos del formulario para proponer un proyecto
  • A.3.4.- Operaciones sobre trabajos
  • A.3.4.1.- Solicitud de trabajos
  • A.3.4.2.- Proponer un trabajo
  • Tabla A.21.- Campos del formulario para proponer un trabajo
  • A.3.5.- Otras operaciones
  • A.3.5.1.- Datos personales
  • A.3.5.2.- Enviar un correo electrónico
  • A.4.- Manual del programador: adaptación de módulos
  • A.4.1.- Variables de sesión
  • Tabla A.22.- Variables de sesión utilizadas en la aplicación
  • A.4.2.- Módulo de seguridad
  • A.4.3.- Soporte para varios idiomas
  • A.4.4.- Utilizar archivo de configuración
  • Tabla A.23.- Parámetros del archivo de configuración
  • A.4.5.- Ejemplo práctico: módulos de noticias y
  • Tabla A.24.- Campos y valores de la inserción de un contenido

Desarrollo de una aplicación web…

Abstract

Abstract
Este proyecto tiene como objetivo desarrollar una solución a medida para gestionar diferentes recursos humanos del ‘Grup de Recerca en Sistemas Intel.ligents’ (GRSI) de 'Enginyeria i Arquitectura La Salle' de la Universidad Ramon Llull. Con el objetivo de facilitar el acceso a la aplicación por parte de todos los miembros, se proponer una aplicación de arquitectura cliente-servidor a través de la web. Se abarcan cuatro fases del ciclo de vida en cascada: análisis de requisitos, diseño, implementación y puesta en explotación, además de todas las pruebas y la documentación necesaria. Para todo ello, se hace un estudio de las diferentes metodologías y tecnologías a fin de conseguir una solución robusta, fiable, segura y usable.

Desarrollo de una aplicación web…

Resumen

Resumen
El objetivo de este proyecto es el de crear una aplicación web segura, fiable y fácil de utilizar que permita gestionar los recursos humanos del GRSI de la universidad 'Enginyeria i Arquitectura La Salle'. Para su desarrollo se ha empleado un ciclo de vida en cascada. En su primera fase, análisis de requisitos funcionales, se han obtenido las necesidades del cliente para poder definir los requerimientos de la aplicación. A continuación, se ha realizado un estudio, elección y documentación exhaustiva sobre las tecnologías necesarias, para así obtener los mejores resultados de una forma óptima. Posteriormente se prosigue a realizar el diseño íntegro de las bases de datos y funcionalidades necesarias para la aplicación. Éste se ha realizado siguiendo la metodología UML (lenguaje unificado de modelado) que ha permitido seguir un estándar. Para las bases de datos se han utilizado los diagramas Entidad-Relación y para las funcionalidades la combinación de los DFD (diagramas de flujos de estado) y diagramas WAE (extensión de UML para aplicaciones web), con lo que se consigue proporcionar una definición clara y completa de la aplicación. La siguiente fase consiste en el desarrollo de todas las funcionalidades del sistema. Para ello se han utilizado los diagramas diseñados en la fase anterior. De forma paralela, se han realizado las pruebas unitarias, de interfaz y de sistema que han permitido verificar que los resultados obtenidos eran los esperados por el cliente. Por último, se encuentra la puesta en explotación del sistema en el que se instala la aplicación web en los servidores del CSI (centro de seguridad informática) y se inicializan todos los datos necesarios para hacer la migración al nuevo sistema. Durante todo el ciclo de vida, se ha ido realizado una documentación exhaustiva y minuciosa de todos los detalles a tener en cuenta para mayor entendimiento y facilitar un posterior mantenimiento. Para finalizar, se han desarrollado manuales de la aplicación que pueden encontrarse en el anexo de la memoria.

Desarrollo de una aplicación web…

Índice general

Índice general
1.- INTRODUCCIÓN ..................................................................................................... 1 1.1.- EL CLIENTE ............................................................................................................ 1 1.2.- EL PROYECTO ........................................................................................................ 2 2.- ANÁLISIS .................................................................................................................. 5 2.1.- ESPECIFICACIÓN DE REQUERIMIENTOS ................................................................... 5 2.1.1.- Módulo de gestión de usuarios...................................................................... 6 2.1.2.- Módulo de gestión de proyectos .................................................................... 7 2.1.3.- Módulo de gestión de trabajos ...................................................................... 8 2.2.- ESTUDIO DE LAS TECNOLOGÍAS.............................................................................. 9 2.2.1.- Desarrollo mediante paquetes..................................................................... 13 2.2.2.- Solución hecha a medida............................................................................. 14 2.3.- METODOLOGÍA UTILIZADA .................................................................................. 17 3.- DISEÑO.................................................................................................................... 21 3.1.- BASES DE DATOS .................................................................................................. 21 3.1.1.- Tabla Personas............................................................................................ 22 3.1.2.- Tabla Proyectos........................................................................................... 24 3.1.3.- Tabla Areas ................................................................................................. 25 3.1.4.- Tabla Asignaturas ....................................................................................... 26 3.1.5.- Tabla Categoria........................................................................................... 26 3.1.6.- Tabla Requisitos .......................................................................................... 27 3.1.7.- Tabla Operaciones ...................................................................................... 27 3.1.8.- Tabla Idiomas.............................................................................................. 28 3.1.9.- Otras Tablas ................................................................................................ 29
3.1.9.1.- Tabla Personas_Areas ......................................................................................29 3.1.9.2.- Tabla Notas ......................................................................................................29 3.1.9.3.- Tabla Personas_Categoria ................................................................................30 3.1.9.4.- Tabla Permisos .................................................................................................30 3.1.9.5.- Tabla Proyectos_Requisitos .............................................................................31 3.1.9.6.- Tabla Personas_Proyectos................................................................................31

3.2.- FUNCIONALIDADES .............................................................................................. 32

Desarrollo de una aplicación web…

Índice general

3.2.1.- Diagramas de flujo de datos........................................................................ 32
3.2.1.1.- Operaciones de usuarios...................................................................................34 3.2.1.2.- Operaciones de proyectos.................................................................................43 3.2.1.3.- Operaciones de trabajos ...................................................................................48 3.2.1.4.- Operaciones de gestión.....................................................................................53 3.2.1.5.- Otras operaciones .............................................................................................56

3.2.2.- Diagramas WAE .......................................................................................... 59
3.2.2.1.- Operaciones de usuarios...................................................................................65 3.2.2.2.- Operaciones de proyectos.................................................................................73 3.2.2.3.- Operaciones de trabajos ...................................................................................80 3.2.2.4.- Operaciones de gestión.....................................................................................87 3.2.2.5.- Otras operaciones .............................................................................................93

4.- DESARROLLO ....................................................................................................... 96 4.1.- PROCESO DE IMPLEMENTACIÓN ........................................................................... 96 4.2.- CONSIDERACIONES GENERALES ......................................................................... 100 4.2.1.- Archivo de configuración .......................................................................... 100 4.2.2.- Variables de sesión.................................................................................... 105 4.3.- SISTEMA DE INFORMACIÓN ................................................................................ 107 4.3.1.- Sentencias de creación .............................................................................. 107 4.3.2.- Sentencias de inicialización ...................................................................... 111 4.4.- SEGURIDAD EN EL SISTEMA ................................................................................ 116 4.4.1.- Inicio de sesión .......................................................................................... 117 4.4.2.- Módulo de seguridad................................................................................. 120 4.4.3.- HTTPS ....................................................................................................... 122 4.4.4.- Formularios............................................................................................... 122 4.5.- SOPORTE PARA VARIOS IDIOMAS ........................................................................ 123 4.6.- FUNCIONALIDADES ............................................................................................ 125 4.6.1.- Operaciones de usuarios ........................................................................... 125 4.6.2.- Operaciones de proyectos ......................................................................... 127 4.6.3.- Operaciones de trabajos............................................................................ 130 4.6.4.- Operaciones de gestión ............................................................................. 132 4.6.5.- Otras operaciones ..................................................................................... 134 5.- IMPLANTACIÓN ................................................................................................. 136

...........1..................LÍNEAS DE FUTURO ........................................................7.....................1.2..............................1...............CONCLUSIONES .................................................. 147 7. 140 6...........Gestión de los contenidos. 154 ANEXO ............................1...........................................1...................Mantenimiento del sistema...........168 A...................... 150 7.....................1...Mantenimiento de usuarios.............3.................156 A.......2................................................166 A........................CONCLUSIONES Y LÍNEAS FUTURAS ......Costes de personal....4...............................................1..............................................................COSTES HARDWARE .............4...2...................................171 A..........................................3.......................2....Modificar un usuario ...2.................... 145 7....................1.............................3....Búsqueda de usuarios ...................................2...........2............................... 141 6.2...........................2.......163 A............................................................................................................Eliminar un usuario ..Desarrollo de una aplicación web… Índice general 5..2..1...............2.....................................1...2........................................1....ESTUDIO ECONÓMICO ...1..159 A...............Configuración.............. 156 A...............1...........................1....................................Gestión de los requisitos.................1....6.........................BENEFICIOS DEL PROYECTO .......................................Distribución en fases ...................164 A.............................2.................................... 140 6.....2...................................................................................2.MANUAL DE PROFESOR ......173 A..........................2.............................3................. 156 A...........INSTALACIÓN DE LA APLICACIÓN WEB ..................................................................2...................Gestión de las asignaturas .........INICIALIZACIÓN DEL SISTEMA ....................................1...............................................1............................ 171 A.. 140 6..................................................................1. 147 7.......................................................2....................................................................1........................................................169 A.........................................174 A....2..............RECURSOS HUMANOS .2...................175 ............................... 162 A..............1................... 156 A..........165 A.....2...........................................................Situación inicial..........................................................1.................................................................... 138 6..COSTES SOFTWARE ..Gestión de las categorías ............................ 136 5.....................1...............................Gestión de las áreas ............Registro de usuarios .....1......MANUAL DE ADMINISTRADOR ......................................5......Puesta a punto.........................1...........................................................................1..162 A............................1...................1..... 152 BIBLIOGRAFÍA .........................3..3...........Gestión de las operaciones ..........................................MANUALES.................. 171 A..... 141 6...........Gestión de los permisos...

Desarrollo de una aplicación web…

Índice general

A.2.2.- Mantenimiento de proyectos ..................................................................... 175
A.2.2.1.- Registro de un proyecto.................................................................................175 A.2.2.2.- Asignación de proyectos ...............................................................................176 A.2.2.3.- Búsqueda de proyectos..................................................................................177 A.2.2.4.- Modificar un proyecto...................................................................................179 A.2.2.5.- Eliminar un proyecto.....................................................................................180

A.2.3.- Mantenimiento de trabajos ....................................................................... 180
A.2.3.1.- Registro de un trabajo....................................................................................180 A.2.3.2.- Asignación de trabajos ..................................................................................181 A.2.3.3.- Búsqueda de trabajos.....................................................................................182 A.2.3.4.- Modificar un trabajo......................................................................................183 A.2.3.5.- Eliminar un trabajo........................................................................................184

A.3.- MANUAL DE COLABORADOR ............................................................................. 185 A.3.1.- Registro ..................................................................................................... 185 A.3.2.- Acceso al sistema ...................................................................................... 186 A.3.3.- Operaciones sobre proyectos.................................................................... 186
A.3.3.1.- Solicitar proyectos.........................................................................................186 A.3.3.2.- Proponer un proyecto ....................................................................................187

A.3.4.- Operaciones sobre trabajos ...................................................................... 188
A.3.4.1.- Solicitud de trabajos ......................................................................................188 A.3.4.2.- Proponer un trabajo .......................................................................................189

A.3.5.- Otras operaciones ..................................................................................... 190
A.3.5.1.- Datos personales............................................................................................190 A.3.5.2.- Enviar un correo electrónico .........................................................................190

A.4.- MANUAL DE PROGRAMADOR: ADAPTACIÓN DE MÓDULOS ................................ 192 A.4.1.- Variables de sesión ................................................................................... 192 A.4.2.- Módulo de seguridad ................................................................................ 193 A.4.3.- Soporte para varios idiomas ..................................................................... 195 A.4.4.- Utilizar archivo de configuración............................................................. 197 A.4.5.- Ejemplo práctico: módulos de noticias y publicaciones........................... 199

Desarrollo de una aplicación web…

Índice de figuras

Índice de figuras
Figura 2.1.- Componentes de la comunicación............................................................... 18 Figura 2.2.- Ciclo de vida del proyecto........................................................................... 20 Figura 3.1.- Diagrama Entidad-Relación de la base de datos ......................................... 22 Figura 3.2.- DFD de Nivel 0 - La aplicación web .......................................................... 33 Figura 3.3.- DFD de Nivel 1 – Operaciones de usuarios ................................................ 35 Figura 3.4.- DFD de Nivel 2 – Entrada al sistema.......................................................... 36 Figura 3.5.- DFD de Nivel 2 – Formularios de usuarios ................................................ 38 Figura 3.6.- DFD de Nivel 2 – Muestra informaciones .................................................. 40 Figura 3.7.- DFD de Nivel 1 – Operaciones de proyectos.............................................. 43 Figura 3.8.- DFD de Nivel 2 – Lista de proyectos solicitados........................................ 44 Figura 3.9.- DFD de Nivel 2 – Formularios de proyectos .............................................. 45 Figura 3.10.- DFD de Nivel 2 – Lista de proyectos libres.............................................. 47 Figura 3.11.- DFD de Nivel 1 – Operaciones de trabajos............................................... 48 Figura 3.12.- DFD de Nivel 2 – Lista de trabajos solicitados ........................................ 49 Figura 3.13.- DFD de Nivel 2 – Formularios de trabajos ............................................... 50 Figura 3.14.- DFD de Nivel 2 – Lista de trabajos libres................................................. 52 Figura 3.15.- DFD de Nivel 1 – Operaciones de gestión................................................ 53 Figura 3.16.- DFD de Nivel 1 – Otras operaciones ........................................................ 56 Figura 3.17.- DFD de Nivel 2 – Correo .......................................................................... 57 Figura 3.18.- WAE – Registrar usuario .......................................................................... 65 Figura 3.19.- WAE – Validación de usuario .................................................................. 66 Figura 3.20.- WAE – Insertar usuario............................................................................. 67 Figura 3.21.- WAE – Consultar usuario ......................................................................... 68 Figura 3.22.- WAE – Eliminar usuario........................................................................... 69 Figura 3.23.- WAE – Modificar usuario......................................................................... 70 Figura 3.24.- WAE – Aceptación de alta........................................................................ 71 Figura 3.25.- WAE – Rechazo de alta ............................................................................ 72 Figura 3.26.- WAE – Registrar proyecto ........................................................................ 73 Figura 3.27.- WAE – Consultar proyecto ....................................................................... 74 Figura 3.28.- WAE – Eliminar proyecto......................................................................... 75 Figura 3.29.- WAE – Modificar proyecto....................................................................... 76

Desarrollo de una aplicación web…

Índice de figuras

Figura 3.30.- WAE – Proponer proyecto ........................................................................ 77 Figura 3.31.- WAE – Asignar proyectos ........................................................................ 78 Figura 3.32.- WAE – Solicitar proyecto ......................................................................... 79 Figura 3.33.- WAE – Registrar trabajo........................................................................... 80 Figura 3.34.- WAE – Consultar trabajo .......................................................................... 81 Figura 3.35.- WAE – Eliminar trabajo ........................................................................... 82 Figura 3.36.- WAE – Modificar trabajo ......................................................................... 83 Figura 3.37.- WAE – Proponer trabajo........................................................................... 84 Figura 3.38.- WAE – Asignar trabajos ........................................................................... 85 Figura 3.39.- WAE – Solicitar trabajo ............................................................................ 86 Figura 3.40.- WAE – Insertar área.................................................................................. 88 Figura 3.41.- WAE – Eliminar área ................................................................................ 88 Figura 3.42.- WAE – Modificar área .............................................................................. 89 Figura 3.43.- WAE – Formulario de inserción de operación.......................................... 90 Figura 3.44.- WAE – Formulario de modificación de operación ................................... 91 Figura 3.45.- WAE – Formulario de inserción de contenido.......................................... 91 Figura 3.46.- WAE – Formulario de modificación de contenido ................................... 92 Figura 3.47.- WAE – Gestión permisos.......................................................................... 92 Figura 3.48.- WAE – Adoptar usuario............................................................................ 93 Figura 3.49.- WAE – Datos personales .......................................................................... 94 Figura 3.50.- WAE – Enviar correo................................................................................ 95 Figura 4.1.- Fases del desarrollo ..................................................................................... 98 Figura 4.2.- Protocolo para validar el inicio de sesión ................................................. 119 Figura 4.3.- Protocolo de validación del módulo de seguridad .................................... 121 Figura 6.1.- Dedicación de horas por fases................................................................... 144 Figura 6.2.- Dedicación de horas por empleados.......................................................... 146 Figura A.1.- Captura de la página de acceso ................................................................ 186

Desarrollo de una aplicación web…

Índice de tablas

Índice de tablas
Tabla 2.1.- Estudio de paquetes ...................................................................................... 13 Tabla 2.2.- Estudio de lenguajes ..................................................................................... 15 Tabla 3.1.- Atributos de la tabla Personas ...................................................................... 24 Tabla 3.2.- Atributos de la tabla Proyectos..................................................................... 25 Tabla 3.3.- Atributos de la tabla Areas ........................................................................... 25 Tabla 3.4.- Atributos de la tabla Asignaturas ................................................................. 26 Tabla 3.5.- Atributos de la tabla Categoria ..................................................................... 26 Tabla 3.6.- Atributos de la tabla Requisitos.................................................................... 27 Tabla 3.7.- Atributos de la tabla Operaciones ................................................................ 28 Tabla 3.8.- Atributos de la tabla Idiomas........................................................................ 28 Tabla 3.9.- Atributos de la tabla Personas_Areas ........................................................... 29 Tabla 3.10.- Atributos de la tabla Notas ......................................................................... 30 Tabla 3.11.- Atributos de la tabla Personas_Categoria................................................... 30 Tabla 3.12.- Atributos de la tabla Permisos.................................................................... 31 Tabla 3.13.- Atributos de la tabla Proyectos_Requisitos................................................ 31 Tabla 3.14.- Atributos de la tabla Personas_Proyectos................................................... 32 Tabla 3.15.- Atributos y restricciones de los formularios............................................... 64 Tabla 4.1.- Fases del desarrollo ...................................................................................... 99 Tabla 4.2.- Atributos del archivo de configuración ...................................................... 104 Tabla 4.3.- Variables de sesión ..................................................................................... 106 Tabla 4.4.- Sentencias SQL para la creación de la base de datos ................................. 110 Tabla 4.5.- Sentencias SQL para la inicialización de la base de datos ......................... 116 Tabla 4.6.- Inicialización de las variables de sesión..................................................... 120 Tabla 4.7.- Estudio de las alternativas para soportar varios idiomas............................ 124 Tabla 4.8.- Operaciones de usuario .............................................................................. 127 Tabla 4.9.- Operaciones de proyectos........................................................................... 129 Tabla 4.10.- Operaciones de trabajos............................................................................ 132 Tabla 4.11.- Operaciones de gestión............................................................................. 134 Tabla 4.12.- Otras operaciones ..................................................................................... 135 Tabla 5.1.- Archivos y carpetas de la instalación ......................................................... 138 Tabla 6.1.- Relación de costes software........................................................................ 141

...... 184 Tabla A.....11........22....................................................................... 176 Tabla A..5..........7...............Campos de formulario para insertar un usuario......................... 167 Tabla A...........9........Parámetros del archivo de configuración .Criterios de consulta de trabajos.......... 193 Tabla A....Detalles del formulario de la modificación de trabajos..... 203 ......Dedicación de horas en la fase de implantación.....14..........................Campos del formulario para registrar un trabajo...........13...4....Campos del formulario para proponer un proyecto.......................... 181 Tabla A.................5........ 178 Tabla A.........................8.......................... 188 Tabla A... 164 Tabla A........ 169 Tabla A..... 143 Tabla 6...................................... 162 Tabla A..............Campos de formulario para insertar una operación............................................. 182 Tabla A....Desarrollo de una aplicación web… Índice de tablas Tabla 6............................. 160 Tabla A............conf ..............Detalles del formulario de la modificación de proyectos ........................................Parámetros de configuracion..........4...6..............Campos de formulario para insertar una categoría.Campos de formulario para insertar una asignatura ...............................Variables de sesión utilizadas en la aplicación....17........16.......Dedicación de horas en la fase de implementación........................................21......................................Dedicación de horas en la fase de documentación ..................................Campos y valores de la inserción de un contenido...................................... 165 Tabla A.... 179 Tabla A......15........... 198 Tabla A.. 143 Tabla 6................Detalles del formulario de modificación de usuario.......................................Campos de formulario para insertar un área................... 163 Tabla A.............12......... 143 Tabla 6............................ 141 Tabla 6.Criterios de consulta de usuarios ....Campos de formulario para insertar un usuario... 189 Tabla A.......10......................... 142 Tabla 6...7......Criterios de consulta de proyectos.....2..............24........23.....................Campos del formulario para proponer un trabajo..Dedicación de horas en la fase de análisis de requerimientos.3.................... 182 Tabla A... 173 Tabla A...... 174 Tabla A..Dedicación de horas en la fase de diseño .........Campos de formulario para insertar un requisito ....................................................... 144 Tabla A.....20....... 166 Tabla A.................................................Dedicación de horas en la fase de pruebas ...6.....19..............2. 172 Tabla A.................3.........1...Funcionalidades de la asignación de trabajos...............18. 177 Tabla A........Campos de formulario para registrar un proyecto ............Campos de formulario para insertar un contenido..Funcionalidades de la asignación de proyectos.................................

estable y eficiente.Introducción 1.Introducción 1. Tareas que se realizan de forma periódica como son la asignación de proyectos. la gestión de todos sus recursos tal como los usuarios. a través de una interfaz muy intuitiva. garantizan un dinamismo constante de la aplicación adaptándose a las necesidades que vayan surgiendo en el día a día. se ofrece al usuario la posibilidad de envío de correos electrónicos. escoger el idioma en el que se le mostrará la información y un sin fin de nuevas funciones que. Este proyecto se adapta a la situación inicial del cliente y consigue mantener su jerarquía de usuarios en un sistema seguro.1.. la gestión de sus recursos era lenta y costosa en personal.. Se ofrece al cliente una aplicación web con la que se consigue dar un espacio privado a cada uno de los componentes del GRSI. proposición de nuevos trabajos. donde podrán realizar todas las operaciones que se le permitan. registro de nuevos colaboradores.Desarrollo de una aplicación web… Capítulo 1 . y las relaciones que surgen entre ellos resultaba bastante engorroso. Antes de la implantación.ligents’ de 'Enginyeria i Arquitectura La Salle' de la Universidad Ramon Llull. con su correspondiente nivel de acceso y sus propias preferencias.El cliente El cliente de este proyecto es el ‘Grup de Recerca en Sistemas Intel. Gracias a este proyecto se consigue informatizar toda la gestión de los recursos humanos del GRSI y automatizar las tareas que se hacen de manera periódica.… requerían que los profesores y alumnos establecieran una vía de comunicación directa en el que el proceso resultaba lento y confuso. Además de las operaciones básicas de gestión. Además. 1 . gracias a la facilidad que ofrece la aplicación web para expandirse y agregar funcionalidades. trabajos y proyectos.

como pueden ser los perfiles de usuarios que se encuentran en el sistema.El proyecto La gran revolución a lo largo de la historia de la informática y de las comunicaciones es. sin duda alguna.… que se podían consultar y descargar.ligents’ (GRSI). modificar. sino que también existen una serie de relaciones entre ellos que se han de poder controlar. se recurre al desarrollo de una aplicación web con la que se facilita la gestión remota de los recursos. documentos. • Proyectos: en los que se encuentran los trabajos y proyectos finales de carrera (TFC y PFC) que se llevan a cabo en el GRSI. En sus orígenes sólo existían páginas estáticas. para poder automatizar todas estas gestiones también es necesario tener presente otros factores. sus posteriores asignaciones. becarios… todos los usuarios potenciales de la aplicación y que de alguna manera están relacionados con el GRSI. las propuestas de trabajos… No obstante.Introducción 1. es muy importante tener presente cuales son los principales recursos: • Usuarios o componentes del GRSI: profesores. insertar y eliminar. que a su vez se han de gestionar. que permiten generar páginas dinámicas prestando diferentes servicios. colaboradores.. Para entender este proyecto. y para ello. Sus principales ventajas vienen determinadas por la conectividad de cualquier usuario remoto y las facilidades para actualizar y mantener la aplicación sin necesidad de distribuir e instalar software en miles de potenciales clientes.2. pero más tarde aparecieron las primeras aplicaciones web. las operaciones del 2 . sus permisos. Con ella cambió la lógica interna de muchas empresas y el modo de enfrentarse al mundo de los negocios. • Trabajos: representan todas aquellas colaboraciones que recibe el GRSI a través de sus componentes.Desarrollo de una aplicación web… Capítulo 1 . tales como las solicitudes de proyectos. Este proyecto trata de solucionar todas las necesidades de recursos humanos del ‘Grup de Recerca en Sistemas Intel. Resulta evidente que gestionar estos recursos no se reduce únicamente a consultar. la aparición de Internet.

esta parte resulta bastante rápida y fluida. • Desarrollo: aquí se implementan todos los diseños realizados en la fase anterior. Todo esto permitirá establecer un sistema fiable. Para ello. También se hace un estudio amplio y exhaustivo sobre las tecnologías que permiten realizar el tipo de aplicaciones requerido. las áreas a las que pueden pertenecer los usuarios. los cuales vendrán determinados por las necesidades del GRSI.Introducción sistema. ya que resulta bastante difícil especificar y visualizar el funcionamiento de un sistema antes de su creación. los requisitos que pueden presentar los proyectos. Con este nuevo control se consigue informatizar y archivar mucha información que antes resultaba difícil de mantener. de muchas aplicaciones web. Cabe destacar que al tratarse de un cliente familiarizado con la informática. • Diseño de la aplicación: esta es una de las fases más costosas del proyecto. El proyecto sigue un ciclo de vida en cascada formada por cuatro fases: • Análisis de requerimientos: aquí se recoge toda la información necesaria para determinar los objetivos del proyecto. en consecuencia. y para las funciones la combinación de los DFD (diagramas de flujos de datos) y diagramas WAE (extensión UML para aplicaciones web). se ha utilizado la metodología UML (lenguaje unificado de modelado) que ha permitido seguir un estándar. De forma paralela. se han realizado pruebas unitarias (que prueban cada componente desarrollado). las asignaturas de las que se quiere guardar información y los contenidos de la aplicación web.Desarrollo de una aplicación web… Capítulo 1 . integración (que prueban el funcionamiento conjunto de los componentes) y de sistema (que prueban la globalidad del sistema) para garantizar que los resultados obtenidos sean los esperados por el cliente. 3 . además de reducir tiempo y recursos en la ejecución de muchas de las tareas que se realizaban en el GRSI. con la posterior elección de los más adecuados. Durante todo el desarrollo se ha tenido presente que el mantenimiento es la fase más costosa de muchos proyectos informáticos y. En el diseño de la base de datos se ha utilizado el diagrama Entidad-Relación. seguro y eficiente que permita una gestión rápida y eficaz sobre todos los recursos del GRSI.

De esta manera se contrastan y utilizan conjuntamente todos los conocimientos adquiridos a los largo de la carrera. Además de estas cuatro fases cabría comentar la documentación. También se han desarrollado a modo de Anexo del proyecto unos manuales para formar a los diferentes tipos de usuarios sobre la aplicación y su funcionamiento. en su mayor parte. Por cada una de las fases se ha realizado un amplio estudio de las tecnologías. metodologías.Desarrollo de una aplicación web… Capítulo 1 . en la inserción de todos los datos necesarios para hacer la migración al nuevo sistema. comentado y claro. • Implantación: debido que para el desarrollo y testeo se ha utilizado el mismo software que el de puesto en explotación. que se ha realizado a lo largo de todo el ciclo de vida y que se ha llevado de una forma clara. concisa y minuciosa con el fin de facilitar todo tipo de consultas y dudas sobre el proyecto. 4 .Introducción por eso mismo se ha utilizado un código sencillo. métodos y sistemas que existen para desarrollar aplicaciones web. La inicialización del sistema consiste. la instalación de la aplicación es muy rápida. esquemático. desde la creación de las bases de datos hasta la metodología a seguir en los proyectos informáticos.

se han de agregar dos nuevas funcionalidades: • Ordenación por varios criterios: ofrece la posibilidad de ordenar las Generador de Bibtex: para cada publicación se ha de facilitar su publicaciones por el nombre del publicador o por la fecha de su publicación. permitiendo altas. Los módulos son: • Módulo de gestión de usuarios: facilita el mantenimiento de todos los usuarios. bajas.1..Desarrollo de una aplicación web… Capítulo 2 . así como del proceso de solicitud. Estas operaciones informatizarán muchas de las tareas realizadas. Para este último. consultas y nuevas inserciones.Especificación de requerimientos Para el desarrollo del siguiente proyecto se especifican una serie de módulos que permitirán realizar todas las operaciones requeridas por el cliente. 5 . modificaciones.Análisis 2.. se solicita adaptar dos módulos ya creados para que funcionen con la nueva aplicación: módulo de Noticias y Publicaciones. • Módulo de gestión de trabajos: tiene el mismo cometido que el módulo anterior pero sobre trabajos. Los trabajos tendrán unos datos diferentes a los de proyectos. propuestas y asignaciones. Además. con lo que se conseguirá una mayor rapidez en su ejecución y una menor necesidad de interacción humana. • Módulo de gestión de proyectos: se encarga del mantenimiento de los proyectos del sistema. • generación en el formato Bibtex.Análisis 2.

6 . los proyectos y trabajos que está cursando o ha solicitado.Análisis 2. se les asignará un nivel de acceso que indicará los privilegios de dicho usuario. su foto. Otras operaciones que ha de permitir este módulo son: • • Mailing a diferentes niveles según los tipos de usuarios. Para este tipo de usuario se han de guardar sus datos personales (nombre. la información ha de guardarse en el sistema de bases de datos. nombre y apellidos.. • Colaborador / Intensificador / Proyectista: Todos estos roles de usuarios vendrán representados por un mismo tipo (Colaborador) del que se tendrá que guardar: los datos personales. Sobre los usuarios se ha de permitir un acceso vía web mediante Login y Password. También. Existen tres tipos de usuarios: • Profesor: Esta categoría representa un profesor que pertenece al GRSI. por ejemplo: si se cambia de categoría o de área.Módulo de gestión de usuarios Este módulo es el responsable de gestionar todos los tipos de usuarios del sistema. su foto. los proyectos (trabajos y proyectos de final de carrera) y trabajos de los cuales es el ponente. • Admin: Será el encargado del mantenimiento de la intranet (gestión de toda la información necesaria para cumplir los objetivos) y asignar los diferentes privilegios de cada usuario. Esto permitirá generar informes útiles. es necesario mantener un histórico de los cambios de un usuario respecto a los años anteriores.1. Búsqueda de usuarios según los siguientes criterios: área a la que pertenecen. y el área a la que pertenece. e-mail y observaciones). Una vez hayan entrado en el sistema. los dos primeros apellidos. login. categoría de usuario. Los datos que guardaremos de este tipo de usuario serán los mismos que el Profesor. el área a la cual pertenece y las notas de las asignaturas que ha cursado.1.Desarrollo de una aplicación web… Capítulo 2 .

enlace de la página web donde obtener más información y los requisitos necesarios para desarrollar el proyecto. Modificación de los datos. identificador del ponente. asignado o solicitado). Los profesores dan de alta los proyectos indicando todos los datos requeridos. asignación y propuestas de proyectos. Eliminación de usuarios. y los colaboradores: propondrán nuevos proyectos que. Otras operaciones que ha de permitir este módulo son: • Búsqueda según los siguientes criterios: el identificador. Para cada proyecto. fecha de entrega. modificación.Análisis • Registro de nuevos colaboradores a los cuales se les asignará un determinado estado (“en proceso de admisión”) y el responsable de las altas de usuarios se encargará de aceptar o rechazar la solicitud. • Eliminar los proyectos y toda la información asociada a ellos.1. identificador del alumno. tanto de TFC (trabajos de final de carrera) como PFC (proyectos de final de carrera). categoría del proyecto (TFC o PFC). borrando todos los datos almacenados que guarden relación con los usuarios en cuestión. estado (libre o asignado). 7 . el login del alumno y el login del ponente.Módulo de gestión de proyectos Este módulo ha de permitir todas las operaciones relacionadas con: dar de alta. título. el estado del proyecto (libre. es necesario guardar: identificador.. categoría (TFC o PFC). tanto del propio usuario que ha accedido al sistema como de otros usuarios. parte práctica. nota. • • • 2. posteriormente serán dados de alta o de baja. baja. fecha máxima de la entrega. los requisitos necesarios para su desarrollo. Inserción de cualquier tipo de usuario en el sistema sin la necesidad de una aceptación posterior. descripción.Desarrollo de una aplicación web… Capítulo 2 .2. y solicitar el desarrollo de los proyectos. dependiendo del nivel de acceso del susodicho usuario.

título. estado (libre o asignado). • • • 2. No obstante. fecha de la entrega. alumno (representante del grupo) y nota. y los colaboradores realizarán las solicitudes y propuestas de nuevos trabajos. 2. excepto el identificador que permanecerá invariable desde su inserción en el sistema. Registrar proyectos. este módulo ha de permitir operaciones muy similares. descripción. asignado o solicitado). Proposición de nuevos proyectos. Los profesores se encargarán de la inserción de nuevos trabajos.Módulo de gestión de trabajos De un modo similar al de proyectos. Los datos necesarios para cada trabajo son: identificador. Usuarios-Proyectos: lista de los proyectos solicitados por cada usuario. Proyectos-Usuarios: lista de los usuarios que han solicitado cada proyecto. que permitirá a los colaboradores presentar sus alternativas y enviarlas por e-mail al encargado de las propuestas. los trabajos son la forma de evaluar las colaboraciones con el GRSI y pueden ser teóricos o prácticos. login alumno y estado (libre.3. Otras operaciones que ha de permitir este módulo son: • Búsqueda según los siguientes criterios: identificador. que los inserta directamente en la base de datos sin ningún envío de e-mail o posterior confirmación. que permitirá asignar los proyectos a los usuarios (que previamente habrán realizado la solicitud) y generar dos tipos de listas: 1. parte práctica. • • Eliminar los trabajos y toda la información asociada a ellos. enlace. fecha máxima de la entrega. Asignación de proyectos.Desarrollo de una aplicación web… Capítulo 2 . 8 .Análisis • Modificación de los datos. Modificación de los datos del trabajo.. excepto el identificador que permanecerá invariable desde su inserción en el sistema.1.

Registrar trabajos. catalán e inglés). • • • El cliente no necesita conocer la lógica del servidor. 2. Las modificaciones de la aplicación serán transparentes para el usuario. ni de su sistema operativo.Estudio de las tecnologías La arquitectura que mejor se ajustará a las necesidades del proyecto es la de cliente-servidor [1] ya que presenta una serie de ventajas: • • Un servidor puede dar servicio a múltiples clientes de forma concurrente. Asignación de trabajos. sólo su interfaz externa. ni del tipo de equipo físico en el que se encuentra.Análisis • Proposición de nuevos trabajos. • • Además de los tres módulos. el sistema ha de garantizar cierta seguridad (integridad.. El cliente no depende de la ubicación física del servidor. Con lo que cualquier modificación que se realice en el servidor será totalmente transparente para el cliente y viceversa. autenticidad y privacidad) sobre los datos de los usuarios y permitir que los contenidos de la página web se visualicen en varios idiomas (castellano.2. 2. Trabajos-Usuarios: lista de los usuarios que han solicitado cada trabajo. que inserta directamente en la base de datos los nuevos trabajos sin ningún envío de e-mail o posterior confirmación.Desarrollo de una aplicación web… Capítulo 2 . El servidor presenta a todos sus clientes una interfaz única y bien definida. que permitirá a los colaboradores presentar sus alternativas y enviarlas por e-mail al encargado de las propuestas. que permite asignar los trabajos a los usuarios (que previamente habrán realizado la solicitud) y generar dos tipos de listas: 1. Usuarios-Trabajos: lista de los trabajos solicitados por cada usuario. 9 .

No permite usar un Sistema de Ficheros diferente al del Sistema Operativo. • Existen multitud de costos ocultos (formación en nuevas tecnologías. procesos. Es de pago. comunicaciones. el usuario tendrá acceso transparente a la información y además estará habilitado para procesarla como guste. complejos configurar y monitorizar. Como todos los productos Microsoft. cambios organizativos. 10 .Desarrollo de una aplicación web… Capítulo 2 . Se deben hacer verificaciones en el cliente y en el servidor. En la aplicación ha desarrollar se necesita: • Sistema gestor de base de datos: En el mercado existen muchos Sistemas Gestores. etc. • Es más difícil asegurar un elevado grado de seguridad en una red de clientes y servidores que en un sistema con un único ordenador centralizado. Acto seguido se explican algunos de ellos: o Microsoft Access: Sistema muy sencillo. Se basa en un motor más rápido y óptimo que Access. debe funcionar sobre una plataforma Windows. licencias.Análisis • Centralización de los datos en el servidor. etc. almacenamiento de datos. Útil para desarrollar aplicaciones básicas sin concurrencia y con una cantidad de datos media-baja.) que encarecen su implantación. o Microsoft SQL-Server: Sistema más potente que el anterior. excepto su variante MSDE. que guarda la información en un fichero. que es gratuita. hasta sistemas distribuidos. interfaces. Representa la gama media-alta de Microsoft en Bases de Datos.). No obstante también presenta una serie de inconvenientes: • Requiere un fuerte rediseño de todos los elementos involucrados en los sistemas de información (modelos de datos. mejorando el tema de la concurrencia y la rapidez en buscar los datos. Hay desde sistemas muy simples centralizados para monousuarios.

va a ser retirado para potenciar una sola línea de producción. Perfecto para gestionar la concurrencia de usuarios. con sistema de ficheros propio. de gran compatibilidad y muy implantado en entornos Web. esta opción está casi descartada porque se quiere evitar migrar en un futuro la BD a la de otro fabricante. potente y robusto. De gran implantación en entornos que se necesitan SGBD potentes. buena resolución de planes de ejecución. va ha ser desbancado del mercado. menos potente que SQL-Server. que pese a su gran potencia. o Oracle: Es el sistema más potente que existe actualmente en el mercado. y otros 11 . Sistema básico para multiusuarios. Con características parecidas a DB2. Pese a que el proceso va a ser muy lento y tarden muchos años en ir dejándolo de lado. multi-concurrencia. gran rapidez en acceso a disco. sistema de balanceo de carga. Representa uno de los mejores sistemas que existen en la actualidad. o Informix: Sistema comprado recientemente por IBM. y de gran rapidez.Análisis o MySQL: Sistema gratuito. que permiten trabajar en modo distribuido. Forma parte de los sistemas de gama alta. pero de gran portabilidad [2]. Permite trabajar con sistemas distribuidos y permite trabajar con Sistema de Ficheros propio.Desarrollo de una aplicación web… Capítulo 2 . o DB2: Sistema de la casa IBM de gama alta.

a continuación se explican los dos más utilizados para servir páginas dinámicas: o Internet Information Server (IIS): Es el servidor Web de la casa Microsoft. que no se caracteriza precisamente por su bajo coste. Microsoft.Análisis aspectos de gran relevancia. PHP…). Da soporte a la mayoría de las plataformas Web. su adquisición es gratuita solo para pruebas. tanto las de Microsoft como las que no lo son (JSPs. y es sencillo de configurar y gestionar [3]. Viene instalado con todos los Sistemas Operativos Windows. comentar que no se caracteriza por su seguridad. a partir de Windows 2000. pero también de uso en sistemas Windows. sino que tiene fama de ser un sistema más sencillo que los demás de hackear/crackear. Como factor negativo. De gran difusión en los sistemas Linux/Unix. Es gratuito y soporta todas las plataformas (no de manera nativa). • Servidor web: Esta elección irá muy relacionada con la plataforma Web (lenguaje de programación) que se desee utilizar. 12 . pero para trabajar de manera comercial se ha de pagar una licencia.Desarrollo de una aplicación web… Capítulo 2 . Como punto débil. Aunque existen muchísimos servidores Web. o Apache: Es una de las soluciones gratuitas más estables que hay. Sólo funciona bajo sistema operativo de.

descartamos las que son de pago. Así pues.postnuke. • Solución hecha a medida: con gran coste de programación pero adaptada al cliente.phpnuke. las opciones más válidas son PhpNuke y PostNuke.Desarrollo mediante paquetes Existe una amplia gama de paquetes que facilitan en gran medida el desarrollo del sistema. vienen fijadas por el lugar donde se instalará la aplicación. Su filosofía es la de separar la creación de una aplicación web 13 .Estudio de paquetes Debido al carácter del proyecto.2. Para desarrollar la aplicación web.com www. Algunos de los que se pueden encontrar son: Paquete: PHPNUKE REXISTRA POSTNUKE AXIALSOFT Logo: Tipo licencia: Gratuita De pago Gratuita De pago Página web: www. 2. se escogerán Apache y MySQL respectivamente.rexistra.Análisis La elección del servidor web y el sistema gestor de base de datos.1. existen dos posibles alternativas: • Desarrollo mediante paquetes: que permitirán una programación más rápida.net Tabla 2..net www.. Así pues.org www.1.com NEOIDEAS De pago www. Ambos paquetes utilizan PHP como lenguaje de desarrollo.neoideas.Desarrollo de una aplicación web… Capítulo 2 .axialsoft.

Desarrollo de una aplicación web… Capítulo 2 . al ser utilizado por gran cantidad de usuarios en todo el mundo.2.2. Además. Una vez establecidas las razones por las que no escoger un paquete. ya que la apariencia gráfica estaría desarrollada. Apache… IIS IIS Tomcat. IIS. No obstante. Este método de desarrollo presenta una serie de ventajas e inconvenientes..Solución hecha a medida El desarrollo hecho a medida. se hace mucho más rápida la codificación. permite una programación desde cero y adaptada con las necesidades del sistema. y que precisa de actualizaciones continuadas. estas bibliotecas presentarán incertidumbre sobre el código utilizado. Por un lado. Para la plataforma web existen varias posibilidades: Zona de código Lenguaje: FrameWork: Servidor Web: HTML independiente: Gratuito De pago IIS. hay que decidir cuales serán los lenguajes a utilizar para el desarrollo de la aplicación web. así como las amplias bibliotecas existentes en Internet de módulos ya creados.Análisis en: bloques. pero todos los inconvenientes de los paquetes pueden verse solventados. 2. Siendo los módulos los que se tendrían que desarrollar para este proyecto. Se trata de un desarrollo mucho más lento. módulos y temas. se convierte en el objetivo de muchos piratas informáticos con la consecuencia lógica de ser un sistema con gran cantidad de errores conocidos. OC4J… (JSP) x (Servlets) x Velocidad (sobre 5) 4 3 4 ASP De pago Gratuito 3 14 .

se basa en el hecho de que JSP’s permite tener una zona de código html. no tiene una zona de HTML. de gran difusión en Internet. denota una lentitud considerable. en comparación con otros sistemas de su misma categoría.2. que el programador puede programar qué acciones realizar para cada evento que presenta el usuario en los lenguajes que ya conoce. que permite gestionar las peticiones de los clientes en banda servidor. por otro lado. Muy implantado en el ámbito de foros. Servlets. Lenguaje compilado y con posibilidad de debugar en tiempo de compilación. quien la procesa y devuelve código HTML con la nueva página. al igual que las plataformas comentadas anteriormente.NET (ASP . Cada acción que realiza el cliente. Java Server Pages (JSP’s) y Servlets: Sistema gratuito de la casa Sun Microsystems. que hacen más sencilla su programación. Sistema de la casa Microsoft. gran lentitud a la hora de servir las páginas. Active Server Pages (ASP): Sistema dinámico que permite interactuar cliente-servidor. Permite trabajar con módulos independientes. y otra zona de código java (de manera semejante a PHP y ASP).Desarrollo de una aplicación web… Capítulo 2 .Estudio de lenguajes • PHP: Sistema gratuito. se envía al servidor Web. Active Server Pages . Consiste en ampliar la capacidad del lenguaje ASP. y es directamente interpretado por el servidor Web [4].Análisis CGI's Gratuito Apache x 2 Tabla 2. • • • 15 . etc. ya que da soporte a 2 lenguajes: Visual Basic y C#.. de gran difusión en páginas profesionales. por el contrario. La diferencia entre JSP’s y Servlets.NET): Evolución del sistema anterior. Con esto se quiere decir. grupos. Funcionalmente sirven para lo mismo. y es íntegramente código Java. Como desventaja. para páginas sencillas. pero los Servlets son más potentes para cálculo matemático. mejorando temas de seguridad e interfaz de usuario. sobretodo por su gran escalabilidad.

• JavaScript: lenguaje interpretado como VisualBasic. De esta forma. y dejando de ser fuentes de información estáticas [6].Desarrollo de una aplicación web… Capítulo 2 .… sin embargo. PHP es el lenguaje que proporciona mayor rapidez. Recordemos. convirtiéndose de esta forma en documentos dinámicos. que el sistema de gestor de bases de datos señalado por las especificaciones es MySQL. Su principal objetivo es la de separar la estructura de un documento y su presentación [7]. audio) y existencia de enlaces (links) que permiten saltar a otras partes del documento o incluso a otros sitios de Internet. permite enviar documentos a través de la Web que llevan incorporado código fuente de programas. 16 . Además de texto normal también incluye: elementos multimedia (gráficos. Es portable (en cualquier sistema operativo) y de fácil aprendizaje [5]. se utilizarán: • HTML (HiperText Markup Language): lenguaje que se utiliza para la representación de las páginas web. Teniendo presente que el servidor web donde se establecerá la aplicación web será un servidor Apache. Es gratuito. ya que son los propios navegadores del cliente los que interpretan y ejecutan los programas escritos en este lenguaje. es el encargado de formular la especificación de las hojas de estilo. mejor se adapta a las necesidades y está soportado por las especificaciones. Para este caso. • CSS (Cascading Style Sheets): lenguaje formal usado para definir la presentación de un documento HTML. y el lenguaje para manipular los ficheros lo define el Servidor Web. Perl. TCL. Una vez establecido el lenguaje principal de desarrollo sólo queda escoger el lenguaje que se utilizará para el sistema gestor de bases de datos.Análisis • CGI’s: Sistema basado en uso de ficheros. tiene una característica que lo hace especialmente idóneo para trabajar en Web. video. con lo que nuestra elección se mantiene y SQL será el lenguaje de acceso. Combinados con PHP. PHP facilita el acceso a las bases de datos. Además PHP es el único lenguaje que actualmente se encuentra instalado.

Como resumen tenemos que las tecnologías a utilizar serán: • • • Servidor web: Apache. Así pues. 2. Analiza las necesidades de su empresa. JavaScript y CSS. Lenguaje de desarrollo de la aplicación web: PHP + DHTML (HTML. JavaScript y CSS). salvo raras excepciones.Metodología utilizada Antes de poder hablar de la metodología utilizada. Su comunicación será con el ponente y. permitirá crear sitios Web interactivos no estáticos [8]. también con el cliente. estas pueden ser: HTML. directamente con el jefe del proyecto. salvo raras excepciones. Su comunicación será directamente con el ponente y. es necesario hablar de los niveles y componentes del proceso de comunicación que existen para este proyecto. mantiene al cliente informado sobre el estado del proyecto.Desarrollo de una aplicación web… Capítulo 2 . Sus tareas serán diseñar e implementar todas las funcionalidades necesarias para completar el desarrollo. Su papel podría asimilarse al de analista del sistema. Además.3.Análisis Gracias a la combinación de estos tres lenguajes se consigue: • DHTML (Dynamic HTML): es la denominación genérica de las técnicas usadas para la generación de páginas HTML dinámicas. • GRSI (sponsor): es el beneficiario del proyecto. aglutina los requisitos y valida los prototipos desarrollados. Componentes: • Proyectista (desarrollador): es el encargado del proyecto en cuestión.. 17 . • Ponente (director del proyecto): su principal funcionalidad es saber transmitir las necesidades del cliente al desarrollador. Servidor gestor de bases de datos: MySQL.

los canales de comunicación quedarán del siguiente modo: Figura 2. para representar los requerimientos funcionales se utilizan los DFD (diagramas de flujos de datos). consistentes en una red de procesos. sponsor y director de proyecto establecen las bases de lo que serán los requisitos del proyecto en cuestión. 18 . El ciclo de vida del proyecto es en cascada [9] y se compone de las siguientes fases: • Análisis de requerimientos: En una primera reunión. Así pues.Desarrollo de una aplicación web… Capítulo 2 .Análisis Así pues. se puede hablar de la metodología utilizada en el desarrollo. se permite representar con toda fidelidad y de manera muy sencilla el proceso que sigue cada una de las funcionalidades del sistema.. Las siguientes reuniones son entre ponente y desarrollador donde ambos definen las funcionalidades formalmente.Componentes de la comunicación Una vez vistas las comunicaciones que se establecerán entre los diferentes componentes del desarrollo. en los que se describe la relación existente entre los ficheros para la arquitectura cliente-servidor. El ponente recoge los requisitos y asesora al cliente en sus elecciones y posibilidades.1. ya que provee de un lenguaje consistente para especificar. almacenes y entidades que se intercomunican de manera asíncrona. visualizar. se utiliza la metodología UML (lenguaje unificado de modelado) [10] con el fin de formalizar. el desarrollador hace un análisis y diseño de todos los requisitos. que juntamente con los diagramas WAE (extensión para aplicaciones web). • Análisis y diseño: En esta fase. construir y documentar los componentes de cualquier sistema de software. En el diseño.

19 . Si está satisfecho.Análisis Para el diseño de la base de datos se utilizaran los diagramas EntidadRelación. el desarrollo puede continuar y posiblemente el ponente se ponga en contacto con el cliente para comunicarle los avances. También se llevan a cabo: pruebas unitarias (para probar cada componente software). Si la reunión es satisfactoria se reúnen: proyectista. se tendrán que introducir las modificaciones pertinentes y repetir la reunión. que permiten conocer y nombrar toda la información que se guardará en el sistema. adaptándose a los contenidos del ciclo de vida en cuestión. el ciclo de vida podría verse concluido dependiendo de si fuera necesario realizar el mantenimiento de la aplicación. desea). si el cliente no está satisfecho con los resultados. ponente y GRSI para la validación final del proyecto. Completados los diseños. Todo esto se realizará mediante la herramienta ErWin.Desarrollo de una aplicación web… Capítulo 2 . en este caso el cliente. Cuando se ha finalizado el desarrollo de la aplicación completa se vuelven a reunir ponente y desarrollador con el mismo objetivo que la última reunión: validar el desarrollo. Hay que destacar. se produce otra reunión ponente-proyectista con el objetivo de aprobar el desarrollo hasta el momento. pruebas de integración (para validar que los componentes integrados se ejecutan como se especificó) y pruebas de sistema (que ven el sistema como una “caja negra” y validan que tenga la funcionalidad que el usuario final. Una vez implementadas y probadas las funcionalidades. que la documentación de la aplicación se realiza en cada una de las fases. En caso contrario. se produce otra reunión ponente-proyectista poder validar “los planos” sobre los que se orientará el desarrollo del proyecto. pero en este caso el prototipo final. • Desarrollo y pruebas: Aquí se traducen todos los diagramas realizados anteriormente al lenguaje de programación escogido. Una vez validados se pasa a la siguiente etapa. Del mismo modo que la anterior reunión.

Análisis Ponente GRSI Ponente Proyectista ANALISIS ANALISIS Y DISEÑO Ponente Proyectista ! OK OK DESARROLLO Ponente Proyectista ! OK OK Ponente Proyectista GRSI Figura 2..2.Ciclo de vida del proyecto 20 .Desarrollo de una aplicación web… Capítulo 2 .

Diseño 3.. o Sin identificación: B tomará las llaves primarias de A como atributos secundarios. A continuación se explica cual es la notación utilizada: • Tablas: son las entidades del diagrama y representan almacenes de datos. y secundarios.Bases de datos Tal como se ha comentado anteriormente. que servirán para indexar la información.1. y B solo puede tener una relación de A. Éste ha sido desarrollado con la herramienta ErWin versión 4. para el diseño de la base de datos se utiliza el diagrama Entidad-Relación [11].1.Diseño 3. Están compuestos por atributos primarios. Tabla Atributos primarios Atributos • Relaciones 1-N: A puede tener N relaciones de B.Desarrollo de una aplicación web… Capítulo 3 . 21 . o Con identificación: B tomará como llaves primarias las de A..

1. y 1 área puede tener M personas. Administradores u otro perfil que se defina).Desarrollo de una aplicación web… Capítulo 3 .Diseño La siguiente figura define el modelo Entidad-Relación utilizado: Personas Areas ID_Area Descripcion tienen Personas_Areas ID_Area (FK) ID_Login (FK) Ano estudian ID_Login Nombre Apellido1 Apellido2 Mail Password Foto Estado Idioma Intentos Ultimo_Intento Ultimo_Acceso Observaciones son Personas_Categoria tienen ID_Categoria (FK) ID_Login (FK) Ano Requisitos ID_Requisito Descripcion Idiomas Operaciones ID_Operacion Path Tipo Descripcion Identificador Castellano Catalan Ingles Origen puede estar realizan Proyectos ID_Proyecto Titulo Categoria Descripcion Parte_Practica Fecha_Maxima Estado Nota Fecha_Entrega ID_Login_Alumno (FK) ID_Login_Ponente_FK Url tienen Proyectos_Requisitos ID_Proyecto (FK) ID_Requisito (FK) son ponentes Personas_Proyectos piden ID_Login (FK) ID_Proyecto (FK) Prioridad son pedidos Notas Asignaturas ID_Asignatura Descripcion son cursadas ID_Asignatura (FK) ID_Login (FK) Convocatoria Nota Comentario Curso han cursado Permisos ID_Categoria (FK) ID_Operacion (FK) Categoria pueden hacer ID_Categoria Descripcion pueden estar Figura 3. • Asignaturas asignaturas. • Proyectos .Diagrama Entidad-Relación de la base de datos A continuación se explica el objetivo de cada tabla.Tabla Personas Representa la información de cualquier usuario en el sistema (Colaboradores.1. Relaciones con las siguientes tablas: • Areas N-M ya que 1 persona puede estudiar en N áreas a lo largo N-M ya que 1 persona puede haber cursado N del tiempo. y 1 asignaturas puede tener M personas que la han cursado. • Categoria N-M ya que 1 persona puede ser de N categorías.. Profesores. las relaciones con otras tablas y tipos de sus atributos: 3. así como la información que guarda. y 1 existen tres tipos de relaciones: 22 categoría puede tener M personas.1..

Dirección de correo electrónico. Fecha y hora del último intento de acceso fallido al sistema. Castellano Castellano. FA (falta alta) sistema. Char(100) Dirección url donde se encuentra la foto del usuario. Primer apellido de la persona. Char(20) A (alta) sistema. Segundo apellido de la persona. pero 1 proyecto/trabajo sólo puede estar realizado por 1 persona.Desarrollo de una aplicación web… Capítulo 3 . Campo que representa el nombre del usuario.Diseño o 1-N ya que 1 persona puede realizar N proyectos/trabajos. Intentos Ultimo_Intento Integer Char(30) Representa el número de intentos de accesos fallidos antes del bloqueo del usuario. pero 1 proyecto sólo puede tener 1 ponente. Inglés los textos que se mostrarán estarán en los textos que se mostrarán estarán en los textos que se mostrarán estarán en Inglés. o 1-N ya que 1 persona puede ser ponente de N proyectos. o N-M ya que 1 persona puede pedir N proyectos/trabajos. indica que el usuario ha solicitado el registro pero todavía no se le ha dado el alta en el indica que el usuario está dado de alta en el Idioma Char(10) Catalán Catalán. Atributo: ID_Login Nombre Apellido1 Apellido2 Mail Password Foto: Estado Tipo: Char(15) Char(30) Char(30) Char(30) Char(30) Char(15) Descripción: Llave primaria que identifica de qué usuario se trata. Contraseña codificada en md5 a partir del ID_Login y el Nombre. 23 Ultimo_Acceso Char(30) . y 1 proyecto/trabajo puede estar pedido por M personas. Fecha y hora del último acceso satisfactorio.

Relaciones con las siguientes tablas: • Requisitos N-M ya que 1 proyecto puede tener N requisitos.Tabla Proyectos Representa los datos de los proyectos (tanto TFC como PFC) y los trabajos del sistema. Atributo: ID_Proyecto Titulo Categoria Tipo: Char(30) Descripción: Llave primaria que identifica de qué proyecto/trabajo se trata. pero 1 proyecto sólo puede tener 1 ponente.Desarrollo de una aplicación web… Observaciones Text Capítulo 3 . Char(50) TFC (trabajo final de carrera) trata de un proyecto de tipo TFC. y 1 existen tres tipos de relaciones: requisito puede estar en M proyectos. o N-M ya que 1 persona puede pedir N proyectos/trabajos. o 1-N ya que 1 persona puede ser ponente de N proyectos. no de un proyecto. Char(100) Título del proyecto/trabajo.2.. indica que indica que se Descripcion Parte_Practica Text Text Parte teórica del proyecto/trabajo. pero 1 proyecto/trabajo sólo puede estar realizado por 1 persona.Atributos de la tabla Personas 3.Diseño Posibles observaciones sobre el usuario en cuestión.. Parte práctica del proyecto/trabajo. Trabajo indica que se trata de un trabajo. 24 .1. y 1 proyecto/trabajo puede estar pedido por M personas.1. Tabla 3. PFC (proyecto final de carrera) se trata de un proyecto de tipo PFC. • Personas o 1-N ya que 1 persona puede realizar N proyectos/trabajos.

Descripción del área en particular.2.Desarrollo de una aplicación web… Fecha_Maxima Estado Date Char(30) Fecha máxima de Capítulo 3 . Si se trata de un trabajo en grupo. y 1 área puede tener M personas. indica su representante. Char(100) Enlace a través del cual se recibe más información del proyecto/trabajo... Tabla 3.3. Asignado está libre.Tabla Areas Representa todas las posibles áreas que se pueden encontrar en el cliente.3.1. Relación con la tabla: • Personas N-M ya que 1 persona puede estudiar en N áreas. Llave foránea que identifica al alumno que realiza el proyecto/trabajo. Libre cogido. ID_Login_Ponente_FK Char(15) Url Llave foránea que identifica al profesor que lleva el proyecto.Atributos de la tabla Areas 25 . Tabla 3. Fecha en la que se ha entregado el indica que el proyecto/trabajo no indica que el proyecto/trabajo no está proyecto/trabajo. Nota Fecha_Entrega ID_Login_Alumno Char(10) Date Char(15) Evaluación que ha recibido el proyecto/trabajo. Atributo: ID_Area Descripcion Tipo: Char(30) Text Descripción: Llave primaria que identifica de qué área se trata.Atributos de la tabla Proyectos 3.Diseño entrega para el proyecto/trabajo..

. Atributo: ID_Asignatura Descripcion Tipo: Char(30) Text Descripción: Llave primaria que identifica de qué asignatura se trata.5.Diseño 3.4.. Inicialmente. Tabla 3..Atributos de la tabla Asignaturas 3. Descripción de la asignatura en particular. y 1 categoría puede tener M personas.1. serán: Colaborador.4.Tabla Asignaturas Representa todas las asignaturas de las cuales se quiere guardar la información sobre la evaluación obtenida por los Colaboradores.. y 1 operación puede estar asociado a M categorías.Desarrollo de una aplicación web… Capítulo 3 . Atributo: ID_Categoria Descripcion Tipo: Char(30) Text Descripción: Llave primaria que identifica de qué categoría se trata. Relaciones con las tablas: • Personas N-M ya que 1 persona puede ser de N categorías a lo N-M ya que 1 categoría puede tener N operaciones largo del tiempo. y 1 asignaturas puede tener M personas que la han cursado.1. Descripción de la categoría en particular. • Operaciones permitidas. Profesor y Admin. Relación con la tabla: • Personas N-M ya que 1 persona puede haber cursado N asignaturas. debido a las necesidades del sistema.5.Atributos de la tabla Categoria 26 . Tabla 3.Tabla Categoria Representa todas las posibles categorías de usuarios que existen en el sistema.

Descripción del requisito en particular. Path Char(100) Dirección a partir de la cual se encuentra el fichero inicial de la operación en cuestión. Ha de tener una traducción en la tabla Idiomas para poder mostrar la operación por el menú. y 1 requisito puede estar en M proyectos.Tabla Operaciones Representa todas las posibles operaciones que se puedan realizar en el sistema. 27 . Atributo: ID_Requisito Descripcion Tipo: Char(30) Text Descripción: Llave primaria que identifica de qué requisito se trata. Tabla 3. Relación con la tabla: • Categoria N-M ya que 1 categoría puede tener N operaciones permitidas...Tabla Requisitos Representa todas los posibles tecnologías que un proyecto (tanto TFC como PFC) o trabajo puedan requerir.Desarrollo de una aplicación web… Capítulo 3 .7. Atributo: ID_Operacion Tipo: Char(30) Descripción: Llave primaria que identifica de qué operación se trata.Atributos de la tabla Requisitos 3.Diseño 3.6.6.1. Relación con la tabla: • Proyectos N-M ya que 1 proyecto puede tener N requisitos..1. y 1 operación puede estar asociado a M categorías.

Atributos de la tabla Operaciones 3.. Este campo permite clasificar las operaciones por categorías a la hora de mostrar el menú. la operación aparecería por su Identificador.7. Atributo: Identificador Catalan Castellano Ingles Origen Tipo: Descripción: se trata. Char(254) Llave primaria que identifica de qué contenido Text Text Text Char(20) Traducción del contenido en catalán. ha de tener una traducción en la tabla Idiomas.Tabla Idiomas Representa todos los contenidos de la aplicación web que se mostrarán y sus traducciones en varios idiomas. Tabla 3. Contenido nueva operación.1. Así pues. en el menú.. Tabla 3.Desarrollo de una aplicación web… Tipo Char(20) Capítulo 3 .8..Atributos de la tabla Idiomas indica que el origen del contenido no se debe a la inserción de una 28 . Traducción del contenido en inglés. Traducción del contenido en castellano.8. Operacion indica que el origen del contenido se debe a la inserción de una nueva operación. Si se borra de esta tabla.Diseño Indica a qué “categoría” pertenece la operación. Descripcion Text Descripción de la operación en particular.

.1.. Indica a qué áreas ha pertenecido y pertenece cada persona. las evaluaciones que obtuvieron y cuando lo consiguieron.9. Atributo: ID_Area ID_Login Ano Tipo: Char(30) Char(15) Integer Descripción: Llave primaria y foránea que identifica de qué área se trata. Indica el año en que la persona perteneció al área indicada. 3. que han surgido de las relaciones N-M comentadas anteriormente.. Atributo: ID_Asignatura ID_Login Tipo: Char(30) Char(15) Descripción: Llave primaria y foránea que identifica de qué asignatura se trata.Desarrollo de una aplicación web… Capítulo 3 . Llave primaria y foránea que identifica de qué persona se trata.1. Así.Diseño 3.2.Otras Tablas Aquí se recogen el resto de tablas utilizadas.9. Llave primaria y foránea que identifica de qué persona se trata.1. Indica qué asignaturas han cursado los Colaboradores.9.1. se mantiene un histórico de la evolución.Tabla Personas_Areas Surge de la relación entre Areas y Personas.Atributos de la tabla Personas_Areas 3.9. 29 .Tabla Notas Surge de la relación entre Asignaturas y Personas. Tabla 3..

Atributos de la tabla Personas_Categoria 3.9. Indica el año en que la persona perteneció a la categoría indicada.Desarrollo de una aplicación web… Convocatoria Char(10) Capítulo 3 . Septiembre asignatura en el mes de Septiembre.1.10.4.9.Tabla Personas_Categoria Surge de la relación entre Categoría y Personas. 30 .1. Llave primaria y foránea que identifica de qué persona se trata. Junio asignatura en el mes de Junio.. Evaluación obtenida por la persona en la asignatura. Tabla 3. Indica a qué categorías han pertenecido y pertenecen cada una de las personas. Así se mantiene un histórico de la evolución.3..Atributos de la tabla Notas 3..Diseño indica que la persona tiene NP de la indica que la persona finalizó la indica que la persona finalizó la indica que la persona finalizó la NP asignatura.Tabla Permisos Surge de la relación entre Categoría y Operaciones.11. Indica qué operaciones están disponibles para cada una de las categorías. Tabla 3. Atributo: ID_Categoria ID_Login Ano Tipo: Char(30) Char(15) Integer Descripción: Llave primaria y foránea que identifica de qué categoría se trata. Febrero Nota Char(5) asignatura en el mes de Febrero..

12... Tabla 3.1.6.Atributos de la tabla Permisos 3. Alta 31 petición con máxima prioridad por .Atributos de la tabla Proyectos_Requisitos 3. Llave primaria y foránea que identifica de qué operación se trata.9.9.Tabla Proyectos_Requisitos Surge de la relación entre Proyectos y Requisitos.1. y sus prioridades.Tabla Personas_Proyectos Surge de la relación entre Personas y Proyectos. Atributo: ID_Proyecto ID_Requisito Tipo: Char(30) Char(30) Descripción: Llave primaria y foránea que identifica de qué proyecto se trata.Desarrollo de una aplicación web… Capítulo 3 .. Tabla 3. Indica cuales son las peticiones de trabajos y proyectos.5. Llave primaria y foránea que identifica de qué requisito se trata. Indica cuales son los requisitos de cada uno de los proyectos/trabajos del sistema.. Llave primaria y foránea que identifica de qué proyecto se trata.13.Diseño Atributo: ID_Categoria ID_Operacion Tipo: Char(30) Char(30) Descripción: Llave primaria y foránea que identifica de qué categoría se trata. Atributo: ID_Login ID_Proyecto Prioridad Tipo: Char(15) Char(30) Char(15) Descripción: Llave primaria y foránea que identifica de qué persona se trata.

32 .Diseño petición con prioridad media. 3. Además. Diagramas de la extensión UML para aplicaciones web o WAE. se utilizarán dos tipos de esquemas: • • Diagrama de flujo de datos o DFD.2. Tabla 3.. La notación utilizada será: • Cliente externo: se asimila a usuarios externos a la aplicación web.Funcionalidades Las funcionalidades representan todas las acciones que permite la aplicación web.Diagramas de flujo de datos Los diagramas de flujo de datos [12] representan los movimientos y las transformaciones que sufre la información con la que trabaja el sistema. y tal como se ha comentado anteriormente.1. mostrará información sobre los estados por los que se pasará para realizar una operación determinada. Cada operación tiene gran cantidad de información asociada.14..Desarrollo de una aplicación web… parte del Colaborador.Atributos de la tabla Personas_Proyectos 3.. por ese motivo resulta bastante difícil reflejar todas sus necesidades con un solo diagrama. petición con prioridad baja. Así pues.2. Media Baja Capítulo 3 . Cliente externo • Almacén de datos: entidad donde se guardan datos relacionados con la aplicación.

La aplicación web 33 . Tienen asociados un número que los identifica en los diagramas. es la siguiente: Usuario Sistema de RRHH Bases de datos Figura 3. según la orientación de la flecha. consultar y modificar los almacenes. A través de ellos se pueden comunicar los procesos y..DFD de Nivel 0 .2. siguiendo la notación especificada. Flujo de información La representación más general de la aplicación.Diseño Almacén de datos • Proceso: se asimila a opciones de menú o funciones del sistema. Proceso • Flujo de información: representa los movimientos de la información en el sistema.Desarrollo de una aplicación web… Capítulo 3 .

el resto de niveles de los diagramas se explican en diferentes apartados que corresponden a los diferentes tipos de operaciones. 3.Diseño Los diferentes elementos que aparecen son: • Usuario: cliente externo de la aplicación web.. En él se llevan a cabo todas las operaciones solicitadas en los requisitos. Puede adquirir varios roles según la configuración de la aplicación. éste es consultado y modificado.Operaciones de usuarios En este apartado se ven reflejadas todas las operaciones que tienen que ver con la gestión de usuarios. 34 . modificación.1.2.1. Debido al gran número de procesos que existen. pero por defecto serán: o Admin o Profesor o Colaborador • Sistema de RRHH: es el proceso que representa el conjunto del sistema. • Base de datos: almacén que constituye el conjunto de todas las bases de datos. Como es de esperar.Desarrollo de una aplicación web… Capítulo 3 . inserción. eliminación y consulta.

35 Lo gi n E st a ri o ua Us ar io min + suar Eli u de gi n Lo ID de + us An ua te rio rio r a s Us u ID = Alt ari os Formularios de usuarios 3 rio su a ar U i fic ario M od + usu ID = n de ci ó rma I nfo Lista de registros 4 ID io + su ar eu d gin Lo i or ter An .Desarrollo de una aplicación web… Capítulo 3 . Areas.3..Diseño Personas.Entrada al sistema Aquí se llevan a cabo todas las operaciones necesarias para validar el acceso de un usuario y generar el menú correspondiente a su nivel de acceso. Personas_Categoria dificar / ID = M o r / limina E rio ar Usu a Con sult ID + de us ua Usuario Lo gin Pa + ss wo rd Logi n Entrada al sistema 1 Buscador de usuarios 2 ri o ID = se In r/ ra i o st a r gi su Re U rt ar Muestra informaciones 6 Ant er ior do Personas de al ta s Permisos Correo 5 Figura 3. Categoría. Personas_Areas.DFD de Nivel 1 – Operaciones de usuarios A continuación se explica para qué sirven cada uno de los procesos: • Proceso 1 .

1 Verificación de datos 1.2 – Verificación de datos Se encarga de validar que el login y la contraseña sean correctos.2 OK Personas_Categoria Personas Creación de la página 1. Si el usuario ha acumulado un número determinado de accesos incorrectos. es necesario consultar y modificar el almacén Personas. 36 .1 .Formulario de acceso Representa la página de acceso que se encuentra el usuario para insertar su login y contraseña.Diseño ID ar is tr Reg = a Usu rio ! OK L ogin + Passwo rd Login + Password Formulario de acceso 1. permite el acceso al sistema.Desarrollo de una aplicación web… Capítulo 3 . Si lo son.4.php. muestra la opción de registro de nuevos colaboradores. si la configuración del sistema lo permite.. Además. Para poder realizar todas estas operaciones.3 ID Operaciones.1 e incrementa un intento de acceso fallido al usuario.DFD de Nivel 2 – Entrada al sistema o Proceso 1. Corresponde al fichero: index. o Proceso 1. y consultar Personas_Categoria. vuelve al proceso 1. Permisos Figura 3. también se bloqueará su cuenta por un tiempo predefinido. En caso contrario.

o Proceso 1. Personas_Areas y Personas_Categoria. Desde aquí. Corresponde a los ficheros: pagina.php. Categoría. tanto si se quiere insertar o registrar uno nuevo. 37 . Eliminar Usuario o Consultar Usuario.Diseño Si el acceso se ha realizado correctamente. • Proceso 3 – Formularios de usuarios Aquí se gestionan los datos de los usuarios.Desarrollo de una aplicación web… Corresponde al fichero: control.php. Solamente se podrá llegar hasta aquí. Al poder realizar búsquedas según diferentes criterios.php y menu. Para todo ello.php.3 es: Modificar Usuario. Corresponde al fichero: ConsultaUsuarios. se podrá acceder a todas las funcionalidades del sistema. este proceso consulta los almacenes de: Personas. El flujo ID representará la operación escogida por el usuario. • Proceso 2 – Buscador de usuarios Este proceso es un buscador de los usuarios dados de alta en el sistema. este proceso genera el menú correspondiente al nivel de acceso del usuario.3 – Creación de la página Capítulo 3 . permitiendo generar listas sobre ellos. como la modificación de los de uno ya existente. es necesario consultar los almacenes de Operaciones y Permisos. Areas. si la operación escogida por el usuario en el proceso 1.

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

ID

=R

M od i fi car Usua Infor rio maci + ón d e usu a ri o

ID =

egi s Us trar / ua ri o I ns e rta

r
ID + Información de usuario

Formulario de datos de usuarios 3.1

Tratamiento de datos de usuarios 3.2

Personas, Notas, Asignaturas Areas, Asignaturas, Categoria Personas, Notas, Personas_Areas, Personas_Categoria

Figura 3.5.- DFD de Nivel 2 – Formularios de usuarios

o Proceso 3.1 – Formulario de datos de usuarios Representa el formulario donde se pondrán introducir datos y la modificación de ellos. Al ser dinámico, es necesaria la consulta de los almacenes: Areas, Asignaturas y Categoría. Corresponde al fichero: FormularioUsuario3.php. o Proceso 3.2 – Tratamiento de datos de usuarios Este proceso recibe la información de un usuario y la operación que se está realizando, para llevar a cabo los cambios pertinentes en los almacenes de: Personas, Notas, Personas_Areas y Personas_Categoria. No obstante, también serán necesarias algunas verificaciones para garantizar la estabilidad del sistema. Éstas se llevan a cabo con la consulta de los almacenes: Personas, Notas y Asignaturas. Corresponde al fichero: FormularioUsuario33.php.

38

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

Proceso 4 – Lista de registros Aquí se llevan a cabo todas las operaciones necesarias para realizar las altas o bajas de los Colaboradores. Se permite eliminar y mostrar información detallada de los usuarios a través del proceso 6, y enviar correos sobre las operaciones llevadas a cabo a través del 5. Consulta los almacenes: Permisos y Personas, y también modifica éste último. Corresponde al fichero: AltasUsuarios.php.

Proceso 5 – Correo Debido al carácter de este proceso, se explicará en el punto 3.2.5.Otras operaciones.

Proceso 6 – Muestra informaciones Este proceso permite mostrar las relaciones que existen cuando se muestra la información detallada de un usuario, trabajo o proyecto. Además de permitir el borrado de cada uno de ellos. Aunque contenga información relacionada con otro tipo de operaciones, se explicará aquí ya que se agrupa en un mismo proceso.

39

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

ter ci ó n d i or eu s car Usuau ario rio + In fo rmació n de usua ri o
ID = M odifi

I n fo

rma

An

ID + de in Log ua ri o ale s us erson atos P ID = D

M uestra usuario 6.1

Permitido

Proyectos

Muestra proyecto 6.2
e Id

ID r + ad o o t i fi c ent ro yec to Id p yec pro de n de ció rm a r Proyecto In f o ID = Modifica + ecto n de proy Informació Anterior

Requisitos, Proyectos_Requisitos

ID = E lim i fi nt

ID = Elim in ar Usu ario + Lo gin d e u suario

to o ec ct oy ye Pr ro ar in + e p rd

ca

Personas, Personas_Categoria,
Personas_Proyectos, Personas_Areas, Notas

do

Permisos

P er m it id o

Personas_Categoria,
Personas_Areas, Notas Eliminar usuario 6.4

Eliminar proyecto 6.5

Proyectos_Requisitos, Personas_Proyectos

ba

jo

rio su a ar U imi n + ri o El sua eu in d Log

Muestra trabajo 6.3
ID = Id en
A nt e

Proyectos, Personas_Proyectos

Id

en

El im ti f ic ad

ina

Proyectos_Requisitos
El im in + dor

or

rP + ro y ec to de pr oy ec to

In f or

ma

ID + ajo dor t if ica ab Iden rabajo Tr jo ar et d ba ic t ra dif + de Mo n = ci ó ID ma or Inf
nd c ió

ti fi c a

et ra

ar T rab a jo de t rab ajo

Personas_Proyectos
Eliminar trabajo 6.6

o Proceso 6.1 – Muestra usuario Muestra toda la información relacionada con un usuario, de ahí que deba consultar todos los almacenes relacionados con personas; Proyectos, Permisos, Personas, Personas_Categoria, Personas_Proyectos, Personas_Areas y Notas. Si recibe el ID = Eliminar Usuario, permitirá eliminar el usuario enviando el login al proceso 6.4. Si recibe ID = Modificar Usuario, permitirá modificar el usuario enviando toda su información al proceso 3.1. Para cualquier otra operación se limitará a mostrar su información (con la posibilidad de volver a la página Anterior) o retornar el contenido de la página (información de usuario). Si al consultar el almacén Permisos, el usuario en cuestión tiene privilegios sobre las consultas de proyectos o trabajos, podrá acceder a la ficha de cada uno de los que aparezcan en la información del usuario. 40

rio r

El im inar Trab aj o Id en tificad + or de trab

ajo

Figura 3.6.- DFD de Nivel 2 – Muestra informaciones

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

Corresponde al fichero: MuestraUsuario.php. o Proceso 6.2 – Muestra proyecto Muestra toda la información relacionada con un proyecto, de ahí que deba consultar todos los almacenes relacionados con proyectos; Proyectos, Permisos, Personas_Proyectos, Requisitos y Proyectos_Requisitos. Si recibe el ID = Eliminar Proyecto, permitirá eliminar el proyecto enviando el identificador al proceso 6.5. Si recibe ID = Modificar Proyecto, permitirá modificar el proyecto enviando toda su información al proceso 8.1. Para cualquier otra operación se limitará a mostrar su información (con la posibilidad de volver a la página Anterior) o retornar el contenido de la página (información de proyecto). Si al consultar el almacén Permisos, el usuario en cuestión tiene privilegios sobre las consultas de usuarios o trabajos, podrá acceder a la ficha de cada uno de los que aparezcan en la información del proyecto. Corresponde al fichero: MuestraProyecto.php. o Proceso 6.3 – Muestra trabajo Muestra toda la información relacionada con un trabajo, de ahí que deba consultar todos los almacenes relacionados con trabajos; Proyectos, Permisos y Personas_Proyectos. Si recibe el ID = Eliminar Trabajo, permitirá eliminar el trabajo enviando el identificador al proceso 6.7. Si recibe ID = Modificar Trabajo, permitirá modificar el trabajo enviando toda su información al proceso 12.1. Para cualquier otra operación se limitará a mostrar su información (con la posibilidad de volver a la página Anterior) o retornar el contenido de la página (información de trabajo). Si al consultar el almacén Permisos, el usuario en cuestión tiene privilegios sobre las consultas de usuarios o proyectos, podrá acceder a la ficha de cada uno de los que aparezcan en la información del trabajo. Corresponde al fichero: MuestraTrabajo.php.

41

es necesario modificar los almacenes: Proyectos y Personas_Proyectos.php. Corresponde al fichero: EliminaUsuario. o Proceso 6. Para ello. 42 . No obstante. es necesario modificar los almacenes: Personas. Para ello. Éstas se llevan a cabo con la consulta de los almacenes: Personas_Categoria. Personas_Areas y Notas. Éstas se llevan a cabo con la consulta de los almacenes: Proyectos_Requisitos y Personas_Proyectos.5 – Eliminar proyecto Este proceso recibe el identificador de un proyecto y borra toda la información asociada a él.php.4 – Eliminar usuario Este proceso recibe el login de un usuario y borra toda la información asociada a él. también serán necesarias algunas verificaciones para garantizar la estabilidad del sistema. No obstante. Personas_Categoria. o Proceso 6. también serán necesarias algunas verificaciones para garantizar la estabilidad del sistema. Personas_Proyectos.php.6 – Eliminar trabajo Este proceso recibe el identificador de un trabajo y borra toda la información asociada a él.Desarrollo de una aplicación web… Capítulo 3 . es necesario modificar los almacenes: Proyectos. Para ello.Diseño o Proceso 6. Éstas se llevan a cabo con la consulta del almacén Personas_Proyectos. No obstante. Personas_Areas y Notas. también serán necesarias algunas verificaciones para garantizar la estabilidad del sistema. Corresponde al fichero: EliminaProyecto. Corresponde al fichero: EliminaTrabajo. Personas_Proyectos y Proyectos_Requisitos.

2. Usuario Lo ID na sig =A P ro r Pr s ct o o ye Pa + ss wo rd gi n Entrada al sistema 1 ID = po n Pro er / R yec eg i str to a Lista de proyectos solicitados 7 r A si gn ID + Ide ntificador de proye cto Información de proyecto ID + Login de usuario Muestra informaciones 6 Información de usuario ac i ón Formularios de proyectos 8 Pro p u es ta Ide n ti fi o ID ect + ro y ep d or c ad t er An ior / n ar i mi / El to lt ar r o yec nsu Co car P ID = o d ifi M Lista de proyectos libres 10 ID = Solicitar Proyecto Correo 5 Búsqueda de proyectos 9 Proyectos. eliminación.Operaciones de proyectos En este apartado se ven reflejadas todas las operaciones que tienen que ver con la gestión de proyectos.. consulta. Personas_Proyectos. Requisitos.2.1. propuestas y solicitudes. asignación. modificación.Desarrollo de una aplicación web… Capítulo 3 .Diseño 3.7.. Proyectos_Requisitos ecto P ro y icar odif + M cto ID = roye ión P rmac Info Correo 5 ct o ID ye ro + ep rd do ca t ifi r n ri o Ide nte AD ct o I ye + e p ro o d ct cto or ye ye ad fic p ro ro ID p n ti de + de Ide i ón ac or r o rm ad io Inf ic er ti f nt A en Id li c So d itu Figura 3.DFD de Nivel 1 – Operaciones de proyectos 43 . inserción.

php.DFD de Nivel 2 – Lista de proyectos solicitados o Proceso 7. o Proceso 7. aquí se generará una de las dos posibilidades: Usuarios-Proyectos: lista de los proyectos solicitados por cada usuario. cto ID ye + e pro d or ad p ro yec to ID = Asignar Proyectos Lista Usuarios-Proyectos Lista Proyectos-Usuarios I de f ic nt i Asignación de proyectos 7. Además permite la posibilidad de generar dos tipos de listas para facilitar su estudio.Diseño A continuación se explica para qué sirven cada uno de los procesos: • Proceso 7 – Lista de proyectos solicitados Aquí se llevan a cabo todas las operaciones necesarias para realizar una correcta asignación de los proyectos. se envía un correo electrónico al usuario afectado a través del módulo 5.2 ci rma In fo ó e nd Lo gin I n fo r ID + de us u ari o mació n de u s u ario Proyectos. es necesario consultar los almacenes: Personas y Personas_Proyectos.2 – Generador de listas de proyectos y usuarios Dependiendo de la elección realizada en el proceso 7.1 – Asignación de proyectos Este proceso se encarga de asignar los proyectos a los usuarios que los hayan solicitado. Para ello. cada vez que se realiza una asignación.1 Anterior Generador de listas de proyectos y usuarios 7. Personas_Proyectos Figura 3.Desarrollo de una aplicación web… Capítulo 3 .. 44 .1. Además. y modificar: Proyectos y Personas_Proyectos. Personas_Proyectos Personas.2). Desde aquí se permite la opción de generar los dos tipos de listas (proceso 7. Corresponde al fichero: AsignarProyectos.8.

y así obtener los logins de usuarios y los identificadores de los proyectos.9. y así será posible acumular toda la información en una sola página.1 Tratamiento de datos de proyectos 8.. Corresponde al fichero: GeneradorListaSolicitados.Desarrollo de una aplicación web… Capítulo 3 . Personas. Toda la información relacionada con los usuarios y proyectos se obtendrá mediante peticiones al proceso 6. ID rop o Pro ner / yec R eg to istr ID = M od ar if ica r Pro In fo y ect + rma o c ió n de p r o ye ct o =P ID + Inform ación de proye cto P ro p u e sta Formulario de datos de proyectos 8. Para ello será necesaria la consulta de los almacenes: Personas y Personas_Proyectos. como la modificación de los de uno ya existente. Personas_Areas Requisitos. Proyectos.php. Personas Proyectos. tanto si se quiere insertar o registrar uno nuevo. Proyectos_Requisitos Figura 3.2 Requisitos.DFD de Nivel 2 – Formularios de proyectos 45 . Personas_Categoria.Diseño Proyectos-Usuarios: lista de los usuarios que han solicitado cada proyecto. • Proceso 8 – Formularios de proyectos Aquí se gestionan los datos de los proyectos.

No obstante. también serán necesarias algunas verificaciones para garantizar la estabilidad del sistema.2 – Tratamiento de datos de proyectos Este proceso recibe la información de un proyecto y la operación que se está realizando para realizar los cambios pertinentes en los almacenes de: Proyectos y Proyectos_Requisitos. Proyectos y Personas. Corresponde al fichero: FormularioProyecto3. Cabe destacar.1 – Formulario de datos de proyectos Representa el formulario donde se podrán introducir datos y la modificación de ellos.php. Personas_Proyectos y Proyectos_Requisito.3 es: Modificar Proyecto. Personas_Categoria y Personas_Areas. Solamente se podrá llegar hasta aquí. Personas.Desarrollo de una aplicación web… Capítulo 3 . 46 . Eliminar Proyecto o Consultar Proyecto. Corresponde al fichero: ConsultaProyectos. • Proceso 10 – Lista de proyectos libres Aquí se muestra un listado de todos los proyectos disponibles. • Proceso 9 – Búsqueda de proyectos Este proceso es un buscador de los proyectos del sistema. o Proceso 8. es necesaria la consulta de los almacenes: Requisitos. que si se trata de ID = Proponer Proyecto se remitirá la propuesta al módulo 5 para enviarla por correo electrónico. permitiendo generar listas sobre ellos. este proceso consulta los almacenes de: Proyectos. Requisitos. Éstas se llevan a cabo con la consulta de los almacenes: Requisitos.php. Al poder realizar búsquedas según diferentes criterios.Diseño o Proceso 8. y se facilita la solicitud de tres de ellos. Corresponde al fichero: FormularioProyecto33. si la operación escogida por el usuario en el proceso 1.php. Al ser dinámico.

2 Proyectos.2 – Tratamiento de solicitudes de proyectos Aquí se reciben los identificadores de los tres proyectos solicitados con sus respectivas prioridades. A partir de sucesivas peticiones al módulo 6.1 ct o r o ye de p c ió n rma Info ID to + r o ye c r de p o if ica d I d en t Identificadores de tres proyectos + Tratamiento Prioridades S olicitud de solicitudes de proyectos 10.php.Desarrollo de una aplicación web… Capítulo 3 . 47 .10.DFD de Nivel 2 – Lista de proyectos libres o Proceso 10. se muestra un formulario que facilita la solicitud de tres proyectos. o Proceso 10. se consigue mostrar la información de todos los proyectos que se encuentran libres.. para realizar dichas operaciones es necesario consultar los almacenes: Proyectos y Personas_Proyectos. Corresponde al fichero: SolicitarProyectos. Además. y se envía la solicitud al módulo 5 para enviar un correo. Corresponde al fichero: SolicitarProyectos2. Como se puede suponer.Diseño ID =S ol ici t ar Pr o ye ct o Solicitud de proyectos 10. Se actualiza la información del almacén Personas_Proyectos para así poder conservar un histórico. Personas_Proyectos Personas_Proyectos Figura 3.php.1 – Solicitud de proyectos A este proceso se llega siempre que ID = Solicitar Proyecto.

propuestas y solicitudes.Diseño 3. consulta.Desarrollo de una aplicación web… Capítulo 3 . asignación.3.11. Proyectos aj os rab Usuario Lo gi Pa + n ss wo rd ID ar T sig n =A Entrada al sistema 1 ID = P ro po n Tra er / R b aj e o gi st rar Lista de trabajos solicitados 11 ID + Id enti fi c ad o r d In fo rmac e trabaj o ión d e tr abajo ID + Login de usuari o i As Información de usuario ID cto + oy e e pr or d ic ad ntif Muestra informaciones 6 nar i mi / E l jo ltar T ra ba nsu Co if icar ID = Mo d a gn n ció Formularios de trabajos 12 P r op ues t a Lista de trabajos libres 14 ID = Solicita r Tra bajo I de Correo 5 er Ant i or Búsqueda de trabajos 13 / Proyectos.Operaciones de trabajos En este apartado se ven reflejadas todas las operaciones que tienen que ver con la gestión de trabajos.1..2. Personas_Proyectos rabajo icar T Modif + ID = ajo e trab ión d rmac Info So lic itu d Correo 5 jo ID ba tra + de r do ca tif i i or en ter Id An jo ID ba t ra + de to or ec cad jo oy ba I D t ifi r n ra Id e et + ep d nd r ció or a io d er orm ca nt Inf ifi A t en Id Figura 3. Personas_Proyecto..DFD de Nivel 1 – Operaciones de trabajos 48 . eliminación. modificación. inserción.

Para ello.12.2 In fo ci rma ó e nd trab ajo Login ID + de us u ario In fo r mació n d e us uario Proyectos. Además.1 – Asignación de trabajos Este proceso se encarga de asignar los trabajos a los usuarios que los hayan solicitado. a ID ab + de tr r do ca ti fi n jo ID = Asignar Trabajos Asignación de trabajos 11.1 Lista Usuarios-Trabajos Lista Trabajos-Usuarios I de Anterior Generador de listas de trabajos y usuarios 11. aquí se generará una de las dos posibilidades: Usuarios-Trabajos: lista de los trabajos solicitados por cada usuario. y modificar: Proyectos y Personas_Proyectos. Además permite la posibilidad de generar dos tipos de listas para facilitar su estudio.2). es necesario consultar los almacenes: Personas y Personas_Proyectos.Diseño A continuación se explica para qué sirven cada uno de los procesos: • Proceso 11 – Lista de trabajos solicitados Aquí se llevan a cabo todas las operaciones necesarias para realizar una correcta asignación de los trabajos.DFD de Nivel 2 – Lista de trabajos solicitados o Proceso 11. o Proceso 11. se envía un correo electrónico al usuario afectado a través del módulo 5. cada vez que se realiza una asignación.. Personas_Proyectos Personas. Personas_Proyectos Figura 3.Desarrollo de una aplicación web… Capítulo 3 . 49 .1.php.2 – Generador de listas de trabajos y usuarios Dependiendo de la elección realizada en el proceso 11. Desde aquí se permite la opción de generar los dos tipos de listas (proceso 11. Corresponde al fichero: AsignarTrabajos.

como la modificación de los de uno ya existente.Desarrollo de una aplicación web… Capítulo 3 .. Para ello será necesaria la consulta de los almacenes: Personas y Personas_Proyectos.DFD de Nivel 2 – Formularios de trabajos 50 .13. tanto si se quiere insertar o registrar uno nuevo. y así será posible acumular toda la información en una sola página. Personas_Categoria Proyectos Figura 3. • Proceso 12 – Formularios de trabajos Aquí se gestionan los datos de los trabajos.php. ID =P rop on Tra er / R baj e gi str o ar ID = M o d ifi c ar T r a baj o I nf o rm + ació n de tra b aj o ID + Información de trabajo P ropue st a Formulario de datos de trabajos 12. Toda la información relacionada con los usuarios y trabajos se obtendrá mediante peticiones al proceso 6.1 T ratamiento de datos de trabajos 12.Diseño Trabajos-Usuarios: lista de los usuarios que han solicitado cada trabajo. Corresponde al fichero: GeneradorListaSolicitados.2 Personas. y así obtener los logins de usuarios y los identificadores de los trabajos.

Corresponde al fichero: ConsultaTrabajos. es necesaria la consulta de los almacenes: Personas y Personas_Categoria. y se facilita la solicitud de tres de ellos.2 – Tratamiento de datos de trabajos Este proceso recibe la información de un trabajo y la operación que se está realizando para realizar los cambios pertinentes en el almacén Proyectos. • Proceso 14 – Lista de trabajos libres Aquí se muestra un listado de todos los trabajos disponibles.php. o Proceso 12.php. Al ser dinámico. 51 . que si se trata de ID = Proponer Trabajo se remitirá la propuesta al módulo 5 para enviarla por correo electrónico.Diseño o Proceso 12. Corresponde al fichero: FormularioTrabajo3. si la operación escogida por el usuario en el proceso 1.1 – Formulario de datos de trabajos Representa el formulario donde se podrán introducir datos y la modificación de ellos. este proceso consulta los almacenes de: Proyectos y Personas_Proyectos. permitiendo generar listas sobre ellos. Al poder realizar búsquedas según diferentes criterios.3 es: Modificar Trabajo.Desarrollo de una aplicación web… Capítulo 3 . Solamente se podrá llegar hasta aquí. Corresponde al fichero: FormularioTrabajo33. Cabe destacar.php. Eliminar Trabajo o Consultar Trabajo. • Proceso 13 – Búsqueda de trabajos Este proceso es un buscador de los trabajos del sistema.

o Proceso 14.Desarrollo de una aplicación web… Capítulo 3 . se consigue mostrar la información de todos los trabajos que se encuentran libres. Corresponde al fichero: SolicitarTrabajos.php.2 – Tratamiento de solicitudes de trabajos Aquí se reciben los identificadores de los tres trabajos solicitados con sus respectivas prioridades.1 a jo t rab n de ci ó rma In fo ID + aj o e trab dor d if ica Ident Identificadore s de tres traba jos + Prioridades Solicitud Tratamiento de solicitudes de trabajos 14. y se envía la solicitud al módulo 5 para enviar un correo.2 Proyectos.DFD de Nivel 2 – Lista de trabajos libres o Proceso 14. se muestra un formulario que facilita la solicitud de tres trabajos. Como se puede suponer.php. Personas_Proyectos Personas_Proyectos Figura 3. para realizar dichas operaciones es necesario consultar los almacenes: Proyectos y Personas_Proyectos.Diseño ID =S oli cit a rT ra ba jo Solicitud de trabajos 14. Corresponde al fichero: SolicitarTrabajos2.1 – Solicitud de trabajos A este proceso se llega siempre que ID = Solicitar Trabajo.14. A partir de sucesivas peticiones al módulo 6. 52 . Se actualiza la información del almacén Personas_Proyectos para así poder conservar un histórico.. Además.

Diseño 3.2. Usuario Lo gi n Pa + ssw o rd ID st io n = Ge e Co nt nido s Entrada al sistema 1 ID = G ID = G es t io is equ nR it o s Proyectos.Desarrollo de una aplicación web… Capítulo 3 . permisos. Permisos ID = G es t io n Gestión de requisitos 16 Asig nat u r Gestión de contenidos 15 Idiomas Id e nt A nt I D er i o r or + de pr oy ec t A nt I D erio esti o n as Requisitos. Proyectos_Requisitos ifi c ad O pe ra ci on Asignaturas. eliminación y consulta de: asignaturas.1..4. Personas_Areas Categoria.. operaciones. inserción. requisitos.Operaciones de gestión En este apartado se ven reflejadas todas las operaciones que tienen que ver con la gestión del sistema en general. Personas_Categoria ID + usuario Login d e Ant erio r Figura 3.15. Notas es ID = G esti ID =G ID C at eg o =D t io n Gestión de operaciones 18 ato s Pe rso Gestión de asignaturas 17 na les o ria s on A r eas es ti o er nP m iso s Lo gi n Permisos de + us u r ar G es Idiomas Operaciones. áreas y categorías. Permisos Gestión de permisos 19 io ID = G estión de áreas 20 Muestra informaciones 6 Permisos Gestión de categorías 21 Operaciones. contenidos. modificación. Categoria Permisos Anterio r ID + Login de usua rio Areas.DFD de Nivel 1 – Operaciones de gestión 53 .

se podrá acceder a la ficha de todos los proyectos que aparezcan en pantalla a través del módulo 6.php. • Proceso 16 – Gestión de requisitos Este proceso permite el mantenimiento de los requisitos registrados en el sistema que pueden necesitar los proyectos. 54 . y únicamente se podrá acceder a este proceso si ID = Gestion Contenidos. si el usuario tiene permisos sobre la operación Consultar Proyecto. Proyectos_Requisitos. Corresponde al fichero: GestionContenidos. se podrá acceder a la ficha de todos los usuarios que aparezcan en pantalla a través del módulo 6. Corresponde al fichero: GestionRequisitos. Proyectos y Permisos.php. Permisos e Idiomas. • Proceso 17 – Gestión de asignaturas Este proceso permite el mantenimiento de las asignaturas registradas en el sistema.php. • Proceso 18 – Gestión de operaciones Este proceso permite el mantenimiento de las operaciones registradas en la aplicación web. es necesario modificar y consultar el almacén Idiomas. y modificar los dos primeros. Únicamente se podrá acceder a este proceso si ID = Gestion Requisitos. y modificar los dos primeros. Notas y Permisos. Únicamente se podrá acceder a este proceso si ID = Gestion Operaciones.Desarrollo de una aplicación web… Capítulo 3 . y consultar los dos primeros.Diseño A continuación se explica para qué sirven cada uno de los procesos: • Proceso 15 – Gestión de contenidos Este proceso permite el mantenimiento de los contenidos de la aplicación web que se muestran por pantalla. si el usuario tiene permisos sobre la operación Consultar Usuario. Corresponde al fichero: GestionAsignaturas. Además. Además. Para llevarlo a cabo. Únicamente se podrá acceder a este proceso si ID = Gestion Asignaturas. es necesario modificar los almacenes: Operaciones. es necesario consultar los almacenes: Requisitos. Para llevarlo a cabo. Para llevarlo a cabo. es necesario consultar los almacenes: Asignaturas. Para llevarlo a cabo.

Personas_Categoria y Permisos. y modificar los dos primeros.php. • Proceso 21 – Gestión de categorías Este proceso permite el mantenimiento de las categorías registradas en el sistema. Además. es necesario consultar los almacenes: Permisos. Operaciones y Categoria.php. se podrá acceder a la ficha de todos los usuarios que aparezcan en pantalla a través del módulo 6. se podrá acceder a la ficha de todos los usuarios que aparezcan en pantalla a través del módulo 6. sobre las operaciones del sistema.php. Corresponde al fichero: GestionAreas. Para llevarlo a cabo. 55 . Corresponde al fichero: GestionPermisos.Diseño • Proceso 19 – Gestión de permisos Este proceso permite el mantenimiento de los privilegios. si el usuario tiene permisos sobre la operación Consultar Usuario. Además. Personas_Areas y Permisos.php. Únicamente se podrá acceder a este proceso si ID = Gestion Permisos. es necesario consultar los almacenes: Categoria. Para llevarlo a cabo. • Proceso 20 – Gestión de áreas Este proceso permite el mantenimiento de las áreas registradas en el sistema. y modificar los dos primeros. si el usuario tiene permisos sobre la operación Consultar Usuario. Únicamente se podrá acceder a este proceso si ID = Gestion Areas. Únicamente se podrá acceder a este proceso si ID = Gestion Categorias. de los diferentes niveles de acceso. Capítulo 3 . es necesario consultar los almacenes: Areas. Para llevarlo a cabo. Corresponde al fichero: GestionCategorias. y modificar el primero.Desarrollo de una aplicación web… Corresponde al fichero: GestionOperaciones.

permite ver en detalle las fichas de los usuarios a través de peticiones al módulo 6.DFD de Nivel 1 – Otras operaciones . Personas_Categoria.Desarrollo de una aplicación web… Capítulo 3 . no pertenecen a ninguna de las anteriores categorías. este proceso permite realizar búsquedas y listas sobre los usuarios que están dados de alta en el sistema. una vez realizada una búsqueda.Otras operaciones En este apartado se ven reflejadas todas las operaciones que. si la operación escogida por el usuario en el proceso 1. Personas_Categoria.1.3 es Adoptar Usuario. Areas. Areas.2.Diseño 3.16. Permisos. Trabajos Noticies Publicacions Figura 3.. Permisos y Categoria. Solamente se podrá llegar hasta aquí. Idiomas ID + Login de usuario Anteri or Muestra informaciones 6 A continuación se explica para qué sirven cada uno de los procesos: • Proceso 22 – Adopción de usuarios De un modo muy similar al proceso 2. este proceso consulta los almacenes de: Personas. Personas_Areas.. por su carácter. ri o su a Usuario Pa gi + n ssw o rd Lo I op Ad D= U tar Entrada al sistema 1 ID = Adopción de Usuarios 22 Personas. Al permitir realizar búsquedas según diferentes criterios. Proyectos.php. Personas_Areas. Categoria Lo gin ID + de us ua E nvia r Cor r eo An t rio Correo 5 ID = e ri or ID = Personas. 56 li Pu b ca c io ne s Gestor de Publicaciones 24 s ia ic ot N Gestor de Noticias 23 Personas.5. Además. Personas_Categoria. Corresponde al fichero: AdoptarUsuario.

puede recibir: solicitudes (de los procesos 10 y 14). Además. propuestas (de los 8 y 12). Así pues.2 – Envío de correo Su función es la de recibir toda la información del proceso 5. Categoria.17.1 – Formulario de correo Este proceso se encarga de recoger toda la información necesaria para el envío de correos electrónicos (destinatario. Personas_Areas. Personas. Permisos. cc. 57 .1 y realizar el envío del e-mail. si el usuario puede realizar la operación Consultar Usuario. Corresponde al fichero: Correo. solamente será necesario consultar el almacén Permisos. So l ic Est a i tu do d e al d Pro p t as Asig n uest a aci ón ID = Asignar Proyectos Enviar Formulario de correo 5. Además.Desarrollo de una aplicación web… Capítulo 3 . bcc.. o Proceso 5. Personas_Categoria Figura 3. se le mostrarán unos botones que le facilitarán rellenar los campos.php.1 Envío de correo 5.Diseño • Proceso 5 – Correo Aquí se realizan todas las operaciones relacionas con el envío de correos. asunto y mensaje).3 Areas.DFD de Nivel 2 – Correo o Proceso 5.2 Ge nera r Dest inatario / CC / BCC Ge nera r Permisos Personas An t L og erio r ID + in d eu su ario Generador de campos 5.

Corresponde al fichero: GeneradorCamposMail.Diseño estados de altas (del 4) y asignaciones (de los 7 y 11). es necesario consultar y modificar el almacén de Noticies.php.php y operacionsNoticia. Para llevarlo a cabo. es necesario consultar y modificar el almacén de Publicacions. Corresponde a los ficheros: noticies.php. Únicamente se podrá acceder a este proceso si ID = Publicacions. • Proceso 23 – Gestor de noticias Este proceso permite el mantenimiento de las noticias del cliente. Por eso mismo. De esta manera será necesario consultar el almacén Personas para saber el origen de los envíos. y al soportar varios criterios. dadesPublicacio.1. se podrá mostrar su ficha personal a través de peticiones al módulo 6. Únicamente se podrá acceder a este proceso si ID = Noticias. los almacenes que se consultarán son: Areas.php. Permisos.php.php y operacionsPublicacio. cada vez que se muestre el nombre de un usuario en pantalla. Personas_Areas y Personas_Categoria. el usuario tiene privilegios sobre la operación Consultar Usuarios. Para llevarlo a cabo. por eso mismo. Corresponde al fichero: Correo2. 58 . • Proceso 24 – Gestor de publicaciones Este proceso permite el mantenimiento de las publicaciones del cliente.php.Desarrollo de una aplicación web… Capítulo 3 . aquí se podrán generar los diferentes campos de los destinos a través de un buscador integrado. dadesNoticia. o Proceso 5.php. Categoria. Personas.3 – Generador de campos Dependiendo de la elección escogida en el proceso 5. para realizar un envío directo. Como se ha comentado anteriormente. si se llega a este proceso. Corresponde a los ficheros: publicacions.

• Página de cliente: se ejecuta en el navegador del usuario.Diagramas WAE Los diagramas WAE [13] permiten mostrar para cada operación: los archivos necesarios. 59 .Diseño 3.2.Desarrollo de una aplicación web… Capítulo 3 . • Target: representa una página.. • Usuario: representa al usuario en los diagramas. A continuación se explica la notación utilizada: • Página de servidor: se ejecuta en el lado del servidor. el contenido del cual se actualizará siempre que se utilice su identificador. la información que se pasan y el lugar donde se ejecutan cada uno de ellos (servidor o cliente). la relación existente entre ellos.2. • FrameSet: página que está compuesta por varias.

También se indica cierta información para determinar en que caso tiene lugar.Desarrollo de una aplicación web… Capítulo 3 .Diseño • Formulario: en su interior se describirán los campos y sus tipos. • JavaScript: código que se ejecuta en el lado del cliente. <<submit>> Texto o Links: el origen contiene una link a la punta de la flecha. <<links>> Texto {parameters} o Redirect: la página del origen hace una redirección a la de la punta de la flecha enviando ciertos parámetros. La opción que se muestra al usuario para realizar el submit es el Texto. Indicará cuales son las funciones que existen. También se detalla la información que se pasa como parámetros. Texto indicará la opción que se le muestra al usuario para cambiar de página. A o Composición: B compone a A. • Relaciones: o Agregación: B está agregado a A. <<redurect>> Información {parameters} 60 . A B B o Submit: en el origen existe un formulario y se enviarán todos sus parámetros a la página que indica la punta.

<<uses>> Al igual que al detallar los diagramas de flujos de datos. se mostrarán o dejarán de mostrar algunos campos. se mostrarán los campos notas y convocatorias. 61 .php: si el campo estado pasa a ser Asignado.Desarrollo de una aplicación web… Capítulo 3 . Esto se utiliza en tres formularios: o FormularioUsuario3. ya que las primeras construyen las últimas. que en todos los diagramas se contemplarán varias funciones repetidas que servirán para lo mismo: • carCalFaltan(formulario): se encarga de mantener un contador de los caracteres restantes por cada uno de los textarea de los formularios. row} o Targeted link: se utiliza para mostrar el contenido de una página (punta de la flecha) en otro página indicada en el target. Cabe destacar.Diseño o Frame content: se utiliza para determinar de qué páginas (punta de la flecha) está compuesto un frame (origen). Es la relación que existe entre las páginas de servidor y las de cliente. <<frame content>> {col. o FormularioProyecto3. • Cambiar_formulario(selección): para una determinada elección de los options de los formularios. alumno y nota.php: si el campo categoría pasa a ser Colaborador. En caso contrario se ocultarán. éstos se dividirán en varias categorías para facilitar su estudio. En caso contrario se ocultarán. <<builds>> o Uses: el origen utiliza la página de la punta. También se indica en qué columna (col) y fila (row) se muestra. se mostrarán los campos: fecha_entrega. Se utiliza para el uso de frames. <<targeted link>> {target} o Builds: el origen genera la página de la punta de la flecha.

• Go_to(parámetros): se encargan de la redirección a otras páginas.|-)+$ 62 .|-)+$ Longitud máxima: 30 ^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$ Longitud máxima: 30 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$ Longitud máxima: 100 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$ Longitud máxima: 30 ^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.Desarrollo de una aplicación web… Capítulo 3 . pasando parámetros.|-)+$ Longitud máxima: 30 Longitud mínima: 5 Longitud máxima: 15 Longitud mínima: 5 Longitud máxima: 15 Tiene que ser igual a password observaciones titulo identificador descripcion ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$ Longitud máxima: 30 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.php: si el campo estado pasa a ser Asignado. A continuación se muestra una tabla con todos los atributos y sus restricciones: Atributo: nombre login usuario apellido1 apellido2 password password2 Restricciones: ^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\. • Validación(formulario): son llamadas antes del envío de cada formulario y realizan las comprobaciones de que los campos concuerdan con una serie de expresiones regulares.|-)+$ Longitud máxima: 30 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.Diseño o FormularioTrabajo3. En caso contrario se ocultarán. alumno y nota. sin la necesidad de hacer formularios. se mostrarán los campos: fecha_entrega.|-)+$ Longitud máxima: 1024 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.

9 y 11: 0 < día < 31 En el mes 2: 0 < día < 29 Resto de meses: 0 < día < 32 0 < mes < 12 1900 < año fecha_entrega Longitud de año: 4 En los meses 4..+\@.+\@.|-)+$ Longitud máxima: 10 Longitud de año: 4 En los meses 4.|-)*$ Longitud máxima: 50 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\. 6.+\.+\.|-)+$ Longitud máxima: 100 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.+\.+)*$ Longitud máxima: 40 ^(..|-)+$ Longitud mínima: 1 Longitud máxima: 2500 alta No puede ser ‘ninguno’ No puede ser igual al atributo media No puede ser igual al atributo baja 63 Capítulo 3 .+\@.|-)+$ Longitud máxima: 1024 ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.Desarrollo de una aplicación web… Longitud máxima: 1024 practica url nota fecha_maxima ^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\. 6.+)*$ Longitud máxima: 40 ^(.Diseño ..+)*$ Longitud máxima: 40 ^([a-z]|[0-9]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\. 9 y 11: 0 < día < 31 En el mes 2: 0 < día < 29 Resto de meses: 0 < día < 32 0 < mes < 12 1900 < año cc destinatario bcc asunto mensaje ^(.

Desarrollo de una aplicación web… media No puede ser ‘ninguno’ No puede ser igual al atributo alta No puede ser igual al atributo baja baja No puede ser ‘ninguno’ No puede ser igual al atributo alta No puede ser igual al atributo media tipo path catalan/2 castellano/2 ingles/2 Capítulo 3 .Diseño ^ ([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-|\/)+$/ Longitud máxima: 20 ^ ([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-|\/)+$/ Longitud máxima: 100 ^ ([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-|\/)+$/ Longitud máxima: 30 Tabla 3.|-|\/)+$/ Longitud máxima: 30 ^ ([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-|\/)+$/ Longitud máxima: 30 ^ ([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\..Atributos y restricciones de los formularios 64 .15.

18..2.WAE – Registrar usuario 65 . cambiarFormulario (selec cion).2..1.Diseño 3. • Registrar usuario: permite el registro de nuevos usuarios de tipo Colaborador en el sistema. validacion(formulario). tipo : Colaborador login : text nombre : text apellido1 : :text apellido2 : :text password : password password2 : pass word area : option observaciones : textarea notas : option convocatorias : option Figura 3. index Formulario Usuario3 Formulario Usuario33 <<builds>> <<builds>> <<builds>> Pagina de acceso Usuario <<links>> Registrar Formulario usuario <<submit>> Registrar Resultado Operación calCarFaltan(formulario).Operaciones de usuarios En este apartado se detallan las operaciones que están relacionadas con los usuarios.Desarrollo de una aplicación web… Capítulo 3 . Requiere de una posterior validación para hacer operativo al usuario.

19.Desarrollo de una aplicación web… Capítulo 3 . index <<redirects>> Validación incorrecta control <<redirects>> Validación correcta pagina y menu Bienvenida <<builds>> <<builds>> <<builds>> <<submit>> Entrar Menu Principal Pagina de inicio Usuario Pagina de acceso <<frame content>> {col=2. se tendrá que pasar por aquí para hacer la correcta validación de usuario. row=2} validacion (formulario). Para el resto de operaciones explicadas.row=2} <<targeted link>> {target=Contenido} Menu Figura 3.Diseño • Validación de usuario: esta es la prueba de acceso (inicio de sesión) para que los usuarios puedan ser autorizados a utilizar el sistema..WAE – Validación de usuario 66 . us uario : text contrasena : text Contenido <<frame content>> {col=1.

. cambiarFormulario (seleccion).Diseño • Insertar usuario: permite el registro directo en el sistema de cualquier tipo de usuario. Formulario Usuario3 Formulario Usuario33 <<builds>> <<targeted link>> {target=Contenido} Formulario usuario <<submit>> Insertar <<builds>> Resultado de operación calCarFaltan(formulario). Éste estará operativo desde la inserción.WAE – Insertar usuario 67 . validacion(formulario). tipo : option login : text nombre : text apellido1 : :text apellido2 : :text password : password password2 : password area : option observaciones : textarea notas : option convocatorias : option Figura 3.20.Desarrollo de una aplicación web… Capítulo 3 .

21. además de mostrar la información detallada de cada usuario.. Esto permite generar informe útiles. categoría de usuario. Consulta Usuarios Muesta Usuario <<builds>> <<submit>> Buscar <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=login} Datos de usuario validacion(formulario). tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option Figura 3.Diseño • Consultar usuario: búsqueda de usuarios según los siguientes criterios: área a la que pertenecen.Desarrollo de una aplicación web… Capítulo 3 . nombre y apellidos.WAE – Consultar usuario 68 . login.

permite mostrar la información detallada de los usuarios con la opción de activada.22. tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option Figura 3.Diseño • Eliminar usuario: a partir de la búsqueda de usuarios.WAE – Eliminar usuario 69 . (eliminar) Consulta Usuarios Muesta Usuario Elimina Us uario <<builds>> <<submit>> Buscar <<builds>> <<builds>> Busqueda <<targeted link>> {target=Contenido} <<links>> <<links>> {parameters=login} Datos de us uario <<links>> {parameters=login} Resultado de operac ión validacion(formulario).Desarrollo de una aplicación web… Capítulo 3 .. Ésta permitirá dar de baja a los usuarios.

Desarrollo de una aplicación web… Capítulo 3 . (modificar) Consulta Usuarios Muesta Usuario Formulario Usuario3 Formulario Usuario33 <<builds>> <<submit>> Buscar <<builds>> <<builds>> <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=login} Datos de usuario <<links>> {parameters=login} Formulario de usuario <<submit>> Modificar Resultado de operación validacion(formulario). cambiarFormulario (selecc ion). tipo : option login : text nombre : text apellido1 : :text apellido2 : :text password : password password2 : password area : option observaciones : textarea notas : option convocatorias : option Figura 3. tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option calCarFaltan(formulario).23. validacion(formulario)..Diseño • Modificar usuario: a partir de la búsqueda de usuarios. Ésta permitirá variar la información de los usuarios.WAE – Modificar usuario 70 . permite mostrar la información detallada de los usuarios con la opción de activada.

AltasUsuarios Correo2 <<uses>> <<builds>> <<submit>> Dar alta y enviar mail <<targeted link>> {target=Contenido} Lista usuarios para alta calCarFaltan(formulario).24.WAE – Aceptación de alta 71 .Diseño • Aceptación de alta: Permite aceptar solicitudes de registro al sistema de los Colaboradores. validacion(formulario). datos : c heckbox asunto : text mensaje : text Figura 3. Además ofrece la posibilidad de enviar un e-mail al usuario afectado..Desarrollo de una aplicación web… Capítulo 3 .

destino) datos : checkbox asunto : text mensaje : text Figura 3.25. Además ofrece la posibilidad de enviar un e-mail al usuario afectado. login. mensaje. asunto.Desarrollo de una aplicación web… Capítulo 3 . destino} <<targeted link>> {target=Contenido} <<uses>> <<builds>> Elimina Usuario Lista usuarios para alta calCarFaltan(formulario) go_to(login.Diseño • Rechazo de alta: permite rechazar solicitudes de registro al sistema de los Colaboradores.. Correo2 Altas Usuarios <<uses>> <<redirect>> {parameters= datos.WAE – Rechazo de alta 72 .

cambiar_formulario2(seleccion).. es tado : option identificador : text titulo : text categoria : option descripcion : textarea parte_practica : textarea ponente : option alumno : option fecha_maxima : text fecha_entrega : text enlace : text notas : text requisitos : chec kbox Figura 3. desde la inserción de un nuevo proyecto hasta la asignación de los mismos.2.WAE – Registrar proyecto 73 .2. Registrar proyecto: permite el registro directo en el sistema de un nuevo proyecto. calCarFaltan2(formulario).2. • Formulario Proyecto3 Formulario Proyecto33 <<builds>> <<builds>> <<targeted link>> {target=Contenido} Formulario proyecto <<submit>> Insertar Resultado de operac ión calCarFaltan1(formulario).26. cambiar_formulario(seleccion).Campo). validacion(formulario).. valida_fecha(Cadena.Desarrollo de una aplicación web… Capítulo 3 .Operaciones de proyectos Aquí se recogen todas las operaciones que tienen que ver con los proyectos (tanto TFC como PFC).Diseño 3.

el login del alumno y el login del ponente. además de mostrar la información detallada de cada proyecto.Diseño • Consultar proyecto: búsqueda de proyectos según los siguientes criterios: el identificador. los requisitos necesarios para su desarrollo. categoría del proyecto (TFC o PFC).27. identificador : text login ponente : text login alumno : :text categoria : option es tado : option requisitos : checkbox Figura 3. asignado o solicitado).Desarrollo de una aplicación web… Capítulo 3 . Esto permite generar informe útiles.WAE – Consultar proyecto 74 . el estado (libre.. Consulta Proyectos Muesta Proyecto <<builds>> <<submit>> Buscar <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identificador} Datos de proyec to validacion(formulario).

. identificador : text login ponente : text login alumno : :text categoria : option estado : option requisitos : checkbox Figura 3.WAE – Eliminar proyecto 75 .28. (eliminar) Consulta Proyectos Muesta Proyecto Elimina Proyecto <<builds>> <<submit>> Busc ar <<builds>> <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identific ador} Datos de proyecto <<links>> {parameters=identificador} Resultado operación validacion(formulario). permite mostrar la información detallada de los proyectos con la opción de activada. Ésta permitirá dar de baja los proyectos.Desarrollo de una aplicación web… Capítulo 3 .Diseño • Eliminar proyecto: a partir de la búsqueda de proyectos.

cambiar_formulario(selecc ion).29. permite mostrar la información detallada de los proyectos con la opción de activada. valida_fecha(Cadena. validacion(formulario).WAE – Modificar proyecto 76 . (modificar) Consulta Proyectos Muesta Proyecto Formulario Proyecto3 Formulario Proyecto33 <<builds>> <<builds>> <<submit>> Buscar <<builds>> <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identificador} Datos de proyecto <<links>> {parameters=identificador} Formulario proyecto <<submit>> Modificar Resultado de operación validacion(formulario). calCarFaltan2(formulario).. identificador : text login ponente : text login alumno : :text categoria : option estado : option requisitos : c heckbox calCarFaltan1(formulario). cambiar_formulario2(selec cion). estado : option identific ador : text titulo : text categoria : option descripcion : :textarea parte_practica : :textarea ponente : option alumno : option fecha_maxima : text fecha_entrega : text enlace : text notas : text requisitos : checkbox Figura 3. Esto permitirá variar la información de los proyectos.Campo).Desarrollo de una aplicación web… Capítulo 3 .Diseño • Modificar proyecto: a partir de la búsqueda de proyectos.

validacion(formulario).Desarrollo de una aplicación web… Capítulo 3 .Diseño • Proponer proyecto: permite a los usuarios hacer una nueva propuesta de proyecto a uno de los profesores de las diferentes áreas..30. calCarFaltan2(formulario). cambiar_formulario(seleccion). Formulario Proyecto3 Formulario Proyecto33 <<uses>> Correo2 <<builds>> <<builds>> <<targeted link>> {target=Contenido} Formulario proyecto <<submit>> Proponer Resultado de operación calCarFaltan1(formulario). identificador : text titulo : text categoria : option descripcion : :textarea parte_practica : :textarea ponente : option requisitos : chec kbox Figura 3.Campo). al cual se le enviará un e-mail con la propuesta.WAE – Proponer proyecto 77 . valida_fecha(Cadena. cambiar_formulario2(seleccion).

alta : option media : option baja : option <<redirect>> Generar listas {parameters=opcion} Figura 3..WAE – Asignar proyectos 78 . Solicitar Proyectos Generador Lista Solicitados <<uses>> Muestra Usuario <<builds>> <<submit>> Asignar Asignación de proyectos <<builds>> <<uses>> Muestra Proyecto <<targeted link>> {target=Contenido} <<links>> Anterior Listas generador_lista1(). se enviará un correo electrónico al usuario afectado informándole de la aceptación de su solicitud. o Proyectos-Usuarios: lista de los usuarios que han solicitado cada proyecto. Una vez hecha la asignación.31. generador_lista2().Desarrollo de una aplicación web… Capítulo 3 .Diseño • Asignar proyectos: permite asignar un proyecto a un determinado usuario (que previamente había hecho la solicitud) y generar dos tipos de listas: o Usuarios-Proyectos: lista de los proyectos solicitados por cada usuario.

alta : option media : option baja : option Figura 3. Las solicitudes se enviarán por e-mail al encargado de asignar los proyectos. validacion_baja().32.WAE – Solicitar proyecto 79 .Desarrollo de una aplicación web… Capítulo 3 .Diseño • Solicitar proyecto: muestra información al usuario de los proyectos disponibles. validacion_alta().. Solicitar Proyectos Solicitar Proyectos2 <<uses >> Correo2 <<builds>> <<builds >> Lista proyectos libres <<targeted link>> {target=Contenido} <<submit>> Solicitar Resultado de operación cambiar_formulario(formulario). y permite solicitar tres de ellos (con diferente prioridad) para el posterior desarrollo de uno de ellos. validacion(). validacion_media().

WAE – Registrar trabajo 80 . valida_fecha(Cadena.3.Diseño 3. cambiar_formulario(seleccion). estado : option identific ador : text titulo : text descripcion : textarea parte_practica : textarea alumno : option fecha_maxima : text fec ha_entrega : text enlace : text nota : text Figura 3.2.Desarrollo de una aplicación web… Capítulo 3 . validacion(formulario).Campo)..Operaciones de trabajos Aquí se recogen todas las operaciones relacionadas con los trabajos.33. calCarFaltan2(formulario). Las funcionalidades descritas son muy parecidas a las de los proyectos. Registrar trabajo: permite el registro directo en el sistema de un nuevo trabajo.2.. • Formulario Trabajo3 Formulario Trabajo33 <<builds>> <<builds>> <<targeted link>> {target=Contenido} Formulario trabajo <<submit>> Insertar Resultado de operac ión calCarFaltan(formulario).

login alumno y estado (libre.WAE – Consultar trabajo 81 . Consulta Trabajos Muesta Trabajo <<builds>> <<builds>> <<submit>> Buscar <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identificador} Datos de trabajo validacion(formulario). asignado o solicitado). identificador : text login alumno : :text estado : option Figura 3..34. además de mostrar la información detallada de cada trabajo.Desarrollo de una aplicación web… Capítulo 3 . Esto permite generar informe útiles.Diseño • Consultar trabajo: búsqueda de trabajos según los siguientes criterios: identificador.

Diseño • Eliminar trabajo: a partir de la búsqueda de trabajos.35.WAE – Eliminar trabajo 82 . permite mostrar la información detallada de los trabajos con la opción de activada.Desarrollo de una aplicación web… Capítulo 3 . Ésta permitirá dar de baja los trabajos. (eliminar) Consulta Trabajos Muesta Trabajo Elimina Trabajo <<builds>> <<submit>> Buscar <<builds>> <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identificador} Datos de trabajo <<links>> {parameters=identificador} Resultado de operac ión validacion(formulario). identificador : text login alumno : :text estado : option Figura 3..

calCarFaltan2(formulario). permite mostrar la información detallada de los trabajos con la opción de activada. es tado : option identificador : text titulo : text descripcion : textarea parte_practica : textarea alumno : option fecha_maxima : text fecha_entrega : text enlace : text nota : text Figura 3. Esto permitirá variar la información de los trabajos.WAE – Modificar trabajo 83 .Diseño • Modificar trabajo: a partir de la búsqueda de trabajos. valida_fecha(Cadena.Campo). identificador : text login alumno : :text estado : option calCarFaltan(formulario).Desarrollo de una aplicación web… Capítulo 3 . cambiar_formulario(seleccion). validacion(formulario).36.. (modificar) Consulta Trabajos Muesta Trabajo Formulario Trabajo3 Formulario Trabajo33 <<builds>> <<submit>> Buscar <<builds>> <<builds>> <<builds>> <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=identificador} Datos de trabajo <<links>> {parameters=identificador} Formulario trabajo <<s ubmit>> Modificar Resultado de operac ión validacion(formulario).

cambiar_formulario(seleccion).Campo). calCarFaltan2(formulario).. al cual se le enviará un e-mail con la propuesta. estado : option identificador : text titulo : text descripcion : textarea parte_practica : textarea alumno : option fecha_maxima : text fecha_entrega : text enlace : text nota : text Figura 3.37.Desarrollo de una aplicación web… Capítulo 3 . validacion(formulario). Formulario Trabajo3 Formulario Trabajo33 <<uses>> Correo2 <<builds>> <<builds>> <<targeted link>> {target=Contenido} Formulario trabajo <<submit>> Insertar Resultado de operación calCarFaltan(formulario). valida_fecha(Cadena.WAE – Proponer trabajo 84 .Diseño • Proponer trabajo: permite a los usuarios hacer una nueva propuesta de trabajo a uno de los profesores de las diferentes áreas.

o Trabajos-Usuarios: lista de los usuarios que han solicitado cada proyecto. alta : option media : option baja : option <<redirect>> Generar listas {parameters=opcion} Figura 3.WAE – Asignar trabajos 85 . se enviará un correo electrónico al usuario afectado informándole de la aceptación de su solicitud.38..Desarrollo de una aplicación web… Capítulo 3 . generador_lista2(). Una vez hecha la asignación.Diseño • Asignar trabajos: Permite asignar un trabajo a un determinado usuario (que previamente había hecho la solicitud) y generar dos tipos de listas: o Usuarios-Trabajos: lista de los proyectos solicitados por cada usuario. Solicitar Trabajos Generador Lista Solicitados <<uses>> Muestra Usuario <<builds>> <<submit>> Asignar Asignación de trabajos <<builds>> <<uses>> Muestra Trabajo <<targeted link>> {target=Contenido} <<links>> Anterior Listas generador_lista1().

validacion_alta(). indicando sus componentes.WAE – Solicitar trabajo 86 .. validacion_baja(). Solic itar Trabajos Solicitar Trabajos2 <<uses>> Correo2 <<builds>> <<builds>> <<targeted link>> {target=Contenido} Lista trabajos libres <<submit>> Solicitar Resultado de operación cambiar_formulario(formulario). Las solicitudes se enviarán por e-mail al encargado de asignar los trabajos. y permite solicitar tres de ellos (con diferente prioridad) para el posterior desarrollo de uno de ellos.39.Desarrollo de una aplicación web… Capítulo 3 . alta : option media : option baja : option Figura 3. validacion(). Esta operación la realizará un solo miembro del grupo.Diseño • Solicitar trabajo: muestra información al usuario de los trabajos disponibles. validacion_media().

validacion(formulario). Gestión de áreas: muestra un listado de las áreas del sistema y las personas que pertenecen a cada una. (Gestion Contenidos).Operaciones de gestión Aquí se encuentran todas las funcionalidades que tienen que ver con el mantenimiento de la base de datos (Gestion Requisitos.Desarrollo de una aplicación web… Capítulo 3 . Gestion Asignaturas. o Insertar: • Gestion Areas <<builds>> <<submit>> Insertar <<targeted link>> {target=Contenido} Gestión de áreas calCarFaltan(formulario).Diseño 3. Gestion Areas. Gestion Categoría). eliminar e insertar nuevas áreas.4. Además permite: modificar. identificador : text descripcion : textarea 87 . así como las que permiten definir diferentes niveles de acceso (Gestion Permisos) y el mantenimiento de todos los contenidos de la aplicación..2.2. Gestion Operaciones.

identificador} <<builds>> <<targeted link>> {target=Contenido} Lista de áreas Figura 3.Diseño Figura 3..WAE – Insertar área o Eliminar: Gestion Areas <<links>> {parameters=operac ion.Desarrollo de una aplicación web… Capítulo 3 .41.40.WAE – Eliminar área 88 ..

Solamente habría que cambiar la palabra áreas por categorías. • Gestión categorías: muestra un listado de los tipos de usuario del sistema y las personas que pertenecen a cada uno.WAE – Modificar área Las operaciones de gestión categorías. validacion(formulario). requisitos y asignaturas se tratan de igual modo que ésta. desc ripcion} <<builds>> <<submit>> Modificar <<targeted link>> {target=Contenido} Gestión de áreas calCarFaltan(formulario). eliminar e insertar nuevos tipos. identificador. identificador : text (blocked) descripcion : textarea Figura 3.Desarrollo de una aplicación web… Capítulo 3 . Además permite: modificar. 89 . requisitos y asignaturas respectivamente.Diseño o Modificar: Gestion Areas <<submit>> {parameters=operacion..42.

Desarrollo de una aplicación web… Capítulo 3 .WAE – Formulario de inserción de operación 90 . Gestión operaciones: muestra un listado de las operaciones del sistema.Diseño Los diagramas serían iguales que en la operación Gestión Areas con la salvedad de que habría que sustituir áreas por categorías. la “categoría” a la que pertenecen y los tipos de usuarios que las pueden utilizar. Los diagramas serían iguales que en la operación Gestión Areas con la salvedad de que habría que sustituir áreas por requisitos. eliminar e insertar nuevas operaciones. De igual modo que las anteriores operaciones. Además permite: modificar. la estructura sería la misma pero habría que realizar algunos cambios más: o Insetar. Los diagramas serían iguales que en la operación Gestión Areas con la salvedad de que habría que sustituir áreas por asignaturas. Además permite: modificar. Gestión asignaturas: muestra un listado de las asignaturas del sistema y los Colaboradores que las han cursado. eliminar e insertar nuevos requisitos. Además permite: modificar. Gestión requisitos: muestra un listado de los requisitos del sistema y los proyectos que los requieren. el formulario tendría que ser: • • • identificador : text catellano : textarea catalan : textarea ingles : textarea tipo : text catellano2 : textarea catalan2 : textarea ingles2 : textarea path : text descripcion: textarea Figura 3.. eliminar e insertar nuevas asignaturas.43.

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

o Modificar; el formulario tendría que ser:

identificador : text (blocked) tipo : text path : text desc ripcion : textarea

Figura 3.44.- WAE – Formulario de modificación de operación

Gestión contenidos: muestra un listado con todos los contenidos de la aplicación web y la traducción a los tres idiomas (Catalán, Castellano e Inglés). Además permite: modificar, eliminar e insertar nuevos contenidos. Igual que antes la estructura sería la misma pero habría que realizar algunos cambios más: o Insetar: el formulario tendría que ser:

identific ador : text catellano : textarea catalan : textarea ingles : textarea

Figura 3.45.- WAE – Formulario de inserción de contenido

91

Desarrollo de una aplicación web… o Modificar: el formulario tendría que ser:

Capítulo 3 - Diseño

identific ador : text (blocked) catellano : textarea catalan : textarea ingles : textarea

Figura 3.46.- WAE – Formulario de modificación de contenido

Gestión permisos: según el tipo de usuario, se muestra una lista completa de las operaciones, donde se indica las que están permitidas y las que no. Además permite modificar dichas listas para variar los permisos.

Gestion Permisos

<<builds>> <<redirect>> Cambio de categoría {parameters = tipo} <<targeted link>> {target=Contenido} Gestión de permisos

<<submit>> Modificar

bloquear(obj); cambiar_formulario (seleccion);

categoria : option operaciones : checkbox

Figura 3.47.- WAE – Gestión permisos

92

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

3.2.2.5.- Otras operaciones

Adoptar usuario: a partir de una búsqueda de usuarios según los siguientes criterios: área a la que pertenecen, categoría de usuario, login, nombre y apellidos. Permite acceder a la cuenta del usuario que responde a la búsqueda.

Consulta Usuarios <<submit>> Adoptar Usuario <<builds>> <<submit>> Buscar <<targeted link>> {target=Contenido} Busqueda <<links>> <<links>> {parameters=login}

Muesta Usuario

<<builds>>

Datos de usuario

validacion(formulario);

tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option

logins : checkbox

Figura 3.48.- WAE – Adoptar usuario

93

Desarrollo de una aplicación web…

Capítulo 3 - Diseño

Datos personales: muestra información detallada sobre el usuario en cuestión, además tiene la opción modificación de los datos. (modificar) activada para permitir la

Consulta Usuarios

MuestaUsuario

Formulario Usuario3

Formulario Usuario33

<<builds>>

<<submit>> Buscar

<<builds>>

<<builds>>

<<builds>> <<submit>> Modificar Resultado de operación

<<targeted link>> {target=Contenido}

Busqueda

<<links>> <<links>> {parameters=login}

Datos de usuario

<<links>> {parameters=login}

Formulario usuario

validacion(formulario);

tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option

calCarFaltan(formulario); cambiarFormulario (seleccion); validacion(formulario);

tipo : option login : text nombre : text apellido1 : :text apellido2 : :text password : password password2 : password area : option observac iones : textarea notas : option convocatorias : option

Figura 3.49.- WAE – Datos personales

94

50. generador_destinatario().WAE – Enviar correo 95 . validacion(formulario). bcc. cc. generador_c c(). tipo : option login : text nombre : text apellido1 : :text apellido2 : :text area : option logins : c heckbox Figura 3. destinatario : text cc : text bcc : text asunto : text mensaje : textarea validacion(formulario).Diseño • Enviar correo: permite redactar y enviar un correo electrónico. mensaje} <<builds>> <<builds>> Re sult ad o de operación Muesta Usuario <<builds>> <<submit>> Buscar <<links>> <<links>> {parameters=login} Datos de usuario Busqueda calCarFaltan(formulario). generador_bcc().Desarrollo de una aplicación web… Capítulo 3 . <<submit>> Generar Correo2 Correo Generador Campos Mail <<builds >> <<submit>> Modificar <<links>> <<targeted link>> {target=Contenido} Formulario de correo Generar Destinatario /CC/BCC {parameters= opcion. Además ofrece facilidades para rellenar los campos gracias a un buscador de usuarios integrado.. asunto.

5. el resto de la aplicación se hará teniendo en cuenta el desarrollo de este módulo. consiste en pasar el diagrama entidad-relación a sentencias SQL... Para poder abarcar todas las funcionalidades y lograr una implementación lógica y coherente es necesario seguir unas determinadas pautas. Interfaz: aquí se lleva a cabo la implementación dinámica del menú de la aplicación web. para posteriormente implementarlo en MySQL. Así pues.1. el desarrollo consiste en definir el acceso al sistema e implementar el módulo de seguridad que permitirá prevenir a la aplicación web de los ataques de los piratas informáticos: sql injection. Funcionalidades: una vez que se tiene la base de la aplicación web.Proceso de implementación Una aplicación web de estas características presenta gran cantidad de componentes a desarrollar. fuerza bruta.… 3. 2. Para cada funcionalidad. se implementa el módulo que permitirá dar soporte a varios idiomas. el desarrollo se divide en un total de siete etapas: 1. sniffering. Éste permitirá mostrar una interfaz coherente al nivel de acceso de cada tipo de usuario y será el que se encargue de la llamada a todas las funcionalidades del sistema. El trabajo en esta etapa. el trabajo consiste en el desarrollo de todas las funcionalidades especificadas en el análisis de requisitos y estudiadas en la etapa de diseño.Desarrollo 4. Idiomas: antes de continuar con el desarrollo del resto de la aplicación. Así pues. Base de datos: Las elecciones más importantes fueron tomadas en la etapa de Análisis. se diseña una pequeña interfaz que 96 .Desarrollo de una aplicación web… Capítulo 4 .Desarrollo 4. 4. Seguridad: en esta fase.

Desarrollo de una aplicación web… Capítulo 4 . para asegurar que los objetivos del proyecto no se han visto modificados a lo largo del proceso de desarrollo. depende de las fases anteriores. por los ojos del cliente. se introducen ciertas mejoras requeridas por el cliente final. Cada vez que se acaba el desarrollo de una función. Además. se ha tenido el asesoramiento de un diseñador gráfico profesional. Así pues. 6. y se cumple con las expectativas del cliente. Apariencia: por último y no menos importante. Para su desarrollo y poder garantizar el éxito. Cualquier fase de desarrollo. para determinar que los resultados obtenidos eran los esperados • Pruebas de integración.Desarrollo permitirá realizar la operación en cuestión y posteriormente se implementa. Integración de módulos: en esta aplicación web se facilitan dos módulos (noticias y publicaciones) que requieren de pequeñas modificaciones para adaptarlos a la política seguida en el resto de la aplicación. La importancia de esta fase es debida a que el producto final entra. 7. Así pues. Finalmente con el desarrollo completo de todas las funcionalidades del sistema. el cliente se fijará en la apariencia de la aplicación y en ella se basarán gran parte de sus críticas. se realizan pruebas de caja negra y de cliente. de ahí la importancia del orden en su implementación. se encuentra el diseño de la aplicación web. en esta fase se introducen todos esos cambios necesarios como pueden ser la inclusión del módulo de seguridad o el soporte para varios idiomas. se realizan dos tipos de pruebas [14] de cada componente: • Pruebas unitarias. en gran medida. el proceso de desarrollo podría 97 . Es decir. para validar que los componentes integrados se ejecutan como se especificó.

Módulo para el soporte de varios idiomas: Idiomas..php. Fase: Nombre: 1 2 3 4 5 Base de datos Seguridad Idiomas Interfaz Funcionalidades Desarrollado: Sentencias SQL para la creación de toda la base de datos del sistema y su correcta inicialización.1.Fases del desarrollo Por último. se muestra un cuadro resumen de lo desarrollado para cada una de las fases.Desarrollo verse como una pirámide en la que se observan las dependencias entre las diferentes fases: Figura 4.Desarrollo de una aplicación web… Capítulo 4 . Menú dinámico del sistema Adoptar Usuario Altas Usuarios Asignar Proyectos Asignar Trabajos Consultar Proyecto Consultar Trabajo Consultar Usuario Datos Personales 98 . Módulo de Seguridad: NivelSeguridad.php.

Desarrollo Todos los CSS de la aplicación web..Fases del desarrollo 99 .1.Desarrollo de una aplicación web… Eliminar Proyecto Eliminar Trabajo Eliminar Usuario Enviar Correo Gestion Areas Gestion Asignaturas Gestion Categorias Gestion Contenidos Gestion Operaciones Gestion Permisos Gestion Requisitos Insertar Usuario Modificar Proyecto Modificar Trabajo Modificar Usuario Proponer Proyecto Proponer Trabajo Registrar Proyecto Registrar Trabajo Registrar Usuario Solicitar Proyecto Solicitar Trabajo 6 7 Integración de módulos Noticias Publicaciones Apariencia Capítulo 4 . Tabla 4.

.conf”.edu //Mail al que se enviaran las solicitudes de trabajo ##Mail_Solicitud_Trabajo# is11286@salleurl.Consideraciones generales A continuación se explican algunas de las consideraciones a tener en cuenta.Desarrollo de una aplicación web… Capítulo 4 .edu 100 .. se ha incorporado un archivo de configuración llamado: “configuracion. y así poder introducir modificaciones o agregar nuevos módulos. A continuación se expone un ejemplo del archivo de configuración. con el fin de poder explicar para qué sirve cada atributo configurable y tener una guía de utilización de dicho archivo.Desarrollo 4.1.Archivo de configuración Para tener un sistema más personalizado.2.2. resultará mucho más fácil su posterior modificación. ya que será ahí donde se buscará.conf***************** //Archivo general de configuracion //Mail al que se enviaran las propuestas de trabajo ##Mail_Propuesta_Trabajo# is11286@salleurl. para entender el funcionamiento de la aplicación web. 4. Así. Éste se ha de encontrar en la misma carpeta de los módulos.edu //Mail al que se enviaran las solicitudes de proyectos ##Mail_Solicitud_Proyecto# is11286@salleurl. ******************Aquí empieza el archivo configuracion.

Desarrollo //Informacion de bloqueo de usuarios. ##Extension_Fotos# jpg //Dominio del correo de los usuarios ##Dominio_Correo# salleurl. el nombre de la foto ha de ser el login ##PATH_Fotos# http://ecampus.edu/fotos/ //extensión sin . Castellano o Ingles ##Idioma_Por_Defecto# Catalan Capítulo 4 .salleurl.edu 101 .Desarrollo de una aplicación web… //Idioma por defecto -> Catalan. número de intentos y tiempo de bloqueo en minutos ##Max_Intentos# 5 ##Tiempo_Bloqueo# 2 //Fechas para el registro de usuarios (Día y mes) ##Dia_Inicio_Registro# 3 ##Mes_Inicio_Registro# 3 ##Dia_Final_Registro# 6 ##Mes_Final_Registro# 10 //PATH de carpeta con fotos de los usuarios.

Desarrollo de una aplicación web… Capítulo 4 . 2. Se recoge la información de la siguiente línea en donde se encontró el atributo.php Indica la dirección de e-mail que recibirá las peticiones 102 .php Indica la dirección de e-mail que recibirá las peticiones de desarrollo de trabajos.conf****************** El sistema que se sigue para la búsqueda de los atributos es: 1.php Descripción: Indica la dirección de e-mail que recibirá las propuestas de los realicen. • La línea que contiene el valor. A continuación. 4. éste ha de tener dos líneas reservadas. Hay que tener en cuenta que: • Se requieren dos ‘#’ antes del atributo y una detrás. ha de ser consecutiva a la del atributo. se explica la funcionalidad de cada atributo y en qué ficheros se utiliza: Atributo: Mail_Propuesta_Trabajo Dónde se utiliza: FormularioTrabajo33. Mail_Solicitud_Proyecto SolicitarProyectos2. trabajos que se Mail_Solicitud_Trabajo SolicitarTrabajos2. Se recorre todo el fichero en busca de ##Atributo_Que_Necesitamos#. • Los comentarios pueden hacerse sin la doble ‘/’.conf. es importante tener en cuenta que si se quiere agregar un nuevo atributo. Se abre el archivo configuracion. Ese será el criterio de búsqueda de la aplicación web.conf.Desarrollo ******************Aquí finaliza el archivo configuracion. Por lo tanto. 3. Se cierra el archivo configuracion. La primera contiene ##Nombre_Atributo#. y la segunda el valor del atributo.

Día a partir del cual. Tiempo_Bloqueo Control.php FormularioUsuario33.Desarrollo de una aplicación web… Capítulo 4 .php Tiempo en minutos que se bloqueará el acceso a un cuenta número Dia_Inicio_Registro Index. Mes a partir del cual.php Número acceso de intentos que de se fallidos permite a un usuario antes de bloquear su cuenta.php permitiendo el registro de Colaboradores.Desarrollo de desarrollo de proyectos. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada. Dia_Final_Registro Index. cerrando la 103 .php Es el idioma que se asignará por defecto a todos los usuarios que se den de alta en el sistema. Día a partir del cual. Idioma_Por_Defecto Control. la opción “Registrar” estará activada a los usuarios no autentificados y la operación “Registrar Usuario” estará operativa.php permitiendo el registro de Colaboradores. Mes_Inicio_Registro Index.php si se de iguala el accesos incorrectos a Max_Intentos. Max_Intentos Control. la opción “Registrar” estará activada a los usuarios no autentificados y la operación “Registrar Usuario” estará operativa.

2. cerrando la posibilidad de registro de nuevos Colaboradores sin la mediación de los profesores.Desarrollo de una aplicación web… Capítulo 4 . Extension_Fotos FormularioUsuario33. Mes_Final_Registro Index. La primera parte del e-mail ha de ser el login del usuario. PATH_Fotos FormularioUsuario33.Atributos del archivo de configuración 104 .Desarrollo posibilidad de registro de nuevos Colaboradores sin la mediación de los profesores. Los nombres de las fotos han de coincidir con los logins de los usuarios.php Extensión (sin punto) de las fotos de los usuarios. donde se encontrarán las fotos de los usuarios.php Dominio asociarán electrónicos al los cual cuando se se correos registre el usuario en el sistema. Los nombres de las fotos han de coincidir con los logins de los usuarios. Dominio_Correo FormularioUsuario33.php Mes a partir del cual.. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada. Tabla 4.php Indica la dirección absoluta.

. Depende del que se ha autentificado con login de usuario. por defecto son: • • • Catalan Castellano Ingles s_tipo Es invariable a lo largo de Informa de la categoría o nivel 105 . Así pues. Los valores que mostrarán los textos al usuario. Con la s_ (sesion_) se puede determinar rápidamente el carácter de la variable. ya que permiten mantener información asociada al usuario que ha accedido en un momento determinado.Desarrollo de una aplicación web… Capítulo 4 . para qué sirven y los valores que obtienen en la aplicación web. si se quiere agregar una nueva variable sería muy recomendable usar dicha notación.2. está autentificado (ha introducido password correctamente) o no. puede tomar dependen de la base de datos. se ha utilizado la notación: s_variable_de_sesión. éxito. Esta variable permite mantener cierta seguridad en el sistema. • • SI No existe Descripción: si el su usuario login en y cuestión. A continuación se expone un listado de las variables de sesión más importantes que se han utilizado. Es invariable a lo largo de Indica s_login Es invariable a lo largo de Contiene el login del usuario la sesión.Variables de sesión Las variables de sesión [15] juegan un papel importante en el sistema.2. s_idioma Puede variar a lo largo de Indica el idioma en el que se le una sesión.Desarrollo 4. Variable: s_autentificado Valores: la sesión. Para poder determinar si una variable es de sesión o de uso local en cualquier función.

Esta variable permite mantener seguridad en el sistema. Esto ocurre justo antes de la inclusión de algunas páginas y permite simular el envío de campos. una la página en la que se operaciones permitidas en un permite cadena que mantener donde se se está cierta cierta seguridad en el sistema. se los las Esta todos sistema. por el método post. Los valores que encuentran puede tomar dependen de identificadores encuentre el usuario. determinado variable s_operacion Es variable a lo largo de la Es puede tomar dependen de la la operación que realizando el usuario. por mantener cierta seguridad en el defecto son: • • • Colaborador Profesor Admin una cadena donde de fichero.Variables de sesión Hay que destacar. sin la necesidad de hacer un formulario. Los valores que encuentran el identificador de operación esté llevando a cabo.Desarrollo de una aplicación web… Capítulo 4 .. s_operaciones_pagina Es variable a lo largo de la Es sesión. Las variables que se declaran antes del include. Tabla 4. que durante la implementación de algunos módulos se ha utilizado las variables de sesión con otra filosofía que se aleja a la comentada anteriormente.Desarrollo la sesión.3. 106 . Los valores que de acceso del usuario en puede tomar dependen de cuestión. Esta variable permite la base de datos. son destruidas justo después y no utilizan la nomenclatura “s_”. sesión.

Para el diseño de la base de datos se ha utilizado la herramienta ErWin.. 107 . la cual facilita enormemente la construcción de un diagrama entidad relación. Descripcion text. instantáneo y que precisa de muy pocas modificaciones para adaptarlo a la plataforma escogida (MySQL). Así pues.Sistema de información La creación de la base de datos [16] es una de las fases más importantes en todo el desarrollo.3. PRIMARY KEY (ID_Asignatura). Tabla: Areas Sentencia SQL: CREATE TABLE areas ( ID_Area varchar(30) NOT NULL default ''.. Asignaturas CREATE TABLE asignaturas ( ID_Asignatura varchar(30) NOT NULL default ''. 4. Gracias a esto.1. obtener todas las sentencias SQL para crear la base de datos es un proceso automático. ya que ésta determinará la manera de representar los datos de la aplicación web.Sentencias de creación Las sentencias de creación son aquellas que tienen como objetivo crear las tablas necesarias para establecer la estructura de la información necesaria que permita soportar las necesidades de la aplicación web. Descripcion text. y el carácter y método seguido por las operaciones para acceder y modificar dicha información.Desarrollo de una aplicación web… Capítulo 4 . PRIMARY KEY (ID_Area).Desarrollo 4. a continuación se listan todas las sentencias necesarias para crear e inicializar la base de datos conforme las funcionalidades de la aplicación web.3. sino que abarca también la construcción de la base de datos. Pero su capacidad no se limita al diseño. UNIQUE KEY XPKAreas (ID_Area) ) TYPE=MyISAM.

ID_Login). Idiomas CREATE TABLE idiomas ( Identificador varchar(254) NOT NULL default ''. ID_Login varchar(15) NOT NULL default ''. PRIMARY KEY (Identificador). PRIMARY KEY (ID_Asignatura. 108 . UNIQUE KEY XPKCategoria (ID_Categoria) ) TYPE=MyISAM. PRIMARY KEY (ID_Categoria).Desarrollo de una aplicación web… Capítulo 4 . Origen varchar(20) NOT NULL default ''. UNIQUE KEY XPKNotas (ID_Asignatura. Operaciones CREATE TABLE operaciones ( ID_Operacion varchar(30) NOT NULL default ''. Notas CREATE TABLE notas ( ID_Asignatura varchar(30) NOT NULL default ''. Tipo varchar(20) default NULL.ID_Login) ) TYPE=MyISAM. Categoria CREATE TABLE categoria ( ID_Categoria varchar(30) NOT NULL default ''.Desarrollo UNIQUE KEY XPKAsignaturas (ID_Asignatura) ) TYPE=MyISAM. Catalan text. Descripcion text. Permisos CREATE TABLE permisos ( ID_Categoria varchar(30) NOT NULL default ''. UNIQUE KEY XPKIdiomas (Identificador) ) TYPE=MyISAM. Convocatoria varchar(10) default NULL. Ingles text. Castellano text. Nota varchar(5) default NULL. UNIQUE KEY XPKOperaciones (ID_Operacion) ) TYPE=MyISAM. PRIMARY KEY (ID_Operacion). Path varchar(100) default NULL. Descripcion text.

Observaciones text.Desarrollo de una aplicación web… Capítulo 4 . ID_Login varchar(15) NOT NULL default ''. Personas CREATE TABLE personas ( ID_Login varchar(15) NOT NULL default ''. Ano int(11) default NULL. Estado varchar(20) default NULL. Foto varchar(50) default NULL.ID_Login) ) TYPE=MyISAM. UNIQUE KEY XPKPersonas_Areas (ID_Area. PRIMARY KEY (ID_Categoria.ID_Login) ) TYPE=MyISAM.ID_Login). ID_Login varchar(15) NOT NULL default ''. Mail varchar(30) default NULL.ID_Operacion) ) TYPE=MyISAM. Intentos int(11) default NULL. PRIMARY KEY (ID_Categoria. Ultimo_Intento varchar(30) default NULL. 109 . Apellido1 varchar(30) default NULL. Ultimo_Acceso varchar(30) default NULL. Idioma varchar(10) NOT NULL default ''.ID_Login). Apellido2 varchar(30) default NULL.Desarrollo ID_Operacion varchar(30) NOT NULL default ''. Password varchar(15) default NULL. PRIMARY KEY (ID_Login).ID_Operacion). Personas_Categoria CREATE TABLE personas_categoria ( ID_Categoria varchar(30) NOT NULL default ''. UNIQUE KEY XPKPersonas (ID_Login) ) TYPE=MyISAM. Ano int(11) default NULL. Nombre varchar(30) NOT NULL default ''. Personas_Areas CREATE TABLE personas_areas ( ID_Area varchar(30) NOT NULL default ''. UNIQUE KEY XPKPersonas_Categoria (ID_Categoria. UNIQUE KEY XPKPermisos (ID_Categoria. PRIMARY KEY (ID_Area.

Prioridad varchar(15) default NULL.Sentencias SQL para la creación de la base de datos 110 .ID_Requisito) ) TYPE=MyISAM. ID_Login_Ponente_FK varchar(15) default NULL. PRIMARY KEY (ID_Proyecto. Proyectos CREATE TABLE proyectos ( ID_Proyecto varchar(30) NOT NULL default ''.ID_Proyecto). Descripcion text.Desarrollo ID_Proyecto varchar(30) NOT NULL default ''. Requisitos CREATE TABLE requisitos ( ID_Requisito varchar(30) NOT NULL default ''. UNIQUE KEY XPKRequisitos (ID_Requisito) ) TYPE=MyISAM. Nota varchar(10) default NULL. Titulo varchar(100) default NULL. UNIQUE KEY XPKProyectos_Requisitos (ID_Proyecto.ID_Requisito). UNIQUE KEY XPKPersonas_Proyectos (ID_Login. UNIQUE KEY XPKProyectos (ID_Proyecto) ) TYPE=MyISAM. Estado varchar(30) default NULL.Desarrollo de una aplicación web… Personas_Proyectos CREATE TABLE personas_proyectos ( ID_Login varchar(15) NOT NULL default ''. PRIMARY KEY (ID_Requisito). PRIMARY KEY (ID_Proyecto). Fecha_Maxima date default NULL. Tabla 4. Url varchar(100) default NULL.4. Descripcion text.. ID_Login_Alumno varchar(15) default NULL. Categoria varchar(50) default NULL. Capítulo 4 . Fecha_Entrega date default NULL. PRIMARY KEY (ID_Login.ID_Proyecto) ) TYPE=MyISAM. ID_Requisito varchar(30) NOT NULL default ''. Parte_Practica text. Proyectos_Requisitos CREATE TABLE proyectos_requisitos ( ID_Proyecto varchar(30) NOT NULL default ''.

'ConsultaUsuarios. ''). asociada a las funcionalidades 'FormularioUsuario3. '').php'. INSERT INTO operaciones VALUES ('Modificar Usuario'.php'. INSERT INTO operaciones VALUES ('Gestion Operaciones'. 'FormularioProyecto3. INSERT INTO operaciones VALUES ('Consultar Proyecto'.php'.3. INSERT INTO operaciones VALUES ('Modificar Proyecto'. ''). 'ConsultaUsuarios. 'Gestion'. 'GestionRequisitos. 'Proyecto'.php'.php'. INSERT INTO operaciones VALUES ('Eliminar Proyecto'. '').php'. 'ConsultaProyectos. INSERT INTO operaciones VALUES ('Proponer Proyecto'. 'GestionCategorias. 'ConsultaUsuarios. INSERT INTO operaciones VALUES ('Registrar Proyecto'. También se indican las sentencias que permiten introducir unos permisos por defecto y crear un usuario para poder empezar a utilizar el sistema. INSERT INTO operaciones VALUES ('Gestion Requisitos'. 'GestionAsignaturas. 'Proyecto'.php'. 'FormularioUsuario3. 'Usuario'. 'Usuario'. 'Usuario'. ''). INSERT INTO operaciones VALUES ('Registrar Usuario'.php'. ''). ''). ''). INSERT INTO operaciones VALUES ('Gestion Areas'. INSERT INTO operaciones VALUES ('Eliminar Usuario'.php'. INSERT INTO operaciones VALUES ('Gestion Categorias'. 'FormularioProyecto3. 'Proyecto'. 'ConsultaProyectos. soportadas por el sistema. 'Usuario'. 'Proyecto'.Sentencias de inicialización Las sentencias de inicialización son aquellas que tienen por objetivo llenar las tablas con la información básica necesaria para que los módulos desarrollados puedan trabajar correctamente. 'ConsultaProyectos. 'Gestion'. 111 . Descripción: Introducen la Sentencias SQL: información INSERT INTO operaciones VALUES ('Insertar Usuario'. '').php'. '').2. INSERT INTO operaciones VALUES ('Consultar Usuario'. 'Proyecto'.php'. INSERT INTO operaciones VALUES ('Gestion Asignaturas'. 'GestionAreas. 'Usuario'. '').Desarrollo de una aplicación web… Capítulo 4 .php'.php'. ''). 'Gestion'.Desarrollo 4. 'Gestion'.php'. '').. '').

php'. INSERT INTO operaciones VALUES ('Asignar Proyectos'.php'. '').php'. 'GestionContenidos. 'AdoptarUsuario./admin/noticies/noticies. 'Trabajo'. ''). 'Trabajo'. 'Otros'. 'Proyecto'. ''). INSERT INTO operaciones VALUES ('Gestion Contenidos'. ''). 'Trabajo'.php'.php'. 'GestionPermisos. '.php'. 'MuestraUsuario. INSERT INTO operaciones VALUES ('Noticias'. INSERT INTO operaciones VALUES ('Gestion Permisos'. INSERT INTO categoria VALUES ('Admin'. INSERT INTO operaciones VALUES ('Asignar Trabajos'. 'ConsultaTrabajos. 'ConsultaTrabajos. 'Trabajo'. 'Gestion'. 'AsignarTrabajos. 'Otros'.php'.Desarrollo de una aplicación web… Capítulo 4 . ''). ''). 'Trabajo'. 'Correo./admin/publicacions/publicacions. 'AsignarProyectos. 'Otros'. 'AltasUsuarios. ''). 'FormularioTrabajo3.php'. 'Usuario'. INSERT INTO operaciones VALUES ('Proponer Trabajo'.php'. 'Otros'. 'Trabajo'.php'. INSERT INTO operaciones VALUES ('Consultar Trabajo'. INSERT INTO operaciones VALUES ('Enviar Correo'.php'. 'Gestion'. ''). Agregan las categorías o INSERT INTO categoria VALUES ('Profesor'.php'. 'SolicitarProyectos. 112 . INSERT INTO operaciones VALUES ('Eliminar Trabajo'. 'Proyecto'. INSERT INTO operaciones VALUES ('Publicaciones'. 'Trabajo'. '. predefinidos en el sistema.php'. INSERT INTO operaciones VALUES ('Adoptar Usuario'. ''). ''). INSERT INTO operaciones VALUES ('Solicitar Trabajo'.php'. ''). ''). 'Otros'. 'SolicitarTrabajos. ''). INSERT INTO operaciones VALUES ('Altas Usuarios'. ''). ''). niveles de acceso de usuarios INSERT INTO categoria VALUES ('Colaborador'.php'. ''). INSERT INTO operaciones VALUES ('Registrar Trabajo'. 'FormularioTrabajo3. ''). 'Gestion'. 'ConsultaTrabajos. '').php'. ''). INSERT INTO operaciones VALUES ('Modificar Trabajo'. INSERT INTO operaciones VALUES ('Solicitar Proyecto'. INSERT INTO operaciones VALUES ('Datos Personales'.php'.Desarrollo 'GestionOperaciones. '').php'. '').

INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. 'Gestion Permisos'). INSERT INTO permisos VALUES ('Admin'. 'Consultar Proyecto'). 'Asignar Trabajos'). 'Gestion Categorias'). 'Enviar Correo'). INSERT INTO permisos VALUES ('Admin'. 'Gestion Areas'). INSERT INTO permisos VALUES ('Admin'. 'Asignar Proyectos'). 'Altas Usuarios'). 'Gestion Asignaturas'). INSERT INTO permisos VALUES ('Admin'. funcionalidades que se asignan Usuario'). 'Gestion Contenidos'). INSERT INTO permisos VALUES ('Admin'. 'Eliminar Proyecto'). INSERT INTO permisos VALUES ('Admin'. 'Consultar Trabajo'). INSERT INTO permisos VALUES ('Admin'.Desarrollo las INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. 'Eliminar Usuario'). INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. 'Datos Personales'). 'Consultar Usuario'). 'Insertar Usuario'). INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. 'Gestion Operaciones').Desarrollo de una aplicación web… Permisos sobre Capítulo 4 . 113 . INSERT INTO permisos VALUES ('Admin'. 'Eliminar Trabajo'). INSERT INTO permisos VALUES ('Admin'. por defecto a la categoría de usuario Admin. INSERT INTO permisos VALUES ('Admin'. 'Gestion Requisitos'). 'Adoptar INSERT INTO permisos VALUES ('Admin'.

'Altas INSERT INTO permisos VALUES ('Profesor'. 'Modificar Trabajo').Desarrollo de una aplicación web… Capítulo 4 . INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. 'Datos Personales'). 'Asignar Proyectos'). INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Admin'. INSERT INTO permisos VALUES ('Profesor'. Permisos sobre las INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Admin'. 'Consultar Trabajo'). 'Consultar Usuario'). 'Noticias'). 'Eliminar Proyecto'). 114 . funcionalidades que se asignan Usuarios'). 'Eliminar Trabajo'). 'Solicitar Trabajo'). INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Admin'. 'Modificar Proyecto'). 'Registrar Proyecto'). INSERT INTO permisos VALUES ('Profesor'. 'Modificar Usuario'). 'Registrar Trabajo'). 'Solicitar Proyecto'). 'Asignar Trabajos'). INSERT INTO permisos VALUES ('Profesor'. 'Proponer Trabajo'). INSERT INTO permisos VALUES ('Admin'. 'Publicaciones'). INSERT INTO permisos VALUES ('Profesor'. 'Consultar Proyecto'). por defecto a la categoría de usuario Profesor. INSERT INTO permisos VALUES ('Admin'. 'Registrar Usuario').Desarrollo INSERT INTO permisos VALUES ('Admin'. 'Proponer Proyecto'). INSERT INTO permisos VALUES ('Admin'.

'Modificar Usuario'). INSERT INTO permisos VALUES ('Colaborador'. 'Solicitar Proyecto'). INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Profesor'. 'Eliminar Usuario'). INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Colaborador'. INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Profesor'. 'Registrar Colaborado'). INSERT INTO permisos VALUES ('Profesor'.Desarrollo de una aplicación web… Capítulo 4 . INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Profesor'. 'Enviar Correo'). 'Solicitar Trabajo'). INSERT INTO permisos VALUES ('Profesor'. 'Datos Personales'). INSERT INTO permisos VALUES ('Colaborador'. 'Proponer funcionalidades que se asignan Proyecto'). INSERT INTO permisos VALUES ('Profesor'. 'Registrar Proyecto'). 'Publicaciones'). por defecto a la categoría de usuario Colaborador. 'Proponer Trabajo'). 'Registrar Trabajo'). INSERT INTO permisos VALUES ('Profesor'. Permisos sobre las INSERT INTO permisos VALUES ('Colaborador'. 'Modificar Trabajo'). 'Enviar Correo'). 'Consultar Trabajo'). INSERT INTO permisos VALUES ('Profesor'. INSERT INTO permisos VALUES ('Profesor'. 'Proponer Proyecto'). 'Consultar Usuario'). INSERT INTO permisos VALUES ('Colaborador'. INSERT INTO permisos VALUES ('Profesor'. 'Consultar INSERT INTO permisos VALUES ('Colaborador'. 'Modificar Proyecto'). 115 . 'Insertar Usuario'). 'Noticias').Desarrollo INSERT INTO permisos VALUES ('Profesor'.

'Proponer Trabajo'). no se incluye en la memoria. 'Segundo apellido'. 'Solicitar Trabajo'). se ha de suponer el peor de los casos: ser el objetivo de un hacker o cracker informático. también sería necesario indicar las sentencias para llenar la tabla Idiomas. categoría de Admin con los 'Primer apellido'. 'Nombre'. siguientes datos: • • Usuario: Admin Password: admin Tabla 4. 0. 'Admin'.'. pero debido al gran número de entradas de dicha tabla.. Primer usuario del sistema con INSERT INTO personas VALUES ('Admin'. ''.. INSERT INTO permisos VALUES ('Colaborador'. 'Catalan'. 'Solicitar Proyecto'). privacidad y autenticidad de los datos del sistema. INSERT INTO permisos VALUES ('Colaborador'.5. se explicará la notación utilizada para algunos de los diagramas utilizados para aclarar el funcionamiento. Pero antes. INSERT INTO personas_categoria VALUES ('Admin'.edu'. 'Admin@salleurl.4. • Inicio: situación desde la que se comienza la secuencia. Capítulo 4 .Desarrollo INSERT INTO permisos VALUES ('Colaborador'. 'enlace'. '').Sentencias SQL para la inicialización de la base de datos 'Ad4O69cwrPVg. 'A'. Hay que destacar. Inevitablemente. es mantener cierta seguridad ya que el uso de los usuarios sobre ésta no siempre es la correcta. Inicio 116 . 2005). que si se desea tener un soporte inicial para los tres idiomas. ''. A continuación se explican las medidas implementadas para prevenir de ataques y garantizar la integridad.Desarrollo de una aplicación web… Proyecto'). 4.Seguridad en el sistema Una de las necesidades primordiales de cualquier aplicación web.

los cuales se envían codificados en md5 para evitar su captura mediante sniffer: • • Usuario: es el identificador de la persona en el sistema.4. Acciones • Decisión: estado donde se realiza una pregunta y dependiendo de la respuesta permite utilizar un camino u otro. 4.1. Final • Errores: estado al que se llega si se produce algún error en la secuencia. Password: contraseña secreta para poder validar los credenciales del usuario.Desarrollo • Final: escenario al que se llega si todo es correcto. El inicio consiste en la introducción correcta de dos parámetros.Desarrollo de una aplicación web… Capítulo 4 . Pregunta • Caminos: permiten ir de un estado a otro. Tiene lugar al principio de la aplicación web para proteger todo su contenido a excepción de la funcionalidad de registrar un nuevo colaborador. indicando cuáles son los caminos a seguir. la contraseña que se guarda 117 . Para mayor protección de los datos.Inicio de sesión El inicio de sesión permitirá determinar si un usuario está autorizado o no a acceder al sistema.. Errores • Acciones: representa una acción que se lleva a cabo.

dependiendo del perfil que tenga el usuario podrá realizar unas operaciones u otras. Si la respuesta es satisfactoria. Si bien el problema de este método es de recursos y tiempo. Una vez introducidos los dos campos. Esta sesión consta de las variables de sesión: s_autentificado. el sistema comprobará la existencia del usuario y la validez de la contraseña. con lo que gracias al tiempo de bloqueo. Este tipo de ataque consiste en ir probando todas las posibles contraseñas una a una. aunque ya está comentado en su correspondiente apartado. s_idioma y s_tipo. Estos parámetros vienen definidos en el archivo de configuración: configuracion. se crea una sesión de usuario para poder acceder al sistema. Otra de las funcionalidades del inicio de sesión.Desarrollo en la base de datos. está codificada con la función crypt a partir del identificador de usuario y la contraseña sin codificar. que s_tipo indicará el nivel de acceso de los usuarios.conf.Desarrollo de una aplicación web… Capítulo 4 . Así pues. este tipo de ataque es inútil. generalmente conociendo determinada información acerca de la posible víctima y así generar todas las posibilidades. s_login. consiste en el bloqueo de usuarios con un determinado número de intentos de acceso fallidos al sistema. Gracias a esto. se consigue prevenir uno de los ataques más conocidos y utilizados por los piratas informáticos: ataques por fuerza bruta. Cabe resaltar. A continuación se expone un diagrama con el proceso que se sigue para realizar todas las comprobaciones: 118 .

se realiza en: • Index.php: donde se valida el inicio de sesión.2.php: página de acceso al sistema.Desarrollo de una aplicación web… Capítulo 4 . • Control.Desarrollo Página de acceso NO ¿El usua rio es corre cto? SI SI ¿Ha supe ra do los inte ntos pe rmiti dos? Incre me ntar i nte ntos fa lli dos NO NO ¿El pa ssword e s corre cto? SI Cre a r pe rfil de usua rio Acceso al sistema Figura 4. que se muestra al cliente. se crea el perfil y se computan los intentos.Protocolo para validar el inicio de sesión Todo este proceso.. 119 . donde se pide el usuario y el password.

la prueba no es satisfactoria.6. no podrán utilizar las operaciones que su categoría no permita. Antes de explicar que es lo que hace exactamente y para facilitar la comprensión. la variable no se creará. ha sido necesario desarrollar un módulo llamado: NivelSeguridad. si es satisfactoria.4. Tabla 4. se exponen los riesgos que evita: • Los usuarios que no hayan pasado realizado correctamente el inicio de sesión. se le pone el nivel de acceso correspondiente. la prueba no es satisfactoria. se pone a “SI”.Inicialización de las variables de sesión Una vez vistos los problemas que evita este módulo. la variable no se creará. y las herramientas que utiliza para ello.. • Asegura el cumplimiento de los niveles de acceso. Los usuarios que hayan realizado correctamente el acceso al sistema.Desarrollo de una aplicación web… Capítulo 4 . no podrán acceder directamente vía url a las operaciones de la aplicación web. En caso contrario.2. es mucho más fácil explicar y comprender su funcionamiento: 120 . s_operaciones_pagina En cada fichero se definen los identificadores de las operaciones que lo utilizan.Módulo de seguridad Para poder garantizar cierta seguridad al sistema.. Estas comprobaciones se puede llevar a cabo gracias a las variables de sesión anteriormente comentadas: s_autentificado. Por ejemplo: ##Operación 1#Operación 2# s_operacion En el primer fichero de cada operación se inicializa con el identificador de la operación en cuestión. s_operaciones_pagina y s_tipo. En caso contrario. A continuación se explica donde se inicializan: Variable: s_autentificado Donde se inicializa: En la prueba de acceso al sistema (inicio de sesión).Desarrollo 4. s_tipo Si la prueba de acceso al sistema es satisfactoria. s_operacion. Éste está incluido en todas las operaciones de la aplicación web.php.

Desarrollo Inicio de fichero Acceso no permitido NO SI ¿El usua rio e stá aute ntificado? SI ¿El us uario puede realizar la operació n? NO ¿Es la primera pág ina de la ope ración? NO SI Inicializa s _operacio n NO SI NO SI ¿s_ opera cion es t á en s _operaciones _pa gina? ¿El us uario puede rea lizar la s_operacion? Acceso permi tido Figura 4..Desarrollo de una aplicación web… Capítulo 4 .Protocolo de validación del módulo de seguridad 121 .3.

122 . todos los datos que serán enviados por el usuario.4.. Los puntos de entrada para esta aplicación serán los formularios. a la cual debe ajustarse el contenido. se hace un control minucioso del contenido de los formularios antes de ser enviado por la red. Este control. Cada campo de cada formulario.. ya que permitirán a los usuarios introducir información en el sistema. ya que se pueden introducir cadenas que sean mal interpretadas por los servicios y conseguir efectos no deseados. Sino se ajusta.3.Formularios Uno de los puntos críticos de toda aplicación web. En algunos campos como descripciones u observaciones. se hace mediante JavaScript (lenguaje interpretado en el navegador del cliente) evitando una carga innecesaria del servidor web. ya sea su propio usuario y contraseña en el inicio de sesión.4. se muestra un mensaje de error comunicando el tipo de incidencia. Para minimizar los riesgos de los puntos críticos. es la entrada de los datos al sistema.HTTPS Uno de los medios más extendidos por la red para garantizar la privacidad y autenticidad de los datos es HTTPS [17]. 4. peticiones de proyectos. se muestra un marcador de los caracteres restantes para comunicar al usuario esta limitación. tiene una expresión regular asociada. datos personales… viajarán codificados por la red. Existen dos tipos de restricciones para los campos: • Longitud: tiene un tamaño máximo que se corresponde al que ocupará la información en la base de datos. En el momento en que todos los campos han pasado la validación satisfactoriamente.4.Desarrollo de una aplicación web… Capítulo 4 . la información se envía al servidor para ser tratado.Desarrollo 4. como por ejemplo el acceso con máximos privilegios en el sistema. evitando que los piratas informáticos cojan la información por el camino. Así pues. que consiste en una versión segura del protocolo HTTP del Web ya que cifra y autentica las operaciones.

Una función que reciba un identificador y el idioma. consultar e incluso insertar nuevos datos en el sistema. 2. al pasar el inicio de sesión y crear el perfil del usuario.. De manera muy general. según la selección del idioma en ese momento. este ataque queda anulado.’ en las posiciones correctas).Desarrollo de una aplicación web… Capítulo 4 . 123 . 4. eliminar. consiste en introducir sentencias SQL en los campos con el fin de interrumpir una petición a la base de datos y así obtener algún fin deseado. se puede cargar en una variable de sesión y así tener una consulta más rápida. Ésta permite determinar cuales serán los caracteres no permitidos o incluso establecer una estructura de la información (por ejemplo que las direcciones de correo tengan una ‘@’ y un ‘. Para implementar este servicio se ha desarrollado el módulo: idiomas. Pero antes de entrar en profundidad en la implementación finalmente escogida.Desarrollo • Caracteres restringidos: como bien se ha dicho anteriormente. mostrará una información u otra. el proceso requiere la declaración de nuevas variables y funciones. Gracias al tratamiento exclusivo de todos los campos y la restricción de la utilización de algunos caracteres como ‘’’ o ‘”’ que permiten interrumpir sentencias SQL. cada campo tiene una expresión regular asociada. para mostrar un contenido web.5. Uno de los ataques comúnmente utilizados por los usuarios expertos en materia de piratería informática es: SQL injection. Con este ataque se pueden modificar. y devuelva o saque por pantalla el contenido relacionado. Para mayor comodidad. antes hay que pasar una etapa previa que. Entre ellas se pueden destacar: 1. Aunque parezca un proceso sencillo.php. Este problema afecta a la mayoría de las aplicaciones web que utilizan bases de datos. La idea es muy sencilla.Soporte para varios idiomas Una de las funcionalidades especificadas para este proyecto es la capacidad de mostrar los contenidos en varios idiomas. cabe explicar a grandes rasgos su funcionamiento. Un campo en la base de datos para saber cuál es el idioma escogido por el usuario.

Desarrollo de una aplicación web… Capítulo 4 .Estudio de las alternativas para soportar varios idiomas El parámetro más importante a tener en cuenta. también es muy importante. sin la necesidad de que el programador tenga tocar el tipo de la matriz. Estas tres alternativas presentan muchas diferencias en cuanto a las velocidades de: consulta de una entrada.. A continuación se expone un cuadro representativo de sus diferencias: Representación Velocidad de de contenidos: Matriz Tabla SQL Fichero consulta: Alta Media Baja Velocidad de Baja Alta Media Facilidad de Baja Alta Media modificación: programación: Tabla 4.Desarrollo 3. Sin embargo. las tablas SQL o el fichero de texto directamente.7. La forma de representar los contenidos condiciona el resto de elecciones. concretamente una matriz de NxM dimensiones. También varía el coste que puede tener programar una plataforma para gestionar los contenidos vía web. ya que por cada página se van a establecer múltiples conexiones con el fin de mostrar todo el contenido. modificación e inserción de un nuevo contenido. Una forma de representar todos los contenidos en varios idiomas y de acceso rápido. • Variable del tipo matriz: los contenidos se guardan en una variable. con lo que a continuación se exponen tres de las posibles alternativas contempladas. • Tablas SQL: los contenidos se guardan en una tabla SQL con tantos campos como idiomas tenga que soportar. • Fichero: los contenidos se guardan en un fichero de texto siguiendo un esquema determinado para guardar la información. ya que el usuario (normalmente Admin) no tiene porqué conocer el soporte 124 . es la velocidad de acceso a un contenido. la capacidad de posibles modificaciones sin la necesidad de tener que tocar directamente el soporte de los contenidos. donde N es el número de contenidos a mostrar y M el número de idiomas a los que da soporte.

La función para mostrar los contenidos se llama gettext (Identificador).Operaciones de usuarios Aquí se recogen todas las operaciones que por la información que tocan y el carácter de las mismas. el atributo Idioma indicará cuál será el idioma determinado por el usuario. Para hacer más fácil la lectura de la lista. La variable de sesión s_idioma se encargará de contener dicha información agilizar la consulta. 4. se podrían asimilar a operaciones de usuario. 4. 2.6. y consulta en la base de datos cual será la entrada correspondiente al Identificador recibido y al valor de s_idioma. así como los ficheros que utiliza y una breve descripción.6. Ingles y Origen.. Ahora que ya existe un soporte de la información. el soporte finalmente escogido son las Tablas SQL.1.php Descripción: Permite aceptar o rechazar solicitudes de registro al sistema 125 . El último atributo facilita la programación del gestor de contenidos.Funcionalidades A continuación se expone un listado de las operaciones que permite la aplicación web. En la tabla Personas de la base de datos.Desarrollo que se utilice.php EliminaUsuario. las operaciones están agrupadas en cinco categorías. ID Operación: Altas Usuarios Ficheros que utiliza: AltasUsuarios. Castellano. para un mantenimiento vía web. y teniendo en cuenta el carácter del proyecto. Catalan.Desarrollo de una aplicación web… Capítulo 4 .. Por lo tanto. que contendrá los campos: Identificador. 3. se pueden determinar el resto de los factores: 1. Para el soporte se crea una tabla en la base de datos llamada Idiomas.

php NivelSeguridad.php FormularioUsuario3.php FormularioUsuario33.php Idiomas. Si un usuario tiene permisos para realizar esta operación.php NivelSeguridad.php MuestraUsuario. permite mostrar la información detallada de los usuarios con la opción de (eliminar) usuarios.php Idiomas. Ésta permitirá dar de baja a los Modificar Usuario ConsultaUsuarios.Desarrollo de los Colaboradores.Desarrollo de una aplicación web… Correo2.php Idiomas.php MuestraUsuario.php Idiomas.php NivelSeguridad. permitirá variar la información Permite el registro de nuevos Registrar Usuario FormularioUsuario3.php Consultar Usuarios ConsultaUsuarios. de los usuarios.php EliminaUsuario.php NivelSeguridad. nombre y apellidos.php A partir de la búsqueda de usuarios. Esto permite generar informe útiles. Eliminar Usuarios ConsultaUsuarios. categoría de usuario. cada vez que se le muestre el login de un usuario por pantalla.php 126 .php MuestraUsuario. podrá acceder de manera inmediata a la consulta de dicho usuario. Además ofrece la posibilidad de enviar un e-mail al usuario afectado. activada. login.php Capítulo 4 .php A partir de la búsqueda de usuarios. además de mostrar la información detallada de cada usuario. permite mostrar la información detallada de los usuarios con la opción de Ésta (modificar) activada. Búsqueda de usuarios según los siguientes criterios: área a la que pertenecen.

php un determinado usuario (que 127 .php Idiomas.Operaciones de usuario 4. El usuario será operativo desde la inserción.Operaciones de proyectos Aquí se recogen todas las operaciones que tienen que ver con los proyectos (tanto TFC como PFC). datos de una con posterior Personas. • Proyectos-Usuarios: GeneradorListaSolicitados.php Correo2.php Descripción: Permite asignar un proyecto a previamente había hecho la solicitud) y generar dos tipos de listas: • Usuarios-Proyectos: lista de los proyectos solicitados por cada usuario.php MuestraProyecto.php Configuracion. Tabla 4..8.Estado=A (alta).Desarrollo de una aplicación web… FormularioUsuario33.Estado=FA (falta alta).conf Permite el registro directo en el sistema de cualquier tipo de usuario. ID Operación: Asignar Proyectos Ficheros que utiliza: AsignarProyectos. desde la inserción de un nuevo proyecto hasta la asignación de los mismos.2.6. Los inserta en la base de Requiere al usuario. Lo inserta en la base de datos con Personas.php NivelSeguridad.php MuestraUsuario.php Idiomas.php NivelSeguridad.php Configuracion..php NivelSeguridad.php FormularioUsuario33. validación para hacer operativo Insertar Usuario FormularioUsuario3.Desarrollo usuarios de tipo Colaborador en el sistema.php Idiomas.conf Capítulo 4 .

php NivelSeguridad. el login del alumno y el login del ponente. Si un usuario tiene permisos para realizar esta operación. permite mostrar la información detallada de los proyectos con la opción de 128 . los requisitos necesarios para su desarrollo.Desarrollo lista de los usuarios que han solicitado cada proyecto.php MuestraProyecto. Esto permite generar además informe de útiles.php NivelSeguridad.php Búsqueda de proyectos según los siguientes criterios: el identificador. el estado (libre. se enviará un al correo usuario electrónico afectado informándole de la aceptación de su solicitud. Una vez hecha la asignación.Desarrollo de una aplicación web… Capítulo 4 .php A partir de la búsqueda de proyectos. podrá acceder de manera inmediata a la consulta de dicho proyecto.php Idiomas. Consultar Proyecto ConsultaProyectos. Eliminar Proyecto ConsultaProyectos.php Idiomas.php EliminaProyecto. la de mostrar detallada información cada proyecto.php MuestraProyecto. categoría del proyecto (TFC o PFC). cada vez que se le muestre el identificador de un proyecto por pantalla. asignado o solicitado).

Tabla 4. al cual se le enviará un e-mail con la propuesta.php Registrar Proyecto FormularioProyecto3.php Correo2.php FormularioProyecto33.php FormularioProyecto3.php Solicitar Proyecto SolicitarProyectos. Modificar Proyecto ConsultaProyectos. Las solicitudes por e-mail se al enviarán proyectos.php NivelSeguridad..php Configuracion.php Idiomas.9.php FormularioProyecto33. permitirá variar la información de los proyectos.php Correo2.php NivelSeguridad.php MuestraProyecto.php SolicitarProyectos2. Ésta permitirá dar de baja los proyectos.php Esto A partir de la búsqueda de proyectos. Permite el registro directo en el sistema de un nuevo proyecto.Desarrollo de una aplicación web… Capítulo 4 .conf Muestra usuario disponibles.php Idiomas.php FormularioProyecto33. información de los y al proyectos permite Permite a los usuarios hacer una nueva a propuesta uno de de los proyecto profesores de las diferentes áreas.Desarrollo (eliminar) activada. Proponer Proyecto FormularioProyecto3.php MuestraProyecto.php Idiomas.php NivelSeguridad. permite mostrar la información detallada de los proyectos con la opción de (modificar) activada.php Idiomas. solicitar tres de ellos (con diferente prioridad) para el posterior desarrollo de uno de ellos.php NivelSeguridad.Operaciones de proyectos encargado de asignar los 129 .

Operaciones de trabajos Aquí se recogen todas las operaciones relacionadas con los trabajos.php Descripción: Permite asignar un trabajo a previamente había hecho la solicitud) y generar dos tipos de listas: • Usuarios-Trabajos: lista de los proyectos solicitados por cada usuario. asignado o solicitado). Consultar Trabajo ConsultaTrabajos. Una vez hecha la asignación.php NivelSeguridad.Desarrollo de una aplicación web… Capítulo 4 .php un determinado usuario (que afectado informándole de la aceptación de su solicitud. Si un usuario 130 .php NivelSeguridad.php MuestraTrabajo.php Idiomas. login alumno y estado (libre. Las funcionalidades descritas son muy parecidas a las de los proyectos..3. generar además de Esto informe permite útiles.php Idiomas.6. la de mostrar detallada información cada trabajo. ID Operación: Asignar Trabajos Ficheros que utiliza: AsignarTrabajos.php MuestraUsuario. se enviará un al correo usuario electrónico GeneradorListaSolicitados.php MuestraTrabajo.Desarrollo 4. • Trabajos-Usuarios: lista de los usuarios que han solicitado cada proyecto.php Correo2.php Búsqueda de trabajos según los siguientes criterios: identificador.

php Correo2.php NivelSeguridad. permite mostrar la información detallada de los trabajos con la opción de (modificar) activada.php Configuracion.php A partir de la búsqueda de trabajos.php A partir de la búsqueda de trabajos. Eliminar Trabajo ConsultaTrabajos.php Idiomas.conf Permite a los usuarios hacer una nueva a propuesta uno de de los trabajo profesores de las diferentes áreas.php EliminaTrabajo. Permite el registro directo en el sistema de un nuevo trabajo.php NivelSeguridad.php FormularioTrabajo33. Esto permitirá variar la información de los trabajos.php MuestraTrabajo. Muestra información al Registrar Trabajo FormularioTrabajo3.php NivelSeguridad.php FormularioTrabajo3.Desarrollo de una aplicación web… Capítulo 4 .php Solicitar Trabajo SolicitarTrabajos.Desarrollo tiene permisos para realizar esta operación.php NivelSeguridad.php FormularioTrabajo33.php 131 .php Idiomas.php MuestraTrabajo. al cual se le enviará un e-mail con la propuesta. Ésta permitirá dar de baja los trabajos.php Idiomas. Proponer Trabajo FormularioProyecto3.php FormularioProyecto33. podrá acceder de manera inmediata a la consulta de dicho trabajo. permite mostrar la información detallada de los trabajos con la opción de (eliminar) activada. Modificar Trabajo ConsultaTrabajos. cada vez que se le muestre el identificador de un trabajo por pantalla.php Idiomas.

php Muestra asignaturas del sistema y los Colaboradores 132 .. Esta operación la realizará un solo miembro del grupo. ID Operación: Gestion Requisitos Ficheros que utiliza: GestionRequisitos. Gestion Operaciones.conf usuario Capítulo 4 .Desarrollo de una aplicación web… MuestraTrabajo. solicitar tres de ellos (con diferente prioridad) para el posterior desarrollo de uno de ellos.php NivelSeguridad.php Correo2.php NivelSeguridad. (Gestion Contenidos). así como las que permiten definir diferentes niveles de acceso (Gestion Permisos) y el mantenimiento de todos los contenidos de la aplicación. Las solicitudes por e-mail se al enviarán encargado de asignar los trabajos..6.php Idiomas.Operaciones de trabajos 4.Operaciones de gestión Aquí se encuentran todas las funcionalidades que tienen que ver con el mantenimiento de la base de datos (Gestion Requisitos. nuevos de las las han permite: Gestion Asignaturas GestionAsignaturas.Desarrollo de los y trabajos permite disponibles.10.php Descripción: Muestra requisitos proyectos Además eliminar requisitos. Gestion Areas.4.php Idiomas. indicando sus componentes.php Configuracion.php NivelSeguridad.php Idiomas. Gestion Categoría). modificar. Gestion Asignaturas.php SolicitarTrabajos2. un del que e un listado sistema los insertar listado que de y los los requieren. Tabla 4.

php Idiomas.php Muestra un listado de las áreas del sistema y las personas que pertenecen a cada una.php Capítulo 4 . Además permite: modificar. eliminar e insertar nuevas operaciones. eliminar e insertar nuevas áreas. se muestra una lista completa de las operaciones.php Se muestra un listado con todos los contenidos de la aplicación web y la traducción a los tres idiomas (Catalán. Además permite: modificar. eliminar e insertar nuevos tipos.Desarrollo Además eliminar un listado del e permite: insertar de las la nuevas asignaturas.php Según el tipo de usuario. Castellano e Inglés).Desarrollo de una aplicación web… cursado. donde se indica las que están permitidas y las que no. Gestion Areas GestionAreas. operaciones sistema.php NivelSeguridad.php Idiomas.php NivelSeguridad. modificar.php NivelSeguridad. Si el contenido 133 . Además permite modificar dichas listas para variar los permisos. Gestion Contenidos GestionContenidos. Además eliminar e permite: insertar nuevos contenidos.php Muestra un listado de los tipos de usuario del sistema y las personas que pertenecen a cada uno.php Idiomas. Gestion Categorias GestionCategorias. Gestion Permisos GestionPermisos. modificar.php Idiomas. Además permite: modificar.php Idiomas. Gestion Operaciones GestionOperaciones.php NivelSeguridad.php Muestra NivelSeguridad. “categoría” a la que pertenecen y los tipos de usuarios que las pueden utilizar.

6. Permite acceder a la 134 . usuario.. 4.php Idiomas. proyecto. además tiene la opción (modificar) datos.5.php FormularioUsuario33. ID Operación: Datos Personales Ficheros que utiliza: MuestraUsuario. pudiendo generar informes útiles para su posterior impresión.php NivelSeguridad..php NivelSeguridad. debido a su independencia con el resto de los otros apartados (usuario. permiten modificar el criterio de ordenación mediante los campos del nivel superior de las tablas. activada para permitir la modificación de los A partir de una búsqueda de usuarios según los siguientes criterios: pertenecen.php Idiomas.Desarrollo de una aplicación web… Capítulo 4 . trabajo y gestión) o por el hecho de haber sido integradas. a la que de y categoría nombre Adoptar Usuario AdoptarUsuario.php Descripción: Muestra información detallada sobre el usuario en cuestión. se muestra (eliminar) para indicar que el borrado es crítico y puede tener efectos no deseados a la hora de mostrar el menú.11.php apellidos. área login.Desarrollo representa el identificador de una operación. no comparten la misma “categoría” que las otras.php FormularioUsuario3.Otras operaciones Aquí se recopilan algunas de las operaciones que. Tabla 4.Operaciones de gestión Todas las listas que se muestran en las operaciones.

php NivelSeguridad. eliminar e insertar nuevas noticias. que permite: modificar.php Idiomas.php Idiomas. Módulo integrado en la Noticias OperacionsNoticia.Desarrollo de una aplicación web… Capítulo 4 .Otras operaciones 135 . Módulo integrado aplicación web.php Noticies.. eliminar e insertar nuevas publicaciones.php aplicación web.Desarrollo cuenta del usuario que responde a la búsqueda.php Permite redactar y enviar un correo los electrónico.php Publicaciones DadesPublicacio. que permite: modificar. facilitando el acceso directo por años o letras respectivamente. Tabla 4. gracias Además a en un la GeneradorCamposMail.php NivelSeguridad. Enviar Correo Correo.php Idiomas.php DadesNoticia.php ofrece facilidades para rellenar campos buscador de usuarios integrado.php Correo2.php Publicacions. Además se ha añadido la posibilidad de listar las publicaciones por fecha y publicador.php NivelSeguridad.12.php OperacionsPublicacio.

php ├─ CambioIdioma.1.php ├─ NivelSeguridad.php ├─ control.php ├─ menu.1 para crear el sistema de información necesario para la aplicación web.Implantación 5. Copia de archivos de la aplicación: • Ficheros de aplicación: entre ellos se encuentran las librerías utilizadas.php 136 . la prueba de acceso (inicio de sesión) y el archivo de configuración • Ficheros de funcionalidades: todos aquellos ficheros que permiten realizar las operaciones del sistema.php ├─ BaseDatos.php ├─ salida.php ├─ pagina.Desarrollo de una aplicación web… Capítulo 5 ..3.php ├─ idiomas. • Imágenes y estilos: referentes a la apariencia y diseño de la aplicación web..Implantación 5. Creación de base de datos: aquí se han utilizado las sentencias explicadas en el apartado 4. 2. A continuación se muestra una tabla con las carpetas y ficheros de cada tipo: Tipo de archivos: Aplicación web Ficheros y carpetas: Proyecto ├─ index.php ├─ bienvenida. la instalación se compone de las siguientes fases: 1. el menú.php ├─ RecogeConfiguracion.Instalación de la aplicación web La instalación de la aplicación web es muy sencilla ya que para su desarrollo y testeo se ha utilizado el mismo software del cliente. Así pues.

edu.php ├─ GestionContenidos.php ├─ Correo2.php ├─ EliminaTrabajo.php ├─ ConsultaUsuarios.php ├─ FormularioTrabajo3.php Proyecto ├─ imagenes │ ├─ grsi_logo.gif │ ├─ ayuda.php ├─ Correo.php ├─ MuestraProyecto.php ├─ GestionCategorias.Desarrollo de una aplicación web… Capítulo 5 .php └─ SolicitarTrabajos.php ├─ SolicitarTrabajos2.php ├─ AsignarTrabajos.php ├─ FormularioTrabajo33.php ├─ FormularioProyecto33.Implantación ├─ configuracion.jpg │ ├─ burbuja.php ├─ GestionAsignaturas.php ├─ MuestraUsuario.php ├─ FormularioUsuario3.php ├─ GestionOperaciones.php ├─ MuestraTrabajo.conf └─ javascript └─ mensajes.gif │ ├─ eliminar.php ├─ FormularioProyecto3.php ├─ SolicitarProyectos.php ├─ FormularioUsuario33.php ├─ GestionRequisitos.js Proyecto ├─ AdoptarUsuario.php ├─ ConsultaTrabajos.php ├─ SolicitarProyectos2.php ├─ AltasUsuarios.php ├─ GeneradorListaSolicitados.ico │ ├─ eng.gif Funcionalidades Imágenes y estilos 137 .php ├─ AsignarProyectos.php ├─ GestionPermisos.php ├─ EliminaProyecto.gif │ ├─ logSalleURL.php ├─ GestionAreas.php ├─ GeneradorCamposMail.gif │ ├─ es.php ├─ EliminaUsuario.gif │ ├─ arrowdown.php ├─ ConsultaProyectos.gif │ ├─ backtitulo.gif │ ├─ arrowup.

Archivos y carpetas de la instalación 3.Implantación │ ├─ cat. Copia de módulos integrados: aquí se copian las carpetas asociadas a los módulos de Noticias y Publicaciones que se han adaptado para funcionar en la aplicación web.Desarrollo de una aplicación web… Capítulo 5 .3. 138 . Configuración del sistema: siguiendo el apartado A. 2.2. Todos sus ficheros se encuentran recogidos en las carpetas: admin y utils. Además se introduce un usuario (Admin) con el que se podrán realizar el resto de inserciones vía web.jpg │ ├─ logout.1. Esta puede dividirse en varias etapas: 1. se utiliza el manual de administrador (A.1.gif │ ├─ nofoto. las categorías de usuarios.1.2 se establecen los parámetros del archivo de configuración (configuracion.1.gif │ ├─ modificar2. permisos y operaciones necesarias para un buen funcionamiento.gif │ └─ modificar. Inicialización de la base de datos: siguiendo las sentencias de inicialización del apartado 4...1) como guía ya que ahí se indica como llevarla a cabo.conf). Para realizar la inicialización.1 (situación actual). Una vez concluida esta fase.1.Inicialización del sistema Una vez instalada la aplicación web las tareas consisten en la inserción de información en el sistema.css Tabla 5. el sistema estará tal como se describe en el apartado A.2 se establecen en el sistema las categorías.css └─ iframe. las operaciones del sistema y los permisos de las distintas categorías.gif └─ css ├─ di. 5.gif │ ├─ eliminar2.

proyectos y trabajos. requisitos. Inserción de los datos del sistema: esta es la tarea más larga de toda la implantación. 139 . El modo de realizarlas se explica en el apartado A.Implantación 3. ya que consiste en hacer una migración de la información del cliente a la aplicación web. En ella se contemplan: las áreas.1. usuarios.2 (mantenimiento del sistema).Desarrollo de una aplicación web… Capítulo 5 . asignaturas.

6.Costes hardware Los componentes hardware son todos aquellos elementos físicos que se utilizan para dar soporte a la aplicación web. En el desarrollo e implantación de este proyecto.70 € 140 .. se detallarán los programas utilizados y sus costes [18]: Programa: Apache MySQL miniRelay Windows XP Home Edition con Service Pack 2 Explorer Mozilla-Firefox Microsoft Word 2003 Servicio utilizado: Servidor web Gestor de base de datos Servidor de mail Sistema operativo Navegador web Navegador web Editor de textos Licencia: Gratuita Gratuita Gratuita 146. se instalan los servidores de: • • • Web Bases de datos Mail Para la fase del desarrollo se ha utilizado un PC y la implementación final se hace sobre el servidor de 'Enginyeria i Arquitectura La Salle'. Así pues. el único componente hardware que se necesita es un ordenador...Estudio económico 6.2. ya se dispone de todos los elementos hardware necesarios y su coste será nulo.60 € Gratuita Gratuita 168.Costes software Los elementos software son todas esas herramientas que se utilizan para el desarrollo y soporte de la aplicación web. En el cual. A continuación.Desarrollo de una aplicación web… Capítulo 6 – Estudio económico 6.1.

77 € 146.Distribución en fases A continuación se explica.Análisis de requerimientos: Reunión con el cliente para determinar los requisitos Reunión con el grupo de trabajo para comunicar las necesidades Total dedicación de fase: Horas: 5 5 10 Tabla 6.. 1.1.88 € Tabla 6.Desarrollo de una aplicación web… UltraEdit-32 Professional 11.3. es el coste teórico software del proyecto si no se dispusiera de ninguna licencia. Análisis de requerimientos En esta fase se realizan las tareas necesarias para obtener las necesidades y objetivos que el proyecto debe cumplir.405.1.70 € 3236. hay que destacar que.10 SmartDraw 7 Suite Edition Microsoft Corporation Office Excel 2003 AllFusion Erwin Data Modeler 4. ya se disponían de algunos de los productos.. se ven reflejadas todas las horas que se han dedicado para cada fase del desarrollo de la aplicación y los gastos para cada tipo de empleado.1 Microsoft Office PowerPoint 2003 Capítulo 6 – Estudio económico Editor de textos Editor de diagramas Editor de diagramas Creador de bases de datos Editor de diapositivas Total: 32. No obstante. y para los otros se han utilizados licencias temporales. Lo que se quiere reflejar con este cuadro. 6. En ellos.3.56 € 161. Fase 1 .2.18 € 2.Dedicación de horas en la fase de análisis de requerimientos 141 .. para cada fase..37 € 175. las tareas realizadas y la dedicación de horas. en tal caso se buscaría software más asequible. 6.Relación de costes software Aunque se muestra el precio de los productos no gratuitos. para el desarrollo y la implantación de este proyecto.Recursos humanos Los recursos humanos representan la mayor fuente de costes de cualquier proyecto.

Implementación Después de haber definido los planes de trabajo en la fase anterior. Fase 3 – Puesto en explotación: Bases de datos Seguridad Idiomas Interfaz Operaciones de usuarios Operaciones de proyectos Operaciones de trabajos 142 Horas: 10 30 30 10 30 35 20 .3.Dedicación de horas en la fase de diseño 3.. Fase 2 . Diseño Capítulo 6 – Estudio económico Aquí se realiza el estudio de todas las tecnologías necesarias y de todos los requerimientos obtenidos en la fase anterior. con el fin de definir un modo de implementación y trabajo óptimos para la aplicación web.Diseño: Estudio de PHP Estudio de HTML Estudio de JavaScript Estudio de CSS Estudio de MySQL Estudio de Apache Estudio de diagramas WAE Bases de datos Diagramas de flujos de datos Diagramas WAE Interfaz y apariencia Reuniones para validar los diseños Total dedicación de fase: Horas: 20 10 10 5 5 5 10 20 30 25 20 10 170 Tabla 6. aquí se desarrollan uno a uno todos los componentes necesarios para la aplicación.Desarrollo de una aplicación web… 2.

Pruebas: Esta fase se lleva a cabo de forma paralela a la de implementación..5.Dedicación de horas en la fase de pruebas 5.6. se realiza una implementación en el sistema del cliente.Implementación: Implantación Puesta a punto Total dedicación de fase: Horas: 10 40 50 Tabla 6. Implantación A fin de que ya pueda ser utilizado.Dedicación de horas en la fase de implantación 143 . Además.4. una vez desarrollado y probado todo el proyecto.Dedicación de horas en la fase de implementación 4.. Fase 4 .. Fase 5 .Desarrollo de una aplicación web… Operaciones de gestión Otras operaciones Integración de módulos Apariencia Reuniones para validar la implementación Total dedicación de fase: Capítulo 6 – Estudio económico 25 15 10 16 15 246 Tabla 6. se realizará una puesta a punto que consistirá en la inserción de todos los datos necesarios para su correcto funcionamiento. ya que cada componente desarrollado será necesario testearlo y comprobar que funcione con el resto del sistema.Pruebas: Unitarias De integración Cliente Total dedicación de fase: Horas: 160 100 35 295 Tabla 6.

Además. las fases de implementación y pruebas son las que se llevan la mayor porción ya que se trata de un proyecto de desarrollo en el que se tenía muy claro lo que se quería.7..Dedicación de horas por fases Como se puede observar en el gráfico.. Fase 6 .1. la implantación es rápida ya que el 144 . la distribución de horas totales dedicas al proyecto según cada fase quedaría del siguiente modo: Dedicación para cada fase 110 horas 12% 50 horas 6% 10 horas 1% 170 horas 19% 295 horas 34% 246 horas 28% Análisis de requerimientos Pruebas Diseño Implantación Implementación Documentación Figura 6. Aquí se documenta toda la aplicación así como la realización de manuales que servirán de guía a la hora de utilizar.Desarrollo de una aplicación web… Capítulo 6 – Estudio económico 6.Documentación: Memoria Manuales Total dedicación de fase: Horas: 90 20 110 Tabla 6. Documentación Esta fase se realiza de forma paralela a todas las anteriores.Dedicación de horas en la fase de documentación De esta manera. expandir y actualizar el sistema.

Además también se encargará de realizar la implantación de la aplicación. 6. antes es necesario hacer un estudio de los diferentes roles de empleados: • Analista: se encarga de recoger las necesidades del cliente y transmitirlas al jefe de proyecto. Si existen problemas.3.Desarrollo de una aplicación web… Capítulo 6 – Estudio económico desarrollo de la aplicación se ha hecho con el mismo software que se utiliza en la universidad. Programador: su tarea será desarrollar y documentar toda la aplicación teniendo en cuenta los planes diseñados por el jefe de proyecto. Además lleva a cabo reuniones con el analista y con el cliente para validar el progreso de la aplicación y comunicar los avances. el total de horas dedicadas por fases es de 881. También mantiene informado al cliente sobre el estado del proyecto y realiza los diseños de la aplicación web.. Pero para hacer una aproximación. • • • • 145 .2. se comunicará con los programadores para que lo solventen. Jefe de proyecto: su papel es el de coordinar. Así con todo. Diseñador gráfico: asesora y guía en el diseño gráfico de la aplicación.Costes de personal Valorar el coste de los recursos humanos no tiene mucho sentido sin saber exactamente cuanto se pagará a cada uno de los componentes del proyecto. Testeador: se encarga de realizar todo tipo de pruebas para cada módulo desarrollado. proporcionar recursos y hacer de intermediario entre el sponsor y el equipo del proyecto.

146 . ya que el propio cliente proporciona todo lo necesario.Dedicación de horas por empleados Ahora. solo sería necesario establecer los salarios de cada uno de los tipos de empleados para saber cuanto costaría el desarrollo del proyecto.. Como se ha comentado anteriormente. ya se puede hacer una relación sobre los roles y las horas de dedicación al proyecto: Dedicación de empleados 125 horas 14% 295 horas 33% 40 horas 5% 20 horas 2% 406 horas 46% Analista Jefe de proyecto Programador Diseñador gráfico Testeador Figura 6. los costes hardware y software no se tienen en cuenta.2.Desarrollo de una aplicación web… Capítulo 6 – Estudio económico Así pues.

también se tienen controladas sus acciones.1. Sobre estas tres áreas.. se mantiene un control sobre la información relacionada con los proyectos que existen en el sistema. de un modo muy similar al de proyectos. Este control..Beneficios del proyecto Para poder realizar una valoración correcta del proyecto. Datos como el estado de un proyecto y conocer si está libre. • 147 . ya que asigna diferentes niveles de acceso según el usuario. De esta manera. Además.Conclusiones y líneas futuras 7. o Los proyectos: de igual modo que los usuarios. A continuación se explican algunos de los más representativos: Control: es una de las claves para la buena organización y funcionamiento de una empresa o departamento en concreto. Gracias a este proyecto. también se facilita la creación de informes útiles con todos los datos necesarios para hacer más eficiente el control del sistema en general. son algunas de las consultas posibles. se permite un control sobre: o Los usuarios: es muy fácil mantener toda la información asociada a los usuarios que utilizan el sistema. es necesario explicar todos aquellos factores de los que se ha visto beneficiado el GRSI. se hace evidente gracias a la información que se guarda y las consultas permitidas. gracias a la cuales se permite un control rápido y eficaz. permite tener una jerarquía en los usuarios que lo forman.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras 7. o Los trabajos: en todo momento se puede controlar la información relacionada con los trabajos que existen en el sistema. asignado (en desarrollo o entregado) o solicitado.

resultará un proceso mucho más rápido ya que en pocos minutos el nuevo usuario podrá estar dado de alta y utilizando la aplicación. ya que no se precisará de un contacto directo entre profesores y nuevos colaboradores. Para esta gestión.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras • Automatización: resulta evidente que gracias a una aplicación informática se pueden automatizar los procesos realizados en el GRSI. Sin duda. proposición y asignación de los proyectos. proposición y asignación de trabajos resultará totalmente automatizado. Castellano e Inglés. o Los contenidos de toda la aplicación web. bajas. así como la traducción a los tres idiomas: Catalán. Además. ya que se consigue aumentar la rapidez en realizar determinadas tareas disminuyendo la carga de trabajo. el proceso de solicitud. • 148 . o Las asignaturas de las cuales interesa saber la nota de los Colaboradores. o Sobre trabajos: de modo muy similar al de proyectos. Las operaciones que pasan a estar automatizadas son: o Sobre usuarios: el registro de los Colaboradores. disminuyendo considerablemente el número de tareas que se realizaban anteriormente para llevar a cabo la misma operación. Ahora realizar peticiones de solicitud resultará un proceso guiado y sin necesidad de la intervención del profesor. o Sobre proyectos: uno de los objetivos de este proyecto. será una de las principales mejoras. es el de automatizar el proceso de solicitud. o Las operaciones que permite realizar el sistema. o Los permisos que estarán asignados a cada tipo de usuario. modificaciones y consultas de: o Las áreas que existen en el GRSI. o Los requisitos que pueden necesitar los trabajos o proyectos. Además el encargado de la asignación del proyecto podrá generar informes útiles para una correcta asignación. se han implementado módulos especializados que con dos clicks de ratón se pueden realizar altas. esto es uno de los mayores beneficios que se puede obtener de un proyecto informático. o Las categorías o niveles de usuario que pueden acceder al sistema. Fácil gestión: es indudable que un sistema de archivos informatizados es mucho más fácil de gestionar que si fuese sobre papel.

permitirá a cualquier programador no familiarizado con el sistema. Esto garantiza que el sistema se adapte a las circunstancias de cada momento. entendible y comentado. Los usuarios del sistema podrán determinar algunos de los parámetros del sistema ajustándolo a sus necesidades. por eso desde el inicio del desarrollo se ha tenido como objetivo facilitar dicha operación. rápido y estable. Todos estos factores son beneficios claros del sistema pero. proporciona la seguridad y fiabilidad requerida para garantizar la integridad.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras o Los proyectos y trabajos que existen en el sistema. o Configurable y dinámico: tal como se ha diseñado e implementado. se aumentará el nivel de control y facilitará la gestión. como podría ser la asignación de los permisos a los diferentes niveles de usuarios. autenticidad y privacidad de todos los datos sin que afecte al funcionamiento del mismo. Las principales son: o Extensible: adaptar módulos creados y su posterior incorporación al sistema es extremadamente fácil. llegando incluso al fracaso de muchas empresas que emergen a la red. pudiendo variar a lo largo • 149 . un sistema configurable. Código sencillo. este sistema permite ser configurable y dinámico. la seguridad y fiabilidad de muchas aplicaciones web es escasa o dudosa. introducir modificaciones e incluir nuevas funcionalidades de un modo sencillo. la aplicación en sí tiene ventajas que lo diferencian de otras.… Una consecuencia clara de del tiempo según las necesidades de cada momento. la elección de diferentes idiomas para mostrar los contenidos. Este sistema. es el dinamismo que este cogerá. el sistema de datos del cliente se verá informatizado. las tareas se automatizarán. o Seguridad: hoy en día debido al gran crecimiento y el carácter de los usuarios que abastecen Internet. o Los usuarios que podrán tener o tienen acceso a la aplicación web. sin duda alguna. o Fácil mantenimiento: es inevitable que los procesos requieran de un mantenimiento posterior a la implantación. Informatización: gracias a esta aplicación web. pudiendo permitir que la aplicación crezca aumentando el número de sus funcionalidades.

pero por no alargarme en exceso comentaré las cosas más relevantes de cada una de ellas. Resulta realmente difícil imaginar antes de crear. hacen que el GRSI se vea beneficiado de una aplicación web configurable. muchas veces. No obstante y por fortuna. La implementación de la aplicación es un proceso engorroso y lento. se realiza un estudio de todas las tecnologías.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras Todos estos factores.. confuso que durará a lo largo de todo el desarrollo del proyecto.Conclusiones Este proyecto sigue un ciclo de vida en cascada y abarca las fases típicas de cualquier proyecto informático: análisis de requerimientos. ya que existen muchísimos dominios a testear y efectuar una 150 . en esta fase. lo que le ahorrará mucho tiempo y dedicación. sistemas y métodos aplicables al proyecto aportando gran cantidad de nuevos conocimientos y el repaso de muchos de los vistos en clase.2. diseño. y verdaderamente es muy importante pensar antes de crear ya que ahorra mucho tiempo. Aquí he podido comprobar que el tiempo para realizar las pruebas es muy parecido al de desarrollo. Sin duda alguna. continuado y. en este proyecto el cliente ya estaba familiarizado con el mundo de la informática y la tarea resultó ser mucho más sencilla. De todas y cada una de ellas se podría escribir un apartado de conclusiones. Además. es una tarea realmente difícil que requiere de un proceso lento. dinámica. implementación y puesta en explotación. análisis de requerimientos. estrés y facilita el resto de las fases del ciclo de vida. 7. la mayor fuente de aportaciones de esta proyecto es la fase de diseño. Gracias a esta fase se ha profundizado en los conocimientos obtenidos en asignaturas como Metodología del software y se han adquirido nuevos conocimientos sobre diagramas para el diseño de aplicaciones web. extensible y segura que le permite obtener un mayor control sobre sus recursos y una automatización de muchas tareas. pero gracias a los diseños realizados se facilita mucho la tarea y el tiempo de dedicación en esta fase. se ha palpado directamente que comunicarse con el cliente y entender al 100 % qué es lo que desea. De la primera fase. La costumbre de pensar con la yema de los dedos es el mal hábito de la mayoría de os programadores.

Este proyecto no solamente ha sido una tarea de aprendizaje continuada. SQL. Aquí se han repasado los conocimientos obtenidos en asignaturas como Programación hipermedia. DFD y WAE) hasta los lenguajes utilizados para el desarrollo de la aplicación (PHP. Se han repasado y combinado muchas de las asignaturas vistas en clase (bases de datos.…). IExplorer. ya que facilita un control total sobre los recursos del cliente y automatiza mucha de las tareas que se hacen de forma periódica. MySQL. metodología del software. en la inserción de la información del GRSI. No obstante. sino que representa la creación. larga y dura pero que ha tenido sus compensaciones. ErWin. La fase de implantación. SmartDraw…). y hace que la fase se resuma casi en tu totalidad.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras prueba exhaustiva del sistema es realmente difícil. y es muy difícil que todo funcione a la primera. pero gracias a ello se profundiza mucho más en los conocimientos sobre el sistema y se consigue plasmarlo para que cualquier otra persona pueda realizar consultas y modificaciones sobre él. de una aplicación segura. HTML. tecnologías. CSS. desde los diagramas para el diseño (Entidad-Relación. La documentación de cualquier proyecto siempre es un proceso lento y cansado.…). Presumiblemente esto seguirá siendo así por muchos años. JavaScript. y se han afianzado las nuevas nociones sobre otros lenguajes no utilizados hasta ahora como es el PHP. me ha permitido comprobar de primera mano que no siempre son las cosas como se esperan ya que siempre existen variables no calculadas. El desarrollo de todo el proyecto ha sido una tarea difícil. con lo que se consigue un ahorro de tiempo en dedicación y recursos bastante considerables. Mozilla. Actualmente el sistema se encuentra en explotación en el GRSI y es usado cada día por sus componentes. aportaciones y experiencias. pasando por todas y cada una de las plataformas utilizadas para su desarrollo (Apache. de cada etapa del proyecto se pueden sacar conclusiones. programación hipermedia. desde la nada. fiable. ya que el 151 . eficaz… y lo que es más importante: útil. sistemas y métodos necesarios para realizar la aplicación. el haber realizado el desarrollo con el mismo software del cliente final facilita en gran medida esta etapa. Como se puede observar.

marcada por la inteligencia del programa.3. podría llegar a implementarse echando mano a la inteligencia artificial. De esta manera. 7. aquí se explican algunas de las posibles mejoras que. Asignador inteligente de proyectos y trabajos: actualmente el sistema automatiza la solicitud y la asignación de los proyectos y trabajos. un dinamismo que permitirá alargar la vida del proyecto tanto como la imaginación de sus programadores consientan. una de las principales cualidades de este proyecto es la capacidad de extensión. para permitir que compartan sus dudas y conocimientos relacionados con el GRSI. Se podría implementar un “Chat on-line” en el cual los usuarios estuvieran • 152 . Un proyecto extensible garantiza un proyecto cambiante a lo largo del tiempo.Líneas de futuro Como se ha comentado en los anteriores apartados. • Chat on-line: una de las líneas más ambiciosas de este proyecto. no se han desarrollado y que aportarían al sistema grandes beneficios. y realmente es una de las mayores fuentes de dinamismo e inserción de contenidos.Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras sistema se ha pensado para facilitar cualquier tipo de extensión y mantenimiento de sus funcionalidades adaptándose a las necesidades del día a día. ya que permitirá hacer una asignación de proyectos y trabajos mucho más rápida y eficiente. esta es una de las grandes líneas de futuro de este proyecto. manteniendo la jerarquía de usuarios establecidas en el sistema. Se podría implementar un foro. • Foro de usuarios: dicen que los foros son lo que realmente da vida a las páginas web. Esta presunción. presuponiendo un análisis de los expedientes de los colaboradores que hayan solicitado y una asignación consecuente a los resultados.. sea así la comunicación entre sus componentes. Sin duda alguna. es conseguir que los usuarios utilicen el sistema para realizar cualquier tarea relacionada con el GRSI. por la gran extensión de este proyecto. evaluando para caso las mejores opciones y aprendiendo de los errores que se encuentren.

Desarrollo de una aplicación web… Capítulo 7 – Conclusiones y líneas futuras conectados con webcam y micrófono. que permitiera archivar los correos recibidos y enviados. y la manutención de una agenda de contactos. • Gestor de correo electrónico: actualmente el sistema dispone de un módulo que permite el envío de correos electrónicos a los distintos usuarios. ponentes y proyectistas o colaboradores. Como se puede ver. Gracias a esto.edu. las líneas futuras de este proyecto las marca la imaginación de cualquier programador. se consigue imponer un servicio que adicionalmente se ofrece con otros programas (sea Skype o Messenger) y que permitiría realizar todo tipo de reuniones y comunicaciones en general. consistiría en un gestor de los correos del propio usuario.salleurl. ya sean entre profesores. sino que ofrece un portal seguro al que se le pueden agregar todo tipo de funcionalidades. Este módulo consistiría en la adaptación al sistema de un servicio similar al presentado en webmail. La siguiente fase. Esta aplicación no solamente proporciona servicios y gestión de recursos humanos. 153 . y así facilitar todo tipo de reuniones.

Goodman. Anaya Multimedia-Anaya Interactiva (2004).Booch. design. Chris/ Thomas.Elmasri. Anaya Multimedia-Anaya Interactiva (2005).Desarrollo de una aplicación web… Bibliografía Bibliografía 1. Jeri / Harkey. Nick: Designing with JavaScript: creating dynamic web pages.Buzzard. John: PHP 5.. O'Reilly & Associates (2004). Ramez A. Mcgraw-Hill / Interamericana de México 2ª edición (2000). Robert: Cliente/Servidor: Guía de supervivencia. 154 . Wrox Press Ltd (2003).. 11.Charte Ojeda.. O'Reilly & Associates (1997). Eric A:CSS pocket reference. Mike / Lea. 8.Edwards. 5.A (2000). Peter: Professional Apache.Apuntes de metodología del software: Tema 2 – El ciclo de vida del software Ciclo de vida en cascada 10.. Addison-Wesley Iberoamericana España. 4.. 2. Francisco: La biblia de HTML. 3. solution. Dan / Orfali. S. 9. James: El lenguaje unificado de modelado (UML)..Wainwright. Danny: JavaScript & DHTML cookbook.Heinle. O'Reilly & Associates (2001). / Navathe.. Wrox Press Ltd (2000). S. Grady / Jacobson.Coggeshall.Meyer.A (2002). Ivar / Rumbaugh. Shamkant B: Fundamentos de sistemas de bases de datos.. Jessey: PHP MySQL website programming: problem.. Dilip/ White-Cinis. Addison-Wesley Iberoamericana España. 7. 6.

Apuntes de metodología del software: Tema 6 .apache-ssl.Manual sobre variables sesión: www.Conallen.Página de consulta de precios: www..com 155 .com/php/tutorial/php4/4 16.Manual sobre apache y https: www. Addison Wesley 2ª edición (2001).Desarrollo de una aplicación web… Bibliografía 12.Técnicas de prueba del software 15..froogle.. Jim: Building Web Applications With UML. 14.org 18.Apuntes de metodología del software: Tema 4 – Análisis estructurado de sistemas Modelado de funciones Diagramas de flujo de datos 13....Apuntes de bases de datos: Sentencias SQL 17.programacion..

1. De esta manera y por diferenciación temporal.Manuales Para toda aplicación web.1.Desarrollo de una aplicación web… Anexo .1.1.1. primero es necesario comprender el estado actual de la aplicación web. ha de existir una guía de ayuda a los usuarios. Aquí tienen lugar todas las labores necesarias para que el sistema se encuentre apto para poder funcionar correctamente.Manual de administrador Responden a este tipo de usuario.. la aplicación consta de: 156 ..Puesta a punto Una de las tareas más importantes a realizar antes de poner en funcionamiento la aplicación web es la puesta a punto.1. A. En dicho momento. es el entorno que el administrador del sistema se encontrará cuando la aplicación web todavía no haya sido utilizada. se distinguen dos fases en la labor del administrador: • • Puesta a punto.Situación inicial La situación inicial. Con este fin. A. A.. En ellos se explican las operaciones más representativas del rol del usuario al que representan. La división de los manuales responde a los diferentes perfiles de usuarios que se encuentran por defecto en el sistema. Pero para entender estas tareas. Mantenimiento.Manuales Anexo . los que tienen por objetivo el mantenimiento de la lógica interna de la aplicación (gestión de toda la información necesaria) y asignar los diferentes privilegios de cada usuario. a continuación se desarrollan cuatro manuales de cómo llevar a cabo las operaciones requeridas en cada momento.

o Operaciones de Usuario: Insertar Usuario Registrar Usuario Modificar Usuario Consultar Usuario Eliminar Usuario Altas Usuarios o Operaciones de Proyecto: Registrar Proyecto Proponer Proyecto Modificar Proyecto Eliminar Proyecto Consultar Proyecto Solicitar Proyecto Asignar Proyectos o Operaciones de Trabajo: Proponer Trabajo Registrar Trabajo Modificar Trabajo Eliminar Trabajo Consultar Trabajo Solicitar Trabajo Asignar Trabajos o Otras operaciones: Enviar Correo Datos Personales Adoptar Usuario Publicaciones Anexo .Desarrollo de una aplicación web… Tres categorías de usuarios: o Admin o Profesor o Colaborador • Todas las operaciones desarrolladas para el sistema.Manuales • 157 .

Desarrollo de una aplicación web… Noticias Anexo . o Admin: permisos sobre todas las operaciones. o Profesor: Insertar Usuario Modificar Usuario Consultar Usuario Eliminar Usuario Altas Usuarios Registrar Trabajo Modificar Trabajo Eliminar Trabajo Consultar Trabajo Asignar Trabajos Registrar Proyecto Modificar Proyecto Eliminar Proyecto Consultar Proyecto Asignar Proyectos Enviar Correo Datos Personales Publicaciones Noticias o Colaborador: Proponer Trabajo Solicitar Trabajo Proponer Proyecto Solicitar Proyecto Enviar Correo Datos Personales 158 .Manuales • Permisos de las diferentes categorías de usuario sobre las operaciones.

La mayoría de las configuraciones se hacen vía web y para eso hay que acceder al sistema con los datos facilitados en la situación inicial. Max_Intentos Número de intentos fallidos que se permite a un usuario antes de bloquear su acceso al sistema. Mail_Solicitud_Proyecto Indica la dirección de e-mail que recibirá las peticiones de desarrollo de proyectos..1.1. Mail_Solicitud_Trabajo Indica la dirección de e-mail que recibirá las peticiones de desarrollo de trabajos. 159 . donde se establecerán algunos de los parámetros para determinar el funcionamiento del sistema: Atributo: Mail_Propuesta_Trabajo Descripción: Indica la dirección de e-mail que recibirá las propuestas de los trabajos de los usuarios. y con los siguientes datos de acceso: o Usuario: Admin o Password: admin A. se requiere la modificación del archivo de configuración “configuracion. Pero antes.Configuración En este apartado se explica como configurar el sistema para que funcione como se espera.conf”.Manuales • Un único usuario registrado con la categoría de Admin. Tiempo_Bloqueo Tiempo en minutos que se bloqueará el acceso a una cuenta si se iguala el número de accesos incorrectos a Max_Intentos.2. Idioma_Por_Defecto Es el idioma que se asignará por defecto a todos los usuarios que se den de alta en el sistema.Desarrollo de una aplicación web… Anexo .

. Mes_Final_Registro Mes a partir del cual. Mes_Inicio_Registro Mes a partir del cual. Extension_Fotos Dominio_Correo Extensión. permitiendo el registro de los Colaboradores.Desarrollo de una aplicación web… Dia_Inicio_Registro Anexo . Dia_Final_Registro Día a partir del cual.Parámetros de configuracion. la opción “Registrar” usuarios no estará activada a y los la autentificados operación “Registrar Usuario” estará operativa. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada. la opción “Registrar” usuarios no estará activada a y los la autentificados operación “Registrar Usuario” estará operativa. cerrando la posibilidad de registro de nuevos Colaboradores. Dominio al cual se asociarán los correos electrónicos de los usuarios que se registren en el sistema. PATH_Fotos Indica la dirección absoluta. donde se encontrarán las fotos de los usuarios. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada. La primera parte de la dirección será el login del usuario.Manuales Día a partir del cual. de las fotos de los usuarios. tienen que tener el login como nombre del archivo. sin punto. cerrando la posibilidad de registro de nuevos Colaboradores. permitiendo el registro de los Colaboradores.1. Estas fotos.conf 160 . Tabla A.

y determinar si es necesario modificar. y aunque no se trata de configuración propiamente dicha. Identificador del usuario. se puede insertar un usuario de cualquier categoría definida en el sistema. y determinar si es necesario modificar. Esto se realizará mediante la operación: Gestión Operaciones. En concreto usuarios con las categorías de profesores. ya que ésta permitirá a su vez registrar otros usuarios. se realizará mediante la operación: Gestión Permisos. Una vez se ha accedido a la opción. que aparece en el menú izquierda. • Operaciones del sistema: de igual modo que las categorías. Por último. Para realizar la operación se accede mediante la opción: Insertar Usuario. A través de ésta.Desarrollo de una aplicación web… Anexo . Para determinar los niveles de acceso de las diferentes categorías. No obstante. eliminar o insertar nuevos datos. antes de finalizar la puesta a punto del sistema es necesario insertar nuevos usuarios. se mostrará un formulario en el que se han de rellenar los siguientes datos: Campo: Categoría Login Nombre Apellidos Descripción: Indica el nivel de acceso al sistema del usuario. 161 . Apellidos del usuario. eliminar o insertar nuevos datos. • Permisos: si los permisos por defecto no son los deseados habrá que introducir las modificaciones pertinentes. se requiere el acceso al sistema para poder continuar con la configuración de: • Categorías de usuarios: es necesario validar las diferentes categorías que se encuentran en el sistema. la explicación de cómo realizar todas estas operaciones se hará en el siguiente punto donde se habla del mantenimiento del sistema. Se marcará Profesor para agilizar la inserción de usuarios. Esto se realizará mediante la operación: Gestión Categorías.Manuales Ahora que se han establecido las preferencias básicas. Nombre del usuario. hay que validar que las operaciones se encuentran registradas en el sistema.

si se decide realizar algún cambio. se mostrará un listado de todas las áreas que existen en el sistema. para poder validar que del mismo Área Observaciones Asignaturas y notas se ha escrito correctamente. A continuación se explican como realizar las operaciones de modificar. se mostrará una descripción del área en cuestión. existe una etiqueta que permite modificar su información. eliminar. Si se pasa el cursor por encima de los identificadores.2.. insertar y consultar: • Consulta: nada más inicializar el módulo. Una vez 162 . Sección a la que pertenecerá el usuario Observaciones a tener en cuenta Listado de las asignaturas y las notas correspondientes. y el usuario en cuestión podrá tener acceso inmediato al sistema.Manuales Password y repetición Contraseña y repetición de la misma. A. saber a qué usuarios afectaría.Mantenimiento del sistema Aquí se describen todas las operaciones que se realizarán para el buen mantenimiento de la información del sistema. Tabla A.2. se ha de pulsar el botón que indica: Insertar. El listado está por orden alfabético de los identificadores.1.2.1. son aquellas que indicarán a qué sección pertenece cada usuario.. A.Campos de formulario para insertar un usuario Finalmente. así como las personas que pertenecen a cada una por.. Para acceder al módulo se hace por medio de la opción: Gestion Areas.Desarrollo de una aplicación web… Anexo .1. • Modificar: en el lado izquierdo de los identificadores de cada área. Sólo se mostrará si se registra un usuario con la categoría de Colaborador.Gestión de las áreas Las áreas del sistema.

se quedarán sin sección asignada y será necesaria su modificación individual para corregirlo.Campos de formulario para insertar un área A. Si finalmente se elimina. A continuación. existe una etiqueta que permite modificar su información.. Una vez 163 . insertar y consultar: • Consulta: nada más inicializar el módulo.. A continuación se explican como realizar las operaciones de modificar. se mostrará una descripción de la asignatura en cuestión. se mostrará un listado de todas las asignaturas que existen en el sistema. se actualizará el formulario con los datos llenos. Completados los campos. solamente será necesario pulsar el botón: Insertar. Una vez pulsada.2. Indicará una pequeña descripción sobre la nueva área. se muestra en detalle el formulario: Campo: Identificador Descripción Descripción: Será el identificador y nombre de la nueva área que se inserte. • Eliminar: en el lado izquierdo de los identificadores de cada área.2.1. los usuarios que pertenecían a dicha área. se mostrará una ventana pidiendo confirmación para la baja.Desarrollo de una aplicación web… Anexo . • Modificar: en el lado izquierdo de los identificadores de cada asignatura. • Insertar: debajo del listado de todas las áreas.3. se introducirán las modificaciones pertinentes y se pulsará: Modificar. si se decide realizar algún cambio. Para acceder al módulo se hace por medio de la opción: Gestion Asignaturas. existe una etiqueta que permite eliminarlas. y el listado se actualizará con la nueva información. Si se pasa el cursor por encima de los identificadores.Gestión de las asignaturas Las asignaturas del sistema. saber a qué usuarios afectaría. El listado está por orden alfabético de los identificadores. se muestra un pequeño formulario para la inserción.Manuales pulsada. eliminar. así como las personas que han cursado cada una por. son aquellas que se le mostrarán a los Colaboradores en su registro para poder determinar su expediente académico. Tabla A.

se actualizará el formulario con los datos llenos. se mostrará un listado de todos los requisitos que existen en el sistema.. se muestra un pequeño formulario para la inserción. El listado está por orden alfabético de los identificadores.4.. 164 . insertar y consultar: • Consulta: nada más inicializar el módulo. se mostrará una ventana pidiendo confirmación para la baja. Tabla A. existe una etiqueta que permite eliminarlas.1. se introducirán las modificaciones pertinentes y se pulsará: Modificar. Para acceder al módulo se hace por medio de la opción: Gestion Requisitos. saber a cuales afectaría. y el listado se actualizará con la nueva información.Campos de formulario para insertar una asignatura A. se eliminará del expediente de los usuarios que la habían cursado. Si finalmente se elimina. A continuación. si se decide realizar algún cambio. Indicará una pequeña descripción sobre la nueva asignatura. Completados los campos. solamente será necesario pulsar el botón: Insertar. • Eliminar: en el lado izquierdo de los identificadores de cada asignatura. se muestra en detalle el formulario: Campo: Identificador Descripción Descripción: Será el identificador y nombre de la nueva asignatura que se inserte. eliminar. Una vez pulsada.Desarrollo de una aplicación web… Anexo .Gestión de los requisitos Los requisitos del sistema indicarán todas las posibles tecnologías que un proyecto o trabajo puedan necesitar.3. así como los trabajos y proyectos que lo utilizan por. Si se pasa el cursor por encima de los identificadores. A continuación se explican como realizar las operaciones de modificar.2. se mostrará una descripción del requisito en cuestión.Manuales pulsada. • Insertar: debajo del listado de todas las asignaturas.

Gestión de los contenidos Los contenidos representan toda la información que se mostrará por pantalla al usuario.1. Indicará una pequeña descripción sobre el nuevo requisito. se muestra un pequeño formulario para la inserción. existe una etiqueta que permite modificar su información. Una vez 165 . • Insertar: debajo del listado de todos los requisitos. A continuación.2. se mostrará un listado de todos los contenidos que existen en el sistema.5. solamente será necesario pulsar el botón: Insertar. y el listado se actualizará con la nueva información.Desarrollo de una aplicación web… Anexo . El listado está por orden alfabético de los identificadores.. A continuación se explican como realizar las operaciones de modificar. insertar y consultar: • Consulta: nada más inicializar el módulo.. los proyectos y trabajos que lo utilizaban perderán dicha información. Una vez pulsada.4.Manuales • Modificar: en el lado izquierdo de los identificadores de cada requisito. Para acceder al módulo se hace por medio de la opción: Gestion Contenidos. Eliminar: en el lado izquierdo de los identificadores de cada requisito. así como su traducción a Catalán. • Modificar: en el lado izquierdo de los identificadores de cada contenido. existe una etiqueta que permite eliminarlos. existe una etiqueta que permite modificar su información. Tabla A. Una vez pulsada. se • mostrará una ventana pidiendo confirmación para la baja. Castellano e Inglés. eliminar. Si finalmente se confirma el borrado. Completados los campos. se actualizará el formulario con los datos llenos. se introducirán las modificaciones pertinentes y se pulsará: Modificar.Campos de formulario para insertar un requisito A. se muestra en detalle el formulario: Campo: Identificador Descripción Descripción: Será el identificador y nombre del nuevo requisito que se inserte.

Traducción del contenido al Inglés. se muestran en detalle el formulario: Campo: Identificador Castellano Catalán Inglés Descripción: Será el identificador del nuevo contenido web.6. Una vez pulsada. se introducirán las modificaciones pertinentes y se pulsará: Modificar. Traducción del contenido al Catalán. y el listado se actualizará con la nueva información. En ambos casos. solamente será necesario pulsar el botón: Insertar.. se actualizará el formulario con los datos llenos.1. es decir. Existen dos tipos de etiqueta que corresponden a las diferentes zonas de la página: o Rojo: indica que el contenido representa una operación del sistema. • Eliminar: en el lado izquierdo de los identificadores de cada requisito.Desarrollo de una aplicación web… Anexo . A continuación se explican como realizar las operaciones de modificar. eliminar.2.Manuales pulsada. A continuación.. se mostrará una ventana pidiendo confirmación para la baja. se muestra un pequeño formulario para la inserción. Tabla A. su contenido se muestra en el menú izquierda de la pantalla.Gestión de las categorías Las categorías del sistema son aquellas que permiten definir diferentes niveles de acceso para los usuarios.5. Completados los campos. el borrado hace que deje de verse el contenido con soporte a los tres idiomas y en su lugar muestre el identificador utilizado. insertar y consultar: 166 . existe una etiqueta que permite eliminarlos.Campos de formulario para insertar un contenido A. Para acceder al módulo se hace por medio de la opción: Gestion Categorias. Traducción del contenido al Castellano. o Gris: indica que el contenido se encuentra en un módulo como texto informativo. • Insertar: debajo del listado de todos los contenidos.

Esta operación será crítica ya que. se introducirán las modificaciones pertinentes y se pulsará: Modificar. Pequeña descripción sobre la nueva categoría.7. saber a qué usuarios afectaría. se mostrará una descripción de la categoría en cuestión. así como las personas que la tienen asociada por. Una vez pulsada. se mostrará un listado de todas las categorías que existen en el sistema.. Para arreglarlo. los usuarios que la tenían asociada se quedarán sin nivel de acceso y eso significa que cuando accedan al sistema no podrán realizar ninguna operación. A continuación. existe una etiqueta que si la pulsamos permite modificar su información. se actualizará el formulario con los datos llenos. Eliminar: en el lado izquierdo de los identificadores de cada categoría. y el listado se actualizará con la nueva información. se muestra un pequeño formulario para la inserción. • Insertar: debajo del listado de todas las categorías. se muestra en detalle el formulario: Campo: Identificador Descripción Descripción: Será el identificador y nombre de la nueva categoría. Una vez pulsada.Desarrollo de una aplicación web… Anexo . Completados los campos.Manuales • Consulta: nada más inicializar el módulo. Si se pasa el cursor por encima de los identificadores. si se decide realizar algún cambio. El listado está por orden alfabético de los identificadores. si se confirma la eliminación. Modificar: en el lado izquierdo de los identificadores de cada categoría. será necesario modificar los datos de los usuarios uno a uno. Tabla A. solamente será necesario pulsar el botón: Insertar.Campos de formulario para insertar una categoría 167 . existe una etiqueta que permite eliminarlas. se • • mostrará una ventana pidiendo confirmación para la baja.

existe una etiqueta que permite modificar su información. existe una etiqueta que permite eliminarlas. eliminar.Gestión de las operaciones Las operaciones. Una vez pulsada. y que se mostrarán en el menú izquierda como posibles opciones para poder utilizarlas. • Eliminar: en el lado izquierdo de los identificadores de cada operación.. Completados los campos. Si finalmente se confirma el borrado. se tendrá que hacer vía gestor de contenidos. El listado por defecto. A continuación se explican como realizar las procedimientos de modificar. se muestra un pequeño formulario para la inserción.6.Desarrollo de una aplicación web… Anexo . las categorías que la podían realizar dejarán de hacerlo. insertar y consultar: • Consulta: nada más inicializar el módulo. y el listado se actualizará con la nueva información. Una vez pulsada. se mostrará una ventana pidiendo confirmación para la baja. se mostrará un listado de todas las operaciones que existen en el sistema. • Modificar: en el lado izquierdo de los identificadores de cada operación. así como a la categoría a la que pertenecen (sub-menus del menú izquierda) y los tipos de usuarios que tienen permisos sobre ellas. solamente será necesario pulsar el botón: Insertar. se introducirán las modificaciones pertinentes y se pulsará: Modificar. El acceso al módulo se hace por medio de la opción: Gestion Operaciones.Manuales A. se encuentra en orden alfabético de los identificadores. A continuación.1. son todas aquellas funcionalidades que permite la aplicación web. • Insertar: debajo del listado de todas las operaciones. Si se desean modificar las traducciones a otros idiomas. se muestra en detalle el formulario: Campo: Identificador Descripción: Será el identificador de la nueva operación y del contenido que se 168 . se actualizará el formulario con los datos llenos. pero también existe la posibilidad de cambiarlo pulsando sobre las palabras Tipo e Identificador.2.

Tipo Anexo . Traducción de la categoría al Castellano. A continuación se muestra un listado de las operaciones del sistema. Para finalizar la asignación de permisos se ha de pulsar el botón: Modificar.7.8.1.Campos de formulario para insertar una operación A. PATH Descripcion Dirección absoluta donde se encuentra el primer fichero de la operación.Gestión de los permisos Los permisos indicarán las operaciones que una determinada categoría de usuario pueda realizar. si está marcado. Traducción de la categoría al Inglés. Traducción del contenido al Catalán. Traducción del contenido al Inglés. De este modo. Para acceder al módulo se hace por medio de la opción: Gestion Permisos. Selección de la categoría de la que se quiere mostrar sus permisos. Traducción de la categoría al Catalán. Información sobre la operación. sino. El mantenimiento de los permisos se hace en tres fases: 1. se irán seleccionado los permisos deseados para dicha categoría.2.Manuales Será el identificador de la categoría a la que estará asociada la operación en el menú izquierda de la aplicación. Si se pasa el cursor por encima. no le está permitida. 3. Traducción del contenido al Castellano. 2.. Además.. 169 . las operaciones tienen un checkbox a su izquierda que. aparece una ventana con su descripción.Desarrollo de una aplicación web… mostrará en el menú izquierda de la aplicación. indica que la categoría en cuestión puede realizar esa operación. Tabla A.

Esto es debido a que si el administrador no puede realizar esa operación.Manuales Este proceso se repetirá para cada una de las categorías. quedando la operación deshabilitada indefinidamente. 170 . No obstante. cabe resaltar que. en la configuración de la categoría Admin. cambiar los niveles de acceso de los usuarios resultaría imposible.Desarrollo de una aplicación web… Anexo . el permiso sobre la operación “Gestion Permisos” está bloqueado. y no existe otra categoría con ese privilegio.

permite la opción de enviar un correo electrónico al usuario o usuarios al que afecta la operación realizada.Manual de profesor Responden a este tipo de usuario.Registro de usuarios El profesor puede dar de alta usuarios en el siguiendo dos métodos.2. dependiendo del tipo de solicitud de registro del Colaborador. se ha de ir usuario por usuario marcando la que aparece al lado de cada nombre.Manuales A.. modificación e inserción de datos de usuarios. De este 171 . posteriormente.2..1.2.Mantenimiento de usuarios A. así como. Altas de usuarios: se accede mediante la opción: Alta Usuarios. proyectos y trabajos. 1. se han de marcar los checkbox que aparecen al lado de los logins de cada usuario.Desarrollo de una aplicación web… Anexo . que aparece en el menú izquierda.. En ese momento los usuarios podrán tener acceso al sistema y se les enviará un correo electrónico con el contenido señalado. Para poder dar de alta un usuario. Además. y finalmente se pulsa el botón que indica: Dar alta y enviar mail. Aquí se pueden consultar los datos del registro para. Para rechazar el registro de un usuario. si se desea escribir un mensaje para informar de la operación. se rellenan los campos asunto y mensaje. A. las operaciones que las relacionan entre sí por medio de las asignaciones. los encargados de realizar todas las operaciones que tienen que ver con la eliminación.1. poder validar o rechazar su alta.1. Es un módulo en el que se muestra una lista de todos los Colaboradores que han solicitado el registro a través de la aplicación web.

Campos de formulario para insertar un usuario Password y repetición Contraseña y repetición de la misma. si se ha señalado un mensaje. Login Nombre Apellidos del mismo Área Observaciones Asignaturas y notas Identificador del usuario. Sólo se requerirá si se trata de un usuario con categoría de Colaborador.Desarrollo de una aplicación web… Anexo . se puede insertar un usuario de cualquier categoría en el sistema sin la necesidad de una posterior validación de los datos. que aparecen en el menú izquierda. 172 . se mostrará un formulario en el que se han de rellenar los siguientes datos: Campo: Categoría Descripción: Indica el nivel de acceso al sistema (por defecto: Colaborador. y el usuario podrá tener acceso inmediato al sistema. Finalmente. Profesor o Admin) del usuario. para poder validar que se ha escrito correctamente. Nombre del usuario. Inserción de usuarios: se accede mediante la opción: Insertar Usuario. A través de esta opción..9. Para realizar la inserción. Sección a la que pertenece el usuario Observaciones a tener en cuenta Listado de las asignaturas y las notas correspondientes. se le enviará el correo electrónico. se ha de pulsar el botón que indica: Insertar. Apellidos del usuario. 2.Manuales modo. Tabla A. se borrará la información del usuario del sistema y.

de los cuales se harán una AND lógica sobre los usuarios del sistema que estén dados de alta. Para poder acceder a ella. área a la que 173 . El módulo que permite realizar dicha operación tiene como identificador: Consulta Usuarios. no se tendrá en cuenta para realizar la búsqueda. Los diferentes criterios son: Criterio: Login Apellidos Área Categoría Descripción: Identificador del usuario. se ha de marcar la opción: Buscar.2. A.Manuales Aunque los dos métodos comparten el mismo objetivo: realizar el alta de un usuario en el sistema. La lista se compone de: foto. Tipo o nivel de acceso de los usuarios (Admin. Tabla A. Además de mostrar la lista de los usuarios. Este parámetro sirve para realizar listas unitarias y encontrar un usuario determinado.. A continuación. Las búsquedas de usuarios pueden seguir diferentes criterios. se encuentra en la capacidad de realizar búsquedas sobre los usuarios y así poder generar informes útiles.2. mientras que el segundo puede realizarse para cualquier tipo de usuario. se ha de pulsar sobre el nombre del usuario en cuestión y se mostrará el perfil de dicho usuario..Búsqueda de usuarios Una de las principales funcionalidades de la aplicación web. e-mail.1. Para poder hacerla. Apellidos de los usuarios Área a la que pertenecen los usuarios. ordenados alfabéticamente y agrupados por la primera letra del primer apellido.10. categoría. para obtener un listado. que contiene: datos personales (login. también se permite realizar una consulta más profunda de un usuario determinado.Criterios de consulta de usuarios Si un campo no es rellenado. nombre y login de los usuarios. nombre.Desarrollo de una aplicación web… Anexo . se muestran todos los usuarios que responden a dicha búsqueda. Profesor o Colaborador). el primero se reserva exclusivamente a Colaboradores.

. se ha de pulsar el botón que pone: Anterior.. proyectos asignados o solicitados. si se trata de un Colaborador. último acceso y observaciones). su expediente académico (notas y asignaturas cursadas).2. Si se desea volver al resultado obtenido anteriormente. se selecciona un usuario para ver en detalle su ficha personal. a continuación. Algunos detalles a tener en cuenta en los campos son: Campo: Login Categoría Notas: Permanece bloqueado. Tabla A. Esto es debido a que se muestra la contraseña cifrada. En primer lugar.1. Si se pasa de Colaborador a cualquier otra categoría. ya que los identificadores serán invariables desde su registro en el sistema. se perderán las notas almacenadas. Si se desea variar la asignación de un proyecto o trabajo. aquí se mostrarán los mismos criterios para poder generar una lista y. Este campo sólo se mostrará si se trata de un Colaborador. pero con la información completada.3. No obstante.11. Password y repetición La longitud de la contraseña mostrada no concuerda con la del mismo Asignaturas y notas longitud de la contraseña real.Desarrollo de una aplicación web… Anexo . Si se pulsa sobre ella.Manuales pertenece.Detalles del formulario de modificación de usuario 174 . es necesario realizar su búsqueda. trabajos asignados o solicitados y. A. De igual modo que la operación explicada anteriormente: Búsqueda de usuarios. El módulo que permite realizar la operación tiene como identificador: Modificar Usuario.Modificar un usuario Esta operación permitirá variar los datos personales de un usuario. se muestra un formulario con los mismos campos que el de registrar un usuario. ahora la ficha personal tiene habilitada la opción (modificar). se ha de modificar el estado de estos últimos.

Desarrollo de una aplicación web… Anexo .2. la ficha personal tiene habilitada la opción (eliminar). será necesario pulsar sobre la etiqueta. Esta acción lleva a un formulario en el que se detalla toda la información necesaria para realizar la inserción de un nuevo proyecto. aquí se mostrarán los mismos criterios que permitirán generar una lista y. es necesario realizar su búsqueda. fecha de la entrega y nota. En caso de estar asignado. De igual modo que la operación explicada anteriormente: Búsqueda de usuarios. Para dar de baja el usuario. a continuación. 175 . Título del proyecto. se mostrarán los campos: login del alumno. Pero ahora.1. El módulo que permite realizar la operación tiene como identificador: Eliminar Usuario. A. De esta manera. es necesario pulsar sobre la opción: Insertar Proyecto.Mantenimiento de proyectos A. se actualizará la información del sistema.2.. quedará borrada del sistema toda la información relacionada con el usuario.2.Eliminar un usuario Esta operación permitirá dar de baja un usuario del sistema. y confirmar el mensaje de borrado.. Identificador Título Identificador del proyecto.2.1. A. Los campos que son: Campo: Estado Descripción: Indica si el proyecto estará asignado o libre. se selecciona un usuario en concreto para ver en detalle su ficha personal. De esta manera. En primer lugar.2.4.Manuales Una vez que se han introducido las modificaciones pertinentes sobre los datos..Registro de un proyecto Para poder dar de alta un nuevo proyecto en el sistema. es necesario pulsar el botón que pone: Modificar.

Si por el contrario se desea realizar una asignación sin previa solicitud. se tendrán que modificar los datos del proyecto directamente por medio de la operación: Modificar Proyecto. si no existen proyectos solicitados se mostrará el mensaje pertinente comunicándolo. Tecnologías requeridas para el desarrollo del proyecto..2.Campos de formulario para registrar un proyecto Una vez rellenada toda la información necesaria.2.Asignación de proyectos Esta función sólo tiene sentido cuando existen proyectos solicitados. se ha de pulsar el botón que indica: Registrar. Fecha máxima de entrega del proyecto. Tabla A. Descripción teórica del proyecto. Anexo . A.Manuales Identificador del profesor encargado de guiar el desarrollo.. Evaluación del proyecto entregado.12. Identificador del usuario encargado del desarrollo del proyecto.Desarrollo de una aplicación web… Categoría Descripción Parte práctica Login del ponente Login del alumno Fecha máxima de entrega Fecha de entrega Enlace Nota Requisitos Categoría del proyecto: TFC o PFC. Para poder realizar la operación se ha de pulsar el botón que pone: Asignar Proyectos. En caso contrario. Fecha en la que se entrega el proyecto. éste módulo permite dos funcionalidades: Funcionalidad: Generación de listas Descripción: Existen dos botones que generan dos tipos de listas diferentes: 176 . Una vez dentro.2. Descripción práctica del proyecto. y el proyecto habrá sido dado de alta en el sistema. Dirección web donde se encuentra más información sobre el proyecto.

• • De esta manera. Los diferentes criterios son: Criterio: Identificador Descripción: Identificador del proyecto.Funcionalidades de la asignación de proyectos Con la combinación de estas dos operaciones.2. No obstante y como se ha indicado anteriormente.Desarrollo de una aplicación web… Anexo .3. Las búsquedas de proyectos pueden seguir diferentes criterios.13. asignar a un usuario un determinado proyecto. Para volver a la pantalla anterior se pulsará el botón: Anterior. También se enviará un correo electrónico al usuario afectado en la operación. Asignar proyectos Mediante dos pestañas que indican el proyecto y el usuario que realizó la solicitud. permite. Tabla A. se pueden generar informes útiles para el posterior análisis sobre la asignación de los diferentes proyectos. se facilita bastante el proceso de asignar los proyectos. a excepción de los requisitos. apretando el botón que pone: Asignar. de los cuales se harán una AND lógica..Manuales Usuarios-Proyectos: lista de los proyectos solicitados por cada usuario.Búsqueda de proyectos Gracias a esta funcionalidad se permite el acceso inmediato a los datos de un proyecto y generar informes útiles de proyectos con parámetros en común. El módulo que permite realizar la operación tiene como identificador: Consultar Proyecto. Proyectos-Usuarios: lista de los usuarios que han solicitado cada proyecto. indicándole qué proyecto se le ha asignado. Este parámetro sirve para 177 . de los cuales se hará una OR sobres los proyectos del sistema y se obtendrá una lista. también se pueden asignar modificando directamente los datos de los proyectos.2.. A.

requisitos. el identificador del alumno. se realizará una OR de los que están marcados. ordenados alfabéticamente por el identificador.Si se desea volver al resultado de la búsqueda obtenido anteriormente. Requisitos que se pueden encontrar en un proyecto. fecha máxima de entrega. título.. en caso de estar asignado. no se tendrá en cuenta para realizar la búsqueda. Para poder hacerla. Además de mostrar la lista de los proyectos. a continuación. se ha de pulsar sobre el identificador del proyecto en cuestión y.Criterios de consulta de proyectos Si un campo no es rellenado. La lista se compone de: identificador. la fecha de entrega y la nota . Asignado o Solicitado. enlace donde se obtiene más información. 178 . Lo que se traduce a la siguiente afirmación: el proyecto a buscar ha de contener al menos uno de los requisitos seleccionados. Estado Indicará la disponibilidad de los proyectos a buscar: Libre. se muestran todos los proyectos que responden a dicha búsqueda. que esta formada por: identificador. Tabla A. se ha de pulsar el botón que pone: Anterior. logins de ponente y alumno. Categoría Login ponente Login alumno Requisitos Indicará el tipo de los proyectos que se filtrarán: TFC o PFC. también se permite realizar una consulta más profunda de un determinado proyecto. Como se ha comentado anteriormente. se ha de marcar la opción: Buscar. Identificador del usuario que se encarga de guiar los proyectos. y categoría del proyecto.14. Para poder acceder a ella.Desarrollo de una aplicación web… Anexo . parte práctica. se mostrará la información completa de dicho proyecto. ponente y.Manuales realizar listas unitarias y encontrar un proyecto determinado. A continuación. título. Identificador del usuario que se encarga de desarrollar el proyecto. descripción.

Tabla A. Este campo sólo se mostrará si el proyecto tiene el estado de Asignado.Manuales A.2. Este campo sólo se mostrará si el proyecto tiene el estado de Asignado. fecha de la entrega y nota. se actualizará la información del sistema.Modificar un proyecto Esta operación permitirá variar la información de un proyecto en concreto.4. De esta manera. a continuación. aquí se mostrarán los mismos criterios para poder generar una lista y. Identificador Login alumno Fecha de entrega Notas Permanece bloqueado.15. De igual modo que la operación explicada anteriormente: Búsqueda de proyectos. El módulo que permite realizar la operación tiene como identificador: Modificar Proyecto. se muestra un formulario con los mismos campos que el de registrar un proyecto. En primer lugar. Si se pulsa sobre ella. se selecciona un proyecto en concreto para ver en detalle su información. No obstante.Desarrollo de una aplicación web… Anexo . ya que los identificadores serán invariables desde su registro en el sistema. es necesario realizar su búsqueda.. 179 . Algunos detalles a tener en cuenta en los campos son: Campo: Estado Notas: Si se libera un proyecto. Este campo sólo se mostrará si el proyecto tiene el estado de Asignado.Detalles del formulario de la modificación de proyectos Una vez que se han introducido las modificaciones pertinentes sobre los datos. ahora su ficha tiene habilitada la opción (modificar)..2. pasando de asignado a libre. pero con la información completada. es necesario pulsar el botón que pone: Modificar. se perderán los datos de login del alumno.

es necesario pulsar sobre la opción: Insertar Trabajo. El módulo que permite realizar la operación tiene como identificador: Eliminar Proyecto. a continuación. En primer lugar. De igual modo que la operación explicada anteriormente: Búsqueda de proyectos. se mostrarán los campos: login del alumno.5. En caso de estar asignado.Manuales A. se selecciona un proyecto en concreto para ver en detalle su información.3. fecha de la entrega y nota.Eliminar un proyecto Esta operación permitirá dar de baja un proyecto del sistema.Desarrollo de una aplicación web… Anexo .2. De esta manera. Esta acción lleva a un formulario en el que se detalla toda la información necesaria para realizar la inserción de un nuevo trabajo. Pero ahora.2. quedará borrada del sistema toda la información relacionada con el proyecto.2.3.. será necesario pulsar sobre la etiqueta. es necesario realizar su búsqueda.2. Para dar de baja el proyecto. dicha información tiene habilitada la opción (eliminar). Descripción teórica del trabajo. Identificador Título Descripción Parte práctica Login del alumno Identificador del trabajo..Mantenimiento de trabajos A. aquí se mostrarán los mismos criterios que permitirán generar una lista y. A. y confirmar el mensaje de borrado. Título del trabajo. Los campos que son: Campo: Estado Descripción: Indica si el trabajo estará asignado o libre.1. Identificador del usuario y representante del grupo 180 .. Descripción práctica del trabajo.Registro de un trabajo Para poder dar de alta un nuevo trabajo en el sistema.

.3. 181 . A.Desarrollo de una aplicación web… encargado del desarrollo del trabajo. Tabla A. Fecha máxima de entrega Fecha de entrega Enlace Nota Fecha máxima de entrega del trabajo. Anexo .Asignación de trabajos Esta función sólo tiene sentido cuando existen trabajos solicitados. • Trabajos-Usuarios: lista de los usuarios que han solicitado cada trabajo.16. si no existen trabajos solicitados se mostrará el mensaje pertinente comunicándolo. Si por el contrario se desea realizar una asignación sin previa solicitud. se ha de pulsar el botón que indica: Registrar. De esta manera.. se pueden generar informes útiles para el posterior análisis sobre la asignación de los diferentes trabajos. Para poder realizar la operación se ha de pulsar el botón que pone: Asignar Trabajos.2.Campos del formulario para registrar un trabajo Una vez rellenada toda la información necesaria.Manuales Dirección web donde se encuentra más información sobre el trabajo.2. Evaluación del trabajo entregado. En caso contrario. se tendrán que modificar los datos del trabajo directamente por medio de la operación: Modificar Trabajo. Fecha en la que se entrega el trabajo. Una vez dentro. y el trabajo habrá sido dado de alta en el sistema. éste módulo permite dos funcionalidades: Funcionalidad: Generación de listas Descripción: Existen dos botones que generan dos tipos de listas diferentes: • Usuarios-Trabajos: lista de los trabajos solicitados por cada usuario.

Las búsquedas de trabajos pueden seguir diferentes criterios. indicándole qué trabajo se le ha asignado. Este parámetro sirve para realizar listas unitarias y encontrar un trabajo determinado Login alumno Estado Identificador del usuario y representante del grupo.. también se pueden asignar modificando directamente los datos de los trabajos. También se enviará un correo electrónico al usuario afectado en la operación.Criterios de consulta de trabajos 182 . de los cuales se harán una AND lógica sobre los trabajos del sistema para obtener un listado.3.Búsqueda de trabajos Esta funcionalidad permite el acceso inmediato a los datos de un determinado trabajo y generar informes útiles de proyectos con parámetros en común. El módulo que permite realizar la operación tiene como identificador: Consultar Trabajo. permite.. Los diferentes criterios son: Criterio: Identificador Descripción: Identificador del trabajo. se facilita bastante el proceso de asignar los trabajos. Asignado o Solicitado. Indicará la disponibilidad de los trabajos a buscar: Libre.18. Tabla A. apretando el botón que pone: Asignar. No obstante y como se ha indicado anteriormente.3.Funcionalidades de la asignación de trabajos Con la combinación de estas dos operaciones.17.Desarrollo de una aplicación web… Asignar proyectos Anexo . Tabla A.2. asignar a un usuario un determinado trabajo.Manuales Mediante dos pestañas que indican el trabajo y el usuario que realizó la solicitud. A. que se encarga de desarrollar el proyecto..

fecha de la entrega y nota.Desarrollo de una aplicación web… Anexo . título.2. se muestran todos los trabajos que responden a dicha búsqueda. aquí se mostrarán los mismos criterios para poder generar una lista y. se perderán los datos de login del alumno.4. La lista se compone de: identificador. se ha de pulsar sobre el identificador del trabajo en cuestión y. A.Si se desea volver al resultado de la búsqueda obtenido anteriormente.Manuales Si un campo no es rellenado. login del alumno y estado del trabajo. a continuación.3. título.. se ha de marcar la opción: Buscar. la fecha de entrega y la nota . se mostrará la información completa de dicho trabajo. ya que los identificadores serán invariables desde su registro en el sistema. Si se pulsa sobre ella. Para poder hacerla. Identificador Permanece bloqueado. No obstante. es necesario realizar su búsqueda. En primer lugar. El módulo que permite realizar la operación tiene como identificador: Modificar Trabajo. 183 . pasando de asignado a libre. Además de mostrar la lista de los trabajos. pero con la información completada. A continuación. parte práctica. el identificador del alumno. fecha máxima de entrega. que esta formada por: identificador. Algunos detalles a tener en cuenta en los campos son: Campo: Estado Notas: Si se libera un trabajo. a continuación. se muestra un formulario con los mismos campos que el de registrar un trabajo. De igual modo que la operación explicada anteriormente: Búsqueda de trabajos. también se permite realizar una consulta más profunda de un determinado trabajo. descripción. se ha de pulsar el botón que pone: Anterior. se selecciona un trabajo en concreto para poder ver en detalle su información. Para poder acceder a ella. no se tendrá en cuenta para realizar la búsqueda.Modificar un trabajo Esta operación permitirá variar la información de un determinado trabajo. ahora su ficha tiene habilitada la opción (modificar). en caso de estar asignado. enlace donde se obtiene más información y. ordenados alfabéticamente por el identificador. ponente.

. Este campo sólo se mostrará si el trabajo tiene el estado de Asignado. dicha información tiene habilitada la opción (eliminar). Este campo sólo se mostrará si el trabajo tiene el estado de Asignado.3. El módulo que permite realizar la operación tiene como identificador: Eliminar Trabajo.Desarrollo de una aplicación web… Login alumno Fecha de entrega Notas Anexo . De esta manera. Pero ahora. A. aquí se mostrarán los mismos criterios que permitirán generar una lista y. es necesario pulsar el botón que pone: Modificar.2. De igual modo que la operación explicada anteriormente: Búsqueda de trabajos. a continuación.5.Detalles del formulario de la modificación de trabajos Una vez que se han introducido las modificaciones pertinentes sobre los datos. De esta manera.Eliminar un trabajo Esta operación permitirá dar de baja un trabajo del sistema. se selecciona un proyecto en concreto para ver en detalle su información. quedará borrada del sistema toda la información relacionada con el trabajo.19. En primer lugar. se actualizará la información del sistema.. Para dar de baja el trabajo. 184 . Tabla A. es necesario realizar su búsqueda. será necesario pulsar sobre la etiqueta.Manuales Este campo sólo se mostrará si el trabajo tiene el estado de Asignado. y confirmar el mensaje de borrado.

con sus respectivas notas. contraseña.Desarrollo de una aplicación web… Anexo .Registro Se entiende por registro. apellidos. Vía web: este tipo de registro solamente se puede realizar en unas determinadas fechas escogidas por los profesores del GRSI.3.. área a la que pertenecerá y las asignaturas que el profesor requiera. nombre.. en la página de ingreso existirá una función habilitada en la que pone: Registro. el profesor dará el alta al usuario con la posibilidad de indicárselo por e-mail.1. se envía por correo a uno de los profesores encargados de las altas de los usuarios y si todo es correcto. Vía profesor: el colaborador ha de ponerse en contacto con un profesor del GRSI para que le registre directamente en el sistema. Si se encuentra en el periodo de registro de colaboradores. 2. nombre.3. el colaborador tendrá que conocer dichas fechas y acceder a la página web del GRSI. En primer lugar. Se tendrán que facilitar todos los datos necesarios para el ingreso así como: login. Intensificador y Proyectista. área a la que pertenecerá y las asignaturas que se requieran. se muestra un formulario de solicitud de registro. Una vez rellenado el formulario. A continuación se explican las distintas operaciones que un usuario de esta categoría puede realizar.Manual de colaborador A este tipo de usuario se ajustan los roles de Colaborador. apellidos. A. 185 . Existen dos posibles alternativas para poder ingresar como usuario: 1. en el cual se tendrán que completar los datos: login. con sus respectivas notas. contraseña. Accediendo a dicha opción.Manuales A. el ingreso del usuario en la base de datos de la aplicación web con lo que se permite el acceso al sistema.

A su vez.Desarrollo de una aplicación web… Anexo . Para acceder a esta opción. 2.Operaciones sobre proyectos A. 186 . Una vez se ha seleccionado un tipo. que si el usuario equivoca en repetidas ocasiones su contraseña. se hace mediante la opción ‘Solicitar Proyecto’ del menú izquierda de la aplicación.. aquí se permite al usuario realizar sus solicitudes.3.Solicitar proyectos A fin de automatizar el sistema de la solicitud de proyectos. su cuenta quedará bloqueada por un tiempo determinado.Manuales A. podrá acceder a la intranet del GRSI por medio de su login y su contraseña (indicados en el proceso de registro). tiene que ponerse en contacto con uno de los profesores a fin de solicitar una nueva y corregir el problema.3. se mostrará un listado con todos los proyectos libres de la categoría seleccionada.3.3. Figura A. A. Cabe resaltar.Captura de la página de acceso Si el usuario olvida su contraseña.. La operación se compone de cuatro fases: 1.. Seleccionar el tipo de proyecto: TFC (trabajo final de carrera) o PFC (proyecto final de carrera).Acceso al sistema Una vez que el usuario está registrado en el sistema. se mostrará si más gente los han solicitado.1.3.2..1.

A. por parte de los profesores.Manuales 3.Proponer un proyecto Si al solicitar un proyecto. cada usuario solamente podrá desarrollar un proyecto de cada tipo. Vistos todos los proyectos. cabe resaltar que un usuario solamente puede realizar la operación de solicitud si se cumplen dos condiciones: • No existen otros proyectos. Hecha la asignación de proyectos. media o baja) a fin de que se le pueda asignar el que más se ajusta a las necesidades del grupo. el usuario puede proseguir con una sola elección. y el perfil del usuario mostrará el proyecto como solicitado. 4. Esta funcionalidad se encuentra en la opción: ‘Proponer Proyecto’. se enviará un correo electrónico al usuario. 187 . es necesario indicar los siguientes campos: Campo: Título Categoría Descripción: Título de tu proyecto. no tiene asignado proyectos del tipo que se desea realizar la solicitud. y éste podrá comprobar que su ficha personal ha pasado de mostrar el proyecto de solicitado a asignado. se han de seleccionar tres con diferentes prioridades (alta. Para continuar. • El usuario en cuestión.3. En este momento. No obstante.2. se enviará un correo electrónico al profesor encargado de la asignación de proyectos. De lo que se deduce que. Por último. indicando el estado de su solicitud. Indica si se trata de un TFC o un PFC.Desarrollo de una aplicación web… Anexo . Para la propuesta de un proyecto. se permite que se realicen propuestas. se ha de seleccionar la opción que pone: Solicitar. del tipo que se desea realizar la solicitud. en proceso de solicitud. o si éste tenía algo en mente como proyecto.3.. no hay ninguna opción que satisfaga las necesidades del usuario.

En este momento.4. En primer lugar.. el usuario puede proseguir con una sola elección.20. la propuesta se envía por e-mail al profesor indicado y. se ha de accionar el botón que pone: Proponer. Tabla A. lo insertará en la base de datos y el usuario podrá ver en su ficha personal que tiene el nuevo proyecto asignado.3. Tecnologías a utilizar Tecnologías que utilizaría el proyecto. No obstante. La operación se compone de tres fases: 1.Operaciones sobre trabajos A. que posteriormente indicará el resto de los componentes.Desarrollo de una aplicación web… Descripción Parte práctica Proponer a Descripción teórica del proyecto. Indicará a quién se le enviará la propuesta. se ha de seleccionar el botón que pone: Solicitar. en caso que haya. los componentes que forman el grupo que desarrollarán el trabajo. 2. esta operación la hará un solo representante del grupo. aquí se permite al usuario realizar sus solicitudes. si éste la valida. Tal como se ha comentado.Manuales Descripción de lo que se tiene que desarrollar. No obstante. A. se mostrará un listado con todos los trabajos disponibles para desarrollar.. Vistos todos los trabajos. Para acceder a esta opción. se enviará un correo electrónico al profesor encargado de la 188 . A su vez.3. Aquí se indican el área del GRSI a la cual está dirigido. y se mostrarán los profesores que la forman. se hace mediante la opción ‘Solicitar Trabajo’ del menú izquierda de la aplicación.Solicitud de trabajos A fin de automatizar el sistema de la solicitud de trabajos. media o baja) a fin de que se le pueda asignar el que más se ajusta a las necesidades del grupo.4. También se han de indicar.1. se mostrará si más gente los han solicitado. Anexo . se han de seleccionar tres con diferentes prioridades (alta.. Para continuar.Campos del formulario para proponer un proyecto Una vez rellenados todos los campos del formulario.

y el perfil del usuario que representa al grupo mostrará el trabajo como solicitado. Tabla A. Descripción de lo que se tiene que desarrollar. lo insertará en la base de datos y el usuario podrá ver en su ficha personal que tiene el nuevo trabajo asignado. Esta funcionalidad se encuentra en la opción: ‘Proponer Trabajo’. se enviará un correo electrónico al representante. A continuación.. se envía un correo electrónico al profesor encargado de de validar las propuestas de los trabajos y. 3. A. Hecha la asignación de trabajos. o si tenían algo en mente.Campos del formulario para proponer un trabajo Una vez rellenados todos los campos del formulario.2.. indicando el estado de su solicitud.Desarrollo de una aplicación web… Anexo .Proponer un trabajo Si al solicitar un trabajo. es necesario rellenar los siguientes campos: Campo: Título Descripción Parte práctica Descripción: Título del trabajo. se ha de accionar el botón que pone: Proponer. Descripción teórica del trabajo. si acepta la propuesta.Manuales asignación de trabajos. se permite que se realicen propuestas.3. 189 . y éste podrá comprobar que su ficha personal ha pasado de mostrar el trabajo de solicitado a asignado. Para la propuesta de un trabajo.21. Por último.4. cabe resaltar que un usuario solamente puede realizar la operación de solicitud si no existen otros trabajos en proceso de solicitud. no hay ninguna opción que satisfaga las necesidades del usuario o grupo al que representa.

2.3. Indicar dirección o direcciones como CC.Desarrollo de una aplicación web… Anexo . 4.3. 190 . Indicar dirección o direcciones como Destinatario.Manuales A. el cual permite un máximo de 2500 caracteres. Pulsar sobre el botón que pone: Enviar. existe una ficha personal de cada usuario. Señalar el asunto del mensaje.. A.3. 6. 2. Además de mostrar toda la información relacionada con el usuario en cuestión. Indicar dirección o direcciones como BCC. donde se muestra información sobre los datos personales. y así completar el envío. donde se enviarán copias del mensaje.5.Otras operaciones A.Enviar un correo electrónico La aplicación web permite enviar correos electrónicos mediante la pestaña que pone: Enviar Correo.5. Si se desea modificar el estado de los proyecto y/o trabajos tendrá que ponerse en contacto con uno de los profesores para que lleve la operación a cabo. también existe la posibilidad de cambiar los datos personales y el expediente. 5.5. Rellenar el contenido del mensaje. El proceso para enviar un e-mail es muy sencillo: 1. 3. el expediente. pero con los campos llenos permitiendo variar la información. Ésta lleva a un formulario igual al de registro de un nuevo usuario..1.Datos personales Como se ha comentado anteriormente. donde se enviarán copias ocultas del mensaje (los destinatarios indicados en los anteriores campos no sabrán de los destinatarios de este campo). A esta opción se accede mediante el botón que pone: Datos Personales. Para poder realizarlo. los trabajos y los proyectos tanto asignados como solicitados.. se hace a través de la opción que pone: Modificar.

Además. nombre y apellidos. Los criterios de búsqueda son: área a la que pertenecen. Una vez se han seleccionado todos los usuarios que se desea que formen el campo. categoría de usuario. Para rellenar los campos destinatario. login.Desarrollo de una aplicación web… Anexo . se ha de pulsar el botón que pone: Generar. existen diferentes botones que permiten generarlos directamente. CC y BCC. por cada resultado de la búsqueda se permite filtrar los usuarios que se desean agregar mediante cheklist. 191 . y así volver a la página principal de envío de correo con las informaciones completadas.Manuales El e-mail de origen. Estos tres botones. llevan a un buscador de usuarios con la que se obtiene una lista de los usuarios que se desean agregar al campo. será el correo electrónico señalado en el registro del usuario que realiza la operación.

por ejemplo: “Gestión asignaturas” permite agregar. el cual se utilizará para mostrar la información en el menú. Por eso. que permitirán adaptar cualquier módulo ya creado para que se ajuste al funcionamiento del sistema. Así pues.1. consultar. ya que permite la implantación de nuevas funcionalidades. sin la necesidad de empezar desde cero cada vez. modificar y eliminar asignaturas. Un módulo se asimila a una operación o conjunto de operaciones englobados por la relación entre ellas. y ha de ser un nombre representativo de todas las operaciones que permita el módulo. cabe destacar un parámetro muy importante que se utilizará en todas las adaptaciones y que precisa de su elección para poder continuar.Manuales A. A continuación se muestran un listado de las variables de sesión utilizadas y el significado de una: 192 . la facilidad para adaptar módulos es una de las claves para la extensión de cualquier aplicación web. Cada módulo tiene un identificador de operación asociado. Aquí se hablará de cómo realizar la adaptación de un módulo ya implementado para que siga las políticas del sistema. es una tarea típica en las aplicaciones web. la adaptación de módulos ya creados. Podría describirse como el perfil del usuario para la programación de funcionalidades.4.. A.Manual del programador: adaptación de módulos El rol del programador.Desarrollo de una aplicación web… Anexo . Pero antes. Su elección es muy importante.. se compone de dos funciones: implementar nuevos módulos y adaptar los ya creados para que funcionen correctamente en el sistema. A continuación se detallan cuatro aspectos fundamentales.Variables de sesión Las variables de sesión de la aplicación web guardan información relacionada con el usuario mientras dure su acceso al sistema.4.

Tabla A. Para obtener más información sobre el tema se puede consultar el apartado 4. está autentificado o no.4. La incorporación de nuevos datos al perfil del usuario. Esta variable permite mantener cierta seguridad en el sistema. s_operaciones_pagina Es una cadena donde se encuentran todos los identificadores de las operaciones permitidas en un determinado fichero. Esta variable permite mantener cierta seguridad en el sistema.php. de los usuarios que no han realizado correctamente el inicio de sesión e intenten acceder a la funcionalidad.2. Esta variable permite mantener cierta seguridad en el sistema. se realiza en el fichero: control. Indica el idioma. De esta manera se podrán diferenciar directamente las variables locales a las de sesión. s_operacion Es una cadena donde se encuentra el identificador de la operación que se está llevando a cabo. es decir. A.Manuales Variable: s_autentificado Descripción: Indica si el usuario que accede al módulo donde se realiza la consulta.Desarrollo de una aplicación web… Anexo .Variables de sesión utilizadas en la aplicación Si se requiere la creación de nuevas variables de sesión. 193 .Módulo de seguridad El módulo de seguridad es aquel que garantiza que cualquier funcionalidad del sistema se encuentra protegida de los accesos indebidos...2 de la memoria. determinado por el usuario. es recomendable utilizar la notación: s_variable_de_sesion. s_login s_idioma s_tipo Contiene el login del usuario que se ha autentificado con éxito.2. Esta variable permite mantener cierta seguridad en el sistema.22. Informa de la categoría o nivel de acceso del usuario en cuestión. en el que se le mostrarán los textos.

?> Lo único que se ha de modificar. 2. También hay que comentar que si el módulo no se encuentra en la misma carpeta que el módulo NivelSeguridad. Permite espacios. include ("NivelSeguridad.Manuales La adaptación de cualquier módulo para incluir esta seguridad a sus funciones es muy sencilla. estaremos diciendo que a ese fichero solamente se puede acceder si la opción del menú seleccionada es la de la operación con identificador: “Identificador del Módulo”. volver al número 2.php"). con lo que será necesario indicárselo a s_operaciones. Para este caso. Nombre del identificador. 194 .php. session_register("s_operaciones_pagina"). ‘#’ al final de la variable. Para obtener más información sobre el tema se puede consultar el apartado 4. del módulo. En el ejemplo práctico se explicará en detalle. anteriormente comentado. s_operaciones_pagina.Desarrollo de una aplicación web… Anexo . Si la página está utilizada por otro módulo. en ocasiones algún fichero está compartido por varios módulos. session_start(). a la hora de realizar el include habría que indicarle un PATH (camino para encontrarlo). ‘##’ al principio. basta con incluir las siguientes líneas al principio de cada fichero que compone el módulo: <?php. es el valor que asigna a la variable de sesión. $s_operaciones_pagina="##Identificador del Módulo#". No obstante. 3. Con la inclusión de estas líneas.4 de la memoria. El formato de ésta se compone de 4 partes: 1. habría que añadir otro punto al formato de la variable: 4.

Manuales A.php"). las líneas tendrán que quedar del siguiente modo: <?php. la inclusión de la librería idiomas. No obstante. a la hora de realizar el include habría que indicarle un 195 . } ?> Esto servirá para incluir la librería idiomas.4. Modificación de ficheros: de igual modo que el módulo seguridad.Soporte para varios idiomas Otra de las prestaciones de la aplicación web.php"). $s_operaciones_pagina="##Identificador del Módulo#". if($libreria_incluida!=1){ include ("idiomas. es la facilidad con la que se permite adaptar un módulo para que soporte su salida de texto en varios idiomas.php tiene que estar antes de la de NivelSeguridad.php.php. if($libreria_incluida!=1){ include ("idiomas. session_register("s_operaciones_pagina").php"). Existen tres pasos para realizar esta modificación: 1.php sino estaba ya incluida. De igual modo que antes. } include ("NivelSeguridad.Desarrollo de una aplicación web… Anexo .. si el módulo no se encuentra en la misma carpeta que el módulo idiomas. session_start(). si el fichero ya tiene incluido el nivel de seguridad. se hace necesario insertar unas líneas al principio de cada fichero: <?php.3. ?> Como se puede observar.

cada vez que se quiera mostrar un contenido por pantalla. tendrá que insertar todos los identificadores con sus correspondientes traducciones para que idiomas. 196 . Agregar la información: esta operación se puede llevar a cabo por dos vías: • Vía web: precisa de una cuenta de usuario del sistema con permisos sobre la operación: Gestion Contenidos. • Vía gestor de base de datos: se requiere de una cuenta de acceso a la base de datos. Para obtener más información sobre el tema se puede consultar el apartado 4. Recibe: el identificador que identificará la información en la tabla Idiomas de la base de datos. Retorna: saca por pantalla el texto correspondiente al identificador y el idioma especificado en s_idioma.Manuales PATH (camino para encontrarlo). se tendrá que utilizar la función de php: gettext(“identificador del contenido a mostrar”). 3. 2. Salida de texto: a partir de ahora.Desarrollo de una aplicación web… Anexo . se agrega la información (identificadores y traducciones) en la tabla Idiomas a través de una petición SQL. A continuación. A continuación.php pueda encontrar las búsquedas del nuevo módulo.5 de la memoria. En el ejemplo práctico se explicará con más detalle.

Mail_Solicitud_Proyecto Indica la dirección de e-mail que recibirá las peticiones de desarrollo de proyectos. Dia_Inicio_Registro Día a partir del cual.Manuales A. la opción “Registrar” estará activada a los usuarios no autentificados y la operación “Registrar Usuario” estará operativa. la opción “Registrar” estará activada a los usuarios no autentificados y la operación “Registrar Usuario” estará operativa.4. Tiempo en minutos que se bloqueará el acceso a un cuenta si se iguala el número de accesos incorrectos a Max_Intentos. permite al programador que su módulo tenga parámetros definidos por un usuario de manera externa. Mes_Inicio_Registro Mes a partir del cual. permitiendo el registro de Colaboradores. permitiendo el registro de Colaboradores.conf. Los diferentes parámetros que existen en el archivo son: Atributo: Mail_Propuesta_Trabajo Mail_Solicitud_Trabajo Descripción: Indica la dirección de e-mail que recibirá las propuestas de los trabajos que se realicen. Idioma_Por_Defecto Max_Intentos Tiempo_Bloqueo Es el idioma que se asignará por defecto a todos los usuarios que se den de alta en el sistema.. cerrando la posibilidad de registro de nuevos Colaboradores sin la mediación de los profesores. Número de intentos de acceso fallidos que se permite a un usuario antes de bloquear su cuenta. Dia_Final_Registro Día a partir del cual.Desarrollo de una aplicación web… Anexo . Indica la dirección de e-mail que recibirá las peticiones de desarrollo de trabajos.4. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada.Utilizar archivo de configuración El archivo de configuración: configuracion. 197 .

Extension_Fotos Extensión (sin punto) de las fotos de los usuarios. Los nombres de las fotos han de coincidir con los logins de los usuarios. tendremos que indicarle un PATH si el módulo no se encuentra en la misma carpeta que la librería RecogeConfiguracion. la opción “Registrar” estará desactivada y la operación “Registrar Usuario” estará deshabilitada. Los nombres de las fotos han de coincidir con los logins de los usuarios.php").Desarrollo de una aplicación web… Mes_Final_Registro Anexo . donde se encontrarán las fotos de los usuarios. PATH_Fotos Indica la dirección absoluta.php. otra vez.conf: ##Nuevo_Parámetro# valor del parámetro Hay que destacar la importancia de conservar las ‘#’ y que las dos líneas sean consecutivas. include ("RecogeConfiguracion. Dominio_Correo Dominio al cual se asociarán los correos electrónicos cuando se registre el usuario en el sistema. Para la utilización de cualquier parámetro del fichero de configuración durante el módulo es necesario realizar las siguientes operaciones en los ficheros: 1.Parámetros del archivo de configuración Si se decide crear un nuevo parámetro es necesario introducir dos nuevas líneas en configuracion. Modificar ficheros: Introducir las siguientes líneas al principio del fichero en el que se utilice. cerrando la posibilidad de registro de nuevos Colaboradores sin la mediación de los profesores.Manuales Mes a partir del cual.. ?> Aquí. La primera parte del e-mail ha de ser el login del usuario. 198 . Tabla A. y así incluir una nueva librería: <?php.23.

Manuales 2. se realizará a través de la explicación de dos ejemplos prácticos. Retorna: el valor del campo especificado. se encargan de la gestión de las noticias y publicaciones respectivamente.php o operacionsPublicacio.conf es un proceso automático con la función: RecogeParametro("Nuevo_Parámetro").php • Módulo de publicaciones: o publicacions. Estos dos módulos son muy parecidos. Cada módulo contiene tres ficheros • Módulo de noticias: o noticies. Recibe: el nombre del campo que se quiere obtener su valor (sin ‘#’).5..php o dadesPublicacio.Desarrollo de una aplicación web… Anexo . por lo que la explicación se hará en paralelo.4. Los módulos noticias y publicaciones. con previo desarrollo. Obtener parámetro: gracias a la librería incluida.php o operacionsNoticia.Ejemplo práctico: módulos de noticias y publicaciones Para aclarar todo el proceso de adaptación de un módulo.php 199 . A. obtener parámetros del fichero configuracion.php o dadesNoticia.

/index. Variables de sesión: Este tipo de cambios.Manuales Tal como se ha comentado anteriormente. estas líneas no harían falta..php"). para realizar la adaptación se requiere de la modificación de las cabeceras de los ficheros que componen los módulos./index. quedando del siguiente modo: 1. En estos módulos. } No obstante. ya que posteriormente se agregará el módulo de seguridad y será una protección redundante. sólo existe un caso en el que se pueda realizar esta adaptación. } Teniendo en cuenta las variables de sesión de la aplicación web. Así pues. se han escogido: • • Módulo de noticias: Noticias Módulo de publicaciones: Publicaciones Ahora que ya se tiene un identificador para cada uno. antes que nada se tiene que escoger un identificador para cada uno. se puede sustituir por: if ($s_autentificado!='SI') { redirecciona(".. Consiste en una protección para evitar que los usuarios no autenticados accedan a cada uno de los ficheros: if (!session_is_registered("SESSIO_LOGIN")) { redirecciona(". 2. se puede empezar a realizar la adaptación propiamente dicha: 1.php"). que englobe el conjunto de sus operaciones. Módulo de seguridad: Tal como se ha explicado anteriormente.Desarrollo de una aplicación web… Anexo . Módulo noticias: 200 . requieren que el usuario tenga que mirar y entender lo que realiza el código de cada fichero.

include (".. Módulo noticias: <?php. Módulo publicaciones: <?php. El proceso sería igual para todas las traducciones.Manuales <?php.. En este caso particular. session_register("s_operaciones_pagina"). se explicará un caso en concreto para así mostrar cómo se realiza.. $s_operaciones_pagina="##Identificador del Módulo#". se puede comprobar que la inclusión de la librería tiene un determinado PATH. $s_operaciones_pagina="##Noticias#". session_start().php"). indica que se encuentra dos carpetas por encima del fichero en cuestión./NivelSeguridad. ?> 2./idiomas.php"). 201 . Soporte para varios idiomas: Para la adaptación de estos módulos no se ha solicitado el soporte para varios idiomas. 3. la variable de sesión s_operaciones_pagina incluirá el identificador del módulo que previamente se había escogido. ?> Como se puede observar. session_register("s_operaciones_pagina"). No obstante. include (". las cabeceras de los ficheros quedan finalmente del siguiente modo: 1. Además..Desarrollo de una aplicación web… Anexo ./NivelSeguridad./. session_start(). $s_operaciones_pagina="##Publicaciones#"./.. Teniendo en cuenta que la adaptación ya incorpora el módulo seguridad. if($libreria_incluida!=1){ include (". session_register("s_operaciones_pagina").. session_start()./. el cual indicará el camino para encontrar la librería en cuestión.php").

Tal como se dijo. ?> 2.. Módulo publicaciones: <?php./. la función gettext estará en php y por eso es necesario adaptar el código de la página para soportar el lenguaje en cuestión./. se ha de acceder a la aplicación web con una cuenta de usuario que tenga permisos sobre: Gestion Contenidos. Una vez realizado el cambio en los ficheros.php"). if($libreria_incluida!=1){ include (".. a continuación se selecciona dicha operación y.. } include (". en el fichero publicacions. es necesario modificar la salida del texto para que lo haga a través de un filtro.. Por último.Manuales } include (".php"). Si se realiza vía web./. session_start().. ?> Solamente destacar. que la librería idiomas también se encuentra dos carpetas por encima de los ficheros de los módulos.php se sustituye “[Volver arriba]” por “gettext("[Volver arriba]")./idiomas. normalmente se lleva a cabo utilizando “<?php.php")./. solo falta agregar el contenido a la base de datos.. al final de la página. se encuentra el formulario para insertar un nuevo contenido./NivelSeguridad.Desarrollo de una aplicación web… Anexo . $s_operaciones_pagina="##Identificador del Módulo#". Por ejemplo. session_register("s_operaciones_pagina")./NivelSeguridad. Los campos rellenados quedarán del siguiente modo: Campo: Identificador Castellano Valor: [Volver arriba] [Volver arriba] 202 ./’.. y por eso se indica el PATH: ‘..” y “?>” alrededor de la función.”.

• Establecer permisos: Será necesario establecer permisos sobre el nuevo módulo para que comience a ser operativo. si la librería idiomas. con lo que se pierde el soporte para varios idiomas pero queda una salida entendible. '[Volver arriba]'. tal como se ha comentado anteriormente.Desarrollo de una aplicación web… Catalán Inglés [Tornar dalt] [To return up] Anexo .24. mostrará su identificador.php no encuentra el contenido de la página. la petición SQL quedaría del siguiente modo: “INSERT INTO idiomas VALUES ('[Volver arriba]'.” Ahora que los módulos se encuentran adaptados al funcionamiento de la aplicación web y siguen la misma política que los otros que la componen. '[Tornar dalt]'. Por otro lado. se ha de tener un par de consideraciones para agregarlo al sistema: • Introducir la operación: Al realizar la inserción de la nueva operación se ha de utilizar el identificador escogido por el programador.Manuales Tabla A. '[To return up]'. No obstante la traducción a los otros idiomas.. que será lo que se muestre por pantalla. 203 . puede ser cualquiera. Esto servirá para facilitar el proceso de entendimiento de cualquier usuario que se disponga a incorporar modificaciones en el código donde se utilice. si se realiza la inserción del contenido vía gestor de base de datos.Campos y valores de la inserción de un contenido Como se puede observar. ''). el nombre del identificador del contenido será igual al de la traducción en castellano. Además.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->