scieee AI-readable full text Open interactive document viewer

Sistema de gestión de procesos electorales en las organizaciones

Villanueva Roca, Carlos Aarón

Abstract

Trabajo en el cual, se expone el desarrollo de una aplicación web, utilizando para la implementación de la misma, una metodología de desarrollo ágil denominada PUD (Proceso unificado de Desarrollo) y la cual se implementa utilizando un gestor de contenidos denominado Drupal. Como fin el Portal web responde a que los miembros de las organizaciones puedan aportar peticiones y poder votar o firmar las mismas a nivel de organización. De la misma forma permite la gestión de una organización por parte de un rol específico, y la creación y eliminación de usuarios, así mismo como asignar una victoria a una propuesta determinada.El mismo cuenta con integración de usuarios, estos pudiendo modificar su perfil y crear propuestas pudiendo así asociarlas a una organización en concreto. Por otro lado se ilustra la aplicación de ingeniería del software en proyecto web utilizando para ello en este caso como mejor opción un gestor de contenidos. Aprovechándose para ello el uso de modulo los cuales son ofrecidos por una gran comunidad. Cabe destacar que se tienen en cuenta problemas de seguridad y así mismo se exponen soluciones para solventar los mismos, se hacen pruebas para garantizar el correcto funcionamiento de la aplicación. También cabe destacar el poder dejar abierta la posibilidad de utilizar servicios REST a nuestro portal, con la intención de implementar una aplicación para dispositivos móviles y que los mismos tengan acceso a ella o el que otro aplicación de manera externa puede obtener datos de nuestra aplicación, de esta forma se permite el poder ampliar la aplicación y poder ofrecer posibles futuras funcionalidades.

Full text

