Diploma Rafael Ernesto Ferro GonzáLez Crd
Upcoming SlideShare
Loading in...5
×
 

Diploma Rafael Ernesto Ferro GonzáLez Crd

on

  • 1,923 views

 

Statistics

Views

Total Views
1,923
Views on SlideShare
1,923
Embed Views
0

Actions

Likes
0
Downloads
31
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • HOLA RAFAEL SOY INFORMATICO DE UNA EMPRESA ACA EN LA hABANA Y TENGO UNA DUDA SOBRE CUAL ES LA OPCION PARA QUE SE CREE LA CARPETA
    C:MDaemon\ Public Folders \ Mail Archive.IMAP\dominio\Inbound to.IMAP
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Diploma Rafael Ernesto Ferro GonzáLez Crd Diploma Rafael Ernesto Ferro GonzáLez Crd Document Transcript

  • Universidad de Pinar del Río Facultad “Informática y Telecomunicaciones” Departamento “Informática” Trabajo de diploma. Título: “Sistema de gestión y configuración de servidores de correo electrónico.” Tesis en opción al título de Ingeniero en Informática Autor: Rafael Ernesto Ferro González Tutores: Ing. Raydel Almestro Román Ing. Sandra Menendez Alonso Pinar del Río, junio de 2009
  • SISTEMA DE GESTIÓN DE CORREO. PENSAMIENTO. PENSAMIENTO Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. Albert Einstein I
  • SISTEMA DE GESTIÓN DE CORREO. PÁGINA DE ACEPTACIÓN. PÁGINA DE ACEPTACIÓN _________________________________________ Presidente del Tribunal _________________________________________ Secretario _________________________________________ Vocal Ciudad y fecha: II
  • SISTEMA DE GESTIÓN DE CORREO. DECLARACIÓN DE AUTORIDAD. DECLARACIÓN DE AUTORIDAD Declaro que soy autor de este Trabajo de Diploma y que autorizo a la Universidad de Pinar del Río, a hacer uso del mismo, con la finalidad que estime conveniente. Firma: __________________________________ Rafael Ernesto Ferro González rafix@upr.edu.cu Rafael Ernesto Ferro González autoriza la divulgación del presente trabajo de diploma bajo licencia Creative Commons de tipo Reconocimiento No Comercial Sin Obra Derivada, se permite su copia y distribución por cualquier medio siempre que mantenga el reconocimiento de sus autores, no haga uso comercial de las obras y no realice ninguna modificación de ellas. La licencia completa puede consultarse en: http://creativecommons.org/licenses/by-nc-nd/2.5/ar/legalcode Rafael Ernesto Ferro González autoriza al Dpto. Informática adscrito a la Universidad de Pinar del Río a distribuir el presente trabajo de diploma en formato digital bajo la licencia Creative Commons descrita anteriormente y a conservarlo por tiempo indefinido, según los requerimientos de la institución, en el repositorio de materiales didácticos disponible en: http://repoinfo.upr.edu.cu Rafael Ernesto Ferro González autoriza al Dpto. Informática adscrito a la Universidad de Pinar del Río a distribuir el presente trabajo de diploma en formato digital bajo la licencia Creative Commons descrita anteriormente y a conservarlo por tiempo indefinido, según los requerimientos de la institución, en el repositorio de tesinas disponible en: http://revistas.mes.edu.cu III
  • SISTEMA DE GESTIÓN DE CORREO. AGRADECIMIENTOS. AGRADECIMIENTOS A mis padres, abuelos y hermanos, por su infinita paciencia y apoyo, con los que he podido contar en todos y cada uno de los momentos a lo largo de mi vida. A Sandra, por su belleza, luz e infinito amor. A mis suegros, Silvia y Rey que han estado al tanto y siempre me han brindado su apoyo y confianza. A mis tíos y primos, en especial al tío Juancho. A todos los compañeros con los que he tenido la suerte de trabajar en estos cinco años: Raydel, Rolo, Yasniel, Camacho, Vento, Yoel, Ernesto, Arian, Yoan, Roly, Garrido, Maikel, Malvin, Ledy y Pipoz. A Rabanal, por su ayuda incondicional. A los amigos de toda la vida. A mis compañeros de grupo, por estos maravillosos cinco años. A todos los que de una forma u otra han aportado su granito de arena para que este trabajo estuviese realizado, a los nombres que están plasmados y a los que no, simplemente les doy las gracias. IV
  • SISTEMA DE GESTIÓN DE CORREO. DEDICATORIA. DEDICATORIA A mi familia y amigos. V
  • SISTEMA DE GESTIÓN DE CORREO. RESUMEN. RESUMEN Los procesos de gestión de usuarios, dominios y la configuración en los servidores de correo electrónico son de suma importancia para el control y la seguridad de las redes empresariales. En la universidad de Pinar del Río se utiliza con este fin el sistema TUNEL, el cual fue creado a partir de la necesidad de migrar los usuarios de los antiguos servidores Novell a Linux. La intranet ha crecido considerablemente, el servicio de correo electrónico no ha estado ajeno a este desarrollo, lo cual ha implicado cambios en su plataforma, alcance y configuración. Si bien TUNEL fue una solución óptima, actualmente no suple las nuevas necesidades pues solo permite la gestión de cuentas de correo. Debido a esta necesidad surgió el Sistema de Gestión de Correo Electrónico (gesCorreo), el cual brinda funcionalidades como: crear cuentas de usuarios con límite de tiempo, gestionar dominios de correo, áreas, grupos de usuarios y filtros de mensajería, permite el control de los usuarios del sistema, roles y permisos de estos, posibilitando a los administradores tener un mayor control sobre la gestión y configuración del servicio de correo electrónico. En este documento se plasman los resultados del estudio realizado para la construcción del sistema, se explican los conceptos relacionados con el mismo, se describe el proceso de ingeniería de software, haciendo uso de una metodología ágil y se formulan algunas recomendaciones para su futuro mejoramiento. VI
  • SISTEMA DE GESTIÓN DE CORREO. ABSTRACT. ABSTRACT The processes of management of users, domains and configuration in e-mail servers are of highest importance for the control and security of the corporate networks. At Pinar del Río University, the system TUNEL is used with this end; an application which was created when the necessity of users migration from Novell servers to Linux servers came up. The intranet has grown considerably; the e-mail service has not being unaware of this development, whose effect has implied changes in its platform, scope and configuration. Although TUNEL used to be a fine solution, it does not meet the new requirements of the present because it only allows the management of e-mail accounts. Due to this necessity, gesCorreo: an e-mail management system was developed, one which offers technical features such as: creating users´ accounts with a time limit, managing e-mail domains, areas, user groups and e-mail filters; it facilitates a control on the users of the system, roles and their permissions, allowing the administrators to have a major control on the management and configuration of the e-mail service. The study results carried out in order to build the system are stated, the concepts related with this process are explained, the software engineering process is described by using an easy-to-go methodology and some recommendations for future improvements are formulated in this document. VII
  • SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO. TABLA DE CONTENIDO Pág. INTRODUCCIÓN ......................................................................................................... 1 CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA............................................................. 7 1.1. Introducción. ........................................................................................... 7 1.2. Estudio del estado del arte. .................................................................... 7 Soluciones existentes vinculadas al campo de acción. .......................... 8 1.2.1.1. Web-cyradm ............................................................................. 8 1.2.1.2. Virtual Exim .............................................................................. 9 1.2.1.3. WebAdmin MDaemon ............................................................. 9 1.2.1.4. Sistema de administración de usuarios TUNEL. .................... 10 1.2.1.5. Conclusiones. ......................................................................... 11 1.3. Fundamentación de la Tecnología, Herramientas y Metodología Aplicada........................................................................................................... 11 1.3.1. Servidor Web. ........................................................................... 12 1.3.1.1. Apache ................................................................................... 12 1.3.2. Gestor de bases de datos. ........................................................ 13 1.3.2.1. MySQL ................................................................................... 13 1.3.3. Aplicación Web. ........................................................................ 13 1.3.4. Lenguaje de programación........................................................ 14 VII I
  • SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO. 1.3.4.1. PHP ........................................................................................ 14 1.3.4.2. PHP5 ...................................................................................... 15 1.3.5. Framework. ............................................................................... 15 1.3.5.1. Symfony ................................................................................. 16 1.3.6. Sistema de control de versiones ............................................... 18 1.3.6.1. Subversion.............................................................................. 18 1.3.7. Metodología de desarrollo de software. .................................... 19 1.3.7.1. Programación Extrema (XP). .................................................. 19 1.4. Conclusiones ........................................................................................ 20 CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA .................................................. 21 2.1. Introducción. ......................................................................................... 21 2.2. Propuesta del sistema. ......................................................................... 21 2.3. Planificación del proyecto. .................................................................... 22 2.3.1. Historias de usuario................................................................... 22 2.3.2. Plan de releases. ...................................................................... 29 2.4. Conclusiones. ....................................................................................... 30 CAPÍTULO III. DESARROLLO DEL SISTEMA .......................................................... 31 3.1. Introducción. ......................................................................................... 31 3.2. Diseño de la base de datos. ................................................................. 31 IX
  • SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO. 3.2.1. Modelo de datos. ....................................................................... 31 3.2.2. Mapeo de objetos a bases de datos. ........................................ 32 3.3. Patrones de diseño empleados en el desarrollo del sistema. ............... 33 3.3.1. Modelo-Vista-Controlador. ........................................................ 34 3.3.2. Decorador ................................................................................. 34 3.3.3. Factoría ..................................................................................... 35 3.3.4. Observador ............................................................................... 35 3.4. Conclusiones. ....................................................................................... 36 CAPÍTULO IV. PRUEBAS Y RESULTADOS ............................................................. 37 4.1. Introducción. ......................................................................................... 37 4.2. Casos de prueba .................................................................................. 37 4.2.1. Casos de prueba para la historia de usuario H2. ...................... 37 4.2.2. Casos de prueba para la historia de usuarios H3. .................... 41 4.2.3. Casos de prueba para la historia de usuarios H6. .................... 48 4.3. Pruebas automáticas. ........................................................................... 49 4.4. Resultados obtenidos. .......................................................................... 50 4.4.4. Acerca del tiempo de desarrollo. ............................................... 50 4.4.5. Acerca de las funcionalidades obtenidas. ................................. 50 4.5. Conclusiones ........................................................................................ 51 X
  • SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO. CONCLUSIONES ...................................................................................................... 53 RECOMENDACIONES .............................................................................................. 54 REFERENCIAS BIBLIOGRÁFICAS ........................................................................... 55 BIBLIOGRAFÍA .......................................................................................................... 57 GLOSARIO DE TÉRMINOS....................................................................................... 59 ANEXOS .................................................................................................................... 61 Anexo 1: Tareas correspondientes a distintas historias de usuario. ................ 61 1. Tareas de Gestión de dominios de correo electrónico. ................. 61 2. Tareas de Gestión de cuentas de correo electrónico. ................... 63 3. Tareas de Control de acceso......................................................... 66 Anexo 2: Prototipos de interfaz de usuario de gesCorreo. .............................. 68 XI
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. INTRODUCCIÓN En la Universidad del Pinar del Río (UPR) a mediados de la década de los noventa, surge la necesidad de informatizar toda su gestión, así como de acercar a los alumnos, profesores y al resto del personal al mundo de la informática. Como parte del proceso de informatización en 1996 fue creada la red de computadoras de la UPR. En sus inicios contaba sólo con cinco ordenadores, incluyendo un servidor, pertenecientes al grupo de disciplinas técnicas. Un año después, a través de un proyecto de colaboración, se logra extender la red a los demás grupos de estudios, conectándose entre sí unas 20 computadoras dedicadas a la docencia y se comienza a brindar el servicio de correo electrónico a un reducido grupo de usuarios. En el año 1999, tras haber adquirido una licencia de uso para Netware 5.0, de Novell, se decide instalar en todos los servidores centrales este sistema operativo. La red adquirió robustez y seguridad, contando con más de 200 computadoras interconectadas. Este potente sistema representó un cambio considerable en los servicios y estado de la red. Como muestra del constante crecimiento de la red universitaria, ya para el año 2003 se contaba con 20 servidores, cuatro en el nodo central y el resto distribuidos en diferentes áreas, más de cuatrocientas computadoras y más de setecientas cuentas de correo entre profesores y alumnos extranjeros. Los elevados precios de las licencias adquiridas y la imposibilidad financiera de la Universidad para obtener las nuevas versiones del sistema operativo de Novell incitaron la búsqueda de una alternativa eficaz, segura y menos costosa para el soporte de la Intranet del centro. Red Hat Linux fue el nuevo sistema operativo de los servidores gracias a su estabilidad y la flexibilidad de su licencia. Para lograr la migración, en el caso específico del servicio de correo electrónico se hizo necesaria la creación de la aplicación TUNEL, la cual permitió además la gestión del creciente número de cuentas de correo. 1
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. En diciembre de 2005, debido a cambios en las licencias de los productos de la empresa Red Hat y el fin del soporte para las versiones libres de su sistema operativo, se comienza a instalar la distribución GNU/Linux Debian la cual introdujo cambios importantes en los servidores de correo electrónico, se reemplazó el agente de transporte de correo (MTA), de SendMail a Postfix, los usuarios de correo dejaron de ser usuarios físicos del sistema y se convirtieron en usuarios virtuales almacenados en bases de datos y Courier pasó a ser el demonio encargado de las conexiones Pop e IMAP. Este cambio garantizó una mayor seguridad, flexibilidad y optimización del servicio de correo electrónico. Además, en cada facultad se instaló un servidor de correo por carrera, lo que permitió brindarles el servicio a todos los estudiantes de la Universidad. A lo largo de la historia de la red y del proceso de informatización de la UPR se puede observar como los servidores de correo han sido un ente en constante evolución. Debido a esto, la aplicación de gestión de correos, TUNEL, aunque fue una solución óptima en el momento de su implementación, actualmente no permite la gestión de un gran número de características con las que cuenta este servicio hoy en día, algunas de estas son: gestión de múltiples dominios de correo, gestión de áreas y grupos de usuarios, gestión de filtros del correo saliente, creación de cuentas de usuarios con límites de tiempo, ejecución de tareas por lote y tareas de mantenimiento de la base de datos. Para la realización de estos procesos, se hace uso de aplicaciones de escritorio y web que facilitan el trabajo con base de datos MySQL, aunque están orientadas principalmente al diseño de estas, por lo que no se cuenta con una herramienta que controle dichas funcionalidades de manera centralizada y segura. Para darle respuesta a esta situación se identifica como problema científico la carencia de un software que permita, de manera centralizada y segura, la gestión y configuración de los servidores de correo electrónico de la Universidad de Pinar del Río. 2
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. Dar solución a este problema permitirá a los administradores de redes de las diferentes áreas, tener un mayor control sobre los servidores de correo electrónico, sus servicios y gestión. Así como, lograr una estandarización de estos sistemas, para brindar soporte y mantenimiento. Por lo que se defiende la idea de que el desarrollo de un sistema automatizado, que centralice la gestión y configuración de los servidores de correo de la UPR, logrará una mayor seguridad en la intranet universitaria. El objeto de estudio de esta investigación está relacionado específicamente con los sistemas de administración de servicios. Centrándose su campo de acción en los sistemas para la gestión y configuración de servidores de correo electrónico. Para darle solución al problema planteado se proponen los siguientes objetivos: Objetivo general: - Diseñar e implementar haciendo uso de tecnologías de software libre, un sistema que permita la gestión y configuración de los servidores de correo electrónico en la Universidad de Pinar del Río. Objetivos específicos: - Realizar un estudio crítico del proceso de gestión de correo electrónico en la UPR. - Realizar un estudio de las aplicaciones existentes vinculadas al campo de acción. - Desarrollar una herramienta de administración que permita la gestión y configuración de servidores de correo electrónico y un buscador de usuarios de correo, ambos deben tener una interfaz amigable e interactiva y con un alto grado de usabilidad. Para dar cumplimiento a los objetivos propuestos se han llevado a cabo las siguientes tareas de la investigación: - Analizar el funcionamiento del proceso de gestión de correo electrónico en la UPR, sintetizando las principales necesidades y deficiencias. 3
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. - Investigar sobre herramientas de administración de correo electrónico existentes, tanto en la UPR como a nivel mundial. - Escoger el lenguaje, las herramientas y metodología a utilizar en el desarrollo del sistema. - Realizar el proceso de desarrollo de software para la producción eficiente del sistema. Para la realización de las tareas expuestas, se han utilizado fundamentalmente los siguientes métodos de investigación: - Análisis y síntesis: método compuesto por dos procesos que se complementan y que son muy utilizado en las investigaciones de cualquier materia. El mismo permite descomponer un todo en sus partes constitutivas, para lograr un examen profundo y detallado (análisis), seguido de explorar las relaciones entre las partes estudiadas y reconstruir la totalidad tomando lo más importante de cada una (síntesis). En la presente investigación, éste es uno de los primeros métodos en aplicarse, ya que se comienza analizando el funcionamiento del proceso de gestión de correo electrónico y luego complementa la acción, una síntesis de las principales necesidades y deficiencias que presentan dichos procesos en la UPR. - Modelación sistémica: método importantísimo y muy útil en la construcción de software. Es un instrumento creado por los científicos para reproducir, de manera simplificada, el fenómeno que se está estudiando. Este método es aplicado en la modelación de los datos necesarios para el diseño de la Base de Datos así como en su gestión con uso del software. - Estudio documental: método muy popular, debido a que sirve de marco de referencia en las investigaciones. Aplicando este método se revisa todo tipo de información que se relaciona con el tema y que brinda aportes significativos a la investigación. También es aplicado en la búsqueda de otros proyectos existentes y similares a la solución propuesta. Este 4
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. método es de vital importancia para la construcción teórica, la fundamentación del problema y la elaboración de la solución final. - Dinámicas Grupales: método muy efectivo para la toma de decisiones. Desarrolla la creatividad y la imaginación de los participantes, pues con la puesta en práctica del mismo se generan debates donde todos los miembros del grupo exponen abiertamente sus opiniones. En este caso se aplican técnicas tanto de generación de ideas como de búsqueda de soluciones por consenso. El grupo está integrado por expertos en el funcionamiento de las aplicaciones Web en la UPR, así como investigadores del tema en cuestión. - Entrevistas: método de suma importancia para la recopilación de información. Su éxito consiste en lograr una buena comunicación entre el investigador y el entrevistado. En esta investigación las entrevistas se realizan principalmente a los administradores de redes de distintas instituciones de la provincia, pues una mejor comunicación con ellos, permite obtener la información necesaria para lograr un producto que tenga la calidad requerida y con el cual queden satisfechos. Para algunas entrevistas se realizan guías de preguntas bien definidas, con el objetivo de orientar al entrevistado sobre la información específica que se necesita. En otras se utiliza la técnica de conversación libre, donde solo se fija el tema a tratar; proporcionando de esta forma, que el cliente aborde espontáneamente los puntos importantes en su opinión. - Experimentación para comprobar el funcionamiento del sistema. Con el fin de lograr una mejor comprensión, este trabajo ha sido organizado de la siguiente forma: Capítulo 1. Fundamentación teórica: incluye un estado del arte del tema tratado, a nivel internacional, nacional y en la Universidad. Además fundamenta las tecnologías, metodologías y herramientas escogidas para el desarrollo de la solución a proponer. 5
  • SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN. Capítulo 2. Características del sistema: se realiza una descripción general de la propuesta de sistema, describiendo sus principales funcionalidades mediante historias de usuario. Se planifican las iteraciones del proyecto, teniendo en cuenta la prioridad establecida por el cliente para dichas historias. Capítulo 3. Desarrollo del sistema: se realiza el diseño de la base de datos y se describen los patrones de diseño seguidos durante el desarrollo de la aplicación. Capítulo 4. Pruebas y resultados: definen una serie de casos de prueba aplicadas al sistema para probar su correcto funcionamiento. Se exponen los resultados obtenidos en el desarrollo del sistema. 6
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA 1.1. Introducción. La gestión de servicios es un concepto de suma importancia para garantizar la seguridad informática en un entorno digital. La confección de un programa que permita la gestión y configuración del servicio de correo electrónico, requiere de una profunda investigación que avale la calidad del producto final. En este capítulo se resumen las principales características de los sistemas de gestión de correo electrónico existentes en la arena internacional y en la UPR. Se aborda el tema de las tecnologías de desarrollo web PHP/MySQL. Todo esto desde un enfoque básico, sin profundizar en lo que podría ser un tema de análisis más extendido. Se realiza la justificación de la propuesta de Symfony como plataforma para desarrollar el sistema. Se detalla la metodología de desarrollo de software utilizada en la propuesta del sistema de gestión de correo electrónico. 1.2. Estudio del estado del arte. Como parte de la investigación se realiza un estudio profundo y detallado de los sistemas informáticos existentes, tanto en el país como en el resto del mundo, que pudieran ser la solución al problema planteado. A continuación se abordan los más significativos. 7
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. Soluciones existentes vinculadas al campo de acción. 1.2.1.1. Web-cyradm Figura 1: Interfaces de Web-cyradm. Web-cyradm, es una aplicación web que permite realizar tareas administrativas en entornos de correo electrónico que utilizan Postfix como Agente de Transporte de Correo (MTA) y Cyrus como servidor IMAP. Está desarrollado en PHP y soporta autenticación de usuarios en gestores de bases de datos, como MySQL y PostgresSQL. Permite la administración de dominios virtuales, gestionar cuentas de usuarios y asignar cuotas, entre otras funcionalidades. Este sistema es software libre pero las últimas versiones disponibles están desactualizadas pues la comunidad de desarrollo no ha continuado su soporte. Por otra parte, posee escasa documentación y no tiene un sistema de seguimiento de errores, por lo que no hay conocimiento de los errores detectados. 8
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.2.1.2. Virtual Exim Figura 2: Interfaces de Virtual Exim. Virtual Exim, proporciona una interfaz web para la gestión de dominios de correos electrónicos en entornos que utilizan Exim como MTA. Permite que los administradores puedan gestionar dominios virtuales, clientes y pueden asignar administradores de dominios. Por su parte los usuarios de cada dominio pueden modificar sus datos personales. 1.2.1.3. WebAdmin MDaemon Figura 3: Interfaces de WebAdmin MDaemon. 9
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. WebAdmin MDaemon es una aplicación que permite la administración de correo electrónico sobre sistemas Windows. A través de WebAdmin, el administrador del sistema puede realizar ajustes al dominio principal y subdominios, incluyendo la administración de cuentas en cualquiera de estos. Utiliza MDaemon como MTA y se distribuye bajo una licencia privativa. 1.2.1.4. Sistema de administración de usuarios TUNEL. Figura 4: Interfaces de TUNEL. Es un software de administración de usuarios de correos creado en la UPR, a partir de la necesidad de migrar los usuarios de los servidores Novell a Linux. Fue una solución válida en el momento de su implementación, posteriormente con el cambio de arquitectura de los servidores de correo se hizo necesario hacer modificaciones en su código fuente, surgiendo las versiones 2.0 y 3.0. Las nuevas versiones se crearon con el objetivo de adaptar esta aplicación a la nueva arquitectura, pero no representaron grandes cambios. TUNEL v3.0, es utilizado actualmente en la UPR para gestionar el proceso descrito. Sus funcionalidades siguen limitadas sólo a la gestión de buzones de correo, pues esta era la única concebida desde sus inicios, dado el pequeño alcance que tenía la red universitaria. 10
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.2.1.5. Conclusiones. Estos sistemas tienen características similares que simplifican los procedimientos que se siguen para la administración de sistemas de correo electrónico, pero no cumplen con todos los requerimientos para satisfacer las necesidades de la Universidad. El estándar establecido, tanto en los servidores del nodo central como en los distribuidos en las diferentes áreas, utiliza Postfix como MTA, Courier como servidor POP e IMAP y actualmente los usuarios son almacenados en bases de datos MySQL. Por otra parte, en la UPR se definen filtros de salida para dominios y cuentas de correos, los cuales determinan el alcance de estos, ya sea nacional o internacional. Se necesita una aplicación que permita centralizar todos los procesos de gestión de áreas, dominios, grupos de usuarios y filtros del correo saliente, que añada nuevas funcionalidades que faciliten el trabajo, aportando usabilidad, interfaces de usuario sencillas y amigables y que cuente con un diseño robusto y seguro. Considerando las características de la UPR, de aplicarse uno de los sistemas existentes como solución, habrá que emplear mucho tiempo en estudio para saber cómo está diseñado e implementado y lograr una exitosa modificación de sus elementos, que satisfaga las necesidades de la universidad. De realizarse dichas transformaciones, se corre el riesgo de que se produzcan incompatibilidades con futuras versiones del sistema seleccionado, rompiendo de esta forma con el ciclo de soporte y mantenimiento. Concluyendo, se ahorrará más tiempo y esfuerzo realizando un sistema nuevo que permita gestionar el servicio de correo. 1.3. Fundamentación de la Tecnología, Herramientas y Metodología Aplicada. Con el objetivo de lograr un producto, no solo que solucione el problema existente, sino que además tenga la calidad requerida; se realiza un estudio minucioso sobre la 11
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. arquitectura, herramientas, metodologías y lenguajes a utilizar en la confección de la propuesta de solución. A continuación se justifica la tecnología escogida para la confección del software. 1.3.1. Servidor Web. Un servidor Web es un programa que se ejecuta continuamente en un ordenador, manteniéndose a la espera de peticiones por parte de un cliente, respondiendo a las mismas adecuadamente, mediante una página Web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. (16) 1.3.1.1. Apache Apache es el servidor Web más utilizado del mundo, encontrándose muy por encima de sus competidores, tanto gratuitos como comerciales. (16) Es un software de código abierto que funciona sobre cualquier plataforma. Desde su origen ha evolucionado hasta convertirse en uno de los mejores servidores en términos de eficiencia, funcionalidad y velocidad. ¿Por qué Apache? - Es gratuito, distribuido bajo la licencia Apache Software License, la cual permite modificación y adaptación de código. - Es flexible y extensible, dando la posibilidad de ampliar sus capacidades y funcionalidades, mediante módulos. - Es extremadamente popular, por lo que resulta muy fácil conseguir documentación o ayuda para su uso. - Es altamente fiable pues aproximadamente el 90% de los servidores con más alta disponibilidad funcionan con él. - Además de su eficiencia se destaca por su gran velocidad. 12
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.3.2. Gestor de bases de datos. Los sistemas gestores de base de datos (SGBD) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Están compuestos por un lenguaje de definición de datos, un lenguaje de manipulación de datos y un tercer lenguaje de consulta. (13) El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos, de manera que sea tanto práctica como eficiente. 1.3.2.1. MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario (15), siendo desarrollado como software libre, en un esquema de licenciamiento dual. ¿Por qué MySQL? Son muchas las razones para escoger MySQL como solución para la administración de datos. En las siguientes líneas se muestran aquellas que fueron determinantes en esta elección. - Puede ser usado bajo la política de software libre, pues mantiene versiones con licencia GNU GPL. - Resulta fácil de utilizar y de administrar. Además, gracias a su activa comunidad de desarrollo, se puede encontrar una gran cantidad de ayuda en la Web. - Se ejecuta en la inmensa mayoría de sistemas operativos y en la mayor parte de los casos, los datos se pueden transferir de un sistema a otro sin dificultad. 1.3.3. Aplicación Web. Una aplicación web es una solución informática que los usuarios utilizan accediendo a un servidor web a través de Internet o de una intranet. Aplicaciones como los webmails, wikis, weblogs y tiendas en línea son ejemplos bien conocidos de aplicaciones web. (7) 13
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. ¿Por qué una aplicación Web? Es necesaria una aplicación Web que funcione como interfaz del sistema que se propone y permita la configuración del mismo. Son varios los argumentos a favor de esta opción, entre ellos, su popularidad debido a que solo requiere del uso de un navegador web como cliente ligero, son independientes del sistema operativo del usuario final, la habilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software en miles de potenciales clientes lo cual redunda una reducción sensible de costo y tiempo. 1.3.4. Lenguaje de programación. Un lenguaje de programación se utiliza para controlar el comportamiento de una máquina o dispositivo. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. (11) 1.3.4.1. PHP PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools), es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas Web dinámicas. Su facilidad de uso, la inmensa documentación que tiene a su disposición, la rapidez de su motor y su perfecta integración con MySQL lo han convertido en casi un estándar de la red para el desarrollo de aplicaciones Web. (4) Otra de las principales ventajas que ofrece PHP es ser un lenguaje libre y abierto, pues su código fuente está disponible y es gratuito. Inicialmente esta tecnología fue diseñada para entornos UNIX por lo que ofrece más prestaciones en este sistema operativo, pero es perfectamente compatible con Windows, facilidades que aportan otro punto a su favor. Estas características provocaron que la elección del lenguaje a utilizar fuera sencilla, pues sin lugar a dudas PHP, es una de las mejores opciones. 14
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.3.4.2. PHP5 PHP5 es una nueva versión de PHP que incorpora nuevas ventajas y mantiene las viejas, pretendiendo solucionar las carencias de las anteriores versiones y demostrando su rotunda superioridad sobre las mismas. ¿Por qué PHP5? - PHP5 incorpora un soporte sólido y real para Programación Orientada a Objetos (POO), paradigma seleccionado para utilizar en la implementación de la aplicación. - Mejor soporte para MySQL con extensión completamente rescrita, siendo éste el gestor que será utilizado para la base de datos de la solución a proponer. - Presenta mejoras con respecto al tratamiento de excepciones de errores, característica que puede ser explotada, elevando la calidad del sistema a proponer. 1.3.5. Framework. Un framework, “Marco de Trabajo” o WAF (Web Application Framework), es una serie de librerías y clases que se han unido bajo un único esquema de colaboración para lograr el desarrollo rápido de aplicaciones (RAD: Rapid Application Development). (1) Su genialidad consiste en que simplifica y acelera considerablemente el proceso de desarrollo de una aplicación; ya que automatiza algunos de los patrones utilizados para resolver las tareas más comunes, mediante el encapsulamiento de operaciones complejas en instrucciones sencillas. Todas estas ventajas hicieron irrevocable la decisión de utilizar un framework para el desarrollo de la solución de software, pues la reutilización de código y otras características, permiten al desarrollador dedicarse por completo a los aspectos específicos de la aplicación en cuestión. 15
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.3.5.1. Symfony Symfony es un completo framework desarrollado por la empresa francesa Sensio Labs y publicado por primera vez en Octubre de 2005. Su licencia es de tipo software libre, está desarrollado completamente con PHP 5 y emplea el tradicional patrón de diseño MVC (Modelo-Vista-Controlador). Actualmente es uno de los frameworks PHP más populares entre los usuarios y las empresas, ya que permite que los programadores sean mucho más productivos a la vez que crean código de más calidad y más fácil de mantener. (5) ¿Por qué Symfony? Symfony tiene un sin número de ventajas que lo diferencian de otros frameworks y lo posicionan en un lugar favorable en la lista de preferidos. Las principales características que lo convirtieron en el elegido para la implementación del sistema propuesto son las siguientes: - Fácil de instalar y configurar en la mayoría de plataformas. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows. - Está diseñado para construir aplicaciones Web con PHP5, siendo este el lenguaje previamente escogido. - Es compatible con la mayoría de gestores de bases de datos, entre ellos MySQL, que es el gestor seleccionado en el presente trabajo. - Sencillo de usar en la mayoría de casos, pero lo suficientemente flexible como para adaptarse a los casos más complejos y particulares que pueda presentar la aplicación. Puede ser completamente personalizado para cumplir con los requisitos, políticas y reglas más específicos de la institución. - Posee miles de páginas gratuitas en libros, tutoriales, guías, wiki, y versión PDF de toda la documentación. - Se beneficia de una inmensa comunidad que lo explota y estudia, brindando continuamente a través de la red, soluciones a los problemas más frecuentes. 16
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. - Está basado en la premisa de “convenir en vez de configurar”, en la que el desarrollador solo debe configurar aquello que no es convencional. - Sigue las mejores prácticas y los patrones de diseño más importantes a nivel mundial, lo que permite lograr una aplicación Web competente y de gran calidad. - Es infinitamente escalable, aplicaciones como Yahoo! Answers, Dailymotion, Yahoo! Bookmarks y Delicious fueron creadas con Symfony, sumando más de 224 millones de usuarios registrados. - Está publicado bajo una licencia MIT que permite el desarrollo de aplicaciones comerciales y/o de software libre. - Incluye protección frente a ataques de tipo XSS, CSRF y SQL Injection. Sus creadores no se alimentan sólo de sus ideas, sino que además toman prestadas las mejores ideas de cualquier framework y las adaptan a Symfony. Permitiendo tener las mejores ideas del mundo y añadir las suyas propias; característica fundamental que lo diferencia del resto de los frameworks. Un estudio realizado por Clever Age sobre los frameworks más usados en PHP, titulado “Libro blanco sobre frameworks PHP para empresas”, donde se realiza un exhaustivo estudio de todas funcionalidades de dichos frameworks, mostrando los puntos fuertes y débiles de cada uno; y que utiliza el método QSOs (Qualification and Selection of Open Source software) que se centra en los criterios para estimar los riesgos incurridos por un usuario al usar un software, arrojó los siguientes resultados. Tabla 1: Comparación entre frameworks PHP. 17
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.3.6. Sistema de control de versiones Una versión, revisión o edición de un producto, es el estado en el que se encuentra en un momento dado en su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. (2) Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas. 1.3.6.1. Subversion Para llevar a cabo el control de versiones con mayor eficiencia se puede hacer mediante Subversión, este es un software de código abierto y gratuito. (3) Se encarga de manejar ficheros y directorios que se almacenan en un repositorio central y permite recuperar versiones antiguas de los datos almacenados o examinar el historial de cambios de los mismos. (7) Subversion puede ser instalado bajo Linux, Mac OS X o Windows y también como un módulo de Apache o como un servicio independiente, accesible a través de varios protocolos. ¿Por qué Subversion? Subversion implementa un sistema de versionado virtual, que almacena los cambios realizados tanto en ficheros como en directorios. Garantiza que todas las modificaciones sobre un repositorio se realizan completamente, o por el contrario no se realiza ninguna, esto posibilita la eliminación de problemas de concurrencia, cuando por algún motivo solamente se envía una parte de los cambios al repositorio. Posee una abstracción en el acceso al repositorio, de forma que es fácil implementar un nuevo mecanismo de acceso a través de la red. Un ejemplo es añadir el plugin de Apache, de forma que se pueda acceder al repositorio a través del protocolo HTTP. Maneja las diferencias entre los datos almacenados mediante un algoritmo de diferencias, que funciona de forma idéntica tanto para ficheros de texto, como para ficheros binarios. 18
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.3.7. Metodología de desarrollo de software. Una metodología de desarrollo de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información. (7) 1.3.7.1. Programación Extrema (XP). XP es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en el desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. (10) XP se basa en retroalimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. (8) XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. Consta de doce prácticas de programación, entre las que se destacan: diseño sencillo, refactorizaciones, pruebas unitarias y funcionales, uso de estándares, integración continua y entregas frecuentes de funcionalidades del producto sin errores. (2) ¿Por qué XP? XP es un método ágil que permite satisfacer al cliente a través de la entrega temprana y continua de software con valor. Admite requisitos cambiantes, incluso en etapas avanzadas. Tiene como característica que los responsables de negocio y los desarrolladores deben trabajar juntos diariamente a lo largo del proyecto. Además, el software que funciona es la principal medida de progreso. Por otra parte XP se centra más en las prácticas de programación. 19
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA. 1.4. Conclusiones El estudio realizado sobre las soluciones existentes en la UPR y el mundo enriqueció considerablemente la investigación, pues aportó un cúmulo de ideas aplicables al software que se propone como solución al problema planteado. El estudio de las tecnologías, paradigmas y tendencias actuales, permitió escoger las metodologías, lenguajes y herramientas más adecuados para que la solución de software, cumpla con los requisitos establecidos y la calidad requerida. 20
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA 2.1. Introducción. Una buena comprensión de la situación problémica influye directamente en que la solución propuesta satisfaga las necesidades del cliente, siendo éste el ente fundamental para los que ofrecen servicios. En este capítulo, se realiza una descripción general de la propuesta de sistema, describiendo sus principales funcionalidades mediante historias de usuario. Además se realiza la planificación del proceso de desarrollo del software, teniendo en cuenta la prioridad establecida por el cliente para dichas historias. 2.2. Propuesta del sistema. La solución informática que se propone mediante el presente trabajo se compone de dos aplicaciones web: frontend (historia H7), donde los clientes interactúan con el buscador de usuarios, y el backend (Historias H1 - H6, H8 y H9), donde los administradores gestionan áreas, dominios virtuales, grupos de usuarios, buzones de correo y filtros de mensajería. Los super-administradores además gestionarán los roles, permisos y usuarios de la interfaz de administración. La aplicación backend o Interfaz de administración tiene un uso restringido y requiere ciertas credenciales para su acceso. El sitio web de gesCorreo dispone de tres tipos de usuarios: - Super-administrador: tiene acceso total a todas las funcionalidades del sistema. - Administrador: tiene acceso a la interfaz de administración y tendrá permiso a las funcionalidades que le sean otorgadas por el super-administrador. - Usuario: solo accede al frontend, sus funciones son de consulta de información. Las siguientes secciones utilizan diferentes historias de usuarios y bocetos gráficos (Anexo 2) para describir todas las características que se quieren incluir en la primera versión o release 1.0 del producto. 21
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. 2.3. Planificación del proyecto. 2.3.1. Historias de usuario. A continuación se relacionan las Historias de Usuario con la prioridad que tiene para el negocio y los usuarios con acceso a cada una. Esta es solo una planificación inicial, el proceso es cambiante para ir adecuándolo a las necesidades y nuevas propuestas. Todas las decisiones se toman de conjunto con el cliente que es parte del equipo de desarrollo. Tabla 2: Historia de Usuario 1 (H1). 22
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 3: Historia de Usuario 2 (H2). 23
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 4: Historia de Usuario 3 (H3). 24
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 5: Historia de Usuario 4 (H4). 25
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 6: Historia de Usuario 6 (H6). 26
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 7: Historia de Usuario 7 (H7). 27
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 8: Historia de Usuario 8 (H8). 28
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 9: Historia de Usuario 9 (H9). 2.3.2. Plan de releases. En este paso se define el plan de releases e iteraciones para realizar las entregas intermedias y la entrega final. Tiene como entrada la relación de Historias de Usuario definidas previamente. Para colocar una historia en cada iteración se tiene en cuenta la prioridad que definió el cliente para dicha historia. Como resultado de la priorización de historias se llegó a la siguiente planificación: 29
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 10: Plan de releases e iteraciones. 2.4. Conclusiones. Se realizó la planificación inicial del proyecto, donde se establecieron y priorizaron las historias de usuario, según las necesidades del cliente. Estas servirán de base para el diseño del software, facilitando que el producto final tenga la calidad requerida. La planificación de iteraciones se hizo teniendo en cuenta la prioridad para el negocio de cada historia. 30
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. CAPÍTULO III. DESARROLLO DEL SISTEMA 3.1. Introducción. En el presente capítulo se realiza el diseño de la base de datos y se describen los patrones de diseño seguidos durante el desarrollo de la aplicación. 3.2. Diseño de la base de datos. Una base de datos (database) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. El diseño de la base de datos es una de las tareas más importantes en la construcción de un sistema que haga uso de ella. Un buen diseño de la base de datos garantiza que el software sea eficiente, ofreciendo un acceso eficaz a la información. (9) En este epígrafe se muestra el diseño de la base de datos del sistema propuesto a través del modelo de datos. 3.2.1. Modelo de datos. El sistema propuesto interactúa con dos bases de datos donde se almacena toda la información requerida. La base de datos principal, almacena la información relacionada con los dominios, áreas, grupos de usuario, buzones de correo, usuarios del sistema, roles y privilegios. Por otra parte, se hace uso de una base de datos externa, postfixdb, donde se guardan los filtros de salida de cuentas y dominios de todos los servidores de correo de la UPR. 31
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. Figura 5. Modelo de datos. 3.2.2. Mapeo de objetos a bases de datos. La lógica de negocio de las aplicaciones web depende casi siempre del modelo de datos. En el sistema propuesto, el acceso y la modificación de los datos almacenados en la base de datos se realiza mediante objetos; de esta forma nunca se accede de forma explícita a la base de datos. Este comportamiento permite un alto nivel de abstracción y portabilidad. Para acceder de forma efectiva a la base de datos desde un contexto orientado a objetos, es necesaria una interfaz que traduzca la lógica de los objetos a la lógica relacional. Esta interfaz se llama ORM (object- relational mapping) o "mapeo de objetos a bases de datos", y está formada por 32
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. objetos que permiten acceder a los datos y que contienen en sí mismos el código necesario para hacerlo. La principal ventaja que aporta el ORM es la reutilización, permitiendo llamar a los métodos de un objeto de datos desde varias partes de la aplicación e incluso desde diferentes aplicaciones. La capa ORM también encapsula la lógica de los datos. La utilización de objetos en vez de registros y de clases en vez de tablas, tiene otra ventaja: permite añadir métodos accesores en los objetos que no tienen relación directa con una tabla. Existe otra consideración importante que hay que tener en cuenta cuando se crean elementos de acceso a los datos: las empresas que crean las bases de datos utilizan variantes diferentes del lenguaje SQL. Si se cambia a otro sistema gestor de bases de datos, es necesario reescribir parte de las consultas SQL que se definieron para el sistema anterior. Si se crean las consultas mediante una sintaxis independiente de la base de datos y un componente externo se encarga de traducirlas al lenguaje SQL concreto, se puede cambiar fácilmente de una base de datos a otra. Este es precisamente el objetivo de las capas de abstracción de bases de datos. Esta capa obliga a utilizar una sintaxis específica para las consultas y a cambio optimiza y adapta el lenguaje SQL a la base de datos específica que se está utilizando. La principal ventaja de la capa de abstracción es la portabilidad, porque hace posible el cambiar la aplicación a otra base de datos, incluso en mitad del desarrollo de un proyecto. Solamente es necesario cambiar una línea en un archivo de configuración y todo funciona correctamente. gesCorreo utiliza Propel como ORM y Propel utiliza PDO (PHP Data Objects) como capa de abstracción de bases de datos. 3.3. Patrones de diseño empleados en el desarrollo del sistema. Los patrones son directrices y principios estructurados que describen un problema común y entregan una buena solución ya probada a la que le dan un nombre. Estos 33
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. ayudan a diseñar correctamente en menos tiempo, ayudan a construir problemas reutilizables y facilitan la documentación. (6) En el área de los patrones de diseño se trata de solventar problemas de interfaz gráfica, optimización de código, reutilización de componentes y simplicidad de las soluciones. A continuación se explican los patrones empleados en el desarrollo del sistema. 3.3.1. Modelo-Vista-Controlador. Modelo-Vista-Controlador (MVC) es un patrón de diseño orientado a objetos que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos: (12) - El modelo: representa la información con la que trabaja la aplicación, es decir, su lógica de negocio. - La vista: transforma el modelo en una página Web que permite al usuario interactuar con ella. - El controlador: se encarga de procesar las interacciones del usuario y realiza los cambios apropiados en el modelo o en la vista. (5) El uso de este patrón es recomendado para el desarrollo de aplicaciones Web, puesto que la división que propone, facilita cambios en una de las partes sin necesidad de modificar el resto y proporciona un mantenimiento más sencillo de las mismas. Característica de gran ayuda durante el desarrollo de la aplicación. 3.3.2. Decorador El patrón Decorador responde a la necesidad de añadir dinámicamente funcionalidad a un objeto. Permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera. (14) 34
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. Mediante el uso de este patrón se concentraron todos los elementos repetitivos (cabecera, pie de página) en un archivo llamado layout.php que contiene el código HTML común a todas las páginas. Figura 6. Plantilla decorada con un layout. 3.3.3. Factoría Patrón creacional que posibilita definir una interfaz para crear objetos de tipo genéricos permitiendo a las subclases decidir qué tipo de objetos crear. (14) La aplicación de este patrón permitió realizar varios cambios al comportamiento por defecto del framework y extender algunas de sus funcionalidades. En la implementación del sistema fue necesario trabajar con las sesiones, cookies, personalizar la generación de log y modificar el comportamiento de los usuarios. 3.3.4. Observador Patrón de comportamiento, que define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se notifique y se actualicen automáticamente todos los objetos que dependen de él. (6) Su uso permite lograr un acoplamiento mínimo entre sujetos y observadores, pueden pertenecer a diferentes capas de abstracción de un sistema. Además permite tener una capacidad de comunicación mediante difusión, es decir, libertad de añadir y quitar observadores en cualquier momento, lo cual constituye una ventaja. 35
  • SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA. PHP tiene algunas limitaciones para la redefinición de métodos y clases. Symfony incorpora un sistema de eventos que supera este problema basado en este patrón de diseño. Su uso permitió añadir nuevos métodos a clases ya existentes y redefinir otros. 3.4. Conclusiones. En el presente capítulo se diseñó el modelo de datos de la aplicación. Además se explicó cómo fueron utilizados diferentes patrones de diseño que permitieron mejorar la interfaz gráfica, optimización de código, reutilización de componentes y simplicidad de las soluciones. 36
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. CAPÍTULO IV. PRUEBAS Y RESULTADOS 4.1. Introducción. Para lograr un producto con calidad es necesario trazarse un plan de pruebas desde el principio, darle seguimiento a los cambios y desarrollar iterativamente. En este capítulo se plasman las pruebas de funcionalidad o test de aceptación a las que fue sometida la aplicación en cada una de las iteraciones. El cumplimiento de estos casos de pruebas fue el hito para avanzar hacia la próxima iteración. Se expone además una relación de las funcionalidades con las que cuenta el sistema hasta la fecha. 4.2. Casos de prueba La programación extrema define entre iteración e iteración un conjunto de pruebas de funcionalidad o tests de aceptación para poder avanzar a una iteración superior. Durante el desarrollo de gesCorreo se diseñaron un conjunto de casos de prueba a las que fue sometido el sistema para comprobar el funcionamiento de acuerdo a las Historias de Usuario. Se definieron varios casos de prueba por cada historia terminada, a continuación se relacionan algunas de las pruebas más significativas y las historias asociadas. 4.2.1. Casos de prueba para la historia de usuario H2. 1. Introducción de datos de un dominio de correo electrónico. 1.1. Descripción. El administrador del sistema seleccionará la opción del menú: “Dominios”. Una vez listados los dominios disponibles, pulsará en el enlace “Nuevo” y aparecerá un formulario donde podrá insertar los datos del dominio. Tras insertar, si no ha habido ningún error, se almacenará el dominio en la base de datos. 37
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 1.2. Condiciones de ejecución. Ninguna. 1.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Dominios”. - Se mostrará un listado con el nombre de los dominios disponibles. - El administrador del sistema pulsará sobre “Nuevo” y aparecerá un formulario para introducir los datos del dominio. - El administrador del sistema introducirá al menos los campos nombre del dominio, si está activo o no, tipo de entrega y prioridad, como datos obligatorios. - Tras la introducción de los datos pulsará el botón “Guardar”. - Se verifica que los datos introducidos sean válidos. - Si los datos son válidos, el nuevo dominio será almacenado en el sistema y aparecerá en el listado; en caso contrario mostrar mensaje de error. 1.4. Resultado esperado. El nuevo dominio es insertado en el sistema. 1.5. Evaluación de la prueba. Prueba satisfactoria. 2. Modificación de los datos de un dominio de correo electrónico. 2.1. Descripción. El administrador del sistema, seleccionará un dominio del listado y pulsará la acción “Editar”. Aparecerá un formulario en la que se podrán modificar los datos del dominio. El administrador seleccionará “Guardar” tras modificar los datos. Los datos modificados serán actualizados en la base de datos. 38
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 2.2. Condiciones de ejecución. Debe existir al menos un dominio de correo electrónico en el sistema. 2.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Dominios”. - Se mostrará un listado con el nombre de los dominios disponibles. - El administrador selecciona un dominio y pulsará “Editar”. - Aparecerá un formulario en la que se pueden editar los datos del dominio. - El administrador modificará los datos que considere oportunos. - Tras la modificación pulsará el botón “Guardar” o “Guardar y crear otro”. - Se verificará que los nuevos datos sean válidos. - Los datos se actualizarán en el sistema solo si son válidos, en caso contrario mostrar mensaje de error. 2.4. Resultado esperado. Los datos del dominio seleccionado serán actualizados en el sistema. 2.5. Evaluación de la prueba. Prueba satisfactoria. 3. Eliminación de un dominio de correo electrónico. 3.1. Descripción. El administrador del sistema, seleccionará del listado de dominios disponibles la acción borrar del elemento que desea eliminar de la base de datos, en caso de que exista algún buzón disponible bajo ese dominio se lanzará un mensaje informativo y no se ejecutará dicha tarea hasta que no sean eliminados los buzones. 3.2. Condiciones de ejecución, 39
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. Debe existir al menos un dominio de correo electrónico en el sistema. 3.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Dominios”. - Se mostrará un listado con el nombre de los dominios disponibles. - El administrador seleccionará un dominio y pulsará “Borrar”. - Aparecerá un cuadro de diálogo pidiendo confirmación de la eliminación del dominio. - El administrador pulsará el botón “Aceptar”. - Se verificará que el dominio seleccionado está vacío. - El dominio seleccionado será eliminado del sistema, solo si está vacío. - Si el dominio no está vacío, mostrar mensaje informativo. 3.4. Resultado esperado. Solo serán eliminados los dominios vacíos. 3.5. Evaluación de la prueba. Prueba satisfactoria. 4. Búsqueda de un dominio de correo electrónico. 4.1. Descripción. El administrador del sistema, seleccionará la opción del menú: “Dominios”. Una vez en esta ventana introduce en el buscador los parámetros deseados para filtrar los dominios que cumplan con dicho criterio. 4.2. Condiciones de ejecución. Ninguna. 40
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 4.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Dominios”. - Se mostrará un listado con el nombre de los dominios disponibles y el buscador. - El administrador introduce en el buscador los criterios por los que desea filtrar los dominios; estos pueden ser “Dominio”, “Entrega”, “Activado”, “Prioridad”. - El administrador pulsa el botón “Filtrar”. - Se muestra un listado con los dominios que cumplan con los criterios dados. 4.4. Resultado esperado. Listado con los dominios que cumplan con los criterios dados. 4.5. Evaluación de la prueba. Prueba satisfactoria. 4.2.2. Casos de prueba para la historia de usuarios H3. 5. Insertar buzones de correo electrónico. 5.1. Descripción. El administrador del sistema seleccionará la opción del menú: “Buzones”. Una vez listados los buzones del sistema, pulsará “Nuevo” y aparecerá un formulario donde podrá insertar los datos de la nueva cuenta de correo electrónico. Tras insertar los datos, si no ha habido ningún error, se almacenará la cuenta en la base de datos. Se debe validar si el nombre de usuario es correcto para una dirección de correo electrónico. 5.2. Condiciones de ejecución. Ninguna 5.3. Entrada. 41
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. - Se mostrará el listado de las cuentas de correo electrónico en el servidor. - El administrador del sistema pulsará el botón “Nuevo” y aparecerá un formulario para introducir los datos de la cuenta. - El administrador del sistema introducirá los campos nombre, usuario, contraseña, área, dominio y grupo al que pertenece como datos obligatorios. - Tras la introducción de los datos pulsará el botón “Guardar” o “Guardar y crear otro”. - Se verificará que los datos introducidos sean válidos, en caso contrario mostrar mensaje de error. - Se le asignará a la cuenta la cuota predeterminada para el grupo seleccionado. - Se le asignará automáticamente las fechas de creación y expiración, fijando la segunda un año después del momento en que es creada. - La nueva cuenta será almacenada en el sistema y aparecerá en el listado. 5.4. Resultados esperado. - Son asignados automáticamente la cuota según el grupo al que pertenezca la cuenta, así como las fechas de creación y expiración. - La nueva cuenta es insertada en la base de datos. 5.5. Evaluación de la prueba. Prueba satisfactoria. 6. Modificación de los datos de una cuenta de correo electrónico. 6.1. Descripción. El administrador del sistema seleccionará un buzón del listado y pulsará “Editar”. Aparecerá un formulario en la que se podrán modificar los datos de la cuenta. El 42
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. administrador seleccionará el botón “Guardar” tras modificar los datos. Los datos modificados serán actualizados en el sistema. 6.2. Condiciones de ejecución. Existe alguna cuenta de correo electrónico en el sistema. 6.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. - Se mostrará un listado con el nombre de usuario de las cuentas existentes en el servidor. - El administrador selecciona una cuenta y pulsará “Editar”. - Aparecerá un formulario en la que se pueden editar los datos del dominio. Serán visibles, adicionalmente, los campos: fecha de expiración y cuota. - El administrador modificará los datos que considere oportunos. - Tras la modificación pulsará el botón “Guardar” o “Guardar y crear otro”. - Se comprobará que los nuevos datos sean válidos, en caso afirmativos se actualizarán en el sistema, sino se mostrará un mensaje de error. 6.4. Resultados esperado. Los datos de la cuenta son actualizados en la base de datos. 6.5. Evaluación de la prueba. Prueba satisfactoria. 7. Eliminación de una cuenta de correo electrónico. 7.1. Descripción. El administrador del sistema, seleccionará una cuenta de correo electrónico del listado y pulsará “Borrar”. La cuenta será eliminada del sistema. 43
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 7.2. Condiciones de ejecución. Debe existir al menos una cuenta de correo electrónico en el sistema. 7.3. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. - Se mostrará un listado con el nombre de las cuentas de correo electrónico registradas en el sistema. - El administrador seleccionará una cuenta y pulsará “Borrar”. - Aparecerá un cuadro de diálogo pidiendo confirmación de la eliminación de la cuenta. - El administrador pulsará el botón “Aceptar” para confirmar la eliminación, o “Cancelar” si así lo desea. - La cuenta seleccionada será eliminada del sistema. 7.4. Resultados esperado. Eliminada una cuenta de correo electrónico del sistema. 7.5. Evaluación de la prueba. Prueba satisfactoria. 8. Eliminación de varias cuentas de correo a la vez. 8.5. Descripción. El administrador del sistema, seleccionará la opción del menú: “Buzones”. Una vez en esta ventana, marcará los buzones que desea eliminar, seleccionara del combo de tareas por lotes la opción “Borrar” y pulsará el botón “Aceptar”. Las cuentas serán eliminadas del sistema. 8.6. Condiciones de ejecución. 44
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. Debe existir al menos una cuenta de correo electrónico en el sistema. 8.7. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. - Se mostrará un listado con el nombre de las cuentas de correo electrónico registradas en el sistema. - El administrador seleccionará las cuentas que desea eliminar. - Seleccionará la opción "Borrar" del menú "Acciones" y pulsará el botón “Aceptar”. - Las cuentas seleccionadas serán eliminada del sistema. 8.8. Resultados esperado. Eliminadas a la vez varias cuentas de correo electrónico del sistema. 8.9. Evolución de la prueba. Prueba satisfactoria. 9. Extensión de la fecha de expiración de varias cuentas de correo a la vez. 9.5. Descripción. El usuario con credenciales, una vez listados los buzones podrá extender su fecha de expiración. Para ello debe marcar los buzones deseados y posteriormente seleccionar en el menú de acciones la opción “Extender” y pulsar el botón “Aceptar”, por defecto las fechas de expiración de todas las cuentas marcadas serán aplazadas por un año. 9.6. Condiciones de ejecución. Debe existir al menos una cuenta de correo electrónico en el sistema. 9.7. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. 45
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. - Se mostrará un listado con el nombre de las cuentas de correo electrónico registradas en el sistema. - El administrador seleccionará las cuentas que desea extender la fecha de expiración. - Seleccionará la opción "Extender" del menú "Acciones" y pulsará el botón “Aceptar”. - Las fechas de expiración de los buzones seleccionados serán aplazadas por un año. 9.8. Resultados esperado. Extender la fecha de expiración de varias cuentas de correo electrónico por el plazo de un año. 9.9. Evolución de la prueba. Prueba satisfactoria. 10. Búsqueda de una cuenta de correo electrónico. 10.5. Descripción. El usuario autenticado, una vez listados los buzones introduce en el buscador los parámetros deseados para filtrar los dominios que cumplan con dicho criterio. 10.6. Condiciones de ejecución. Ninguna. 10.7. Entrada. - El administrador del sistema seleccionará del menú principal la opción: “Buzones”. - Se mostrará un listado con el nombre de los buzones disponibles y el buscador. - El administrador introduce en el buscador los criterios por los que desea filtrar las cuentas de correo; estos pueden ser: nombre, área, grupo, dominio, nombre de 46
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. usuario, fecha de creación, fecha de expiración. - El administrador pulsa el botón “Filtrar”. - Se muestra un listado con los dominios que cumplan con los criterios dados. 10.8. Resultados esperado. Listado de los buzones que cumplan con los criterios dados. 10.9. Evolución de la prueba. Prueba Satisfactoria. 11. Validar datos de cuenta de correo. 11.5. Descripción. Siempre que se inserte o modifique un registro, comprobar que el nombre de usuario tenga al menos tres letras o números para que sea válido, también se aceptan siguientes caracteres: _. Verificar que la fecha de creación no sea posterior a la de expiración. 11.6. Condiciones de ejecución. Debe existir al menos un buzón de correo en el sistema. 11.7. Entrada. - El administrador pulsa sobre el enlace “Nuevo” para agregar un nuevo buzón de correo. - Inserta los datos pertinentes (área, grupo, nombre, usuario, contraseña, dominio y si estará activo) y presiona el botón “Guardar” o “Guardar y crear otro” en caso que se desee añadir otro registro. - Si alguno de los datos introducidos son incorrectos, se mostrará nuevamente el formulario con los datos introducidos y serán señalados los campos erróneos, en caso contrario serán guardados en la base de datos. 47
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 11.8. Resultados esperado. Si los campos modificados son correctos serán actualizados en la base de datos, en caso contrario, mostrar mensaje informativo en los campos que no cumplan con las condiciones preestablecidas. 11.9. Evolución de la prueba. Prueba satisfactoria. 4.2.3. Casos de prueba para la historia de usuarios H6. 12. Verificación del control de acceso al sistema. 12.5. Descripción. El usuario, al introducir la dirección de la interfaz de administración en un navegador web, apreciará la página principal del mismo. En ella encontrará un formulario en el que se le solicita el nombre de usuario (login) y la contraseña (password). El usuario debe introducir la información requerida en dichos campos. Cuando se cumple que el usuario no tiene las credenciales requeridas, no tendrá acceso a funcionalidades que brinda el sistema. 12.6. Condiciones de ejecución. Ninguna 12.7. Entrada. - El usuario abre el Sistema de Gestión de Correo en un navegador web. - Aparece un formulario en el que se solicita el nombre de usuario y la contraseña. - El usuario introduce dicha información en el campo correspondiente y presiona el botón “Entrar”. - El sistema verifica la información de ambos campos en la base de datos y le asigna al usuario las credenciales correspondientes. En caso de que uno de los 48
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. campos sea incorrecto muestra un mensaje informativo. - El sistema da acceso al usuario con sus credenciales correspondientes. En caso de que intente acceder a una funcionalidad para la cual no contiene privilegios, muestra un mensaje informativo. 12.8. Resultado esperado Sólo los usuarios registrados y con las credenciales requeridas pueden acceder a las funcionalidades del sistema. 12.9. Evaluación de la prueba Prueba satisfactoria. 4.3. Pruebas automáticas. La automatización de pruebas (automated tests) es uno de los mayores avances en la programación desde la invención de la orientación a objetos. Concretamente en el desarrollo de las aplicaciones web, las pruebas aseguran la calidad de la aplicación incluso cuando el desarrollo de nuevas versiones es muy activo. (5) A la aplicación se le realizaron dos tipos diferentes de pruebas automáticas: pruebas unitarias y pruebas funcionales. Las pruebas unitarias se realizaron con el objetivo de comprobar que todas las funciones y métodos funcionaran correctamente. Este tipo de pruebas permitieron validar la forma en que estos trabajaban en determinados casos. Para su realización se empleó el framework Lime, el cual viene integrado en Symfony. Por otra parte, las pruebas funcionales se efectuaron para verificar que la aplicación funcionara correctamente en su conjunto. Permitieron probar todas las capas de la aplicación: el sistema de enrutamiento, el modelo, las acciones y las plantillas. 49
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. 4.4. Resultados obtenidos. En este apartado se relacionan los resultados obtenidos hasta el momento en el desarrollo del proyecto. Es importante resaltar que este sistema está sujeto a cambios constantemente, posee un diseño dinámico que lo hace muy flexible ante los cambios. Como parte de un proceso de mejora continua se estableció un mecanismo para la obtención de las opiniones de administradores de redes de las diferentes áreas y demás instituciones de la provincia. Esta información se recibe a través de encuestas y mediante la interacción directa con los mismos. 4.4.4. Acerca del tiempo de desarrollo. La idea de reemplazar el TUNEL viene dando vueltas desde hace mucho tiempo. No es hasta Diciembre de 2008 que se comienzan a dar pasos a la nueva concepción del Sistema de Gestión de Correo. Se comenzó realizando labores investigativas. En los primeros días de febrero de 2009 se realizan las planificaciones iniciales. Se instala el entorno de desarrollo y se comienza a trabajar en las historias de usuario correspondientes a la primera iteración. Todo el proceso de desarrollo tomó aproximadamente cuatro meses y medio. La implementación de los filtros para el correo saliente fue, entre todas las tareas, la que más tiempo demandó (más de tres semanas). Las funcionalidades actuales están listas desde el 9 de junio de 2009, día en que se realizó el lanzamiento de la primera versión oficial de gesCorreo. Si se tiene en cuenta que este proyecto fue desarrollado por un solo programador, con poca experiencia en el uso del framework utilizado, el período de tiempo empleado es relativamente corto y se superaron las expectativas de la planificación inicial. 4.4.5. Acerca de las funcionalidades obtenidas. Entre las características más atrayentes se pueden mencionar: Interfaz de administración 50
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. - Gestión de áreas. - Gestión de dominios de correo. - Gestión de grupos virtuales. - Gestión de buzones de correo electrónico. - Gestión y configuración de filtros para el correo saliente. - Gestión de usuarios del sistema. - Gestión de Permisos sobre funcionalidades del sistema. - Gestión de Roles (conjunto de permisos) del sistema. - Filtros con varios criterios de búsqueda en todos los módulos del sistema. - Expiración automática de cuentas de correo tras un período determinado. - Eliminación por lotes de buzones de correo. - Extender la fecha de expiración y activación de varias cuentas de correo a la vez. - Uso de tareas desde la línea de comando para brindar mantenimiento a la base de datos e índice de búsquedas. Buscador de usuarios de correo - Búsquedas por distintos criterios de usuarios de correo electrónico, con soporte para expresiones regulares y haciendo uso un potente motor de búsqueda (Zend Lucene). - URL’s amigables al usuario. 4.5. Conclusiones Son las pruebas las que guían la calidad del sistema, son ellas quienes determinan si se está o no en condiciones de continuar avanzando. Por esta razón se diseñaron en 51
  • SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS. total 12 casos de prueba para probar las funcionalidades, además, se realizaron pruebas unitarias y funcionales. El conjunto de casos de prueba garantizó que la aplicación hiciera lo que se supone que debe hacer. Incluso cuando el código interno de la aplicación sufrió cambios constantemente. Las pruebas automatizadas permitieron garantizar que dichos cambios no introducían incompatibilidades en el funcionamiento de la aplicación. En el análisis de los resultados se relacionaron las funcionalidades alcanzadas por el sistema en el período que se ha estado trabajando sobre él. El tiempo empleado desde las tareas investigativas hasta la versión actual fue de 20 semanas, lo que representa un éxito rotundo por cuanto se superaron las expectativas aunque todavía queda mucho trabajo por realizar en aras de hacer del sistema un modelo en cuanto a sistemas de gestión de correo. 52
  • SISTEMA DE GESTIÓN DE CORREO. CONCLUSIONES. CONCLUSIONES 1. El estudio realizado al proceso de gestión de correo electrónico en la UPR demostró que la aplicación existente resultaba insuficiente para las nuevas y crecientes demandas de la institución. 2. El resultado del análisis realizado a las soluciones existentes a nivel internacional demostró que no se ajustaban a los requerimientos de la UPR y que se requería una solución a la medida. 3. Se explotaron las ventajas que brindan las herramientas, lenguajes y metodologías escogidas, lo que posibilitó que la confección del software en el tiempo establecido, tuviera la calidad requerida. 4. Se incorporaron características no encontradas en la aplicación usada hasta ahora que facilitan a los administradores tener un mayor control sobre la gestión y configuración del servicio de correo electrónico. 5. Se logró integrar en la herramienta de administración el manejo de roles, permisos y usuarios del sistema. 6. La solución propuesta le hace frente al crecimiento sostenido de la intranet universitaria y es flexible y adaptable a cambios tecnológicos que se presenten. 7. Las pruebas realizadas garantizan el comportamiento adecuado de la aplicación aún en situaciones extremas. 8. El sistema desarrollado, cumplió con las necesidades expuestas y cubrió las expectativas del cliente. 53
  • SISTEMA DE GESTIÓN DE CORREO. RECOMENDACIONES. RECOMENDACIONES 1. Continuar el desarrollo de este sistema, adicionándole nuevas funcionalidades y servicios, para adecuarlo más a las demandas de la creciente y dinámica intranet de la Universidad. 2. Extender aún más el sistema de manera que pueda ser utilizado no sólo en la UPR, sino en cualquier empresa que requiera de este tipo de servicios. 3. Desarrollar una versión de carácter genérico y convertirla en un plugin que pueda ser puesto a disposición de la comunidad de desarrolladores de Symfony. 54
  • SISTEMA DE GESTIÓN DE CORREO. REFERENCIAS BIBLIOGRÁFICAS. REFERENCIAS BIBLIOGRÁFICAS 1. Age, C. (2007). Libro blanco sobre frameworks PHP para empresas. 2. Ailin Orjuela Duarte, M. R. (2008). Las Metodologías de Desarrollo Ágil como una Opurtunidad para la Ingeniería del Software Educativo. Colombia: Universidad de Pamplona. 3. Ben Collins-Sussman, B. W. (2008). Control de versiones con Subversion. O'Reilly Media. 4. colectivo de mononeurona.org. (2008). Despabilando la mononeurona ¿PHP, Python, ASP, Perl o JSP? Obtenido de MonoNeurona Commons: http://www.mononeurona.org/ 5. Fabien Potencier, F. Z. (s.f.). Symfony, la guía definitiva. Obtenido de Libros web: www.librosweb.es 6. Gamma, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. 7. Guía Breve de Servicios Web. (enero de 2008). Obtenido de La Oficina del W3C en España. 8. Informáticos, D. d. Patrones de Diseño Clásicos. Sevilla: Universidad de Sevilla. 9. Ing. Luis Garcia, I. Y. (s.f.). Desarrollo ágil de Aplicaciones y Bases de Datos de nivel empresarial. Obtenido de http://www.onuva.com/conf/ONUVA-Conf2- DesarrolloAgilAppsDB.pdf 10. José Canó, P. L. Metodologías Ágiles en el Desarrollo de Software. Valencia: Universidad Politécnica de Valencia. 11. Lenguajes de programación. (2006). Obtenido de http://www.lenguajes-de- programacion.com. 12. Sevilla, I. R. (mayo de 2007). El paradigma Modelo Vista Controlador (Tutorial ROR II). Obtenido de Una de codigo: http://www.unadecodigo.com 55
  • SISTEMA DE GESTIÓN DE CORREO. REFERENCIAS BIBLIOGRÁFICAS. 13. Sicilia, M.-A. (septiembre de 2008). Funciones de los Sistemas Gestores de Bases de Datos. Obtenido de connexions: http://cnx.org/content/m17543/latest/ 14. UCI, D. C. (2005). Conferencia 7 de Ingeniería del Software Patrones de Diseño. Ciudad de La Habana. 15. Valdés, D. P. (octubre de 2007). Qué son las bases de datos? Obtenido de Maestros del Web. 16. xtech. (s.f.). Servidor Web Apache. Obtenido de xtech, Soluciones linux para empresas: http://wiki.xtech.com.ar/index.php/Servidor_web_Apache 56
  • SISTEMA DE GESTIÓN DE CORREO. BIBLIOGRAFÍA. BIBLIOGRAFÍA Age, C. (2007). Libro blanco sobre frameworks PHP para empresas. Ailin Orjuela Duarte, M. R. (2008). Las Metodologías de Desarrollo Ágil como una Opurtunidad para la Ingeniería del Software Educativo. Colombia: Universidad de Pamplona. Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison Wesley. Ben Collins-Sussman, B. W. (2008). Control de versiones con Subversion. O'Reilly Media. Fabien Potencier, F. Z. (s.f.). Symfony, la guía definitiva. Obtenido de Libros web: www.librosweb.es Gamma, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Guía Breve de Servicios Web. (enero de 2008). Obtenido de La Oficina del W3C en España. Informáticos, D. d. Patrones de Diseño Clásicos. Sevilla: Universidad de Sevilla. Ing. Luis Garcia, I. Y. (s.f.). Desarrollo ágil de Aplicaciones y Bases de Datos de nivel empresarial. Obtenido de http://www.onuva.com/conf/ONUVA-Conf2- DesarrolloAgilAppsDB.pdf José Canó, P. L. Metodologías Ágiles en el Desarrollo de Software. Valencia: Universidad Politécnica de Valencia. Karel Rodríguez Varona, Y. C. (Junio de 2007). Portal de Software Libre 2.0. Cuba. Kniberg, H. (2007). SCRUM y XP desde las trincheras. InfoQ Enterprise Software Development Series . 57
  • SISTEMA DE GESTIÓN DE CORREO. BIBLIOGRAFÍA. Lenguajes de programación. (2006). Obtenido de http://www.lenguajes-de- programacion.com. Matos, R. M. Introducción al trabajo con Base de Datos. Asignatura de Sistemas de Gestión de Base de Datos. Palacio, J. (s.f.). Metodologías ágiles. Obtenido de http://www.navegapolis.net Sandra Menendez Alonso, I. T. (2008). Sistema de Gestión de Accesos. Cuba. Sevilla, I. R. (mayo de 2007). El paradigma Modelo Vista Controlador (Tutorial ROR II). Obtenido de Una de codigo: http://www.unadecodigo.com Sicilia, M.-A. (septiembre de 2008). Funciones de los Sistemas Gestores de Bases de Datos. Obtenido de connexions: http://cnx.org/content/m17543/latest/ UCI, D. C. (2005). Conferencia 7 de Ingeniería del Software Patrones de Diseño. Ciudad de La Habana. Valdés, D. P. (octubre de 2007). Qué son las bases de datos? Obtenido de Maestros del Web. xtech. (s.f.). Servidor Web Apache. Obtenido de xtech, Soluciones linux para empresas: http://wiki.xtech.com.ar/index.php/Servidor_web_Apache 58
  • SISTEMA DE GESTIÓN DE CORREO. GLOSARIO DE TÉRMINOS. GLOSARIO DE TÉRMINOS Administrador de red: profesional capacitado para gestionar redes informática. Es la persona de confianza que maneja información privada de la empresa, como base de datos, contraseñas y llaves de acceso claves para modificar, actualizar o reparar servicios de red. Credenciales: par usuario - contraseña. Es utilizado comúnmente en cualquier aplicación que requiera autenticar. En dependencia del contexto, también puede interpretarse como la unión del par anteriormente mencionado, con la suma de permisos que tiene un usuario determinado en un sitio específico, es decir, como un pasaporte o visa para transitar en la red. Escalabilidad: capacidad de un sistema de aumentar el número de sus usuarios, aumentando sus recursos y sin perder ninguna de sus ventajas. http: (Hypertext Transfer Protocol) Protocolo de transferencia de hipertexto. Es el protocolo usado en cada transacción de la Web. Interfaz: Es el punto, el área, o la superficie a lo largo de la cual dos cosas de naturaleza distinta convergen. En software, una interfaz de usuario es la parte del programa informático que permite el flujo de información entre varias aplicaciones o entre el propio programa y el usuario. Layouts: (Acomodo) Organización de la información (navegación, texto, e imágenes) dentro de una página. Lenguaje interpretado: Un lenguaje de programación que fue diseñado para ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados. También se les conoce como lenguajes de script. Linux: GNU Linux, sistema operativo tipo-Unix y el nombre de su núcleo. Es uno de los paradigmas más prominentes del software libre y del desarrollo del código abierto. Su código fuente está disponible públicamente y cualquier persona puede 59
  • SISTEMA DE GESTIÓN DE CORREO. GLOSARIO DE TÉRMINOS. libremente usarlo, estudiarlo, redistribuirlo y, con los conocimientos informáticos adecuados, modificarlo. Netware: es un sistema operativo orientado a servidores desarrollado por la empresa Novell. Sistema de Gestión de Base de Datos (SGBD): Son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Software Libre: (en inglés free software) Es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. World Wide Web (WWW o Web): (del inglés, Telaraña Mundial), es un sistema de hipertexto que funciona sobre Internet. 60
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. ANEXOS Anexo 1: Tareas correspondientes a distintas historias de usuario. 1. Tareas de Gestión de dominios de correo electrónico. Tabla 11: Introducción de un dominio de correo Tabla 12: Modificación de los datos de un dominio de correo 61
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Tabla 13: Eliminación de un dominio de correo Tabla 14: Búsqueda de un dominio. 62
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. 2. Tareas de Gestión de cuentas de correo electrónico. Tabla 15: Introducción de una cuenta de correo. Tabla 16: Modificación de los datos de una cuenta de correo. 63
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Tabla 17: Eliminación de una cuenta de correo. Tabla 18: Eliminación de varias cuentas de correo a la vez. 64
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Tabla 19: Extensión la fecha de expiración de varias cuentas de correo a la vez. Tabla 20: Búsqueda de una cuenta de correo electrónico. 65
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Tabla 21: Validar datos de cuenta de correo. 3. Tareas de Control de acceso. Tabla 22: Gestionar los usuarios del sistema. 66
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Tabla 23: Gestionar los roles del sistema. Tabla 25: Gestionar los privilegios del sistema. 67
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Anexo 2: Prototipos de interfaz de usuario de gesCorreo. Figura 7: Prototipo de Gestión de áreas. 68
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Figura 8: Prototipo de Gestión de dominios. 69
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Figura 9: Prototipo de Filtros de salida. 70
  • SISTEMA DE GESTIÓN DE CORREO. ANEXOS. Figura 10: Prototipo de Gestión de grupos. 71
  • SISTEMA DE GESTIÓN DE CORREO. OPINIÓN DEL TUTOR. OPINIÓN DEL TUTOR. Durante el desarrollo del trabajo el diplomante Rafael Ernesto Ferro González mostró buen grado de independencia, creatividad, dedicación y responsabilidad. Se vio en la necesidad de profundizar sus conocimientos en relación a la teoría objeto de estudio de dicha investigación, así como en diferentes aplicaciones de desarrollo para la construcción de la herramienta obtenida y el uso de la metodología XP (Programación Extrema) para encausar las diferentes etapas del proceso de ingeniería, para lo que consultó una amplia bibliografía y sitios Web referidos a estos temas los que aparecen referenciados en el documento. Cumplió cabalmente con los objetivos según las exigencias planteadas por el cliente en términos del problema abordado, desarrollando con un alto nivel de profesionalidad cada tarea propuesta en el curso de la investigación, destacándose por su constancia, por la superación constante exigida por las propias complejidades de la temática a resolver. Es muy valioso destacar la seriedad y disciplina mostrada por el aspirante. Considero que el diplomante posee los conocimientos y habilidades necesarias que lo hacen acreedor del Título de Ingeniero en Informática, siendo capaz de ejercer con alta profesionalidad futuros desempeños laborales para dar solución a cualquier problema en esta área del conocimiento, por lo que le proponemos que se le otorgue como evaluación la calificación de Excelente (5 puntos). _______________________________ _______________________________ Ing. Raydel Almestro Román Ing. Sandra Menendez Alonso 9 de junio de 2009 9 de junio de 2009 72