PORTLET GESTOR DE COMENTARIOS DE CONTENIDOS



Documentos relacionados
INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Configuracion Escritorio Remoto Windows 2003

Workflows? Sí, cuántos quiere?

Manual del Usuario. Sistema de Help Desk

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

UNIVERSIDAD DE SALAMANCA

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

SECRETARÍA DE ESTADO DE ADMINISTRACIONES PÜBLICAS DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

Capítulo 5. Cliente-Servidor.

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

Guía Rápida de Inicio

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Windows Server 2012: Infraestructura de Escritorio Virtual

WINDOWS : TERMINAL SERVER

GMF Gestor de incidencias

FOROS. Manual de Usuario

Edición de Ofertas Excel Manual de Usuario

PUCV - Pontificia Universidad Católica de Valparaíso

Guía de uso del Cloud Datacenter de acens

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Visión General de GXportal. Última actualización: 2009

Qué necesito saber para tener mi sitio web en Internet?

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Ayuda Aplicación SIGI

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas.

Roles y Características

Emerson Network Energy Center, ENEC Lite, es. Multilenguaje. Navegación intuitiva. Multiusuario. Seguridad. Mantenimiento y control

Bechtle Solutions Servicios Profesionales

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Ventajas del software del SIGOB para las instituciones

Fecha de entrada en vigor: 3 de diciembre de 2013

Elementos requeridos para crearlos (ejemplo: el compilador)

Capitulo 5. Implementación del sistema MDM

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Solicitar la competencia Business Intelligence Solutions

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

Toda base de datos relacional se basa en dos objetos

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Manual de Administrador. Open Office

Ministerio de Educación, Cultura y Deporte. Joomla! La web en entornos educativos. Guía del alumnado

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Está creado como un organizador y gestor de tareas personalizables para generar equipos de alto desempeño en diferentes rubros de empresas.

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

C a p í t u l o. Instalación. Contenido

Acronis License Server. Guía del usuario

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

MANUAL COPIAS DE SEGURIDAD

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Anexo A Diagramas de Navegación

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Guía de instalación 1

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

APOLO GESTION INTEGRAL.

App para realizar consultas al Sistema de Información Estadística de Castilla y León

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

CAPITULO 4. ANALISIS COMPARATIVO Y SELECCION DE LA PLATAFORMA EDUCATIVA.

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

E-learning: E-learning:

Introducción a la Firma Electrónica en MIDAS

Guía del usuario. Centro de facturación de UPS

CAPÍTULO 3 VISUAL BASIC

Instalación y configuración de Windows SharePoint Services (WSS) 2003

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

comunidades de práctica

Objetivos del proyecto:

Internet Information Server

Person IP CRM Manual MOBILE

CAPÍTULO 3 Servidor de Modelo de Usuario

Solicitar la competencia Integrated E-Business Solutions

Novedades en Q-flow 3.02

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

10. El entorno de publicación web (Publiweb)

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

CARACTERÍSTICAS HERRAMIENTA E-BUSINESS E-SYNERGY (EXACTSOFTWARE)

ÍNDICE. Introducción Características técnicas Funcionamiento de la aplicación

PRESENTACIÓN DEL PRODUCTO

Mantenimiento de Sistemas de Información

Programa de gestión Normativa y Requisitos Legales

Aplicación para la gestión de prácticas en empresas. Memoria

Manual Oficina Web de Clubes (FBM)

DECLARACIÓN DE PRIVACIDAD DE FONOWEB

Soporte Técnico de Software HP

PERFIL TÉCNICO CONSULTOR SHAREPOINT PARA LA WEB

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Transcripción:

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO TÉCNICO EN INFORMÁTICA DE SISTEMAS Y GESTIÓN PROYECTO FIN DE CARRERA PORTLET GESTOR DE COMENTARIOS DE CONTENIDOS AUTOR: ANTONIO JESÚS BERBEL RODRÍGUEZ-CAMPRA MADRID, julio de 2009-1 -

AGRADECIIMIIENTOS Agradezco la finalización de este proyecto a mi director, Adolfo Rosa, por el tiempo dedicado y la oportunidad que me ha ofrecido de poder desarrollarlo. También le doy especialmente las gracias a mi familia que me ha apoyado en todas mis decisiones. Sin ellos todo esto no hubiese sido posible. No basta saber, se debe también aplicar. No es suficiente querer, se debe también hacer - 2 -

RESUMEN En la actualidad el desarrollo de herramientas web está en auge debido tanto al mayor uso de Internet como a su evolución. El nuevo interés por las nuevas tecnologías y el surgimiento de nuevas herramientas y técnicas de desarrollo, conlleva un aumento paralelo de aplicaciones que emplean dichas tecnologías para abrir un nuevo abanico de funcionalidades y mejorar las ya existentes. La evolución de Internet ha generado la creación de portales Web cada vez más cooperativos entre los propios usuarios llegando a tal punto que son éstos los que se encargan de crear y gestionar los contenidos. Aparte, Las nuevas herramientas y aplicaciones consiguen que el usuario se abstraiga cada vez más del funcionamiento interno de la aplicación. El proyecto que se presenta trata de abordar la necesidad de nuevas herramientas que ayuden a la colaboración entre usuarios de un portal Web. Para ello, uno de los principales objetivos del proyecto será desarrollar una aplicación que permita a los usuarios opinar sobre los diferentes contenidos publicados para, de esta forma, ayudar tanto en la mejora de los contenidos que el portal ofrece como en el intercambio de información y puntos de vista entre los distintos usuarios. - 3 -

A parte del objetivo principal de permitir que los usuarios comenten sobre la información de un contenido, se desarrollarán distintas funcionalidades secundarias que ayuden y mejoren la calidad del servicio ofrecido por la aplicación. Esta aplicación está destinada tanto a usuarios con conocimientos modestos en desarrollo de aplicaciones Web, como a usuarios con cierta experiencia en este campo. Gracias a esto se espera que la aplicación sea más versátil y sencilla de utilizar para que cualquier tipo de usuario pueda hacer uso de ella. Cualquier portal Web actual que quiera adaptarse a las nuevas tecnologías que están surgiendo actualmente y a la nueva filosofía Web, necesitará conocer la opinión de los usuarios que navegan por su portal para poder mejorar el servicio que ofrecen y conocer qué tipo de información es más requerida. Para alcanzar este objetivo, permitir que los usuarios puedan comentar los contenidos del portal ayudaría mucho a conocer los diferentes puntos de vista y fomentaría una mayor implicación de los usuarios en el portal. La necesidad por parte de VASS, Valor Añadido en Soluciones y Servicios, de una aplicación de estas características y su requerimiento de constante innovación, son los principales motivos por los que se ha pedido el desarrollo de este proyecto. - 4 -

ABSTRACT Nowadays the development of Web tools is booming due to the increased use of Internet and its evolution. The new interest in new technologies, new tools and development techniques, involves an increase in applications that use these technologies to open a new range of features and improve existing ones. The evolution of the Internet has generated the creation of Web portals growing cooperation between the users coming to the point that they are responsible for creating and managing content. The project that is attempting to involves the need for new tools to help collaboration between users of a Web portal. For this, one of the main objectives of the project will develop an application that allows users to comment on the various contents for published thus assist in improving the content to the portal as the exchange of information and views between different users. - 5 -

Besides the main objetive of allowing users to comment on the information content, there will be various secondary features that help improve the quality of service provided by the application. This application is designed for users with modest knowledge of developing Web applications, including users with some experience in this field. Thanks to this application is expected to be more versatile and simple to use so that any user can make use of it. Any current Web site you want to adapt to new technologies that are emerging as the new philosophy web, you need to know the opinion of users that navigate your site to improve the service they offer and what kind of information is required. To achieve this objetive, allowing users to comment on the contents of the portal would help a lot to learn about different points of view and encourage greater involvement of users in the portal. The need from VASS, Value Added Solutions and Services, is an application of this nature and its requirement of continuous innovation are the main reasons why it has been asked to develop this project. - 6 -

Índice 1. INTRODUCCIÓN... 9 1.1 Presentación de la empresa... 10 1.2 Estado del arte... 11 2. IDENTIFICACIÓN DE NECESIDADES... 14 2.1. Objetivos generales... 15 2.2 Tipología de usuarios finales... 17 2.3 Antecedentes... 19 2.4 Ámbito del Sistema... 23 2.5 Entrevistas... 23 3. ANÁLISIS DE REQUISITOS... 28 3.1 Reconocimiento del problema... 29 3.2 Lista de requisitos... 30 3.3 Modelo lógico del Sistema... 47 3.4 Modelo Conceptual de Datos... 56 4. ESTUDIO DE LA ARQUITECTURA... 59 4.1. Especificación de las alternativas... 61 4.2. Alternativas en portales web... 63 4.3. Alternativas en sistemas gestores de bases de datos... 66 5. DESARROLLO TÉCNICO... 70 5.1. Lenguajes utilizados... 72 5.2. Partes de la aplicación... 77 5.3. Control de información y seguridad del Sistema... 93 5.4. Rendimiento del sistema y escalabilidad... 94 5.5. Implantación del Sistema... 95 6. PRUEBAS DEL SISTEMA... 96 6.1. Pruebas del Sistema... 97 6.1.1. Pruebas de encadenamiento...99 6.1.2. Pruebas de integración...100 6.1.3. Pruebas de explotabilidad...100 6.1.4. Pruebas de seguridad...101 6.1.5. Pruebas de sobrecarga...101 6.1.6. Pruebas de recuperación...101 6.1.7. Pruebas de regresión...102 6.1.8. Pruebas de aceptación de usuario...102 6.1.9. Pruebas de usabilidad...102 7. PLANIFICACIÓN... 104 8. VALORACIÓN ECONÓMICA... 107-7 -

8.1. Costes tecnológicos... 108 8.2. Costes de implantación... 110 8.3. Costes operacionales... 111 8.4. Costes totales... 112 9. CONCLUSIONES Y FUTUROS ESTUDIOS... 113 10. BIBLIOGRAFÍA... 116 11. Anexo A: Guía de instalación... 119-8 -

1. INTRODUCCIÓN - 9 -