Trabajo Fin de Grado Escuela de Ingeniería Informática Universidad de Las Palmas de Gran Canaria Sistema de Gestión de procesos electorales en las organizaciones Carlos Aarón Villanueva Roca Las Palmas de Gran Canaria Septiembre 2013 Trabajo Fin de Grado realizado en la Escuela de Ingeniería Informática de la Universidad de Las Palmas de Gran Canaria, para la consecución del título de Ingeniero Informático. Título: Sistema de Gestión de procesos electorales en las organizaciones. Alumno: Carlos Aarón Villanueva Roca. Tutor: Javier Sánchez Pérez Fecha: [Fecha] “Es necesario esperar, aunque la esperanza haya de verse siempre frustrada, pues la esperanza misma constituye una dicha, y sus fracasos, por frecuentes que sean, son menos horribles que su extinción.” Samuel Johnson (1709-1784) Escritor inglés. A mi familia Agradecimientos Me gustaría que estas líneas sirvieran para expresar mi más profundo y sincero agradecimiento a todas aquellas personas que con su ayuda han colaborado en la realización de este trabajo, tanto a mi compañero Alexandre Alemán Pérez como a mi tutor Javier Sánchez Pérez por todo el apoyo ofrecido durante la realización del trabajo ya que de alguno u otra manera me han motivado para poder realizar el mismo. Especial reconocimiento merecen tanto mis profesores como amigos que me han animado en la realización de mis estudios y han estado ahí, para ayudarme y animarme en esos momentos difíciles y han conseguido que no abandonara y pudiera seguir adelante. Agradecer sobre todo por todo el apoyo ofrecido por mi familia tanto económicamente como de ánimos para poder realizar y culminar mis estudios, dándome todo lo que he necesitado y siempre estando a mi lado, desde mis abuelos hasta mis padres, ya que siempre han estado ahí para todo lo que he necesitado. Agradecer a la ULPGC por darme estos cuatro maravillosos años en los cuales he aprendido y de alguna manera madurado y me ha dado la oportunidad de poder realizar mis estudios y abrirme las puertas a nuevas oportunidades. 8 Índice general Prefacio .................................................................................................................................. 11 1. Introducción ................................................................................................................... 13 1.1 Motivación y objetivos ........................................................................................... 14 1.2 Aportaciones .......................................................................................................... 15 1.3 Organización del documento ................................................................................. 16 2. Estado actual del arte ..................................................................................................... 17 2.1 Petición ................................................................................................................... 17 2.2 Peticiones escritas. ................................................................................................. 17 2.3 Peticiones por Internet. ......................................................................................... 17 3. Resumen del Documento ............................................................................................... 22 4. Recursos utilizados ......................................................................................................... 23 4.1 Recursos software .................................................................................................. 23 4.1.1 Drupal .................................................................................................................... 23 4.1.2 Php......................................................................................................................... 23 4.1.3 Css.......................................................................................................................... 23 4.1.4 Mysql ..................................................................................................................... 23 4.1.5 Jquery .................................................................................................................... 24 4.1.6 JavaScript ............................................................................................................... 24 4.1.7 HTML ..................................................................................................................... 24 4.2 Recursos hardware ................................................................................................. 24 5. Planificación del trabajo ................................................................................................. 25 5.1 Metodología de desarrollo ..................................................................................... 25 5.1.1 Características del Proceso Unificado de Desarrollo............................................. 25 5.1.2 Dirigido por los casos de uso ................................................................................. 26 5.1.3 Centrado en la arquitectura .................................................................................. 26 5.1.4 Enfocado en los riesgos ......................................................................................... 27 5.1.5 Vida del Proceso Unificado de Desarrollo ............................................................. 27 5.2 Planificación y temporización ................................................................................ 28 5.2.1 Gestión del TFG. .................................................................................................... 28 5.2.2 Realización y tramitación de la propuesta. ........................................................... 29 5.2.3 Cuestiones Previas. ............................................................................................... 29 9 Desarrollo del TFG .......................................................................................................... 29 5.3 Presupuesto ........................................................................................................... 30 5.3.1 Costes de personal ................................................................................................ 30 5.3.2 Coste Material ....................................................................................................... 30 5.3.3 Costes fungibles .................................................................................................... 31 5.3.4 Costes indirectos ................................................................................................... 31 5.3.5 Total del presupuesto ........................................................................................... 31 6. Desarrollo del trabajo..................................................................................................... 32 6.1 Requisitos del sistema ............................................................................................ 32 6.1.1 Modelo del dominio .............................................................................................. 32 6.1.2 Lista de características .......................................................................................... 35 6.2 Requisitos del software .......................................................................................... 39 6.2.1Actores ................................................................................................................... 39 6.2.2 Modelo de casos de uso ........................................................................................ 40 6.2.3 Especificación de casos de uso .............................................................................. 40 6.2.4 Diagramas de Casos de Uso .................................................................................. 43 6.2.5 Prototipo de interfaz de usuario ........................................................................... 47 6.3 Modelo de análisis ................................................................................................. 49 6.3.1 Organización del modelo análisis .......................................................................... 49 6.3.2 Diagramas de clases .............................................................................................. 49 6.3.3 Diagramas de colaboración ................................................................................... 54 6.4 Modelo de diseño................................................................................................... 59 6.4.1 Organización del modelo de diseño ...................................................................... 59 6.5.1 Diagramas de clases .............................................................................................. 59 6.5 Implementación ..................................................................................................... 73 6.5.1 Implementación en Dispositivos Móviles ................................................................. 79 7. Conclusiones y trabajo futuro ........................................................................................ 83 Anexo I: Competencias ........................................................................................................... 84 Anexo II: Legislación vigente .................................................................................................. 85 Anexo III: Manual de usuario ................................................................................................. 89 Anexo V: Gestor de Contenidos Drupal ............................................................................... 102 Seguridad.............................................................................................................................. 127 Bibliografía ........................................................................................................................... 128 16 Las personas deben ser capaces de utilizar ProAct de forma gratuita en su fase pública, permitiendo que todo usuario que desee formar parte de la plataforma pueda hacerlo sin impedimento alguno. En este sentido no solo se engloba a los usuarios que formulan las propuestas sino aquellos usuarios que acceden para visualizar los resultados de las mismas o que desean ejercer su derecho al voto sobre cada una de las que se sientan identificadas. 1.3 Organización del documento El documento se organiza bien de la siguiente manera, primero de todo haciendo una introducción al trabajo la cual detalla el documento así mismo como todas las aportaciones al respecto. Un resumen del mismo donde se detalla en pocas palabras todo el documento sin entrar en mucho de talle. Una vez introducido el documento y explicado ciertos aspectos, se indaga en lo que ya seria la metodología de desarrollo al respecto. Empezando por el modelo del dominio, un análisis de requisitos donde se muestran los actores los cuales intervienen en la aplicación y una lista de características las cuales describen a grandes rasgos las funciones de la misma. Seguimos con el modelo de análisis en el cual se muestran todo los diagramas de colaboración con sus respectivos actores así mismo continuando con el modelo de diseño en el cual se muestran todos los diagramas de secuencia, para finalmente acabar con una implementación del portal y las pruebas oportunas. Así mismo se detallan en anexos todas las competencias y la legislación para la elaboración del portal así como un manual de usuario en el cual se detalla el uso que se le puede dar al portal. Por último se detalla un anexo en el cuál se especifica todas las opciones de configuración del portal así como los distintos módulos utilizados para la elaboración del mismo. 17 2. Estado actual del arte En este apartado haremos un recorrido bien por las distintas aplicaciones, las cuales cumplen una función similar a la de nuestro proyecto e explicaremos detalladamente el tema en el cual nuestro proyecto se fundamente. Po un lado tratamos especialmente los temas relacionados con la posibilidad de comentar, en este caso estamos hablando de peticiones telemáticas ,es decir por internet donde se da a conocer lo que opina un usuario desde su casa. 2.1 Petición Se podría definir una petición como un derecho que tiene toda persona bien de carácter individual o un grupo u organización para pedir algo en concreto ante una autoridad bien podría ser un gobierno o entidad pública sea un ayuntamiento, etc. Por una causa que interesa no solo al solicitante si no en general. 2.2 Peticiones escritas. Son aquellas que como su propio nombre indica son escritas para un autoridad en concreto, y se trata de un documento oficial el cual va dirigida a esta organización. La cual se tiene que formalizar y hacer llegar a la organización en concreto para dar a conocer lo que este individuo u organización reclaman. Bien , esto con lleva un problema y es la difusión de la misma no es posible que esta petición de alguna u otra forma llegue al pueblo o a personas que podrían estar interesadas en la misma, y es aquí donde llega la posibilidad de hacer peticiones por internet. 2.3 Peticiones por Internet. Son las cuales a diferencia de las escritas nos dan la posibilidad de hacer llegar nuestra petición al pueblo de manera telemática mediante una red social o un servicio web, el cual nos proporciona la posibilidad de difundir la misma por toda la red. Bien se podría hacer a nivel de organización o a nivel público, de alguna u otra manera esto nos posibilita la expansión de una propuesta en concreto. A día de hoy podríamos dar a conocer varios portales los cuales nos ofrecen esta posibilidad, y de los cuales se ha nutrido nuestro proyecto a la hora de realización del mismo. 1CHANGE Change.org Inc. es una organización o corporación constituida legalmente como persona jurídica cuyo negocio incluye la venta y prestación de servicios mediante envíos masivos, listas de correo electrónico y servicios derivados. Change.org además actúa como blog y lugar de acogida libre y pública de peticiones por internet de carácter cívico, reformista, social y, en general reivindicativo del cumplimiento 18 de los derechos humanos. Organizaciones como Amnistía Internacional y Humane Society pagan al sitio para alojar sus peticiones 2CARE2 Care2 es un sitio de Red Social que fue fundado por Randy Paynter en 19981 para ayudar a conectarse a activistas alrededor del mundo. Tiene aproximadamente 15 millones de usuarios.2 Care2 empezó su misión de ayudar a la gente a convertir el mundo en un mejor lugar conectándolos con individuos, organizaciones y responsables de empresas que ayudarían a crear un impacto. Los miembros de Care2 crear una identidad en línea rellenando un perfil con información personal, como en la mayoría de los sitios de redes sociales, pero Care2 también pide información sobre la participación de sus miembros en el activismo. Las interacciones sociales en Care2 giran en torno a los grupos que conectan a las personas que se preocupan sobre temas similares. Peticiones de Internet y artículos periodísticos publicados por los miembros también son de uso frecuente. Características  Perfiles de miembros y grupos para facilitar la creación de redes sociales  Peticiones que cualquier ciudadano puede crear y distribuir  Peticiones creado y promovido por Care2 en asociación con Organización sin ánimo de lucro  E-cards gratis (las cuales también generan donaciones gratis) 19  Los Usuarios escriben noticias e historias sobre sí mismos, y luego votan para decidir cuales serán mostradas en la Red  Blogs  Compartir fotos con espacio ilimitado para subir  Boletines Informativos e "e-alerts" acerca de varias cuestiones como acerca del Ambiente y Los Derechos Humanos  "Care2 JobFinder" en el cual se enlistan trabajos con Compañías Progresivas  Un canal de vida verde con tips sobre Vida Saludable, Una vida más adecuada  Varios canales de contenido sobre temas como el Calentamiento Global, la Mujer y las elecciones presidenciales de EUA del 2008  "Butterfly Reward " Moneda Virtual, Sistema por el cual el usuario puede ganar "Butterfly Credits" a través de 17 tipos de actividades y redimirlos en 1 o más de 13 regalos 3AVAAZ 20 Avaaz.org es una organización civil global fundada en enero de 2007 que promueve el activismo ciudadano en asuntos como el cambio climático, derechos humanos, corrupción, pobreza, derechos de los animales, paz y conflicto. Su objetivo principal es "movilizar a los ciudadanos del mundo para cerrar la brecha entre el mundo que tenemos y el mundo que la mayoría de la gente quiere." La organización trabaja en todo el mundo, tiene sedes diseminadas en numerosas ciudades incluyendo (Río de Janeiro, Ginebra, Nueva York, Londres, Madrid y Washington DC), utiliza 16 idiomas y cuenta con más de veinte millones de miembros en todo el mundo. Según The Guardian: “Avaaz sólo existe hace cinco años pero ha explotado hasta convertirse en la red de activismo online más grande y más poderosa del mundo.” 4SURVEYMONKEY Sitio web con una dinámica ligeramente distinta a la del proyecto pero que si se abstrae básicamente se podría decir que si tiene que ver con el proyecto ya que al fin al cabo lo que busca el la posibilidad de que el usuario participe. Se basa en un sitio web el cual permite crear encuestas en línea, además es un sitio que cobra por sus servicios. 21 La empresa fue fundada en 1999 por Ryan y Chris Finley. En abril de 2009 se vendió a un consorcio, del cual Dave Goldberg es el CEO3 En 2010 recibió USD 100 millones en financiación de deuda de Bank of America, Merrill Lynch y SunTrust Robinson Humphrey. 22 3. Resumen del Documento Se resume el presente documento como una memoria del TFG (Trabajo de Fin de Grado) en la cual se expone un trabajo. Este trabajo como tal se compone de varios capítulos todos ellos teniendo como fin exponer el proceso llevado a cabo en la implementación de este trabajo. Primero de todo nos embarcamos, empezando con una descripción del problema en el cual nos encontramos en la actualidad con respecto a la temática de nuestro trabajo, en este caso una descripción de lo que es una petición y a su vez comentando implementaciones parecidas a las de nuestro trabajo. Continuamos el trabajo con un resumen del documento, los recursos que hemos utilizados, en este caso tanto hardware como software, llegando a una descripción en la que se explica la planificación del presente documento. Una vez tocado una introducción por así decirlo del trabajo, nos metemos de lleno en lo que sería el desarrollo del trabajo como tal, haciendo uso de la metodología de desarrollo ágil PUD y tocando todas las fases de la misma. Empezando por un modelo de dominio, el cual nos expone el dominio de nuestro portal explicando las distintas clases que utilizamos para la implementación del mismo. Teniendo como dos clases muy importante, la clase usuario y la clase propuesta. Ya que estas dos son la raíz de nuestro portal. Continuando así con una lista de características detallando así la funcionalidad de nuestro portal y los roles de usuarios dentro de la misma. Pasando así por una fase de análisis y de diseño con sus distintos diagramas de colaboración y secuencia, llegando así a una fase de implementación. En la cual implementamos el sitio utilizando Drupal y nos embarcamos en la configuración del mismo y el uso de los distintos módulos para poder llevar a cabo un portal funcional. Terminando con unas pruebas para comprobar que efectivamente el portal funciona y nos presta una serie de servicios, los cuales se describen en la lista de características. Por otro lado también se comenta, las competencias que se dan en este trabajo y las cuales se cumplen para poder entregar el mismo, así como un manual de usuario en el cual se detalla cómo se puede hacer uso de la aplicación de una forma clara y sin dar muchas vueltas. Terminando así el documento con una legislación de las distintas leyes utilizadas para la elaboración del mismo, y con una bibliografía en la cual se detalla la distinta documentación utilizada para la elaboración del portal. Reflejando así a grandes rasgos un trabajo en el cual se detalla la implementación de un portal, utilizando ingeniería del software con una metodología de desarrollo ágil. Este trabajo con una temática de peticiones, con una interacción clara de usuarios. Todo detallado y justificando paso a paso la implementación del mismo. Tocando todos los puntos en un trabajo el cual podría tener un futuro bastante amplio. 23 4. Recursos utilizados A continuación se ilustra todos los recursos utilizados para la elaboración del portal tanto software como hardware. 4.1 Recursos software Del lado del software nos encontramos con los siguientes recursos: 4.1.1 Drupal Drupal es un CMF(Content Management Framework) modular multipropósito y muy configurable que permite publicar artículos, imágenes, y otras cosas u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web. 4.1.2 Php PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes. PHP puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo. 4.1.3 Css Las hojas de estilo en cascada o (Cascading Style Sheets, o sus siglas CSS) hacen referencia a un lenguaje de hojas de estilos usado para describir la presentación semántica (el aspecto y formato) de un documento escrito en lenguaje de marcas. Su aplicación más común es dar estilo a páginas webs escritas en lenguaje HTML y XHTML, pero también puede ser aplicado a cualquier tipo de documentos XML, incluyendo SVG y XUL. 4.1.4 Mysql MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez 24 de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual. 4.1.6 Jquery jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones (FLV) y Agregar interacción con la técnica AJAX a páginas web. Fue presentada el 14 de enero de 2006 en el BarCamp NYC. jQuery es la biblioteca de JavaScript más utilizada 4.1.7 JavaScript JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (clientside), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo. 4.1.8 HTML HTML, siglas de HyperText Markup Language («lenguaje de marcado hipertextual»), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que, en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, etc. Es un estándar a cargo de la W3C, organización dedicada a la estandarización de casi todas las tecnologías ligadas a la web, sobre todo en lo referente a su escritura e interpretación. 4.2 Recursos hardware Como recursos hardware nos encontramos con un equipo no tan potente, pero que cumple perfectamente con su cometido. 4Gb de Memoria RAM Procesador Intel I3 Grafica Nvidia 8800 gt HD-1TB 25 5. Planificación del trabajo En este capítulo se describe la metodología de desarrollo a utilizar todos sus aspectos más característicos, así como un presupuesto estimado para la realización de este proyecto y una estimación para la realización del mismo. 5.1 Metodología de desarrollo Para la elaboración de este proyecto se ha elegido una metodología de desarrollo ágil denominada PUD (Proceso Unificado de Desarrollo) la cual nos aporta todas las ventajas de utilizar una metodología ágil y a su vez poder desarrollar un proyecto que se adapte al cambio y que no se centre tanto en la documentación. Así mismo utilizamos una metodología ya estudiada y la cual es bastante llevadera a la hora de trabajar y muy concisa en sus distintas fases, dando como resultado un proyecto funcional. Es una metodología de desarrollo de software que está basado en componentes e interfaces bien definidas, y junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. Es un proceso que puede especializarse para una gran variedad de sistemas de software, en diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños de proyecto. PUD no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. Es el resultado de varios años de desarrollo y uso práctico en el que se han unificado técnicas de desarrollo, a través del UML, y trabajo de muchas metodologías utilizadas por los clientes. 5.1.1 Características del Proceso Unificado de Desarrollo Al igual que con cualquier otro modelo de desarrollo, del Proceso Unificado también se pueden destacar ciertas características. Iterativo e incremental El Proceso Unificado es un marco de desarrollo compuesto de cuatro fases: ● Inicio ● Elaboración ● Construcción ● Transición 32 6. Desarrollo del trabajo En este punto haremos un recorrido por todo el desarrollo de la aplicación, todo esto utilizando la metodología PUD (Proceso unificado de desarrollo) pasando por cada una de sus fases. 6.1 Requisitos del sistema En esta sección se describen dos puntos muy importantes con respecto al trabajo que son el modelo del dominio y la lista de características. Ya que facilitan a los desarrolladores a comprender el contexto en el cual están trabajando y así poder recopilar requisitos. 6.1.1 Modelo del dominio El software encargado del control de consultas que han sido creadas por organizaciones o partidos políticos y que necesitan del sufragio para su aprobación de las diferentes Elecciones o propuestas allí formuladas. Este software esta implementado bajo una web 2.0 y el cual necesitará de un registro obligatorio por parte de todas las organizaciones que deseen plantear consultas o generar procesos electorales. En este sentido las organizaciones podrán restringir el uso del voto en función del rol, filiación u interés del firmante o votante, es decir, todo votante deberá también estar registrado en el portal web y aportar sus datos, los cuales servirán para filtrar el acceso al voto de las múltiples propuestas o procesos de elección en el caso de partidos políticos. Cada organización obtendrá un perfil asociado a la misma el cual permitirá hacer cambios tanto en las peticiones realizadas, como generar una muestra interna de resultados en función de los intereses de la organización. Dicho software mostrará a través de los diferentes filtros, las gráficas de voto y los resultados que se han obtenido durante los procesos de elección y permitirá la compartición de los datos a través de las redes sociales siempre y cuando posean un registro previo en el portal. Este software permitirá la mensajería interna entre los diferentes usuarios registrados del portal así como la difusión de información en relación a los diferentes procesos electorales de forma periódica. Así mismo a continuación se ilustra un diagrama de clases, en el cual queda reflejado todas las entidades que entran en juego en la aplicación. 33 34 Tenemos las siguientes clases. - Usuario Clase abstracta la cual representa a un usuario anónimo en la aplicación. - Organización Clase heredada de usuario la cual representa a un usuario con el rol de organización. - Usuario Identificado Clase heredada de usuario la cual representa a un usuario logueado en el sistema pero con roles limitados - Usuario Miembro Clase heredada de usuario identificado pero que a su vez tiene asociadas organizaciones. - Perfil Clase la cual representa el perfil de dos tipos de usuario el de la organización y el usuario miembro. - Firma Clase la cual representa una firma a un usuario asociado y a una propuesta 35 - Propuesta Clase muy importante la cual representa una propuesta en sí tiene asociado votos, firmas, comentarios y victorias y la misma tiene un usuario único asociado. - Voto Clase la cual representa un voto a una propuesta para un usuario determinado. - Comentario Clase la cual representa un comentario a un usuario asociado en cuestión y para una propuesta. - Victoria Victoria asociada a una propuesta. De esta manera queda reflejada que tenemos por un lado usuarios que estos tienen asociadas propuestas y que en función de su rol podrían crear o no propuestas, y asociarlas a una organización o no. Que estas propuestas pueden tener comentarios, victorias e incluso comentarios asociadas a usuarios. 6.1.2 Lista de características Introducción a la lista de características En este documento se detallará la lista de características asociadas al Sistema de Gestión de Procesos electorales en las organizaciones (ProActPro). La lista de características es un artefacto que se obtiene después de aplicar la tarea de “Enumerar los requisitos candidatos”, que se propone en la metodología del PUD (Proceso Unificado de Desarrollo), para la captura de requisitos. Esta lista contiene las ideas de clientes, usuarios, analistas y desarrolladores sobre posibles aspectos que se podrían incluir en la aplicación, y que, posteriormente, se podrán traducir en requisitos del software. Estas ideas se consideran requisitos candidatos que se podrán desarrollar en la versión actual del sistema o se podrán postergar a versiones futuras. Este artefacto sirve para gestionar el proyecto y sólo se utiliza para la planificación del trabajo. Podrá ir variando a medida que avance el proyecto, pudiéndose añadir y modificar las características que se crean oportunas, en cualquier momento del desarrollo. Tipos de Usuarios La clasificación de los usuarios es una primera aproximación para identificar y asociar con cada uno de los posibles usuarios; estos tipos de usuarios identificados no necesariamente tienen que ser los usuarios definitivos. Usuarios Generales de la aplicación (ProActPro). - Anónimo: Este usuario puede acceder al portal en esta versión del software pero solo para realizar el registro o inicio de sesión de usuarios. 36 - Registrado: Este usuario puede acceder al portal, aportando su firma de las distintas peticiones o Elecciones del portal a las cuales pertenezca por su filiación, además de poder compartir mediante redes sociales o correos las peticiones en las que haya aportado su firma. Este rol de usuario también podrá modificar sus datos a través de su perfil de usuario que ha sido creado en el registro efectuado previamente en la aplicación. Dicho usuario tendrá disponible la mensajería interna con otros usuarios del portal. - Empresa o Institución: El usuario empresa o institución puede acceder al portal a través de su registro previo y realizar las Elecciones, consultas o procesos electorales que considere convenientes. Dichas Elecciones podrán ser filtradas para que puedan ejercer su derecho al voto las personas pertenecientes a la entidad que considere convenientes la misma, así pues se ejerce un cortafuegos y da un mayor valor a los datos obtenidos en el proceso. La empresa a través de su perfil podrá modificar las distintas Elecciones efectuadas por la misma y obtener los valores de las Elecciones de las formas más cómodas posibles - Moderador: Es aquel que posee todas las características del usuario anónimo, pero así mismo este usuario se encarga de moderar el contenido de las distintas peticiones realizadas por los usuario del portal, haciendo que se cumpla la legalidad, el decoro y pudiendo eliminar aquellas que no fuesen oportunas. Este usuario puede vanear a usuarios que ejerzan un mal uso de la plataforma. -Administrador: Este usuario posee un control total del portal, teniendo acceso no solo a la plataforma como usuario si no a nivel de desarrollador, pudiendo modificar código del mismo, solucionar errores, efectuando un mantenimiento continúo del sistema. Lista de Características Para describir las características, utilizamos una tabla con los siguientes campos: - Código: Es el identificador de la característica. Se especifica como LC + Categoría + Número. Las categorías se detallan más abajo. - Nombre de la característica. - Descripción: Breve descripción de lo que comprende la característica. - Prioridad: Se asigna una prioridad a cada una con el fin de determinar el orden en que se van a ir desarrollando. Las prioridades que se usaran serán dadas por un valor numérico que representa el nivel de prioridad donde 0 sería la más baja y 100 la más alta, luego están los rangos que se muestran a continuación.  80-100 (Muy alta)  60-80 (Alta)  40-60 (Media)  20-40 (Baja)  0-20 (Muy baja) - Estado: Cada característica tiene un estado asociado que irá variando a medida que progrese el sistema. Los posibles estados son:  Aceptado: La característica se desarrollará en esta versión del producto.  Planificada: La característica ya ha sido planificada y se empezará a desarrollar en un plazo de tiempo corto.  En desarrollo: Ya se está desarrollando. 37  Finalizada: Se ha terminado de desarrollar.  Postergada: No se desarrollará hasta una versión futura.  Rechazada: Probablemente no se desarrollará en ninguna versión. - Riesgo: Cada característica puede tener asociado un riesgo que representa la dificultad para conseguir implementarla correctamente. Utilizamos tres niveles de riesgo:  Crítico  Significativo  Rutinario Para organizar tenemos los identificadores para cada tipo de usuario de la aplicación A. Usuarios Registrado en ProActPro EI. Usuario Empresa o Institución en ProActPro M. Usuario Moderador de ProActPro AD. Usuario Administrador de ProActPro Con los identificadores anteriormente propuestos podemos ayudar a colocarle un código a cada característica con respecto al usuario que realiza la funcionalidad. Código Nombre Descripción Prioridad Estado LC-A.1 Crear Cuenta El usuario de portal creará su cuenta de usuario en el portal 100 Aceptada LC-R.1 Buscar Elección La aplicación permitirá a cualquier usuario introducir el nombre de una Elección y mostrará los resultados de la búsqueda 90 Aceptada LC-R.2 Visualizar Elección La aplicación permitirá una Elección previamente localizada. 98 Aceptada LC-R.3 Visualizar Elecciones ganadas El usuario puede acceder a un listado de las distintas Elecciones las cuales han logrado su objetivo. 64 Aceptada LC-R.4 Visualizar Elecciones recientes El usuario podrá listar las Elecciones más recientes introducidas en el portal. 66 Aceptada LC-R.5 Visualizar Elecciones populares El usuario podrá visualizar en un listado las Elecciones más firmadas del portal. 70 Aceptada LC-R.6 Visualizar Elecciones organizadas por causas El usuario podrá acceder a una lista de peticiones organizadas por la causa objetivo 76 Aceptada LC-R.7 Votar El usuario puede rellenando sus datos Votar en una Elección determinada, apoyando la misma. 97 Aceptada LC-R.8 Denunciar Elección El usuario podrá denunciar el contenido de una Elección 40 Aceptada 38 LC-R.9 Navegar en el portal El usuario podrá navegar por las funcionalidades del portal 38 Aceptada LC-R.10 Cambiar idioma El usuario podrá cambiar el idioma del portal web 35 Aceptada LC-R.11 Eliminar Cuenta El usuario podrá eliminar su cuenta de usuario en el portal 73 Aceptada LC-R.12 Iniciar sesión El usuario iniciará sesión en el portal 99 Aceptada LC-R.13 Cerrar sesión El usuario cerrará la sesión en el portal 93 Aceptada LC-R.14 Iniciar Sesión con Facebook El usuario podrá iniciar sesión con su cuenta de facebook 98 Aceptada LC-R.15 Editar Perfil de Usuario El usuario podrá editar el su perfil de usuario 88 Aceptada LC-R.16 Calificar Elección El usuario podrá calificar una Elección 56 Aceptada LC-EI.1 Crear Elección El usuario efectuar una Elección para su publicación 96 Aceptada LC-EI.2 Editar Elección El usuario podrá editar el formato de la Elección 75 Aceptada LC-EI.3 Compartir Elección El usuario podrá compartir una Elección mediante mensajería interna o el correo electrónico. 94 Aceptada LC-EI.4 Declarar Victoriosa una Elección El usuario podrá declarar una victoria sobre la petición creada en función del objetivo marcado. 89 Aceptada LC-EI.5 Enviar Mensajes El usuario podrá enviar mensajes a cualquier creador de una petición en el portal 69 Aceptada LC-EI.6 Borrar Elección El usuario que efectúa la Elección podrá eliminarla. 77 Aceptada LC-EI.7 Compartir Elección mediante Facebook El usuario podrá compartir una Elección realizada a través de facebook 75 Aceptada LC-EI.8 Imprimir listado de firmantes El usuario que efectúa la Elección podrá imprimir un listado con los firmantes de la misma. 10 Aceptada LC-EI.9 Filtrar la votación El usuario podrá efectuar un filtro para ejercer una elección sobre los usuarios que considere en su empresa 89 Aceptada 39 LC-EI.10 Asignar un usuario a una institución La empresa o Institución podrá asignar él un usuario que lo solicite a su personal dentro del portal 98 Aceptada LC-M.1 Bloquear Elección El moderador podrá bloquear una Elección que haya sido denunciada o sea indecorosa 43 Aceptada LC-M.2 Bloquear Perfil El moderador podrá bloquear cualquier perfil que tenga que ser revisado por fraudulento 23 Aceptada LC-M.3 Crear Causas El moderador podrá crear causas a las cuales se asocian las Elecciones 15 Aceptada LC-M.4 Borrar Causas El moderador podrá borra causas creadas por error o redefinirlas 14 Aceptada LC-AD.1 Actualizar portal El administrador podrá actualizar las diferentes funcionalidades del portal 49 Aceptada LC-AD.2 Bloquear el portal El administrador podrá bloquear el portal a fin de hacer modificaciones en el mismo 73 Aceptada LC-AD.3 Dar permisos a los roles de usuario El administrador podrá asignar los permisos de usuario a los roles creados 67 Aceptada 6.2 Requisitos del software 6.2.1 Actores Existes tres tipos de actores de casos de uso en nuestra aplicación, los cuales serían los tipos de usuarios que tendría nuestro sistema, ya que cada uno por separado tiene acceso a las distintas funcionalidades que brindamos. Anónimo Miembro Organización Moderador Administrador 40 6.2.2 Modelo de casos de uso Identificación de los casos de Uso Casos de Usos Prioridad Buscar Elección 90 Visualizar Elección 98 Visualizar Elecciones ganadas 64 Visualizar Elecciones recientes 66 Visualizar Elecciones populares 70 Visualizar Elecciones organizadas por causas 76 Crear Proceso Electoral 96 Editar Elección 75 Compartir Elección 94 Votar 97 Declarar victoriosa una Elección 89 Iniciar sesión con Facebook 98 Crear Cuenta 100 Eliminar Cuenta 73 Iniciar Sesión 99 Cerrar Sesión 93 Editar Perfil de usuario 88 Enviar Mensajes 69 Borrar Elección 77 Calificar Elección 56 Imprimir listado de firmantes 10 Denunciar Elecciones 40 Navegar en el portal 38 Cambiar Idioma 35 Bloquear Elección 43 Compartir Elección mediante Facebook 75 Bloquear Perfil 23 Crear Causas 15 Borrar Causas 14 Filtrar Votación 89 Asignar usuario a una institución 98 Actualizar Portal 49 Bloquear Portal 73 Dar permisos a roles de usuario 67 6.2.3 Especificación de casos de uso - Descripción de los casos de uso arquitectónicamente prioritarios Crear Cuenta Caso de Uso Crear Cuenta Actor Usuario Anónimo 41 Precondición Post condición El Usuario queda registrado en el sistema Flujo normal 1La aplicación mostrará un formulario en el cual el usuario aportará sus datos personales para crear su cuenta en la aplicación 2El sistema valida los datos y crea la cuenta del usuario en el portal Flujo alternativo 1.1 -El usuario no inserta toda la información necesaria para crear una Elección. 1.2 El sistema impide la creación de la Elección mandando un mensaje para que se rellenen todos los datos. Iniciar Sesión Caso de Uso Iniciar Sesión Actor Usuario Registrado Precondición El usuario debe tener cuenta en el sistema Post condición El usuario queda logueado dentro del sistema Flujo normal 1El usuario introduce su nombre de usuario y contraseña 2El sistema comprueba los datos introducidos en el sistema 3El usuario accede al sistema tras su logueado Flujo alternativo 1.1El usuario no introduce correctamente o el nombre de usuario o la contraseña 1.2El sistema muestra un mensaje indicando la introducción errónea de datos 1.3El sistema permanece en la introducción de nombre de usuario y contraseña Visualizar Elección Caso de Uso Visualizar Elección Actor Usuario Registrado Precondición El sistema este mostrando los títulos de las Elecciones existentes en el sistema Post condición El sistema muestra la Elección con las vicisitudes de la misma. 48 Prototipos de Interfaces para caso de uso “votar” Simplemente el usuario vota la propuesta ya abierta. Prototipos de Interfaces para caso de uso “Añadir propuesta” El usuario bien registrado o no añade una propuesta luego este la editar añadiéndole contenido a la misma. 49 6.3 Modelo de análisis El análisis se desarrolla sobre las tablas de lujo de sucesos descritas du Rente los requisitos. Primero se presentara una visión general de la organización de la aplicación, con los diferentes paquetes identificados. A continuación se realizaran los diagramas de clase para idéntica los elementos estructurales que intervienen en el caso de uso especificado. Posteriormente se obtendrá el diagrama de colaboración, en el que quedara recejado cómo interactúan estas entidades, tanto en la forma de comunicarse (mensajes que se envían), como en la temporización de la interacción (orden en el que se realiza cada paso de la Comunicación). 6.3.1 Organización del modelo análisis El modelo de análisis se organiza, primero de todo con un diagrama de clases en el cual se detalla las distintas clases utilizadas, y luego de esto un diagrama de colaboración en el cual se detalla un uso de las mismas. 6.3.2 Diagramas de clases Crear Proceso Electoral Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso Crear Proceso electoral. Para el caso Crear usuario podemos observar como se ha utilizado una clase control “Elección” que es la que se encargará de realizar el cambio de estado entre los datos introducidos en la nueva Elección y la imagen de la misma ya creada. También se está utilizando una clase de control validar que se encargara de la validación de los datos introducidos en la nueva Elección para poder confirmar la creación de la misma. Como no podía ser de otra manera debe existir una interfaz de formulario de Elecciones que permita la introducción de la misma y una entidad que muestre la nueva Elección ya terminada. Crear Proceso electoral Crear Proceso electoral <<trace>> 50 Crear Cuenta Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso Crear Cuenta. En este diagrama podremos observar una interfaz llamada FormularioRegistro que será la encargada de mostrar el formulario que un usuario debe rellenar para crear su cuenta dentro de la aplicación. Una vez rellenado dicho formulario se procede a la validación de los datos introducidos en el sistema y se efectúa el registro de los datos en el sistema, mostrándose a continuación el apartado de inicio de sesión o de login del sistema. Crear Cuenta Crear Cuenta <<trace>> 51 Visualizar Elección Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso Visualizar Elección En este diagrama nos encontramos con la interfaz de selección que está basada en la muestra mediante imagen o texto de cualquiera de las Elecciones creadas en el sistema y que a través del control de visualización transforma la vista de visualización dejando la interfaz que muestra la VistaElección. Visualizar Elección Visualizar Elección <<trace>> 52 Votar Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso Votar. En este diagrama nos vamos a encontrar con una interfaz Formulario de Voto que será el encargado de recibir todos los datos de los usuarios firmantes de una Elección que haya sido previamente seleccionada. Una vez relleno el formulario se procede a validar los datos que el votante ha introducido a través del control de validación que a su vez está asociada con el control de voto que es el control encargado del paso intermedio y la contabilización de los nuevos votos. Por último se muestra el aumento o la actualización del proceso de firmado. Iniciar Sesión Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso iniciar sesión. Votar Votar <<trace>> 53 En este diagrama podemos observar el uso de un formulario de inicio de sesión que se encargará de la introducción del nombre de usuario y la contraseña de un usuario previamente registrado. Una vez relleno el formulario se procede al envío de los datos al servidor de validación que será el encargado de la comprobación de la identificación del usuario. Por último y una vez comprobada la autentificación de los datos se muestra el perfil del usuario. Agregar Usuario a Institución Una clase de análisis y sus objetos normalmente participan en varias realizaciones de casos de uso, lo cual se representa de la siguiente manera en el caso de uso Asignar un usuario a Institución Iniciar Sesión Iniciar Sesión <<trace>> Asignar un usuario a Institución Asignar un usuario a Institución <<trace>> 54 En este diagrama podemos observar como es necesaria una interfaz encargada de asignar a un usuario que solicite pertenecer a una institución. Dicho formulario se encargara de seleccionar al usuario en cuestión por parte de la institución y registrarla dentro de la misma. Una vez añadido mostrará una lista con el conjunto de usuarios asignados a la empresa o institución 6.3.3 Diagramas de colaboración Crear Proceso Electoral Diagrama de colaboración para el flujo normal. 55 Diagrama de colaboración para el flujo alternativo. Crear Cuenta Diagrama de colaboración para el flujo normal. 56 Diagrama de colaboración para el flujo alternativo. Visualizar Propuesta Diagrama de colaboración para el flujo normal. 57 Votar Diagrama de colaboración para el flujo normal. Diagrama de colaboración para el flujo alternativo. 64 La clase del servidor de validación a través de sus operaciones se encargara de validar y de enviar los datos allí comprobados tanto al perfil si la validación se procede de forma correcta, como al formulario para su posterior rectificación. Una realización de caso de uso del diseño proporciona una traza directa a una realización de caso de uso de análisis en el modelo de análisis. A lo largo del siguiente diagrama podemos observar cómo a través de la interfaz de asignación se hace uso de una operación de selección encargada de seleccionar a los usuario que se adscribirán a una institución o empresa. Una vez asignado y registrado dicho usuario en la empresa se envían los datos para mostrar una lista con los usuarios pertenecientes a dicha institución. Asignar un usuario a Institución Asignar un usuario a Institución <<trace>> 65 Crear Proceso Electoral Diagrama de secuencia para el flujo normal. 66 Diagrama de secuencia para el flujo alternativo. 67 Crear Cuenta Diagrama de secuencia para el flujo normal. 68 Diagrama de secuencia para el flujo alternativo. 69 Visualizar Propuesta Diagrama de secuencia para el flujo normal. 70 Votar Diagrama de secuencia para el flujo normal. 71 Diagrama de secuencia para el flujo alternativo. Iniciar Sesión Diagrama de secuencia para el flujo normal. 72 Diagrama de secuencia para el flujo alternativo. 73 Asignar usuario a institución Diagrama de secuencia para el flujo normal. 6.5 Implementación Antes de empezar a explicar los distintos aspectos de implementación del portal, vamos a realizar una justificación del porque de Drupal a la hora de llevar a cabo la implementación del portal. Empezamos diciendo que efectivamente este portal se podría llevar a cabo perfectamente sin la necesidad de implementarlo mediante Drupal, haciendo todo desde un nivel más abajo menos final. Bien se ha decidido usar Drupal porque no solo nos facilita mucho la vida a la hora de realizar el portal sino también porque es una herramienta con muchos módulos 80 De esta manera podríamos obtener distintos datos de uno de los nodos por ejemplo de un nodo tipo propuesta podríamos obtener la propuesta o el autor de la misma. Así mismo podríamos también actualizar un nodo todo esto accediendo al servidor rest. Esto nos facilita ya que se podría implementar una aplicación Android la cual acceda a este portal para obtener la información y ya posteriormente representar en la aplicación correspondiente o también en otro portal o aplicación poder obtener estos datos y actualizar los mismos. Las pruebas correspondientes para poder comprobar el correcto funcionamiento de este servidor las hemos realizado utilizando un Cliente Rest en java mediante Eclipse Juno. Que básicamente lo que hacemos primero de todo es obtener una clase a partir del XML el cual representa los datos del Nodo el cual queremos obtener los datos, tanto para identificarnos en la plataforma como el Nodo correspondiente en este caso el Nodo de tipo propuestas. Una vez realizada la autenticación en el portal comprobamos obteniendo un Nodo en concreto en este caso el de una propuesta si podemos acceder a los datos y efectivamente podemos acceder y también modificar el contenido sin ningún tipo de problemas. Dejando abierto este aspecto de la plataforma para futuras implementaciones y mejoras que se podrían dar en un futuro. Pruebas Con respecto a las pruebas, la estrategia escogida para poder comprobar la correcta funcionalidad del portal ha sido la siguiente. Por un lado utilizar nuestra máquina como servidor, dándole acceso desde fuera y a su vez comprobando que se cumplieran todas las funcionalidades. Añadiendo para cada rol un usuario correspondiente y comprobando que efectivamente este usuario cumple con las características a las cuales el mismo puede acceder. 81 Para poder realizar pruebas desde una red local externa a la nuestra se ha optado por utilizar el siguiente servicio el cual nos ofrece la posibilidad de agregar un host y mediante una aplicación poder acceder desde el exterior: Con el mismo nos creamos una cuenta y configuramos nuestro host en este caso proact.no-ip.org Una vez hecho esto lo único que tenemos que hacer es abrir los puertos y ya una vez hecho esto tendríamos acceso a nuestro portal desde fuera como se ilustra a continuación: 82 Una vez hecho esto nos descargamos el software de No-IP para que automáticamente nos actualice nuestra ip, ya que la misma es dinámica y tendríamos el sitio corriendo sin ningún problema. Así mismo podemos apreciar que también tenemos corriendo nuestra base de datos en mysql. 83 7. Conclusiones y trabajo futuro Como conclusión de la elaboración desarrollo del portal se concluye que la realización de este trabajo en un principio parecía bastante compleja o perdida la idea de cómo enfocar el mismo. Pero que a medida que se iba avanzando en la metodología y especificando cada una de las características a implementar el portal, el proyecto tomo rumbo y se pudo llevar a cabo el mismo sin muchas complicaciones. Así mismo nos ayudo a la hora de cómo buscarnos la vida cuando tenemos un problema o cuando queremos desarrollar algo y no tenemos salida, dándonos lugar a la búsqueda de información en internet mediante una comunidad bastante grande la cual cuenta con bastante apoyo en este caso Drupal. Concluyendo claro está que las ventajas de elegir Drupal o un Gestor de Contenido no solo están en el hecho de simplificarnos la vida desarrollando si no en el gran soporte por una gran comunidad de gente donde se participa a diario y se resuelven errores cada día. Por otro lado con respecto a lo que el proyecto en si quiere transmitir o la idea que se quiere reflejar la veo bastante buena y es el hecho de poder de alguna forma que el ciudadano pueda votar desde sus casas y que se le tome en cuenta proponiendo y haciendo una política más abierta dando la posibilidad de tener una comunidad en la cual se pueda dar a las opiniones de los distintos ciudadanos pero a nivel de organización. Todo esto se podría controlar y ser más restringido en cuanto a su uso, aprovechándose tecnologías como el DNI electrónico pero la idea viene a hacer clara, y es una idea la cual podría abrirse y expandirse. Por último concluyo ya como último punto que la realización de este trabajo a ayudado a reforzar y sobre todo poder experimentar el uso de una metodología de desarrollo ágil en este caso la del Proceso Unificado de Desarrollo y luego llevar a cabo una implementación de la misma de una manera bastante llevadera. Ha ayudado a reforzar conceptos de seguridad a la hora de llevar a cabo la implementación de un portal web y aspectos de programación estudiados a lo largo de la carrera. 84 Anexo I: Competencias CII01 Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente Claramente se lleva a cabo esta capacidad ya en el hecho de tener que decidir e implementar el portal utilizando en este caso una tecnología de código abierto que es Drupal y llevando a cabo la utilización de módulos de esta gran comunidad. CII02 Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social. Esta competencia se ve clara desde un principio en el uso de una metodología de desarrollo ágil en este caso PUD que nos da la posibilidad de llevar a cabo un proyecto y de alguna otra manera el poder mantenerlo en marcha y poder mejorarlo con el paso del tiempo así mismo aprovechando una gran tecnología como es Drupal que está continuamente mejorando. CII04 Capacidad para elaborar el pliego de condiciones Técnicas de una instalación informática que cumpla los estándares y normativas vigentes. Claramente todas estas herramientas cumplen su estándar y son elaboradas siguiendo una planificación cumplimiento la normativa y en este caso utilizando software libre. CII18 Conocimiento de la normativa y la regulación de la informática en los ámbitos nacional, europeo e internacional. Se ha hecho conocimiento de la misma y se cumple perfectamente en el desarrollo del portal de una forma sostenible. TFG01 Ejercicio original a realizar individualmente y presentar y defender ante un tribunal universitario, consistente en un proyecto en el ámbito de las tecnologías específicas de la Ingeniería en Informática de naturaleza profesional en el que se sinteticen e integren las competencias adquiridas en las enseñanzas. A lo largo de la implementación del portal se puede ver como se han aplicado conocimientos relacionados directamente con las tecnologías y con conocimientos adquiridos durante la realización de la carrera. 85 Anexo II: Legislación vigente Todo sitio web debe cumplir las leyes nacionales del lugar donde declara y realiza su actividad. En nuestro caso tratamos la legislación española y analizaremos los principales puntos que deberá tener en cuenta para saber si la página web se ve afectada. Básicamente se podría decir que si la web: - Realiza o es reflejo de una actividad mercantil -> Deberá cumplir la L.S.S.I. - Recoge datos personales de los usuarios mediante formularios -> Deberá cumplir la L.S.S.I. - Almacena datos personales de usuarios en bases de datos -> Deberá cumplir la L.O.P.D. Tras hacer un breve repaso por los apartados que debe cubrir un portal web, concretaremos aquellos puntos dentro de los cuales se encuentra encuadrada la plataforma a desarrollar y especificaremos en qué consisten dichos puntos. LSSI El portal web deberá estar bajo los auspicios de la L.S.S.I, tanto en cuento debe cubrir los siguientes objetos marcados por dicha ley: Todo servicio prestado normalmente a título oneroso, a distancia, por vía electrónica y a petición individual del destinatario. El concepto de servicio de la sociedad de la información comprende también los servicios no remunerados por sus destinatarios, en la medida en que constituyan una actividad económica para el prestador de servicios Son servicios de la sociedad de la información, entre otros y siempre que representen una actividad económica, los siguientes: La contratación de bienes o servicios por vía electrónica. La organización y gestión de subastas por medios electrónicos o de mercados y centros comerciales virtuales. La gestión de compras en la red por grupos de personas. El envío de comunicaciones comerciales. El suministro de información por vía telemática. El vídeo bajo demanda, como servicio en que el usuario puede seleccionar a través de la red, tanto el programa deseado como el momento de su suministro y recepción, y, en general, la distribución de contenidos previa petición individual. Ahondando en los servicios de la sociedad de la información se debe decir que: En el derecho de la Unión Europea, la definición legal de este tipo de servicios se halla en el apartado 2 del artículo 1 de la Directiva 98/34/CE, en su redacción modificada por la Directiva 98/48/CE. Se considera servicio de la sociedad de la información “todo servicio prestado normalmente a cambio de una remuneración, a distancia, por vía electrónica y a petición individual de un destinatario de servicios”. 86 Lo que se pretende indicar con este requisito es que el servicio debe constituir una actividad de naturaleza económica para el prestador. Por tanto, son también servicios de la sociedad de la información los que se prestan gratuitamente y obtienen sus ingresos por otras vías, especialmente a través de la publicidad LSSICE Englobado dentro de la LSSI hay que hacer mención a la ley de antispam, la cual deja bajo las directrices de sus artículos a todos aquellos elementos informáticos que contravengan sus artículos: Artículo 20. Información exigida sobre las comunicaciones comerciales, ofertas promocionales y concursos. 1. Las comunicaciones comerciales realizadas por vía electrónica deberán ser claramente identificables como tales y deberán indicar la persona física o jurídica en nombre de la cual se realizan. En el caso en el que tengan lugar a través de correo electrónico u otro medio de comunicación electrónica equivalente incluirán al comienzo del mensaje la palabra «publicidad». 2. En los supuestos de ofertas promocionales, como las que incluyan descuentos, premios y regalos, y de concursos o juegos promocionales, previa la correspondiente autorización, se deberá asegurar, además del cumplimiento de los requisitos establecidos en el apartado anterior y en las normas de ordenación del comercio, que queden claramente identificados como tales y que las condiciones de acceso y, en su caso, de participación se expresen de forma clara e inequívoca. Artículo 21. Prohibición de comunicaciones comerciales no solicitadas realizadas a través de correo electrónico o medios de comunicación electrónica equivalentes. Queda prohibido el envío de comunicaciones publicitarias o promocionales por correo electrónico u otro medio de comunicación electrónica equivalente que previamente no hubieran sido solicitadas o expresamente autorizadas por los destinatarios de las mismas. LOPD La Ley Orgánica 15/1999 de 13 de diciembre de Protección de Datos de Carácter Personal, (LOPD), es una Ley Orgánica española que tiene por objeto garantizar y proteger, en lo que concierne al tratamiento de los datos personales, las libertades públicas y los derechos fundamentales de las personas físicas, y especialmente de su honor, intimidad y privacidad personal y familiar. Su objetivo principal es regular el tratamiento de los datos y ficheros, de carácter personal, independientemente del soporte en el cual sean tratados, los derechos de los ciudadanos sobre ellos y las obligaciones de aquellos que los crean o tratan. Partiendo de la esencia fundamental de dichas leyes, quedan redactados los principios fundamentales de las mismas y que son de obligado cumplimiento en el portal web a desarrollar: El Real Decreto 994/1999 de Medidas de Seguridad de los ficheros automatizados que contengan datos de carácter personal de 11 de junio de 1999 (RMS) : Es un reglamento que desarrolla la Ley Orgánica 5/1992, de 29 de octubre, de Regulación del Tratamiento Automatizado de los Datos de Carácter Personal (LORTAD), regula las medidas técnicas y 87 organizativas que deben aplicarse a los sistemas de información en los cuales se traten datos de carácter personal de forma automatizada.(Derogado desde 19 de abril de 2010) El Real Decreto 1720/2007, de 21 de diciembre de desarrollo de la Ley Orgánica de Protección de Datos. Se trata de un desarrollo de la Ley Orgánica 15/99 de Protección de Datos de 13 de diciembre; desarrolla tanto los principios de la ley, como las medidas de seguridad a aplicar en los sistemas de información. Se aplica tanto a ficheros en soporte automatizado, como en cualquier otro tipo de soportes. LPI La propiedad intelectual tiene que ver con las creaciones de la mente: las invenciones, las obras literarias y artísticas, los símbolos, los nombres, las imágenes y los dibujos y modelos utilizados en el comercio. Los derechos relacionados con el derecho de autor son los derechos de los artistas intérpretes y ejecutantes sobre sus interpretaciones y ejecuciones, los derechos de los productores de fonogramas sobre sus grabaciones y los derechos de los organismos de radiodifusión sobre sus programas de radio y de televisión. Teniendo identificados los motivos de la existencia de la propiedad intelectual, hay que concretar cuál de las dos ramas en las que se divide dicha ley, pertenece la actividad software a desarrollar. Para ello se mentara el artículo específico relacionado a la actividad a implementar: El derecho de autor, que abarca las obras literarias y artísticas, tales como las novelas, los poemas y las obras de teatro, las películas, las obras musicales, las obras de arte, como los dibujos, pinturas, fotografías y esculturas, y los diseños arquitectónicos. Se aplica a las creaciones artísticas como los poemas, las novelas, las obras musicales, las pinturas, las obras cinematográficas y los programas de ordenador. En inglés, a diferencia de los demás idiomas europeos, el derecho de autor se conoce con el nombre de “copyright”. El término copyright tiene que ver con actos fundamentales que, en lo que respecta a creaciones literarias y artísticas, sólo pueden ser efectuados por el autor o con su autorización. Se trata, concretamente, de la realización de copias de las obras literarias y artísticas, como los libros, las pinturas, las esculturas, las fotografías y las obras cinematográficas. Mientras, la expresión derecho de autor remite a la persona creadora de la obra artística, a su autor, subrayando así el hecho que se reconoce en la mayor parte de las leyes, en el sentido de que el autor goza de derechos específicos en relación con su creación, como el derecho a impedir la reproducción deformada de la misma, prerrogativa que sólo a él le pertenece, mientras que existen otros derechos, como el derecho a efectuar copias, del que pueden gozar terceros, por ejemplo, todo editor que haya obtenido una licencia del autor con ese fin. 89 Anexo III: Manual de usuario Introducción A grandes rasgos, hay dos perfiles de audiencia claramente definidos a los que va dirigido este manual: el primero, integrado en su totalidad por los usuarios que acceden al portal para apoyar las propuestas, compuesto por aquellos que pertenecen a una organización en concreto ; y el segundo, formado por los usuarios que gestionan una organización en concreto. Por lo general, tanto los usuarios perteneciente a una organización como los que gestionan una organización, tienen acceso a contenido privado el cual solo es visible por usuarios pertenecientes a la organización pertinente. Este manual pretende que los usuarios puedan hacer un uso de la aplicación de una forma clara y concisa. Estructura conceptual de la web de votos La reorganización de contenidos y reestructuración informativa, se ha basado en respetar al máximo la claridad visual y la simplicidad de uso, sin menospreciar contenido alguno, aumentando con ello la usabilidad global del sitio. En este sentido el principal hecho a destacar es la integración de las redes sociales a través de sus logotipos correspondientes aportando la necesidad existente en todos los portales de mantener la comunicación social. Existen 3 niveles de navegación:  Navegación por menú: cumple con la función de menú principal homogénea en todas las vistas y es inamovible en las secciones públicas. Ésta recoge un total de cinco enlaces correspondientes a las principales secciones de la web. Cada uno de estos enlaces te conduce a la página donde se destacarán los contenidos más importantes.  Navegación por redes sociales: es visible en la parte superior izquierda del portal y permite la integración en el mismo de las redes sociales más conocidas aportando un claro valor de sociedad. Está formado por cuatro enlaces distinguidos por los logotipos referentes en cada una de las redes sociales.  Navegación de Propuestas: recoge los enlaces de acceso a algunos de los contenidos contextuales de varias secciones del menú principal. Esta muestra a su vez, navegación del contenido reinante en alguna de las secciones mostradas en el menú principal 97 Enlace Mi Organización para Rol ORGANIZACIÓN Con respecto a este enlace nos muestra un listado de todo el contenido referente a nuestra organización pero si no vamos a grupo podremos gestionar el mismo. Desde añadir usuarios, gestionar permisos y personas y finalmente los roles. Añadir Usuarios 98 99 Permisos Personas 100 Roles Enlace Mis Entidades para Rol Usuario ORGANIZACIÓN Como se puede apreciar se muestra en este enlace un listado de las organizaciones a cuales formamos parte. En caso de hacer Click en alguna de ellas nos mostrara un listado de todas las propuestas relacionadas con esa organización en concreto. 101 102 Anexo V: Gestor de Contenido Drupal Instalación Drupal Cabe destacar que esta instalación ha sido utilizando el sistema operativo Windows y a continuación se describen los pasos para este sistema operativo. En el caso de Linux es muy parecida la instalación del mismo. XAMPP Primero de todo configurar el servidor Web en este caso utilizaremos XAMMPP para poner en funcionamiento nuestro portal. Lo descargamos de http://www.apachefriends.org/en/xampp.html Lo instalamos y ejecutamos el panel de control y en el mismo ejecutamos el Apache y MySQL tanto para el servidor web como para la base de datos. Una vez instalad el XAMPP procedemos a descargar el Drupal del siguiente sitio https://drupal.org/project/drupal en este caso descargamos la versión 7.23 103 Una vez descargado Drupal descomprimimos todo su contenido en la carpeta Htdocs de donde se encuentre localizado el XAMPP Una vez descomprimido el contenido de Drupal procedemos a acceder al panel de control de la base de datos y creamos una base de datos para poder proporcionarle una a la hora de instalar el mismo Accedemos a la misma desde el navegador a la dirección http://localhost/phpmyadmin Una vez realizado esto accedemos al que sería nuestro portal e iniciamos la instalación de Drupal. Primero de todo al acceder al sitio se nos va a lanzar un asistente de instalación en el cual procedemos a seguir los distintos pasos. 104 1) Seleccionar instalación Standard para que se nos instalen todos los módulos incluidos en esta versión. 2) Elegimos el idioma correspondiente en este caso español 3)Drupal nos pide la base de datos la cual le tenemos que proporcionar, esta ya la hemos creado así que simplemente se la proporcionamos 4) Se procederá a instalar módulos y configuración predeterminada de Drupal así que simplemente es esperar 5) Información del sitio a proporcionar tal como nombre del sitio, correo del administrador, lema del sitio, etc. 6) Drupal se encuentra instalado y procedemos a configurar nuestro sitio. Con estos pasos hemos conseguido instalar Drupal un gestor de contenido el cual vamos a utilizar para implementar nuestro portal, a continuación pasaremos a explicar el uso de los distintos módulos instalados y la justificación de los mismos así como la configuración del sitio hasta llegar al portal final Módulos Primero de todo vamos a proceder a indicar de donde hemos conseguido todos los módulo correspondientes para el buen funcionamiento del portal, para ello hemos obtenido todos los módulos directamente desde el sitio oficial de Drupal. El cual nos ofrece no solo la posibilidad de descargar el módulo si no también la posibilidad de obtener errores y opiniones de los distintos usuarios los cuales ya han probado el módulo y han tenido la amabilidad de compartir esta información. Es por ello que resulta de gran utilidad esta información ya que nos ayuda bastante a la hora de buscar una solución en el caso de tener problemas con algún módulo, ya sea bien por un error nuestro o por no saber cómo configurar el mismo, pudiendo así mismo utilizar los comentarios de los distintos usuarios como valoración de si hacemos bien instalando el módulo o no. 105 112 Voting API Módulo el cual es importante en este caso ya que nos permite, poder llevar a cabo el sistema de votaciones de las distintas propuestas del portal, de una manera eficiente y bastante testeada por lo distintos usuarios. Es una manera bastante cómoda de poder implementar el sistema de votaciones de nuestro portal y su uso se ve más que justificado Organic Group Módulo bastante importante dentro de lo que se podría decir Drupal nos permite crear grupos dentro de Drupal pudiendo de esta manera organizar todo el grupo en función de grupos y relacionar todo el contenido de estos grupos pudiendo hacer contenido privado a estos grupos o no. De alguna u otra manera esto nos permite ir más allá que el uso de los roles ya que podemos hacer contenido en función de grupos y privatizando de esta manera el contenido de nuestro portal haciendo nuestro portal mucho más complejo y pudiendo jugar mucho mas con él. En este caso podemos diferenciar el uso de este módulo para poder llevar a cabo la implementación del lado de las organizaciones en este portal pudiendo privatizar el contenido a las mismas. Menu Item Visibility Módulo bastante importante más que nada por el hecho de facilitarnos la vida a la hora de ocultar un enlace de un menú en función del rol. De esta manera podemos crear un menú dinámico en función del rol que se encuentre logueado. De esta manera justificamos su uso ya que podemos llevar a cabo un menú en nuestro portal que sea dinámico en función de cada rol de los distintos usuarios del portal 113 Drupal For Facebook Módulo el cual nos permite interconectar en este caso la red social Facebook con nuestro portal pudiendo de esta manera permitir que un usuario entre con la cuenta de facebook sin necesidad de registrarse. Añadiendo funcionalidades tanto para interconectar nuestro portal con Facebook. En este caso nos viene útil el utilizar esta herramienta tanto para compartir las distintas propuestas como para poder identificar a los distintos usuarios de la plataforma. Paypal Módulo de pasarela del pago, para dar las posibilidades a los usuarios del portal de hacer una donación a la organización del portal para de esta forma poder ayudar a mantener el mismo. Justificamos su uso ya que vemos importante el que se puede ayudar a los distintos desarrolladores que emplean tiempo mejorando la aplicación y apoyan en su crecimiento. Statistics pro Drupal Módulo el cual nos aporta la posibilidad de hacer como su propio nombre indica jugar con valores de los distintos nodos y campos de los mismos y hacer estadísticas y poder mostrar esta información a nuestro gusto jugando con la misma. 114 Esto nos viene muy bien ya que podemos mostrar este contenido dentro de nuestro portal acomodándolo a nuestra necesidad. Configuración del Portal A continuación se va a dar un repaso por toda la configuración del portal y los aspectos más importantes del mismo, dando a conocer la lógica del mismo y como se ha llevado a cabo su puesta en marcha. Y sus futuras opciones a configurar o el alcance que podría llegar a tener el mismo. Primero de todo cuando nos encontramos con Drupal instalado y funcionando nos encontramos con un portal que no nos aporta nada, para ello primero tenemos que antes de empezar a trabajar tener bien claro lo que queremos llevar a cabo y como lo vamos a llevar a cabo. En este caso hemos empleado como se explica en el documento utilizando el Proceso Unificado de Desarrollo especificando las distintas características que vamos a llevar a cabo y como queremos que se comporten cada una de ellas. Utilizando este documento y documentándonos acerca de Drupal e investigando sobre el tema a medida que vamos avanzando vamos instalando los módulos necesarios y haciendo las pruebas oportunas para llevar a cabo la implementación del sitio, hasta una vez conseguir de una manera objetiva el correcto funcionamiento del mismo. Esto no nos quitas de posibles bugs o errores que su pueden encontrar en el portal pero que poco a poco se van solucionando, ya que ninguna aplicación se crea inicialmente sin errores, estos se van corrigiendo a medida que se van hallando. Aspectos de Configuración. Tipos de Contenido Primero de todo nos encontramos con dos tipos de contenidos los cuales hemos incorporado al portal en este caso, propuesta y victoria tal y como se ilustran a 115 continuación. Con los siguientes campos: 116 117 Vistas del Portal Otro aspecto importante en la configuración del portal es el tema de las vistas ya que son como se va a mostrar el contenido del portal, teniendo la siguiente configuración: En este caso lo que nos importa es la vista relacionada con mis propuestas y las propuestas en general así como la página principal. A continuación vamos a mostrar la relación con respecto al contexto y configuración de la vista en este caso de Mis Propuestas ya que es la realmente interesante en este caso: 118 Se puede apreciar que hay una relación con el Autor de la propuesta y el usuario logeado. En la cual se consigue que solo se muestren las propuestas del usuario logeado en tal caso. Con respecto a las otras vistas son vistas relacionadas a un contenido en concreto sin ninguna peculiaridad. Page Manager: Otro aspecto de configuración importante es de las páginas modificas o creadas con el Paga Manager en este caso vamos a mostrar las siguientes que se han incluido en el portal: 119 De aquí en este caso y las que vamos a utilizar son la de mispropos ya que nos hace la relación entre el usuario logeado y el auto de la propuesta y la de la página principal. La de mispropos tiene la siguiente relación según el contexto: Gracias a esa relación podemos mostrar nuestra vista personalizada en función de quien creó la propuesta y el usuario logeado en ese momento. Organic Group: Otro aspecto a tener en cuenta pero el cual se va desarrollando a media que se va utilizando el portal es la posibilidad de incluir organizaciones y asociar un contenido en concreto a las mismas para el ello una vez instalado el módulo correspondiente, lo que se ha hecho es incluir un tipo de contenido OG con las siguientes características. 120 Como se puede observas en la fotografía se ha asociado este tipo de contenido como Grupo y como contenido de grupo lo que posteriormente a la hora de crear un contenido se puede relacionar a este grupo creado previamente añadiendo estos campos al contenido anteriormente de la siguiente forma. En la configuración de OG en el aspecto de Field Settings habría que añadir los campos correspondientes en este caso a propuestas. Como se muestra en la captura de pantalla, tenemos dos campos los cuales nos dan la posibilidad de poder a la hora de crear una propuesta asignar una de estas propuestas a algunos de los grupos a los que pertenecemos en este caso organizaciones. Menú Principal Aspecto de configuración importante ya que es el cual nos da acceso a los distintos enlaces del portal así como según el rol asignado a cada usuario tenemos acceso a ciertos enlaces o no. 121 Vamos a pasar a comer cada uno de los enlaces y el rol a cual se tiene acceso o no. Inicio Enlace el cual nos da acceso a la página principal todos los usuarios tienen acceso a él. Propuestas Enlace el cual nos muestra la vista anteriormente comentada y nos da acceso a la vista Propuestas la cual tienen acceso todos los usuarios pero solo muestra el contenido al cual ellos pueden acceder. Crear Propuesta Enlace disponible para todos los usuarios el cual nos da la posibilidad de crear una propuesta directamente. Mis Propuestas Enlace solo disponible para usuarios logeado y muestra la vista anteriormente comentada de las propuestas de un usuario el cual se encuentra logeado en ese momento. Perfil. Enlace solo disponible para usuarios logeados y nos da la posibilidad de acceder a nuestro perfil siempre y cuando tengamos el rol correspondiente. Salir. Enlace solo disponible para usuarios logeados el cual da la posibilidad al usuario cerrar su sesión. Apariencia Que decir con respecto a este aspecto tan importante que es la apariencia pues bien tras buscar en profundidad se ha decidido utilizar un tema llamado Business el cual nos da la posibilidad de configurar tanto el logo como el juego de la paleta de colores dando un aspecto bastante sencillo pero elegante y cómodo para el usuario. 128 Bibliografía [1] BYRON, A. BERRY, A. HAUG, N. EATON, J. WALKER, J. ROBBINS, J. Drupal 2oed. Madrid: Ediciones Anaya Multimedia, 544 p, 2010. [2] MERCER, D. Building powerful and robust websites with Drupal 6, 2oed. Birmingham: Packt Publishing Ltd., 380 p, 2008. [3] VANDYK, J. Drupal Development Pro, 2oed. United States of America: Apress, 661 p, 2008 [4] BOWEN, R. COAR, K Apache Cookbook, 1oed. United States of America: O’Reilly, 306p, 2007 [5] SUEHRING, S. PHP6 and MySQL, Bible, 1oed. Canada: Wiley Publishing, Inc, 873 p, 2007 [6] DRUPAL Community, forum, http://drupal.org/ [9]PhpMyAdmin,PhpMyAdmin,configuration,, http://www.phpmyadmin.net/home_page/ [10] JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de Software. Pearson Addisson-Wesley, Año 2000. 9