SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
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
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd
Diploma Rafael Ernesto Ferro GonzáLez Crd

Weitere ähnliche Inhalte

Ähnlich wie Diploma Rafael Ernesto Ferro GonzáLez Crd

Entrega monografias pdf
Entrega monografias pdfEntrega monografias pdf
Entrega monografias pdfelyzanabria
 
Aplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAndrés Rincón Pacheco
 
Actividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesActividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesAndres Paredes
 
Bladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativoBladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativochoclito12
 
Yuri carrion a. sistema operativo 2
Yuri carrion a. sistema operativo 2Yuri carrion a. sistema operativo 2
Yuri carrion a. sistema operativo 2yurycarrion123
 
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...ssuser0fe8b41
 
Trabajo de investigacion del iii corte
Trabajo de investigacion del iii corteTrabajo de investigacion del iii corte
Trabajo de investigacion del iii corteJaidy-sanabria
 
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOS
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOSMATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOS
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOSEVASERIES
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Martin Pacheco Chávez
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdfNel Marquez
 
Exposiciones Unidad 3
Exposiciones Unidad 3Exposiciones Unidad 3
Exposiciones Unidad 3guestf3f37c
 

Ähnlich wie Diploma Rafael Ernesto Ferro GonzáLez Crd (20)

Entrega monografias pdf
Entrega monografias pdfEntrega monografias pdf
Entrega monografias pdf
 
Aplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2ME
 
Anai Villa Och
Anai Villa OchAnai Villa Och
Anai Villa Och
 
Actividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesActividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredes
 
Bladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativoBladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativo
 
Yuri carrion a. sistema operativo 2
Yuri carrion a. sistema operativo 2Yuri carrion a. sistema operativo 2
Yuri carrion a. sistema operativo 2
 
Utrilla sd
Utrilla sdUtrilla sd
Utrilla sd
 
Memoria de titulación informatica administrativa
Memoria de titulación informatica administrativaMemoria de titulación informatica administrativa
Memoria de titulación informatica administrativa
 
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...
JORGE WILLIAMS RODRIGUEZ MEZA - SOFTWARE PROCESOS ACADEMICOS Y ADMINISTRATIVO...
 
Sistema seguimientoeg
Sistema seguimientoegSistema seguimientoeg
Sistema seguimientoeg
 
Trabajo de investigacion del iii corte
Trabajo de investigacion del iii corteTrabajo de investigacion del iii corte
Trabajo de investigacion del iii corte
 
Tesis Adrian
Tesis AdrianTesis Adrian
Tesis Adrian
 
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOS
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOSMATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOS
MATERIAL TECNOLOGÍA DE INFORMACIÓN PARA LOS NEGOCIOS
 
Proyecto de investigación afri
Proyecto de investigación afriProyecto de investigación afri
Proyecto de investigación afri
 
Proyecto de investigación AFRI
Proyecto de investigación AFRIProyecto de investigación AFRI
Proyecto de investigación AFRI
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.
 
Portafolio de so en pdf
Portafolio de so en pdfPortafolio de so en pdf
Portafolio de so en pdf
 
Exposiciones Unidad 3
Exposiciones Unidad 3Exposiciones Unidad 3
Exposiciones Unidad 3
 
Practica 3
Practica 3Practica 3
Practica 3
 
Carreras de ingeniería
Carreras de ingenieríaCarreras de ingeniería
Carreras de ingeniería
 

Kürzlich hochgeladen

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaAlejandraFelizDidier
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 

Kürzlich hochgeladen (20)

Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 

Diploma Rafael Ernesto Ferro GonzáLez Crd

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. SISTEMA DE GESTIÓN DE CORREO. DEDICATORIA. DEDICATORIA A mi familia y amigos. V
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 3: Historia de Usuario 2 (H2). 23
  • 36. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 4: Historia de Usuario 3 (H3). 24
  • 37. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 5: Historia de Usuario 4 (H4). 25
  • 38. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 6: Historia de Usuario 6 (H6). 26
  • 39. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 7: Historia de Usuario 7 (H7). 27
  • 40. SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA. Tabla 8: Historia de Usuario 8 (H8). 28
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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