1.1 Presentación de la empresa VASS, Valor Añadido en Soluciones y Servicios, es una empresa integradora de productos y servicios que construye soluciones y estrategias para sus clientes en el entorno de las Nuevas Tecnologías. En la actualidad dispone de más de 200 consultores certificados en las principales tecnologías y soluciones ebusiness en diferentes servicios como pueden ser la definición y construcción de plataformas de Gestión de Contenidos y Portales, arquitecturas software J2EE y desarrollos tales como Struts, Hibernate, Web Services Uno de sus principales servicios es la construcción de plataformas de Gestión de Contenidos para sus diferentes clientes. Este servicio está concebido como un conjunto de aplicaciones que permiten y facilitan la gestión de contenidos, reduciendo al usuario gestor la complejidad de la administración, creando una interfaz sencilla que facilite al usuario la tarea de cambiar los datos de los contenidos sin necesidad de realizar funciones complejas. Para conseguir este objetivo, se trata de presentar al usuario final de la plataforma una interfaz sencilla y amigable que ayude al manejo de la administración de los diferentes contenidos con los que cuente el portal y mostrando la información dependiendo del tipo de contenido que sea. - 10 -

1.2 Estado del arte El paso previo a la elaboración de un documento como el presente es realizar un estudio del estado del arte sobre el que vamos a tratar. Este estudio tratará de cubrir la evolución de la Web hasta el estado actual y describir las nuevas tecnologías en desarrollo. Y es que cuando la Web inició, nos encontrábamos en un entorno estático, con páginas en HTML que sufrían pocas actualizaciones y no tenían interacción con el usuario. Poco a poco las empresas comenzaron a utilizar esta herramienta de comunicación para comercializar sus productos y establecer comunicación con nuevos clientes o proveedores en distintas partes del mundo. Con la idea de mejorar la ínter actuación con el usuario final fueron surgiendo nuevas aplicaciones que generaban una mayor colaboración de los usuarios con el contenido del portal y ofrecían nuevos servicios que reemplazaban a las aplicaciones de escritorio. La primera vez que se habló del término Web 2.0 fue Dale Dougherty de O Reilly Media en una conferencia en la que se hablaba del renacimiento y evolución de la web. A partir de aquí surgió la Web 2.0 Conference, que arrancó en 2004 y que se realiza anualmente en San Francisco. En la charla inicial se marcaron los principios que debían de cumplir las aplicaciones Web: - 11 -

La Web es la plataforma. La información es lo que mueve al Internet Efectos de la red movidos por una arquitectura de participación. La innovación surge de características distribuidas por desarrolladores independientes. El fin del círculo de adopción de software pues tenemos servicios en beta perpetuo. La Web 2.0 no es una nueva tecnología sino una nueva forma de orientar las nuevas aplicaciones desarrolladas en Internet para conseguir una mayor interactuación del usuario con los portales Web de una forma sencilla y amigable. Será el usuario el que publique contenidos y los administrará de tal forma que pueda adaptar el portal a sus necesidades. Características de la Web 2.0: Colaboración conjunta entre los usuarios para intercambiar información. Gracias a esto se han establecido comunidades virtuales que facilita éste intercambio. Este es el caso de de distintos sitios como Wikipedia o Youtube o el e-learning que ha cobrado un empuje considerable en los últimos años. Un nuevo concepto de producto en la red. Ahora los portales pueden convertirse en una nueva forma de ofrecer un servicio a sus usuarios ya sea para intercambiar información, un buscador o integrar una comunidad. - 12 -

Surgen las empresas 2.0 gracias al aprovechamiento de los recursos que ofrece esta nueva metodología. Las empresas buscan un mayor acercamiento con sus clientes a través de la Web. Las nuevas herramientas que se han creado bajo la perspectiva de la Web 2.0 se encuentran disponibles en la red sin necesidad de tener que instalarlos en el ordenador del usuario. Aun así existe la limitación de tener que adaptarse a los formatos preestablecidos por cada sitio. Por estos motivos antes expuestos, es necesario crear herramientas basadas en la nueva percepción de la Web que permitan a los usuarios finales tanto configurarlas para que se adapten a sus necesidades como poder comunicarse con el resto de usuarios. - 13 -

2. IDENTIFICACIÓN DE NECESIDADES - 14 -

2.1. Objetivos generales Mejorar la interacción del usuario con el contenido del portal. Como se ha visto anteriormente, uno de los principios básicos sobre el que se basa la Web 2.0 es la información es lo que mueve el Internet y para ello se debe permitir el intercambio de información entre los usuarios. Una forma es mediante la publicación de contenidos por ellos mismos como se puede ver en portales tales como Wikipedia, flickr o YouTube. Pero a parte de esto deben de tener la opción de poder comentar estos contenidos y poder leer las opiniones del resto de usuarios que visitan ese portal, ya sea de forma anónima o de usuarios registrados. Permitir al usuario valorar un comentario. No sólo se debe de dar la opción de comentar un contenido al usuario sino también valorar tanto la información que se desprende de éste como del resto de comentarios publicados. De esta forma los usuarios podrán valorarse entre sí en base a los comentarios que realizan en el portal e incluso podrán avisar de posibles irregularidades en los comentarios al administrador, ya sean comentarios ofensivos o sobre temas prohibidos en el portal. A parte, gracias a estas valoraciones de los usuarios el administrador podrá valorar qué tipo de información prefieren éstos para proporcionar un mejor servicio a través de su portal. - 15 -

Acercar los CMS a la Web 2.0 La vertiginosa evolución de la Web obliga a los desarrolladores crear nuevas aplicaciones que sean capaces de adaptarse a las necesidades que requieren los usuarios. Para conseguir esto es necesaria la creación de aplicaciones Web para los CMS (Content Management Systems) y conseguir un mayor acercamiento de éstos a la Web 2.0. Utilidad para el departamento de e-business de VASS. Otro de los objetivos es poder utilizar la aplicación que se va a desarrollar en futuros proyectos en diferentes portales Web. En la mayoría de portales se pueden realizar comentarios en un número limitado de tipos de contenido, pero se quiere crear una aplicación que permita poder comentar cualquier tipo de contenido, ya sea creado por los administradores de la Web o predeterminado por el portal. Para lograr cubrir estos objetivos se creará un portlet que se complementará con cualquier tipo de contenido y que permitirá la publicación de comentarios de los usuarios. Otro factor importante es que tenga una GUI (Interfaz Gráfica de Usuario) lo más cuidada e interactiva posible. Esto se considera de gran importancia, ya que el usuario final y el administrador, no tienen porque tener ningún conocimiento del ámbito informático. - 16 -

2.2 Tipología de usuarios finales Para el uso de esta aplicación se definirán dos tipos de usuarios: los administradores del portal y el resto de usuarios que tienen acceso a él. En un principio se pensó que solo pudiesen publicar comentarios los usuarios registrados en el portal y con autorización para publicar en el tipo de contenido sobre el que estuviese habilitado la opción de publicar comentarios. El principal factor que impulsó esta restricción fue por motivos de seguridad, ya que, un usuario anónimo podría publicar comentarios ofensivos o no acordes con las políticas del portal de forma reiterativa. Más adelante se barajó la alternativa de permitir a los usuarios no registrados o anónimos la publicación de comentarios siempre y cuando hubiese algún mecanismo de seguridad para evitar los comentarios no deseados. Una de las posibilidades que se eligió fue la publicación de los comentarios de forma automática para los usuarios registrados en el portal y dar la posibilidad al administrador de éste de publicar los comentarios de usuarios anónimos de forma manual. Por último se decidió que la valoración de comentarios fuese solo habilitada para los usuarios registrados ya que si se llegase a habilitar para los usuarios anónimos no se podría tener control alguno sobre estas votaciones y el sistema de valoraciones sería totalmente inútil. En la figura 2.1 se puede observar cómo se produce el control de acceso al sistema de comentarios de contenidos. Se barajarán las dos opciones de - 17 -

usuarios anónimos y usuarios registrados. El caso de la figura 2.1 es si el administrador no ha permitido la publicación de comentarios por usuarios anónimos. [Figura 2.1] De manera general, la aplicación comprobará si el usuario que intenta publicar un comentario es un usuario registrado del portal o un usuario anónimo. En caso de ser un usuario anónimo la aplicación comprobará si el administrador del sistema ha habilitado la opción de permitir a los usuarios anónimos publicar comentarios en dicho contenido. En caso de que no estuviese habilitada el sistema informaría al usuario impidiéndole comentar el contenido. - 18 -

Si el usuario conectado es un usuario registrado en el portal, podrá publicar un comentario de forma automática y realizar valoraciones sobre comentarios de otros usuarios. Si el usuario conectado es un usuario anónimo y previamente la aplicación ha comprobado que está habilitada la opción de publicar comentarios por usuarios de este tipo, los comentarios que escriba podrán ser publicados de forma automática o manual dependiendo de lo que haya decidido el administrador. Si la publicación de comentarios de usuarios anónimos está configurada en manual, el administrador recibirá una notificación para que revise el comentario y decida si publicarlo en el portal o no. Así mismo, solo podrá denunciar un comentario de un contenido un usuario registrado en el portal. 2.3 Antecedentes Según la definición de la Wikipedia, los portlets son componentes modulares de interfaz de usuario gestionados y visualizados en un portal web. En definitiva, son componentes web gestionados por un contenedor que tras recibir la petición de un usuario de portal generan y presentan contenidos dinámicos. Permite la personalización, presentación y gestión de la seguridad. Presentan ciertas ventajas frente a los servlets que se detallarán a continuación para comprender el por qué se decidió utilizar este componente para el desarrollo del proyecto aunque primeramente es necesario comentar las similitudes con estos. - 19 -

Similitudes entre portlets y servlets: Ambos son manejados por un contenedor especializado. Los dos componentes generan contenido dinámicamente. Interactúan con el cliente web mediante el uso del paradigma request/response. Funcionalidades adicionales de los portlets: Procesamiento de solicitudes: Pese a que los servlets también son capaces de procesar las solicitudes del usuario, el portlet va más allá. Cuando un usuario realiza cualquier tipo de acción sobre el portlet, éste es capaz de generar una respuesta a esa acción. También puede procesar la información cuando un usuario realiza una acción determinada sobre otro portlet del portal. Almacenamiento persistente de las preferencias: El portlet proporciona un objeto llamado PortletPreferences que permite almacenar las preferencias del usuario. Cada vez que el contenedor de portlets se reinicie se podrá recuperar esta información. Información de Usuario: Otra característica es que el portlet puede mostrar la información dependiendo del usuario que esté utilizándolo. Para ello la API dispone del concepto de atributos de usuario (user attributes). - 20 -

