Diploma Rafael Ernesto Ferro GonzáLez Crd

84

Click here to load reader

Transcript of Diploma Rafael Ernesto Ferro GonzáLez Crd

Page 1: Diploma Rafael Ernesto Ferro GonzáLez Crd

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

Page 2: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. PENSAMIENTO.

I

PENSAMIENTO

Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad.

Albert Einstein

Page 3: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. PÁGINA DE ACEPTACIÓN.

II

PÁGINA DE ACEPTACIÓN

_________________________________________

Presidente del Tribunal

_________________________________________

Secretario

_________________________________________

Vocal

Ciudad y fecha:

Page 4: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DECLARACIÓN DE AUTORIDAD.

III

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

[email protected]

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

Page 5: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. AGRADECIMIENTOS.

IV

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.

Page 6: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DEDICATORIA.

V

DEDICATORIA

A mi familia y amigos.

Page 7: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. RESUMEN.

VI

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.

Page 8: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ABSTRACT.

VII

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.

Page 9: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO.

VII

I

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

Page 10: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO.

IX

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

Page 11: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO.

X

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

Page 12: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. TABLA DE CONTENIDO.

XI

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

Page 13: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

1

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.

Page 14: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

2

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.

Page 15: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

3

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.

Page 16: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

4

- 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

Page 17: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

5

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.

Page 18: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. INTRODUCCIÓN.

6

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.

Page 19: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

7

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.

Page 20: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

8

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.

Page 21: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

9

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.

Page 22: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

10

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.

Page 23: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

11

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

Page 24: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

12

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.

Page 25: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

13

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)

Page 26: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

14

¿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.

Page 27: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

15

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.

Page 28: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

16

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.

Page 29: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

17

- 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.

Page 30: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

18

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.

Page 31: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

19

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.

Page 32: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO I. FUNDAMENTACIÓN TEÓRICA.

20

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.

Page 33: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

21

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.

Page 34: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

22

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).

Page 35: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

23

Tabla 3: Historia de Usuario 2 (H2).

Page 36: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

24

Tabla 4: Historia de Usuario 3 (H3).

Page 37: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

25

Tabla 5: Historia de Usuario 4 (H4).

Page 38: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

26

Tabla 6: Historia de Usuario 6 (H6).

Page 39: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

27

Tabla 7: Historia de Usuario 7 (H7).

Page 40: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

28

Tabla 8: Historia de Usuario 8 (H8).

Page 41: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

29

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:

Page 42: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO II. CARACTERÍSTICAS DEL SISTEMA.

30

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.

Page 43: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

31

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.

Page 44: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

32

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

Page 45: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

33

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

Page 46: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

34

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)

Page 47: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

35

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.

Page 48: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. DESARROLLO DEL SISTEMA.

36

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.

Page 49: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

37

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.

Page 50: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

38

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.

Page 51: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

39

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,

Page 52: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

40

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.

Page 53: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

41

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.

Page 54: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

42

- 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

Page 55: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

43

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.

Page 56: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

44

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.

Page 57: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

45

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”.

Page 58: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

46

- 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

Page 59: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

47

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.

Page 60: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

48

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

Page 61: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

49

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.

Page 62: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

50

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

Page 63: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

51

- 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

Page 64: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CAPÍTULO IV. PRUEBAS Y RESULTADOS.

52

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.

Page 65: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. CONCLUSIONES.

53

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.

Page 66: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. RECOMENDACIONES.

54

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.

Page 67: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. REFERENCIAS BIBLIOGRÁFICAS.

55

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

Page 68: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. REFERENCIAS BIBLIOGRÁFICAS.

56

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

Page 69: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. BIBLIOGRAFÍA.

57

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 .

Page 70: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. BIBLIOGRAFÍA.

58

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

Page 71: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. GLOSARIO DE TÉRMINOS.

59

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

Page 72: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. GLOSARIO DE TÉRMINOS.

60

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.

Page 73: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

61

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

Page 74: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

62

Tabla 13: Eliminación de un dominio de correo

Tabla 14: Búsqueda de un dominio.

Page 75: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

63

2. Tareas de Gestión de cuentas de correo electrónico.

Tabla 15: Introducción de una cuenta de correo.

Tabla 16: Modificación de los datos de una cuenta de correo.

Page 76: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

64

Tabla 17: Eliminación de una cuenta de correo.

Tabla 18: Eliminación de varias cuentas de correo a la vez.

Page 77: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

65

Tabla 19: Extensión la fecha de expiración de varias cuentas de correo a la vez.

Tabla 20: Búsqueda de una cuenta de correo electrónico.

Page 78: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

66

Tabla 21: Validar datos de cuenta de correo.

3. Tareas de Control de acceso.

Tabla 22: Gestionar los usuarios del sistema.

Page 79: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

67

Tabla 23: Gestionar los roles del sistema.

Tabla 25: Gestionar los privilegios del sistema.

Page 80: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

68

Anexo 2: Prototipos de interfaz de usuario de gesCorreo.

Figura 7: Prototipo de Gestión de áreas.

Page 81: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

69

Figura 8: Prototipo de Gestión de dominios.

Page 82: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

70

Figura 9: Prototipo de Filtros de salida.

Page 83: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. ANEXOS.

71

Figura 10: Prototipo de Gestión de grupos.

Page 84: Diploma Rafael Ernesto Ferro GonzáLez Crd

SISTEMA DE GESTIÓN DE CORREO. OPINIÓN DEL TUTOR.

72

OPINIÓN DEL TUTOR.

Durante el desarrollo del trabajo el diplomante Rafael Ernesto Ferro González mostró

buen grado de independencia, creatividad, dedicación y responsabilidad. Se vio en la

necesidad de profundizar sus conocimientos en relación a la teoría objeto de estudio

de dicha investigación, así como en diferentes aplicaciones de desarrollo para la

construcción de la herramienta obtenida y el uso de la metodología XP

(Programación Extrema) para encausar las diferentes etapas del proceso de

ingeniería, para lo que consultó una amplia bibliografía y sitios Web referidos a estos

temas los que aparecen referenciados en el documento.

Cumplió cabalmente con los objetivos según las exigencias planteadas por el cliente

en términos del problema abordado, desarrollando con un alto nivel de

profesionalidad cada tarea propuesta en el curso de la investigación, destacándose

por su constancia, por la superación constante exigida por las propias complejidades

de la temática a resolver. Es muy valioso destacar la seriedad y disciplina mostrada

por el aspirante.

Considero que el diplomante posee los conocimientos y habilidades necesarias que

lo hacen acreedor del Título de Ingeniero en Informática, siendo capaz de ejercer con

alta profesionalidad futuros desempeños laborales para dar solución a cualquier

problema en esta área del conocimiento, por lo que le proponemos que se le otorgue

como evaluación la calificación de Excelente (5 puntos).

_______________________________ _______________________________

Ing. Raydel Almestro Román Ing. Sandra Menendez Alonso

9 de junio de 2009 9 de junio de 2009