Modos de los Portlets: El portlet utiliza el concepto mode para poder ver qué está haciendo el usuario que interactúa con él y decidir qué funcionalidad ofrecerle. Por lo tanto, cada modo especifica qué tarea debe desempeñar y qué contenido generar. Existen tres modos: VIEW: En este modo el portlet desplegará el contenido normal. EDIT: Muestra la funcionalidad necesaria para personalizar el portlet configurando los diferentes parámetros que necesite. HELP: Este modo muestra una pequeña ayuda sobre cómo debe de usarse el portlet. Estados de los Portlets: Por último, se puede configurar el estado de la ventana del portlet, es decir, indicar la cantidad de espacio que el portal asignará al contenido generado por el portlet. Por defecto existen tres estados aunque es posible personalizar más: NORMAL: la ventana del portlet comparte el espacio con otros portlets. MAXIMIZED: el portlet ocupará todo el espacio que sea posible. MINIMIZED: el portlet ocupará el menor espacio posible o incluso no se mostrará. - 21 -

Especificación JSR-168 La especificación JSR-168 estandariza cómo los componentes de un portal deben ser desarrollados y permite la interoperabilidad de los portlets entre diferentes portales. La JSR-168 fue desarrollada por la Java Community Process (JCP), y tiene el respaldado de los principales proveedores de servidores de portal, como por ejemplo Apache, BEA, IBM, Oracle, SAP, Sun Microsystems, y muchos otros. La especificación define una API y tres entidades: portal, portlet y contenedor de portlet. Además compara portlets versus servlets proveyendo una lista de similitudes, diferencias, y características únicas. Utilizar la API y la especificación permite el intercambio e interoperabilidad de portlets entre diferentes proveedores [MAN-01]. Los componentes de los portales que se desarrollen o se adquieran de algún proveedor que cumpla con la JSR 168, podrán ser utilizados en cualquier portal que soporte la especificación. Especificación JSR-286. Nuevas especificaciones Esta última especificación se publicó el 12 de junio de 2008. Con esta nueva revisión de la antigua especificación se persigue añadir nuevas especificaciones que no estaban anteriormente disponibles para los portlets. Entre las características nuevas que se pueden encontrar están el soporte básico para AJAX, Comunicación entre portlets a través de eventos y parámetros públicos, mejoras en la caché de los portlets, definición de CSS a nivel de portlet para poder configurar su IU y se integren mejor en cada portal y otras funcionalidades más. - 22 -

2.4 Ámbito del Sistema Como se puede observar en la figura, el encargado de la administración del portlet será el administrador o administradores del portal mientras que el resto de usuarios solo podrán visualizar los comentarios publicados en el contenido y, si tienen los permisos necesarios, publicar nuevos comentarios. Cada vez que se realiza una nueva publicación en un contenido se creará un flujo de información entre el usuario y la aplicación. Ésta podrá publicar el comentario automáticamente o bien enviar una notificación al administrador para que apruebe el comentario y pueda visualizarse. 2.5 Entrevistas La técnica que se ha usado para recopilar la información necesaria para conocer las necesidades de este proyecto ha sido mediante entrevistas al personal encargado durante varias fases. A parte de esta técnica se han estudiado otras aplicaciones similares desplegadas en diferentes portales para comprender mejor su funcionamiento y las necesidades que solicitan los usuarios finales. - 23 -

De forma global, se ha tratado que las entrevistas fuesen de corta duración para no hacer perder el tiempo a la persona entrevistada. Para ello se envió previamente a las personas entrevistadas un correo con un borrador de las preguntas necesarias para conocer las necesidades de la aplicación para que el entrevistado pudiese reunir la información que se le solicitaba. A continuación se detalla la metodología que se siguió: Primeramente, se identifican a los usuarios implicados en la aplicación en función de sus roles. Puesto que la técnica a utilizar es la entrevista, se desarrolla una lista con las preguntas que se van a realizar a los distintos usuarios tratando de ser lo más precisas posibles para poder obtener unas respuestas claras y concisas. Se analiza la información obtenida en las diversas entrevistas para aclarar los aspectos poco claros y eliminar aquella información poco relevante. Cuando se tiene ya definida una estructura de la aplicación acorde a las necesidades extraídas en las entrevistas se vuelve a realizar una nueva reunión con el fin de asegurar la correcta comprensión de las necesidades. - 24 -

2.5.1 Identificar la fuente de información Para poder conocer las necesidades reales de la aplicación y demás aspectos relevantes tanto de la aplicación como de la empresa VASS se ha contado con la ayuda del Gerente del departamento de e-business que es quien se ha considerado la persona más adecuada para indicar las necesidades y el funcionamiento de la aplicación debido a su experiencia en dicho departamento desarrollando nuevos proyectos y en la empresa. También se realizaron varias entrevistas con posibles usuarios finales de la aplicación para conocer qué necesidades consideraban ellos más importantes y que aspectos se deberían de mejorar en las aplicaciones ya existentes en el mercado. Por último, se realizó un estudio sobre diferentes webs para estudiar el funcionamiento de sus aplicaciones y así poder recabar información sobre qué solicitaban más los usuarios. - 25 -

2.5.2 Preparar las preguntas adecuadas Para poder preparar las entrevistas con las diferentes fuentes de información se realizaron dos tipos de enfoques dependiendo del tipo de información que podrían proporcionar. Gerente del departamento de e-business La entrevista se centró en diferentes puntos: Comprender la funcionalidad de la aplicación y a quién iba dirigida. Visión general de las necesidades de la aplicación y posibles problemas que pudiesen surgir. Obtener los requerimientos funcionales imprescindibles que debería de tener la aplicación. Averiguar sobre qué tipo de portales se integraría la aplicación. Al término de la entrevista, se llegó a la conclusión de que consistiría en dos tipos de vistas: una vista para el administrador para poder configurar los distintos aspectos de la aplicación y otra vista para el usuario final donde pudiese rellenar un formulario y dejar un comentario sobre el contenido. Con respecto a los requerimientos funcionales, se concluyó que la aplicación sería independiente del gestor de contenido y se debería de utilizar el estándar JSR 286 para su desarrollo. - 26 -

Usuario final de la aplicación La entrevista se centró en: Detectar posibles defectos o dificultades en aplicaciones similares. Especificar los requerimientos que ellos consideraban debería de tener la aplicación. Una vez finalizada la entrevista, se obtuvieron varias ideas que resultaron interesantes: Uno de los problemas que veían los usuarios finales eran los comentarios que se realizaban en varios portales web cuya información que transmitían era nula y a veces incluso ofensiva. Era necesario tratar de poner una solución a los comentarios que realizaban los usuarios anónimos para evitar posibles abusos. Uno de los requisitos más importantes que solicitaron los usuarios entrevistados fue la posibilidad de poder valorar los comentarios del resto de usuarios para así poder tener información sobre qué usuario aporta más a la información del contenido. - 27 -

3. ANÁLISIS DE REQUISITOS - 28 -

En esta etapa del proyecto se tratará de obtener un mayor conocimiento del entorno del sistema y del propio sistema a través de los requerimientos propuestos por el cliente. Se intentará implantar en la aplicación todas las mejoras exigidas por el cliente tratando de mantener la consistencia, seguridad y usabilidad del sistema. Debido a que el cliente no dispone de una aplicación que realiza la misma funcionalidad será necesario desarrollar la aplicación desde el principio tratando de cubrir todas las necesidades exigidas. Para ello se estudiará el entorno futuro del sistema para diseñar una lista de requisitos factible y consistente. 3.1 Reconocimiento del problema La aplicación que se va a desarrollar trata de mejorar el contenido de un portal web permitiendo a los usuarios de éste publicar comentarios sobre los diferentes contenidos desplegados. Este proceso implicará diseñar la aplicación web que permita esto tratando de buscar un estándar para poder reutilizarse en cualquier portal web e implantar las medidas de seguridad necesarias para garantizar la consistencia del portal. La creación de esta aplicación tendrá un impacto en la empresa ya que podrá utilizarse en futuros desarrollos de portales. - 29 -

El departamento que más se verá afectado por este proyecto será el departamento de e-business ya que podrá utilizar esta aplicación para futuros clientes y así ofrecerles un mejor servicio. 3.2 Lista de requisitos Tras las entrevistas realizadas se han creado un conjunto de fichas que recogen los diferentes requisitos extraídos de la información obtenida de los entrevistados y organizadas según la naturaleza del requisito: Requisitos funcionales (RFxx): Están orientados a la funcionalidad de la aplicación, saber cómo reaccionar dependiendo de las entradas del sistema y el comportamiento que se espera de éste. Requisitos operativos (ROxx): Establecen las variables sobre el modo de funcionamiento del sistema; escalabilidad, disponibilidad, mantenimiento, etc. Requisitos de seguridad (RSxx): Englobarán todas aquellas necesidades referentes a la seguridad del sistema, uso indebido de ésta, permisos de usuario, etc. Requisitos de integridad (RIxx): Tratarán el apartado de fiabilidad y veracidad de la información. - 30 -

Requisito: Identificador: Tipo: Crear perfiles de usuario F01 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Establecer los diferentes perfiles de usuario para posibilitar el acceso de los diferentes usuarios al portal y poder publicar comentarios en la aplicación N/A Creación de tres perfiles de usuario: Administrador, usuario y usuario anónimo - 31 -

Requisito: Identificador: Tipo: Permitir comentar contenido por el usuario F02 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Permitir a un usuario con los permisos adecuados comentar un contenido. N/A Se comprobará si el usuario tiene los permisos necesarios para publicar un comentario y, de ser así, se le mostrará el formulario correspondiente. - 32 -

Requisito: Identificador: Tipo: Visualizar comentarios de un contenido F03 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Permitir a un usuario visualizar los contenidos de un contenido. N/A Si el usuario tiene los permisos necesarios para visualizar el contenido se mostrarán los comentarios de éste paginados. - 33 -

Requisito: Identificador: Tipo: Ordenación de los comentarios F04 Funcional Prioridad: Media Descripción: Requisitos relacionados: Soluciones sugeridas: Permitir al usuario visualizar los comentarios siguiendo un orden determinado. N/A Se habilitará una opción para ordenar los comentarios según el autor, fecha o comentarios más votados. - 34 -

Requisito: Identificador: Tipo: Prioridad: Descripción: Requisitos relacionados: Soluciones sugeridas: Canal de comunicación con el usuario F05 Funcional Media Durante el uso de la aplicación, deberá ser posible acceder a alguna opción que permita consultar dudas sobre el uso de ésta. N/A Se habilitará la vista de Ayuda del portlet para que en cualquier momento el usuario pueda consultar el manual de ayuda. En caso de no poder resolverla, se podrá enviar un correo electrónico al administrador para realizarle la consulta. - 35 -

Requisito: Identificador: Tipo: Responder a comentarios F06 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Un usuario podrá comentar un comentario de otro usuario. N/A Se habilitará en cada comentario un enlace que despliegue un formulario para poder comentar ese comentario. - 36 -

Requisito: Identificador: Tipo: Votar comentarios F07 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Permitir a un usuario votar tanto positivamente como negativamente un comentario de otro usuario. N/A Se habilitarán dos botones en cada comentario para que el usuario de la aplicación pueda votar el comentario. - 37 -

Requisito: Identificador: Tipo: Denunciar comentarios F08 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Permitir a un usuario denunciar aquellos comentarios que considere inapropiados. N/A Se habilitará un botón para los usuarios registrados para que puedan denunciar un comentario. El administrador recibirá en su panel una notificación y, después de revisar el comentario, tomará la medida que considere más oportuna. - 38 -

Requisito: Identificador: Tipo: Impedir la publicación de comentarios violentos. F09 Funcional Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Impedir que se publiquen en el portal comentarios que puedan ir en contra de las normas de éste. N/A El administrador decidirá que palabras son consideradas inapropiadas (insultos, palabras racistas, etc.) y si el comentario contiene alguna de ellas no será publicado. - 39 -

Requisito: Identificador: Tipo: Seguridad externa S01 Seguridad Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Se requerirá el uso de un login para acceder a la aplicación. F01 Se creará un botón de Login para que el usuario introduzca su identificador y su contraseña y pueda autenticarse en el portal. - 40 -

Requisito: Identificador: Tipo: Seguridad durante el uso de la aplicación S02 Seguridad Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Para evitar el acceso de terceros, se establecerán medidas de seguridad que prevengan este tipo de actos. S01 Se creará una sesión cuando el usuario se autentifique en el portal para que ninguna otra persona pueda acceder desde ese equipo - 41 -

Requisito: Identificador: Tipo: Desconectar la sesión S03 Seguridad Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Deberá de existir un método para terminar la sesión cuando el usuario haya terminado de utilizar la aplicación. S02 Existirá un enlace para desconectar o finalizar la sesión del usuario. - 42 -

Requisito: Identificador: Tipo: Denunciar comentarios y votar solo usuarios registrados F02 Seguridad Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Solamente podrán denunciar comentarios y votar comentarios de otros usuarios aquellos usuarios que estén registrados en el portal y se hayan autenticado para utilizar la aplicación. S01, F07, F08 Se comprobará si el usuario que está utilizando la sesión es un usuario registrado en el portal y, en caso de serlo, se mostrarán las opciones de denunciar y votar. - 43 -

Requisito: Identificador: Tipo: Interfaz Intuitiva O01 Operativo Prioridad: Media Descripción: Requisitos relacionados: Soluciones sugeridas: Se diseñará una interfaz interactiva e intuitiva que sea de fácil uso para el usuario. N/A - 44 -

Requisito: Identificador: Tipo: Portabilidad O02 Operativo Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: La aplicación se podrá instalar en cualquier otro portal que admita portlets Java. N/A Utilizar estándar 286-45 -

Requisito: Identificador: Tipo: Almacenamiento seguro de la información I01 Integridad Prioridad: Alta Descripción: Requisitos relacionados: Soluciones sugeridas: Los comentarios se almacenarán en la Base de Datos de forma segura sin peder la información. N/A - 46 -

3.3 Modelo lógico del Sistema. Con la lista de requisitos anterior, se ha tratado de dar una visión global del Sistema. En este punto, se intentará profundizar más en el funcionamiento de la aplicación con un mayor detalle para facilitar su entendimiento. DFD Contextual Tan solo existen tres unidades externas: la aplicación, el usuario y el administrador del portal que gestionará la aplicación. El administrador deberá en un primer lugar de gestionar los permisos a los grupos de usuarios que podrán utilizar la aplicación, decidir si usuarios no autenticados en el Sistema (usuarios anónimos) podrán utilizar la aplicación y configurar el aspecto visual de la aplicación dentro del portal. El usuario, si tiene los permisos necesarios, podrá utilizar las diferentes opciones que muestre la aplicación dependiendo de los permisos que le haya otorgado el administrador de la aplicación. La aplicación devolverá un mensaje de error en caso de que el usuario lleve a cabo alguna operación errónea o no permitida o también en caso de que se produzca algún fallo en el Sistema que provoque un mal funcionamiento de la aplicación. - 47 -

En caso de que el funcionamiento de la aplicación sea correcto, la aplicación devolverá el resultado solicitado por el usuario. También existe una relación entre el usuario y el administrador del Sistema. El usuario puede denunciar un comentario publicado en el portal a través de la aplicación al administrador del portal. El administrador será el responsable de revisar el comentario y, en caso de ser necesario, eliminarlo o tomar las medidas necesarias. - 48 -

DFD Conceptual El diagrama anterior muestra con más detalle el funcionamiento de la aplicación y para facilitar su comprensión se explicarán cada uno de sus componentes. Procesos: Añadir comentario. Este proceso comprende la elección del usuario de comentar mediante la aplicación un contenido del portal mediante la introducción de un texto de no más de 255 caracteres. La aplicación deberá de comprobar si el usuario tiene los permisos necesarios para poder realizar el comentario; en caso de no tener los permisos necesarios la aplicación mostrará un mensaje de error advirtiendo al usuario de que no dispone de los permisos necesarios. - 49 -

Si el usuario dispone de los permisos que el administrador ha elegido anteriormente, la aplicación procesará el texto introducido y lo almacenará en la base de datos. Presentar comentarios: Cada vez que el usuario acceda a la página donde se encuentre desplegada la aplicación, se mostrarán todos los comentarios que se han realizado en cada contenido. Para ello, el Sistema tendrá que acceder a la Base de Datos para obtener todos los comentarios de cada contenido y presentarlos en pantalla con la información necesaria: Contenido del comentario, autor, fecha de publicación, valoración y las distintas opciones que pueda tener el usuario para interactuar con éste. Editar comentario: En caso de que el usuario tenga los permisos necesarios para poder editar un comentario, podrá visualizar esta opción en dicho comentario. Podrá editar el texto introducido sin exceder los 255 caracteres. La aplicación deberá de comprobar si el usuario tiene los permisos necesarios para poder editar el comentario; en caso de no tener permiso, la aplicación mostrará un mensaje de error advirtiendo al usuario de que no dispone de los permisos necesarios. - 50 -

Si el usuario dispone de los permisos que el administrador ha elegido anteriormente, la aplicación procesará el texto introducido y lo modificará en la base de datos. Eliminar comentario: En caso de que el usuario tenga los permisos necesarios para poder eliminar un comentario, podrá visualizar esta opción en dicho comentario. La aplicación deberá de comprobar si el usuario tiene los permisos necesarios para poder eliminar el comentario; en caso de no tener permiso, la aplicación mostrará un mensaje de error advirtiendo al usuario de que no dispone de los permisos necesarios. Si el usuario dispone de los permisos que el administrador ha elegido anteriormente, la aplicación eliminará el comentario de la base de datos. Votar comentario: En caso de que el usuario tenga los permisos necesarios para poder votar un comentario, podrá visualizar esta opción en dicho comentario. Podrá votar un comentario de forma positiva o negativa según su propio criterio. La aplicación deberá de comprobar si el usuario tiene los permisos necesarios para poder votar el comentario; en caso de no tener permiso, la - 51 -

aplicación mostrará un mensaje de error advirtiendo al usuario de que no dispone de los permisos necesarios. Si el usuario dispone de los permisos que el administrador ha elegido anteriormente, la aplicación procesará el voto introducido y lo almacenará en la base de datos. Denunciar comentario: En caso de que el usuario tenga los permisos necesarios para poder denunciar un comentario, podrá visualizar esta opción en dicho comentario. La aplicación deberá de comprobar si el usuario tiene los permisos necesarios para poder denunciar el comentario; en caso de no tener permiso, la aplicación mostrará un mensaje de error advirtiendo al usuario de que no dispone de los permisos necesarios. Si el usuario dispone de los permisos que el administrador ha elegido anteriormente, la aplicación introducirá esta información en la Base de Datos para avisar al administrador. - 52 -

Corregir Comentario: La aplicación deberá de corregir el texto introducido por un usuario en un comentario. Para ello, comprobará si existe alguna palabra de un fichero de palabras censuradas dentro del comentario; si encuentra alguna palabra, la sustituirá por una cadena de asteriscos. Almacenes o archivos Tras explicar la utilidad de cada proceso y de los diferentes flujos de datos, a continuación se muestra la estructura de los almacenes de datos: Comentario La tabla Comentario está almacenada en la base de datos; contiene toda la información relativa a los comentarios publicados por los usuarios en la aplicación. Esta tabla será requerida para la publicación de comentarios y su visualización por parte de los usuarios. - 53 -

Los campos que tiene la tabla son los siguientes: IdPortlet: Identificador del contenido sobre el que se ha publicado el comentario. Será una cadena de texto de no más de 50 caracteres, no podrá tomar valores nulos y formará parte de la clave primaria. Id: Identificador del comentario. Será un valor entero que no podrá tomar valores nulos y formará parte de la clave primaria. Usuario: Identificador del usuario que ha publicado el comentario. Será una cadena de texto de no más de 20 caracteres y no podrá tomar valores nulos. Comentario: Texto del comentario. Será una cadena de texto de no más de 225 caracteres y no podrá tomar valores nulos. Fecha: Fecha de publicación del comentario. Será un tipo de dato timestamp y no podrá tomar valores nulos. Denuncia: Indicará si se ha denunciado dicho comentario. Será un valor entero que podrá tomar valores nulos. Atributo Tipo Long/Valor Nulo Descripción IdPortlet Varchar 50 No Id del portlet Id Int 11 No Id del comentario Usuario Varchar 50 No Id del usuario Comentario Text No Texto del comentario Fecha Timestamp No Fecha de publicación del comentario Denuncia Int 1 Sí Indica si el comentario ha sido denunciado. - 54 -

Votación La tabla Votación está almacenada en la base de datos; contiene toda la información relativa a los votos realizados por los usuarios en la aplicación. Esta tabla será requerida para cuando un usuario vote un comentario y para la visualización de éstos. Los campos que tiene la tabla son los siguientes: IdPortlet: Identificador del contenido sobre el que se ha publicado el comentario. Será una cadena de texto de no más de 50 caracteres, no podrá tomar valores nulos y formará parte de la clave primaria. Id: Identificador del comentario. Será un valor entero que no podrá tomar valores nulos y formará parte de la clave primaria. Usuario: Identificador del usuario que ha realizado la votación. Será una cadena de texto de no más de 20 caracteres y no podrá tomar valores nulos. Voto: Valor del voto realizado por el usuario (positivo o negativo). Será un valor entero que no podrá tomar valores nulos. - 55 -

Atributo Tipo Long/Valor Nulo Descripción IdPortlet Varchar 50 No Id del portlet Id Int 11 No Id del comentario Usuario Varchar 50 No Id del usuario Voto Int 1 No Voto del usuario 3.4 Modelo Conceptual de Datos. Tras el análisis anterior de cómo se estructura toda la información de la aplicación, se procederá a una modelización de los datos. Esta etapa se realiza para evitar redundancias en la información introducida. Para llevar a cabo este método de análisis de datos, se debe de realizar un ejercicio de abstracción con respecto al hardware y software. En un primer paso, se mostrará el diagrama entidad-relación que muestra la interacción entre los diferentes elementos, atributos, etc. En etapas posteriores se tratará de simplificar el modelo tratando de eliminar redundancias e inconsistencias; en último lugar, se explicarán los resultados obtenidos. - 56 -

USUARIOS USUARIOS = (Id + nombre + edad + ) Clave primaria: Id Clave externa: No tiene COMENTARIOS denuncia) COMENTARIOS = (IdPortlet + Id + usuario + comentario + fecha + Clave primaria: IdPortlet + Id Clave externa: No tiene VOTACIONES VOTACIONES = (IdPortlet + Id + usuario + voto) Clave primaria: IdPortlet + Id + usuario Clave externa: IdPortlet + Id - 57 -

A continuación se tratará de explicar cada una de las relaciones que se dan en el diagrama. USUARIO - COMENTARIOS Esta relación se puede interpretar de varias maneras. Desde el punto de vista del usuario administrador, que puede registrar uno o varios comentarios y, a su vez, puede recibir una o varias advertencias de denuncias de comentarios. Desde el punto de vista de usuario normal o usuario anónimo, éste puede publicar uno o varios comentarios. COMENTARIOS - VOTACIONES En esta relación se puede observar que un comentario puede recibir ninguna, una o varias votaciones pero una votación solo pertenece a un único comentario. USUARIO - VOTACIONES En esta relación un usuario solo puede crear una votación sobre un comentario y una votación sólo pertenece a un usuario. Aun así, un usuario puede generar tantas votaciones como comentarios existan en un contenido. - 58 -

4. ESTUDIO DE LA ARQUITECTURA - 59 -

En esta fase se van a definir las posibles soluciones de arquitectura que satisfagan tanto los requisitos del usuario como las restricciones planteadas anteriormente de diseño. Después de definirlas, se someterán a un estudio de viabilidad y se elegirá la más adecuada para ser desarrollada e implementada. Por lo tanto, la decisión final estará condicionada tanto por los requisitos impuestos por los usuarios finales como por los propios requisitos de diseño. Para esta fase se realizarán las siguientes actividades: Identificar alternativas de desarrollo de la aplicación a nivel de presentación, es decir, el lado del cliente. Identificar las distintas alternativas para la creación del portal a nivel de servidor. Estudio del mercado para los sistemas de gestión de bases de datos. Estudiar las posibilidades para el resto de software necesario para el desarrollo de la aplicación, esto es, sistemas operativos, servidores, navegadores, etc. Búsqueda de alternativas para la parte hardware del sistema que pueda soportar la aplicación - 60 -

4.1. Especificación de las alternativas 4.1.1. Tecnología hardware Los componentes hardware de los que ya se disponen para el diseño y desarrollo del Sistema son los siguientes: - Ordenador portátil con procesador Intel a 1.83 GHz de velocidad de proceso y una memoria RAM disponible de 504 MB. Disco duro de 69.5 GB. - Impresora HP El hardware con el que se dispone es más que suficiente ya que cumple con los requisitos especificados para el diseño y explotación del Sistema. Por este motivo no es necesario adquirir nuevo hardware para el diseño y desarrollo de la aplicación. 4.1.2. Tecnología software Para el desarrollo de la aplicación se ha utilizado el siguiente software: - Sistema Operativo: Se ha utilizado para el desarrollo Windows XP SP2, aun así, se podría mudar la aplicación a otro sistema operativo ya que no se han utilizado funciones propias de uno en concreto para buscar mejorar la compatibilidad de la aplicación. - Navegadores: La aplicación está desarrollada y optimizada para ser utilizada correctamente en el navegador Internet Explorer 7, Firefox - 61 -

2.0 y Google Chrome. La funcionalidad en estos 3 navegadores ha sido testeada correctamente aunque es posible que entre los diferentes navegadores se encuentren diferencias de diseño debido a la CSS que se esté utilizando. Estos navegadores pueden descargarse desde sus respectivas páginas web: o Internet Explorer: o Firefox: o Google Chrome: http://www.microsoft.com http://www.mozilla.com http://www.google.com/chrome/ - Entorno de desarrollo: La aplicación se ha desarrollado utilizando Eclipse, un entorno de desarrollo integrado de código abierto multiplataforma para el desarrollo de Aplicaciones de Cliente Enriquecido. - Suite ofimática: Se ha utilizado Microsoft Office 2003 para el desarrollo de la documentación del proyecto y su presentación. - 62 -

4.2. Alternativas en portales web En esta parte se deben de estudiar las distintas alternativas de portales web que puedan soportar la aplicación que se desarrolla en este proyecto. Este aspecto es fundamental ya que dependiendo de las especificaciones de los portales sobre los que se pueda explotar la aplicación afectará a las especificaciones de ésta. criterios: Los gestores de contenido se pueden segmentar según diferentes Según el lenguaje de programación empleado: Java, PHP, ASP.NET, Pithon Según la propiedad del código: o Open Source: Permite desarrollar sobre el propio código. o Código propietario: Sólo el desarrollador del gestor de contenido puede modificar el código. Según el tipo de uso o funcionalidades: o Plataformas generales o Sistemas específicos o Blogs o Wikis o E-learning o E-commerce - 63 -

Por lo tanto y, siguiendo estos criterios, es necesario especificar a qué tipos de gestores de contenido estará dirigida la aplicación a desarrollar. Según el lenguaje de programación Una de las especificaciones o requisitos iniciales del proyecto era que el lenguaje a utilizar para su desarrollo tenía que ser Java y el portal debería de soportar JSR 286. Es necesario que el gestor de contenidos que se utilice soporte ambas cosas. Según la propiedad del código Como se ha explicado anteriormente existen dos categorías dentro de esta tipología de gestores de contenido. A continuación se nombraran con una breve descripción aquellos portales web más significativos dentro de estas categorías: Gestores de contenido con código abierto: Apache Lenya: es un sistema de gestión de contenido libre escrito en Java manejando el formato de representación XML. Entre sus características están control de versiones, programación de actividades, capacidad de búsqueda, herramientas de workflow y editores WYSIWYG. Drupal: En un sistema de gestión de contenido libre escrito en PHP que permite la publicación de artículos, imágenes, foros, votaciones, etc. Drupal es un sistema dinámico. - 64 -

Liferay: Es un Sistema de gestión de contenido abierto escrito en Java muy extendido. Es un servidor de aplicaciones J2EE EJB. JBoss Portal: Es un servidor de aplicaciones J2EE de código abierto implementado en Java. Es una de las plataformas más populares de middleware para los desarrolladores Gestores de contenido con código propietario: Jarimba: Es un servidor de aplicaciones basado en J2EE desarrollado por Kruger Corporation. Oracle Portal: Ofrece un entorno completo e integrado para crear, implementar y administrar portales empresariales. WebSphere Application Server (WAS): Es un servidor de aplicaciones que utiliza estándares abiertos como J2EE, XML y Servicios Web creado por IBM Vignette: Gestor de Contenido Web que proporciona soporte para Java EE y JSR 186. Es utilizado por varias empresas y organizaciones importantes como Nokia, el Banco de España, OCDE - 65 -

Tras un estudio exhaustivo de los diferentes portales y recopilando la información proporcionada por los usuarios que los han empleado, se ha llegado a la conclusión de que la aplicación se probará en tres de estos portales: JBoss Portal, Liferay y Vignette Portal. 4.3. Alternativas en sistemas gestores de bases de datos En este apartado se van a estudiar las diferentes posibilidades que ofrece el mercado en cuanto a Sistemas Gestores de Bases de Datos. Se estudiarán los siguientes sistemas: MySQL 5 MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. Es desarrollado por MySQL AB, subsidiaria de Sun Microsystems, como software libre en un esquema de licenciamiento dual. Existen varias APIs que permiten acceder a las bases de datos MySQL, incluyendo C, C++, C#, Java, PHP, etc. Funciona sobre múltiples plataformas como por ejemplo Windows 98, Windows XP, Mac OS X, GNU/Linux, Solaris Algunas de sus características son: - 66 -

Alto rendimiento: está altamente optimizado proporcionando un tiempo de respuesta muy bueno. Extensibilidad: Se pueden desarrollar módulos que extiendan su funcionalidad. Bajo coste: además de ser un software OpenSource, puede ejecutarse en casi cualquier plataforma y por lo tanto reduce los costes de implantación. Comunidad de desarrollo: Existe una gran comunidad de desarrolladores en la red por lo que en caso de cualquier fallo es posible encontrar la solución en un corto periodo de tiempo. Oracle Database 10g Es un sistema de gestión de bases de datos relacional desarrollado por Oracle Corporation Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su: Soporte de transacciones. Estabilidad. Escalabilidad. Soporte multiplataforma. Ha sido criticada por algunos especialistas la seguridad de la plataforma, y las políticas de suministro de parches de seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de exposición de los usuarios. En los - 67 -

parches de actualización provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilidades públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux Microsoft SQL Server Es un sistema de bases de datos relacionales basado en el lenguaje Transact-SQL, y específicamente en Sybase IQ, capaz de poner gran cantidad de información a múltiples usuarios de manera simultánea. Características: Soporte de transacciones. Escalabilidad, seguridad y estabilidad. Soporta procedimientos almacenados. Incluye un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente. Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los clientes de la red sólo acceden a la información. Además permite administrar información de otros servidores de datos. - 68 -

PostgreSQL 2005 Es un sistema de gestión de bases de datos relacional orientado a objetos de software libre, publicado bajo licencia BSD. Su principal característica es que los usuarios pueden crear sus propios tipos de datos que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Otra característica importante son los disparadores o trigger que son acciones específicas basadas en algo ocurrente dentro de la base de datos. Esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Tras un estudio detallado de cada una de las posibilidades se ha decidido finalmente optar por MySQL 5. - 69 -

5. DESARROLLO TÉCNICO - 70 -

En esta etapa se pretende alcanzar el desarrollo de la aplicación aplicando las restricciones y requisitos analizados anteriormente de la forma más óptima posible. Tiene especial importancia la elección de distintas tecnológicas y lenguajes de programación para dotar de la interactividad necesaria a la aplicación. También es, durante esta etapa, donde se realizarán las pruebas unitarias necesarias sobre cada uno de los procesos anteriormente descritos y poder comprobar su correcto funcionamiento. A continuación se trazará un manual de usuario con los distintos pasos que tiene que realizar para poder acceder a todas las funcionalidades de la aplicación haciendo distinción entre los diferentes tipos de usuario que pueden utilizarla. Finalmente se creará un manual de explotación para guiar al equipo de que explotará la aplicación diariamente. Por ello, en este punto se van a explicar los motivos del uso de los distintos lenguajes de programación que se utilizarán durante el desarrollo en relación a los requisitos que se quieren alcanzar. También se dará una breve explicación de cómo se han implementado cada una de las funcionalidades y por último cómo han satisfecho las pruebas unitarias. - 71 -

5.1. Lenguajes utilizados 5.1.1. Java Se ha utilizado como lenguaje principal para el desarrollo de la aplicación Java 1.5, lenguaje caracterizado por su orientación a objetos. Este lenguaje se creó con cinco objetivos principales: Usar la metodología de la programación orientada a objetos Permitir la ejecución de un mismo programa en múltiples sistemas operativos. Soporte para trabajo en red. Ejecución en sistemas remotos de forma segura. Sencillo de usar y tomar lo mejor de otros lenguajes orientados a objetos. Debido a estas características y a ser un lenguaje utilizado ampliamente en el desarrollo de este tipo de aplicaciones se utilizó a la hora de desarrollar la aplicación. Para la parte de cliente se ha utilizado DHTML, término comercial que define un tipo de tecnología que se caracteriza por la interacción. Esta interacción se consigue debido a que la página reacciona a los cambios que introduce el usuario sin necesidad de enviar datos al servidor, ni de que éste tenga que recargar la página constantemente. - 72 -

La tecnología DHTML es un compendio de tecnologías que se unen para lograr esta interacción, dinamismo y efectos visuales en la creación web. Este conjunto esta formado por CSS, JavaScript y XHTML. Cada uno de estos lenguajes aporta una serie de características que se han utilizado a la hora de crear esta aplicación: 5.1.2. XHTML Acrónimo en inglés de Extensible Hypertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de logar una web semántica, donde la información y la forma de presentarla estén claramente definidas y separadas. Se decidió utilizar una nueva versión de HTML debido a que el contenido Web se puede acceder desde cualquier tipo de dispositivo a parte de los tradicionales PC s. En la práctica existen, por ejemplo, dispositivos móviles con navegadores incluidos desde los cuales poder navegar a través de la red por los diferentes portales. Las principales ventajas de XHTML sobre HTML son: Se pueden incorporar elementos de distintos espacios de nombres XML. - 73 -

Un navegador no necesita implementar heurísticas para detectar qué quiso poner el autor. Como es XML se pueden utilizar fácilmente herramientas creadas para procesamiento de documentos XML genéricos (editores, XSLT, etc.). Por estos motivos se decidió utilizar en el proyecto XHTML en sustitución del HTML básico. 5.1.3. CSS. Acrónimo ingles de Cascading Style Sheets (hojas de estilo en cascada), es un lenguaje formal utilizado para definir la presentación de un documento estructurado escrito en HTML o XHTML. Gracias a este lenguaje se consigue separar la estructura de un documento de la presentación. Pese a que el W3C se encargó de formular la especificación de las hojas de estilo para que los distintos navegadores pudiesen interpretar las etiquetas de éstos y mostrar los resultados por pantalla, en la realidad cada navegador interpreta las hojas de estilo con pequeñas variaciones. Para el proyecto se ha tratado que su visualización esté optimizada tanto para Internet Explorer 7, Firefox 3.0 y Google Chrome. - 74 -

Las ventajas de CSS son. Control centralizado de la presentación de un sitio web agilizando la actualización del mismo. Se pueden tener tantas hojas de estilo como dispositivos vayan a mostrarlo o incluso a elección del usuario. El documento XHTML es más claro de entender y se consigue reducir su tamaño. Para la elaboración del portal se ha decidido utilizar CSS de formar externa, es decir, mediante hojas de estilo almacenadas en un archivo distinto al código XHTML ya que se consideró que era la forma más adecuada. El motivo es que separa completamente las reglas de formateo de la página XHTML de la estructura en sí y por lo tanto se consigue un código reutilizable. 5.1.4. JavaScript JavaScript es un lenguaje de programación interpretado, es decir, que no requiere compilación. Es utilizado principalmente en páginas web y tiene una sintaxis muy similar a Java y C. Es un lenguaje orientado a objetos debido a que posee herencia aunque ésta se realiza siguiendo el paradigma de programación basada en prototipos. Todos los navegadores modernos interpretan el código JavaScript. Para poder interactuar con una página web y sus elementos se provee al - 75 -

lenguaje JavaScript de una implementación del DOM. El DOM es un modelo computacional a través del cual las aplicaciones y scripts pueden acceder y modificar dinámicamente el contenido, estructura y estilo de los documentos HTML y XHTML. Para este proyecto se ha utilizado la forma de de inclusión de código JavaScript denominada interna. Esta forma incluye el código JavaScript en el archivo XHTML utilizando para ello dos etiquetas especiales (<script> y </script>). El motivo de haber utilizado esta forma es que el código JavaScript creado no es reutilizable para otras aplicaciones que componen el portal. - 76 -

5.2. Partes de la aplicación En esta etapa del desarrollo de la aplicación se tratará de concretar el aspecto que tendrá el sistema. Se expondrán una serie de puntos clave en el diseño del nuevo sistema y se mostrará la solución elegida para tener un mejor conocimiento de cómo debería de comportarse la aplicación ante diferentes situaciones. 5.2.1. Entrada, salida y recogida de Datos En primer lugar, cabría destacar que la aplicación, debido a su naturaleza y funcionalidad, no necesita interactuar con otros sistemas que se encuentren implantados en el portal. Todos los datos de entrada deben de ser proporcionados por los propios usuarios, incluido el administrador, y los datos de salida no tienen que ser tratados ya que no servirán como datos de entrada para otras aplicaciones. Esto simplifica enormemente el sistema a desarrollar. Variables Iniciales La primera pantalla que se muestra al usuario (Figura 5.1) contiene acceso a la operatividad de la aplicación. Se ha pretendido que la distribución de los enlaces sea lo más armónica posible para facilitar su uso por el usuario normal y dar una mayor sensación de fluidez, orden y sencillez. - 77 -

- 78 -

Añadir comentario: Este enlace servirá para que el usuario pueda añadir un comentario al contenido publicado en el portal. Este enlace será visible para aquellos usuarios que tengan permiso de acceso previamente otorgados por el administrador del portal. En caso de poder utilizar este enlace, el usuario deberá de introducir un texto con el comentario que quiere realizar y pulsar el botón Aceptar. - 79 -

Editar Comentario: Este enlace aparecerá cuando el usuario sea el que publicó dicho comentario o bien si es el administrador del portal. Al pulsarlo, el usuario podrá editar el texto del comentario y a continuación deberá de pulsar Aceptar.` - 80 -

Eliminar Comentario: Este enlace aparecerá cuando el usuario sea el que publicó dicho comentario o bien si es el administrador del portal. Al pulsarlo, el usuario eliminará el comentario de la base de datos y no volverá a aparecer. Al pulsar este enlace, aparecerá un mensaje de advertencia para confirmar que el usuario quiere eliminar el comentario. - 81 -

Enlaces de votación: Este enlace aparecerá si el usuario tiene los permisos necesarios para votar los comentarios de la página o si aún no ha realizado una votación de dicho comentario. El voto podrá ser positivo o negativo y la suma total de votos aparecerá a la izquierda de dichos botones. - 82 -

Paginación: Sirve para movernos entre los diferentes comentarios del contenido que se está visualizando en ese momento. En cada página se visualizarán un número determinado de comentarios configurado por el administrador. - 83 -

PANEL DE ADMINISTRACIÓN En el panel de configuración del administrador se podrán configurar los diferentes aspectos del portlet. Se ha intentado que el panel sea lo más intuitivo posible para que pueda administrarlo un usuario con un nivel de programación básico. Existen dos paneles de configuración: - 84 -

- 85 -

Panel de acceso: En este panel, el usuario administrador podrá configurar qué usuarios podrán visualizar el portlet y quienes podrán configurarlo. En un principio el único usuario que podrá configurarlo será el administrador del portal aunque esto puede cambiar ya que es posible que se repartan responsabilidades. Otra opción que se ha habilitado es el poder compartir el portlet con otros portales mediante la inclusión de un sencillo código generado automáticamente. Esta opción puede ser de utilidad para portales que tienen un gran volumen de visitas y quieran compartir dicha información. - 86 -

Panel de configuración: En este panel, el administrador podrá configurar los diferentes aspectos visuales del portlet. En el primer subpanel, se podrá modificar el nombre que se mostrará del portlet, enlazar url's de otras páginas con el portlet y mostrar o no bordes. - 87 -

En el panel de Estilo del texto, se podrá modificar el estilo del texto que se visualizará dentro del portlet. Fuente: Fuente con la que se mostrará el texto. (Arial, Georgiana, Times New Roman, Tahoma, Trebuchet MS, Verdana) Negrita e itálica. Tamaño: Tamaño de la letra. Se recomienda dejar el tamaño predeterminado aunque es posible que, por el tipo de portal, sea necesario aumentarla o disminuirla. Color: Color del texto. Se puede introducir el código hexadecimal o bien seleccionarlo desde una paleta cromática. Alineamiento: Alineamiento del texto del portlet. Los valores elegibles son justificado, izquierda, derecha y centro. Decoración del texto: Los valores elegibles son subrayado, subrayado superior o tachado. Espacio entre palabras: Indica el espacio de separación entre las palabras que se muestran en el portlet. - 88 -

Altura de la línea: Espacio de separación entre las líneas y el contenido superior. Separación entre letras: Separación entre las letras que se muestran dentro del portlet. En el panel de Estilos del fondo, se podrá modificar el color de fondo del portlet. Se puede introducir el código hexadecimal o bien seleccionarlo desde una paleta cromática. - 89 -

En el panel Estilos del borde se podrá modificar todos los aspectos referentes al borde del portlet: Ancho del borde: Indica el tamaño del ancho del borde del portlet. Se puede configurar para que sea el mismo tamaño para todos los bordes o configurar cada uno por separado. Estilo del borde: Es posible modificar el estilo del borde. Se puede configurar para que sea el mismo estilo para todos los bordes o configurar cada uno por separado. Color del borde: Es posible modificar el color del borde del portlet. Se puede introducir el código hexadecimal o bien seleccionarlo desde una paleta cromática. - 90 -

En el panel Margen externo e interno (padding) se podrá modificar el margen que presenta el portlet tanto con el resto de portlets de la página como del contenido que muestra en su interior. Padding: referido al contenido interno del portlet. Cuanto mayor sea el tamaño más espacio existirá entre el borde y su contenido. Margin: referido al exterior del portlet. Cuanto mayor sea el tamaño, más espacio existirá entre el borde y el contenido que rodea al portlet. - 91 -

En el panel Estilos avanzados se pueden modificar otros aspectos del portlet no configurables en el resto de paneles. Para ello es necesario que el administrador tenga cierto conocimiento de CSS. - 92 -

5.3. Control de información y seguridad del Sistema Se exige un control del acceso a algunas de las opciones de la aplicación. Tan solo en aquellos procesos que tienen un carácter informativo como el de la visualización de los comentarios se permite un acceso totalmente libre. Se tendrá un especial cuidado en el acceso como administrador de la aplicación que será el encargado de decidir qué usuarios tendrán permisos de acceso al sistema. Otro control de la información será el de la edición y eliminación de los comentarios. Únicamente podrán aquellos usuarios que sean propietarios de dichos comentarios o bien el administrador del Sistema. - 93 -

5.4. Rendimiento del sistema y escalabilidad Ya que se trata de una aplicación que realiza la mayor parte del procesamiento de la información on-line el rendimiento de ésta se verá afectado por la tecnología hardware que posea el entorno donde se realice la instalación y del tipo de conexión entre el usuario que utilice la aplicación y el servidor donde se encuentre instalada. El rendimiento de la aplicación, pese a ser un dato importante, no es crítico en este tipo de sistemas por lo que no debe de ser tomado muy en cuenta. Pese a todo esto, la cantidad de información que tiene que procesar la aplicación no es un volumen excesivo por lo que se espera que el rendimiento medio de la aplicación sea el óptimo. Otro punto a tratar es la escalabilidad del sistema. Un punto a favor de esta aplicación es que al estar desarrollada para un portal web y, por lo tanto, con un acceso a ésta desde cualquier sitio con acceso a Internet, permite la expansión y crecimiento que se requiera. En caso de que el volumen de usuarios que estén empleando la aplicación sea excesivo únicamente será necesario mejorar la tecnología hardware donde se encuentra el sistema para no afectar al rendimiento. - 94 -

5.5. Implantación del Sistema La implantación del sistema será relativamente sencilla. Únicamente habrá que almacenar la aplicación en el servidor de aplicaciones del portal y desplegarlo en cualquier lugar de éste. Una vez hecho esto, cualquier persona con los permisos necesarios podrá acceder a la aplicación. - 95 -

6. PRUEBAS DEL SISTEMA - 96 -

Una vez desarrolladas y probadas cada uno de los procesos que forman parte de la aplicación que se ha desarrollado en este proyecto, deben de realizarse una serie de pruebas sobre ésta para comprobar su correcto funcionamiento dentro del Sistema. En definitiva, el objetivo principal de esta fase es someter a la aplicación a una serie de verificaciones encaminadas a garantizar un nivel de fiabilidad y consistencia aceptable. Esta fase del proyecto es crítica ya que de su resultado se comprobará si la aplicación es aceptable o no para el sistema por lo que se deberá de planificar, diseñar y realizar con el mismo rigor con que se realizó el desarrollo de la aplicación. Si el conjunto de pruebas planteadas son superadas se podrá implantar en el sistema con un nivel de aceptación elevado. En caso de que alguna de las pruebas no supere la validación se deberán subsanar las anomalías presentadas volviendo a revisar el diseño y el desarrollo de la aplicación. 6.1. Pruebas del Sistema En esta etapa se ha de definir un ciclo de pruebas a las que se va a someter la aplicación. Este ciclo recoge las distintas pruebas que se pueden diseñar para el sistema, desde las pruebas de encadenamiento a las pruebas de aceptación por parte del usuario final. Para realizar este ciclo de pruebas se tiene que establecer un entorno de pruebas apropiado. Este entorno debe de tener una tecnología hardware y - 97 -

software similar al que se va a emplear en el entorno de producción. Las características del entorno de pruebas es el siguiente: Características hardware: La aplicación se ha probado en un ordenador portátil con procesador Intel a 1.83 GHz de velocidad de proceso y una memoria RAM disponible de 504 MB. Disco duro de 69.5 GB. Características software: Sistema operativo Windows XP SP2, navegadores Firefox 3.0, Internet Explorer 7 y Google Chrome y un sistema de gestión de base de datos MySqQL. Una vez establecido y preparado el entorno de pruebas, se definirán las pruebas a realizar sobre éste: Pruebas de encadenamiento: Verifican la correcta comunicación entre los diferentes componentes. Pruebas de integración: Verifican la integración entre la aplicación, el sistema y los recursos utilizados. Pruebas de explotabilidad: Verifican la correcta operación del sistema. Pruebas de seguridad: Verifican los distintos aspectos de seguridad exigidos anteriormente. - 98 -

Pruebas de sobrecarga: Verifican el correcto funcionamiento de la aplicación ante estados de estrés en los que se pueda ver envuelta. Pruebas de recuperación: Verifican la capacidad de la aplicación para recuperar información ante situaciones anómalas. Pruebas de regresión: Verifican el correcto funcionamiento de la aplicación ante la variación de alguno de sus componentes. Pruebas de aceptación del usuario: Certifican por parte del usuario final el correcto funcionamiento de los procesos de la aplicación cubriendo todas las necesidades exigidas. Pruebas de usabilidad: Certifican, por parte del usuario final, la amigabilidad y sencillez de la aplicación para su uso. 6.1.1. Pruebas de encadenamiento Una vez comprobada el correcto funcionamiento de la aplicación estas pruebas garantizan la correcta comunicación entre los diferentes componentes de ésta. Se han comprobado todos los enlaces de la aplicación comprobando su correcto funcionamiento y que las rutas de navegación entre los diferentes - 99 -

estados son satisfactorias. Las pruebas de encadenamiento han tenido un resultado exitoso. 6.1.2. Pruebas de integración Una vez comprobado el correcto funcionamiento entre los diferentes componentes se ha de proceder a integrarlos: bases de datos, ficheros, programas... Las pruebas de integración han tenido un resultado exitoso. 6.1.3. Pruebas de explotabilidad Estas pruebas están encaminadas a comprobar la facilidad que ofrece la aplicación para su explotación. Para ello se han realizado comprobaciones periódicas sobre introducción de nuevos comentarios, modificaciones en la base de datos, votaciones... Las pruebas de explotabilidad han tenido un resultado exitoso. - 100 -

6.1.4. Pruebas de seguridad La aplicación tiene mecanismo de seguridad incorporados para el acceso a ésta dependiendo tanto del perfil de los usuarios como los definidos por el administrador. Las pruebas de seguridad han verificado el correcto funcionamiento del acceso a la base de datos y se asegura que, mediante el tipo de usuario, se controla la accesibilidad. 6.1.5. Pruebas de sobrecarga Esta prueba establece, mediante el sometimiento a cargas excesivas de información y accesos, cual es el nivel de sobrecarga máximo que puede alcanzar la aplicación. Cuando se alcance ese nivel de sobrecarga se deberán de aumentar los requisitos hardware, software y de comunicaciones. 6.1.6. Pruebas de recuperación Estas pruebas verifican el correcto funcionamiento de la aplicación en caso de pérdidas de información. Se pueden crear periódicamente copias de seguridad de la base de datos para no perder ninguna información tanto de los comentarios publicados como de las votaciones realizadas. - 101 -

6.1.7. Pruebas de regresión Una vez realizadas las pruebas anteriores y subsanados los errores aparecidos, es deberá de volver a testear la aplicación de forma individual cada proceso en caso de que se haya producido alguna variación en la programación de éstos. Las pruebas de regresión han sido satisfactorias. 6.1.8. Pruebas de aceptación de usuario Estas pruebas deben de ser realizadas por los usuarios finales de la aplicación, tanto administradores como usuarios registrados del portal y usuarios anónimos. Para realizar estas pruebas el usuario debe de revisar el manual de usuario y utilizar cada una de las opciones que la aplicación ofrece. En el proyecto, las pruebas de aceptación de usuario han sido superadas ya que los usuarios finales han dado su conformidad con la aplicación. 6.1.9. Pruebas de usabilidad El objetivo final de este conjunto de pruebas es comprobar la facilidad y manejabilidad de la aplicación por parte de los usuarios finales. Esta facilidad de uso se refiere tanto al diseño de la interfaz como a la accesibilidad. - 102 -

Esta es una de las pruebas más importantes ya que al ser una aplicación web es importante que el usuario final se sienta cómodo utilizando la aplicación siendo una persona sin necesidad de tener conocimientos de programación o de cómo se ha desarrollado la aplicación. Una vez superadas las pruebas se puede dar el paso final a la implantación del sistema en el entorno de producción. Estas pruebas han asegurado el correcto funcionamiento de la aplicación y se han vuelto a repetir en el entorno de producción. - 103 -

7. PLANIFICACIÓN - 104 -

En esta etapa se va a exponer la planificación temporal que se ha hecho de cada una de las fases seguidas para la realización del proyecto. Las fases que se han seguido para terminar el proyecto son: Identificación de necesidades En esta fase se definieron los objetivos y necesidades que debía de cubrir la aplicación, tipología de usuarios y la metodología que se seguiría para el desarrollo del proyecto. La duración fue: Análisis de requisitos En esta fase se busca el reconocimiento del problema, la creación de una lista de requisitos, evaluar esta lista y obtener los requisitos aceptados. Estudio de arquitectura En esta fase se estudian las distintas arquitecturas software y hardware que pueden ser utilizadas en la aplicación. Se debe de elegir la mejor opción y adoptarla en el proyecto. - 105 -

Diseño del Sistema En esta fase se realiza un modelo específico de la aplicación y se plasmará este diseño en la programación del sistema. Desarrollo y Pruebas En esta fase se pretende alcanzar la transformación del diseño creado en la etapa anterior en un programa o aplicación que cubra todas las necesidades. Conjuntamente, se realizarán pruebas sobre el sistema para estudiar su fiabilidad. Implantación y Documentación En esta fase se cubre la puesta en marcha de todo el sistema para su explotación, se realizará una valoración económica y se dará formato a la documentación del proyecto. - 106 -

8. VALORACIÓN ECONÓMICA - 107 -

En esta etapa se realizará una valoración económica de los costes tangibles asociados al desarrollo e implantación de la aplicación. Los costes que se analizarán y estudiarán en este apartado serán: Costes tecnológicos Costes de implantación Costes operacionales 8.1. Costes tecnológicos Son los costes que provienen de adquirir los equipos hardware para el correcto funcionamiento del sistema, así como las licencias necesarias y los distintos lenguajes utilizados. Para el correcto desarrollo de la aplicación ha sido necesaria una estación de trabajo con las siguientes características: Intel Core Duo T2300 1660 MHz, 512 MB de memoria RAM y para el despliegue de la aplicación ha sido necesaria otra estación de las mismas características. Las necesidades software de la estación de trabajo para el desarrollo de la aplicación web son: MS Windows XP SP2, MS Office Professional 2003, Eclipse Platform 3.4.1, Internet Explorer 7, Mozilla Firefox 3.0 y Google Chrome. En el equipo de producción ha sido necesario instalar MySQL. - 108 -

Las conexiones a Internet deben de ser lo suficientemente buenas como para que la aplicación se ejecute de manera eficiente y para que se puedan llevar a cabo todas las funcionalidades que están recogidas anteriormente. ELEMENTO IMPORTE Estación de trabajo 1.500 Estación de producción 1.500 MS Windows XP 70,18 MS Office Professional 2007 614,14 Internet Explorer 7 0.0 Firefox 3.0 0.0 Google Chrome 0.0 Eclipse Platform 3.4.1 0.0 Total 3.684,32-109 -

8.2. Costes de implantación Los costes de implantación son los costes ligados al desarrollo, a la implantación y al personal involucrado en el proyecto. Función Nº Horas Coste/Hora Coste total Programador 200 50 10.000 Analista 210 55 11.550 Jefe de Proyecto 60 75 4.500 Total 26.050-110 -

8.3. Costes operacionales Los costes operacionales son aquellos relacionados con la explotación y mantenimiento del sistema. Se considerará la aproximación en euros por año y consistirá en el mantenimiento del servidor que deberá de estar en constante funcionamiento y costes de manipulación. Función Nº Horas Coste/Hora Coste total Mantenimiento 8760 0,5 4.380 Instalación Administrador 40 45 1.800 Total 6.180-111 -

8.4. Costes totales Habiendo analizado los diferentes factores que interfieren en la variable de costes, los costes totales son: CONCEPTO IMPORTE Costes tecnológicos 3.684,32 Costes de implantación 26.050 Costes operacionales 6.180 Total 35.914,32-112 -

9. CONCLUSIONES Y FUTUROS ESTUDIOS - 113 -

En esta última parte de la documentación del proyecto se describirán las conclusiones generales que se han alcanzado al finalizar éste, sobre la metodología y resultados obtenidos. El proyecto ha consistido en el desarrollo de una aplicación web para un portal del departamento de ebusiness de la consultoría VASS. Una de sus mayores características es que puede personalizarse para cada tipo de usuario que la utilice. Todo esto es posible gracias a la utilización del portlet para su creación. El desarrollo de este proyecto ha supuesto un gran desafío para el autor en multitud de aspectos. Se trataba de una aplicación web por lo que el autor tenía conocimientos básicos para su desarrollo. El hecho de trabajar en una empresa de este sector le ha ayudado a poder enfrentarse a este nuevo desafío con herramientas ya conocidas. Este tipo de desarrollos es muy habitual hoy en día por lo que gracias a esto ha podido ampliar sus conocimientos en este campo. Para la implementación del proyecto se han adquirido conocimientos de lenguajes y tecnologías web muy variadas. Gracias a esto se han cubierto conocimientos esenciales en este sector como puede ser la creación y desarrollo de un Portlet. Uno de los primeros pasos fue el estudio de las actuales tecnologías y su comprensión para poder decidirse por una de ellas. El conocimiento sobre estas tecnologías gracias a la oportunidad que le ha brindado la empresa durante estos meses le ayudó a elegir los diferentes lenguajes que se han empleado y portales web. - 114 -

Otro aspecto importante fue la elección de la Base de Datos que se emplearía en la gestión de la información. Se estuvieron barajando dos posibilidades y finalmente, tras un estudio exhaustivo, se llegó a la conclusión de utilizar MySQL. Uno de los puntos más importantes para el autor ha sido el reto de gestionar y desarrollar un proyecto de estas características de principio a fin, eligiendo él mismo la metodología a seguir, con una planificación hasta haber completado todos los objetivos. Como futuras líneas de trabajo para el desarrollo de nuevas aplicaciones para los portales web existen muchas y diversas opciones por experimentar y descubrir. Una posible mejora sería la inclusión de un apartado donde se pudiesen observar los comentarios creados por los usuarios en otros contenidos y las valoraciones que han llevado estadísticamente. Las posibles mejoras son casi infinitas con lo que se podrá seguir personalizando esta aplicación según las necesidades de los usuarios. - 115 -

10. BIBLIOGRAFÍA - 116 -

[SOMM01] Sommerville, I., Software Engineering, Sixth edition Addison-Wesley, Lancaster 2001. [RIVE05] Rivero Cornelio, E., L. Martínez Fuentes, I. Alonso Martínez, Base de datos relacionales: Fundamentos y diseño lógico, Primera edición Universidad Pontificia Comillas Madrid, Madrid 2005. [BARR01] Barranco de Areba, J., Metodología del análisis estructurado de sistemas, Universidad Pontificia Comillas Madrid, Madrid 2001. [ISSI02] Issi Camy, L., Javascript, Primera edición Anaya Multimedia, Madrid 2002. [HOLZ00] Holzner, S., La Biblia de Java 2, Anaya Multimedia 2000, Madrid 2000. [CRAN07] Cranford Teague, J., CSS, DHTML y AJAX, Anaya, 2007. - 117 -

También se consultó con bastante asiduidad los siguientes manuales: Sobre MySQL http://dev.mysql.com/doc/refman/5.0/es/index.html Sobre Portlet http://developers.sun.com/portalserver/reference/techart/jsr168/ http://developers.sun.com/portalserver/reference/techart/portlets.html Sobre JavaScript http://www.w3schools.com/js/default.asp - 118 -

11. Anexo A: Guía de instalación - 119 -

En este apartado se explicarán lo pasos a seguir para instalar los diferentes componentes necesarios para el correcto funcionamiento de la aplicación que se ha desarrollado con este proyecto. El software que se requiere en el servidor es el siguiente: un sistema operativo, un sistema gestor de bases de datos MySQL y un portal con soporte para portlets JSR 286. Dentro de dichas especificaciones se encuentran muchísimas opciones de instalación de software y cada cliente podrá usar la opción que más se adapte a sus necesidades y restricciones. A continuación se expone la guía de instalación de los programas necesarios acorde a las características de proyecto: 11.1. Instalación del portal Esta aplicación se considera multiportal, es decir, es posible desplegarla en cualquier portal que soporte el uso de portlets JSR 286 desarrollados en el lenguaje Java. En este manual se pondrá como ejemplo la instalación del portal Liferay ya que, tras varios estudios, se ha llegado a la conclusión de que es uno de los portales gratuitos más potentes que existen actualmente en el mercado y de sencilla instalación. 1º Descargarse el Zip del portal: El primer paso será acceder a la página web oficial de Liferay que lo ha desarrollado y descargarlo en el equipo. La dirección es: - 120 -

http://www.liferay.com/web/guest/downloads/portal 2º Descomprimir el fichero Zip: El segundo paso consiste en descomprimir el fichero Zip. - 121 -

3º Arrancar el servidor: El tercer y último paso será ejecutar el archivo startup.bat que se encuentra dentro de la carpeta /bin del directorio principal de Liferay. - 122 -

Tras esperar un par de minutos, dependiendo de la configuración del equipo donde se haya realizado la instalación del portal, se abrirá el navegador por defecto mostrando la pantalla principal de Liferay. - 123 -

11.2. Instalación del sistema gestor de base de datos MySQL 1º Descargarse el ejecutable de instalación: El primer paso será descargarse el ejecutable de instalación MySQL Community Server de la página oficial de MySQL. La dirección es la siguiente: http://dev.mysql.com/downloads/ - 124 -

2º Instalar el software: El segundo paso será instalar el software que se acaba de descargar. Para ello se siguen los pasos del asistente. - 125 -

Eligiendo la opción Typical se realizará la instalación en el directorio C:\Archivos de programa\mysql\mysql Server 5.1-126 -

Tras esto se pulsa Install para proceder con la instalación. - 127 -

Al terminar la instalación se ofrece la posibilidad de registrar el software con el servicio SunConnect para recibir las últimas noticias y ofertas de sus productos y configurar el servidor MySQL a continuación. Dejar marcada la opción Configure the MySQL Server now y pulsar Finish. - 128 -

Seleccionar el tipo de servidor por el que vamos a utilizar MySQL 5.1 En este caso seleccionaremos Developer Machine aunque depende del propósito del entorno de producción. - 129 -

A continuación habrá que seleccionar el tipo de transacciones que se van a realizar. Puesto que la aplicación va a ser de propósito online se seleccionará Online Transaction Processing (OLTP). - 130 -

Otro paso será elegir el puerto TCP/IP del servidor MySQL 5.1-131 -

El último paso será elegir la clave del administrador (root) y pulsar Execute para arrancar el servidor MySQL 5.1. - 132 -

11.3. Instalación de la aplicación El siguiente apartado describe cómo instalar la aplicación desarrollada en este proyecto suponiendo que el portal empleado es Liferay. En caso de ser otro portal, la aplicación sería muy similar variando el lugar donde se despliega el portlet. - 133 -

1º Entrar como administrador en el portal: Una vez accedido al portal, autenticarse como el administrador. En las opciones del usuario administrador se selecciona Panel de control. 2º Entrar en el apartado de instalación de plugins: En la página que se muestra a continuación, seleccionar Instalación de plugins. - 134 -

3º Instalar más portlets: A continuación, entrar en el apartado de instalar más portlets y seleccionar la opción Subir archivo. 4º Subir archivo jar de la aplicación: A continuación se pulsa el botón Seleccionar archivo, se selecciona el jar y pulsar Instalar. - 135 -