diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios
TRANSCRIPT
DISEÑO E IMPLEMENTACION DE UN SISTEMA DE ADMINISTRACION PARA LA ACTIVACION Y SEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS
PARA IMAGINAMOS.COM
PRESENTADO POR:
JAIRO ENRIQUE CELIS CARRILLO
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
PROYECTO CURRICULAR DE SISTEMAS
BOGOTÁ D.C.
2011
1
DISEÑO E IMPLEMENTACION DE UN SISTEMA DE ADMINISTRACION PARA LA ACTIVACION Y SEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS
PARA IMAGINAMOS.COM
Presentado Por:
JAIRO ENRIQUE CELIS CARRILLO COD 20022020160
Proyecto de pasantía
FERNANDO MARTINEZ RODRIGUEZ
Director Interno
JOSE JAIR BONILLA
Director Externo
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
PROYECTO CURRICULAR DE SISTEMAS
BOGOTÁ D.C.
2011
2
TABLA DE CONTENIDO
INTRODUCCION........................................................................................9
CAPITULO I PROBLEMA DE INVESTIGACION.....................................11
1. FORMULACION DEL PROBLEMA....................................................11
1.1. DESCRIPCION DEL PROBLEMA...................................................12
1.2. FORMULACION DEL PROBLEMA.................................................12
2. JUSTIFICACION.................................................................................14
3. OBJETIVOS........................................................................................16
3.1. OBJETIVO GENERAL.....................................................................16
3.2. OBJETIVOS ESPECIFICOS.............................................................16
4. ALCANCES Y LIMITACIONES...........................................................17
4.1. ALCANCE........................................................................................17
4.2. LIMITACIONES................................................................................17
5. FACTORES DIFERENCIALES O DE VALOR AGREGADOS DE LA
PROPUESTA............................................................................................19
CAPITULO II MARCO TEORICO DEL PROBLEMA A INVESTIGAR.....20
6. ASPECTO GENERALES....................................................................20
3
7. MARCO REFERENCIAL.....................................................................22
8. MARCO TEORICO..............................................................................26
8.1. SERVICIOS WEB.............................................................................26
8.2 SERVIDOR WEB...............................................................................30
8.3. APACHE...........................................................................................31
8.4. MySQL..............................................................................................33
8.5. PHP...................................................................................................34
8.6. SOFTWARE LIBRE..........................................................................35
8.7. METODOLOGIA DE PROGRAMACION XP....................................36
9. MARCO METODOLOGICO................................................................40
9.1. TIPO DE ESTUDIO...........................................................................40
9.2. METODO Y/O DISEÑO DE LA INVESTIGACION...........................41
9.3. PARTICIPANTES.............................................................................43
9.4. RECURSOS......................................................................................44
9.5. INSTRUMENTOS Y EQUIPOS.........................................................45
9.6. INGENIERIA DEL PROYECTO........................................................45
4
10. RESULTADOS OBTENIDOS............................................................51
10.1. FASE DE PLANIFICACION............................................................51
10.2. FASE DE DISEÑO...........................................................................54
10.3. FASE DE DESARROLLO...............................................................57
10.4. FASE DE PRUEBAS.......................................................................58
11. RECOMENDACIONES PARA PROYECTOS FUTUROS..................63
12. CONCLUSIONES...............................................................................64
13. BIBLIOGRAFIA.................................................................................65
13.1. REFERENCIAS ELECTRONICAS..................................................65
ANEXOS...................................................................................................68
5
ANEXOS
ANEXO A: Mockups de diseño.
ANEXO B: Formato de revisión de código.
ANEXO C: Formato de prueba Beta y pruebas de funcionalidad.
ANEXO D: Manual de Usuario.
6
LISTA DE TABLAS
TABLA 1. Recurso Tecnológico................................................................45
TABLA 2. Formato Revisión de Código....................................................61
TABLA 3. Formato Prueba Beta...............................................................63
TABLA 4. Formato de Pruebas de Funcionalidad.....................................63
7
LISTA DE FIGURAS
Figura 1. Los servicios Web en funcionamiento.......................................29
Figura 2. Bucle basico de un servidor Web..............................................32
Figura 3. Libertades del Sofware Libre.....................................................38
Figura 4. Revision de código..........49Figura 6. Historia de Usuario ingreso
.............................................53Figura 5. Anotaciones usuario Prueba Beta 51
Figura 7. Historia de Usuario pagina inicial...............................................54
Figura 8. Historia de Usuario adicion de activacion..................................54
Figura 9. Historia de Usuario edicion de activacion..................................54
Figura 10. Historia de Usuario detalle de activacion55Figura 11. Historia de
Usuario generacion de informes55Figura 12. Modelo Entidad-Relacion base de
datos del sistema..............57Figura 13. Pantallas del sistema desarrollado 58
8
INTRODUCCION
La compañía Imaginamos.com es una empresa de diseño y desarrollo de sitios
web, y aplicaciones en línea, con su sede principal en Bogotá D.C (Colombia),
ampliando su plan de negocios a Estados Unidos y España.
Debido al alto grado de publicidad y marketing que la Gerencia General
implemento durante el último año, y el reconocimiento como consecuencia directa
de este plan ha logrado que las ventas en hosting y registro de dominios crezcan
en un 300% desde finales de 2008 y principios de 20101, por esta razón la
creación de un Departamento de Soporte Hosting y Dominios fue necesario como
reacción de manera anticipada a los cambios que en su interior han surgido.
El Departamento de Soporte Hosting y Dominios está encargado de brindar ayuda
a los clientes en la compra, activación e implementación de su espacio de hosting
y registro de dominios, brindando una plataforma solida de tecnologías de
información enfocadas al usuario final.
En la actualidad se hace necesario que de la misma forma como la compañía en
general está enfocando sus esfuerzos en la organización de los procesos, el
Departamento de Soporte Hosting y Dominios esté en la misma línea, por esta
razón el fin primordial del desarrollo de este trabajo de pasantía es el diseño e
1 Gerencia General Imaginamos.com
9
implementación de un sistema de administración para la activación y seguimiento
de clientes de hosting y dominios que reemplace al actual y cree una línea de
comunicación más directa con los usuarios, a través del aprovechamiento de la
infraestructura tecnológica que tiene Imaginamos.com.
La metodología utilizada para la elaboración de este proyecto está basada en la
metodología XP, donde su principal beneficio es contar con el usuario final dentro
del equipo de trabajo, además de partir de sus recomendaciones para las buenas
prácticas de desarrollo de software, con lo cual se logra brindar una solución
dinámica y flexible al problema del sistema de administración actualmente utilizado
en la organización.
10
Capítulo I PROBLEMA DE INVESTIGACIÓN
1. FORMULACIÓN DEL PROBLEMA
1.1 Descripción del problema
A causa del crecimiento en el número de clientes en poco tiempo, se originó un
caos en la administración de los clientes de hosting y registro de dominios,
atención de los requerimientos de los usuarios, el tiempo de respuesta hacia los
clientes se incremento y el manejo de estadísticas en el acuerdo de nivel de
servicio2 se hizo difícil de consolidar, dificultando la tarea de los colaboradores y
siendo una de las razones para cometer errores en las soluciones a usuario final.
Actualmente para llevar el registro y administración de la activación de hosting y
registro de dominio se creó una base primaria en Microsoft Access, donde la
persona encargada debe llenar algunos datos acerca de la activación y el cliente
como Fecha de activación, fecha de pago, Nombre de Dominio, Referencia de
Pago, Nota, Dominio, Hosting (Plan de hosting que activa), Servidor (Se cuenta
con 5 servidores, se especifica donde se activa), NIT – CC, Empresa o Razón
Social, Teléfono 1, Teléfono 2, Direccion, Ciudad, Cliente Encargado, E-mail 1, E-
mail2; esta forma de llevar registro de la información genera entre otros
problemas:
2 Acuerdo de Nivel de servicio: SLA por sus siglas en ingles es una parte de un contrato de servicio donde el nivel de servicio formalmente es definido. http://en.wikipedia.org/wiki/Service_level_agreement [Citado el: 3 de Abril de 2010]
11
* Errores en la entrada de los datos: Mala precisión principalmente de los datos
de contacto del cliente.
* Errores de precisión en el vencimiento: En ocasiones se le informa al cliente una
fecha de vencimiento de sus servicios y se registra una fecha diferente,
ocasionando malestar entre los clientes.
* Errores de formato de fecha: El formato de fecha establecido en la bitácora está
basado en DD-MM-AAA, lo que origina que en ocasiones se digite la fecha en
otros formatos creando inconsistencias.
* Demora en la actualización de la base: Debido a que constantemente se están
atendiendo activaciones, en algunos casos la persona encargada de la
actualización de la base no digita a tiempo, ocasionando que en un momento dado
no se tenga la información actualizada de las activaciones de hosting y registro de
dominios.3 Lo anterior lleva a tener problemas en la consolidación de estadísticas
de servicio, pues son errores que no permiten tener una información oportuna,
veraz y creíble, que pueda ser presentada a la Gerencia General, y demostrar la
seriedad y responsabilidad del Departamento de Soporte Hosting y Dominios.
1.2 Formulación del problema
El Departamento de Soporte Hosting y Dominios actualmente tiene a su cargo
alrededor de 1500 Clientes a nivel nacional e internacional y esta cifra cada día
crece, por otro lado semanalmente se debe entregar informes a Gerencia General
de las activaciones y renovaciones de clientes en los diferentes servicios que
3 Análisis por parte de Simon Borrero – Gerente General Imaginamos.com
12
ofrece Imaginamos.com, sin una organización en la base de clientes este informe
se convierte en algo tedioso y difícil de consolidar, generando errores en la
información enviada a Gerencia y dificultando la tarea de la actualización de la
base de clientes.
El envío de mensajes recordatorios de renovación a los clientes que se les ha
cumplido el tiempo adquirido con la compañía en sus servicios, se hace de forma
manual, ocasionando que por la falta de información de contacto de algunos
clientes, debido a que no se tiene un orden en el registro de las diferentes
activaciones, no se les pueda notificar de su vencimiento, ocasionando de esta
manera que algunos clientes vean su sitio suspendido y por ende se molesten por
no ser contactados a tiempo para evitar este tipo de inconvenientes
¿Cómo diseñar e implementar un sistema informático que logre consolidar todos
los registros de las activaciones de hosting y registro de dominios hechos por los
usuarios sin importar el lugar geográfico, que permita obtener mayor control,
seguimiento e información de los clientes?
13
2. JUSTIFICACIÓN
El Departamento de Soporte Hosting y Dominios, debe presentar regularmente
estadísticas de servicio, renovación y, activación de hosting y registro de dominios,
por esta razón debe existir un mecanismo claro y preciso que permita beneficiar a
todos los involucrados, esto es un Sistema de Administración vía web, de esta
forma todos logran mayor beneficio, los usuarios al tener una respuesta inmediata
a sus requerimientos e inquietudes, el Departamento de Soporte Hosting y
Dominios al poder llevar de forma precisa un sistema de administración de
clientes, en el cual se conozca de forma precisa las activaciones de los servicios
de los cliente, y la Gerencia General de la compañía al tener informes reales y
claros que evidencian la responsabilidad del Departamento Soporte Hosting y
Dominios.
Para alcanzar esta meta fue necesario implementar un Sistema de Administración
vía Web, donde se podía tener mayor organización en las diferentes activaciones
de hosting y registro de dominio, envío de informes semanales y datos de contacto
de los clientes del Departamento de Soporte Hosting y dominios.
Con esta solución el Departamento de Soporte Hosting y Dominios se organizó y
logró dar un nivel de servicio muy alto, donde los clientes lograron obtener
soluciones rápidas y efectivas, la Gerencia General logró obtener informes reales
y a tiempo; por otro lado el ambiente en el Departamento de Soporte Hosting y
14
Dominios mejoró al disminuir los niveles de presión que se ocasionaban por la
mala administración de las activaciones, así como los problemas originados por la
falta de datos de contacto de los clientes que ocasionaban la suspensión de los
servicios.
15
3. OBJETIVOS
3.1 OBJETIVO GENERAL
Diseñar e implementar un sistema web de administración, para la activación y
seguimiento de clientes de hosting y dominios para Imaginamos.com, que permita
obtener mayor control, seguimiento e información de los clientes y las estadísticas
de activación y renovación de los servicios.
3.2 OBJETIVOS ESPECÍFICOS
Diseñar un modulo que genere reportes, los cuales permitan el análisis de
sus servicios en la activación de servicios de hosting y dominios, para la
toma de decisiones en marketing, dirigidos a aumentar el número semanal
de activaciones.
Diseñar una interfaz de manejo intuitivo y amigable, donde se lleve un
orden en las activaciones de los clientes, datos de contacto e información
importante para el Departamento de Soporte Hosting y Dominios.
Definir una arquitectura de información ordenada y con diferentes formas de
acceso, poniendo énfasis en la usabilidad y el uso estándares
internacionales de desarrollo web.
Reforzar el área de información contingente (activaciones y datos de
contacto) con reportes, envío de ventanas de mantenimiento, de acuerdo a
la comunicación con los clientes.
16
4. ALCANCES Y LIMITACIONES
4.1 ALCANCE
El sistema de administración para la activación y seguimiento de clientes de
hosting y dominios para Imaginamos.com brinda la información necesaria en
aspectos como: Fecha de Activación, Fecha de Pago, Nombre del dominio,
Referencia de Pago, Plan de Hosting, Servidor de activación, Nit – CC, Nombre o
Razón Social, Teléfono 1, Direccion, Ciudad, Cliente encargado, E-Mail.
El proyecto se entrega con el código fuente, el cual posee licencia GNU GPL, esto
quiere decir que “El autor conserva los derechos de autor (copyleft), y permite la
redistribución y modificación bajo términos diseñados para asegurarse de que
todas las versiones modificadas del software permanecen bajo los mismos
términos”4; manual de usuario, actas de aprobación firmadas al momento de las
pruebas por parte del usuario final. El sistema resultante se montó en el Hosting
de la compañía y allí queda bajo la administración del Departamento de Soporte
Hosting y Dominios5.
4.2 LIMITACIONES
Las limitaciones que se encontraron en el momento del desarrollo de este
proyecto de pasantía fueron las siguientes:
La visualización correcta de la aplicación depende de las versiones de los
navegadores, aunque esto fue independiente de la plataforma de Sistema
4 http://es.wikipedia.org/wiki/C%C3%B3digo_libre#Licencias_GPL [Citado el: 3 de Abril de 2010] SOFTWARE LIBRE5 http://www.imaginamos.com/sacgydo/ [Citado el: 8 de Mayo de 2011] DISEÑO DE PAGINAS WEB Y SOFTWARE WEB DESDE COLOMBIA
17
Operativo donde estén montadas, se sugirió que se utilizara las últimas
versiones de los navegadores actuales.
La disponibilidad de tiempo del Departamento de Soporte Hosting y
Dominios, quienes por su trabajo habitual demoraron el desarrollo, las
pruebas y aceptación del sistema implementado.
Se dependió de la información inicial de contacto que los clientes brindaban
en el momento de su activación, por lo que en ocasiones la información no
era completa y era necesario contactarlos de nuevo para complementar
esta información.
18
5. FACTORES DIFERENCIALES O DE VALOR AGREGADO DE LA
PROPUESTA
Esta implementación de un sistema de administración para la activación y
seguimiento de clientes de hosting y dominios, fue una puesta en práctica de
lineamientos bien definidos para lograr que los tiempos de activación fuesen más
cortos, el conocimientos de los clientes de Imaginamos.com pudiera ser más
amplio y se lograra el objetivo de aumentar el nivel de servicio.
Por ser un desarrollo a la medida logró diferenciarse de software genéricos, que
limitaban, por su cantidad de herramientas llegar a la información importante,
además que esta herramienta es modular, lo que permitió que en el futuro, de ser
necesario pueda seguir puntualizándose hacia los requerimientos del
Departamento de Soporte Hosting y Dominios, y la compañía en General.
19
Capítulo II MARCO TEORICO DEL PROBLEMA A INVESTIGAR
6. ASPECTOS GENERALES
Imaginamos.com nace de la iniciativa de su actual Gerente General, Simon
Borrero Posada, quien es graduado de Administración de Empresas de la
Universidad de los Andes.
Su anhelo de construir una empresa solida dirigida hacia servicios de internet hace
que en el año 2007 inicie labores Imaginamos.com, su enfoque fue hacia el diseño
y desarrollo de páginas web, enfocado en empresas de reconocimiento nacional
entre las que se puede contar, Alcaldía de Palmira, Alcaldía Menor de Tunjuelito,
Meals de Colombia, Frito Lay, Hoteles Dann Carlton, Teletón Colombia, entre
otros.
A finales del año 2008 se comenzó la comercialización de servicio de hosting y
dominios, logrando que en un año se logre la cifra de cerca de 800 clientes
satisfechos6 en estos servicios, no se tenía en Abril de 2009 un Departamento que
se encargara de las activaciones y seguimiento de los clientes, lo que impulso la
necesidad de crear un Departamento especializado en este tema.
6 http://www.imaginamos.com [Citado el: 28 de Abril de 2010] DISEÑO PAGINAS WEB A LA MEDIDA
20
En este momento uno de los principales motivos que tiene el Departamento de
Soporte Hosting y Dominio, es fidelizar a sus clientes y aumentar el número de
activaciones nuevas en hosting y dominio, para lo cual se buscaba consolidar
herramientas que facilitaran esta tarea.
21
7. MARCO REFERENCIAL
Actualmente, las organizaciones empresariales de servicios ven la necesidad de
construir medios, a través de los cuales puedan evidenciar de forma clara las
necesidades y opiniones de sus usuarios, la tecnología les está dando día a día
mecanismos en los cuales basarse y conseguir este objetivo.
Dentro del servicio al cliente se encuentran los niveles de servicio que la empresa
debe alcanzar y en los cuales todos sus esfuerzos se enfocan, de esta manera
encontramos diversos medios de conseguir la comunicación desde y hacia los
usuarios, que permitan conocer de forma clara las expectativas y conclusiones de
los principales clientes. Las empresas privadas, más que las del estado en
nuestro país, toman muy en serio la forma como los usuarios se sienten con el
servicio que ellas ofrecen, para estas empresas una parte de la publicidad se basa
en dar buen servicio al cliente, según la filosofía existente en este aspecto, un
usuario satisfecho trae consigo muchos usuarios mas; sin embargo un usuario
molesto con el servicio puede llevarse consigo muchos más potenciales usuarios,
por esta razón el enfoque es darse a conocer como empresas que consiguen
satisfacer las necesidades y expectativas.
Las empresas de servicios son las que más buscan tener un registro de todas las
incidencias, su solución y tiempo invertido, además de llevar una evaluación por
parte del usuario de la respuesta dada, a partir de datos como estos logran
22
consolidar estadísticas de servicio y compararlas con la curva de Nivel de Servicio
establecida, de esta forma reorientan sus actividades e idean nuevos métodos de
respuesta para aumentar la buena imagen hacia los usuarios; sin embargo, se
encuentra que la mayoría de las empresas colocan en manos de terceros esta
responsabilidad, debido a que según las cifras es mejor pagar un outsourcing que
tener un departamento interno dedicado por completo a resolver incidencias.
En el pasado el Departamento de Soporte Hosting y Dominios, manejaba su
registro de activaciones de hosting y dominios, de forma manual, esto era una
tabla de Access similar a un hoja de cálculo en Excel, donde se registraba cada
activación de hosting que se realizaba en el día y el registro del dominio, no existía
una metodología y procedimiento en el registro de estas activaciones, la mayoría
de las ocasiones al finalizar el día no se contaba con la totalidad de los datos de
contacto de los clientes, así como se hacía difícil el envío de notificaciones a los
clientes del vencimiento de sus servicios con la compañía, por la falta de
consolidación de datos de contacto de los clientes.
Actualmente en el mercado existen múltiples soluciones para registrar y tener
seguimiento de sus clientes, incluso algunas empresas han desarrollado sus
propias soluciones, y por ende son soluciones privativas, costosas y poco
adaptadas a las necesidades propias de la empresa, son las empresas en este
caso quienes se deben adaptar a estas aplicaciones, por este motivo no se
conoce el funcionamiento, los módulos que pueden tener y la flexibilidad con que
23
se desarrolló, por esta razón, una documentación libre que pueda dar alguna
dirección no existe, solo con el comienzo de la acogida del software libre se está
intentando iniciar la documentación propia del tema en esta área en particular.
Podemos encontrar, que en el mercado existen muchas opciones de software
basado en relación con los clientes (CRM, Customer Relationship Management,
por sus siglas en Ingles), entre las cuales podemos encontrar por ejemplo
PeopleSoft, el cual según las características descritas permite llevar registro de los
clientes e identificar a los clientes que realmente están interesados en interactuar
con la compañía y cuáles no desean hacerlo7. Sin embargo esta solución solo
está encaminada a la relación con los clientes, desde un enfoque de
mercadotecnia, lo cual no es el objetivo del desarrollo que se desea, sin contar
con la licencia que se debe pagara Oracle por la utilización de esta aplicación.
Dentro de las herramientas de código libre, se encuentra SugarCRM8, ésta
herramienta se enfoca en el seguimiento de clientes pero se aleja de los
propósitos del Departamento de Soporte Hosting, debido a que es una
herramienta desde el punto de vista del Departamento Comercial y se maneja
para llevar el registro de ventas potenciales, esta herramienta presenta un
desarrollo en código abierto bastante robusto y esto hace que la parametrización a
las necesidades propias de las empresas no se pueda realizar de buena forma,
por lo que son éstas últimas quienes deben seguir los parámetros de esta
7 http://www.oracle.com/global/lad/applications/peoplesoft-enterprise.html [Citado el: 9 de Marzo de 2010] PEOPLESOFT ENTERPRISE8 http://www.sugarcrm.com/crm/ [Citado el: 9 de Marzo de 2010] SUGARCRM – COMMERCIALOPEN SOURCE CRM
24
herramienta, tienen un foro para la comunidad donde se expresan dudas y a partir
de la experiencia de los usuarios son ellos mismos los que responden las
incertidumbres de los demás, si se solicita soporte oficial por parte de SugarCRM,
éste soporte tiene un costo.
Como se observa, las anteriores aplicaciones daban un buen campo de análisis y
desarrollo de nuevas aplicaciones para sistema de incidencias IT.
25
8. MARCO TEÓRICO
“Toda la información disponible para cualquier persona, en cualquier lugar, a través de cualquier dispositivo.”9
Para el desarrollo del proyecto se tomaron aspectos y referencias claras de las
herramientas que se utilizarán para lograr el fin establecido, el diseño e
implementación de un sistema de administración para la activación y seguimiento
de clientes de hosting y dominios para Imaginamos.com
8.1 SERVICIOS WEB
Se debe tener un concepto claro a trabajar y es Servicio Web, que según la W3C10
lo define como “…un sistema de software diseñado para soportar interacción
interoperable máquina a máquina sobre una red”11 basándose en el protocolo
http12; la importancia de este concepto hoy en día, está basado en la potente
masificación que ha tenido internet y en el impacto que las tecnologías de
información están causando en la forma de vida de las personas, en el comercio y
en las comunicaciones, cambiándolas de forma rotunda, bajo este escenario, es
cada vez mayor la necesidad de poder integrar y compartir información entre
diferentes plataformas de software y hardware, originando de esta forma los
actualmente llamados servicios Web.
9 http://www.desarrolloweb.com/articulos/1535.php [Citado el: 3 de Abril de 2010] SERVICIOS WEB EN PLATAFORMA .NET10 W3C:World Wide Consortium, por sus siglas en ingles.11 W3C Consortium. Web Services Architecture. [En línea] 11 de Febrero de 2004. [Citado el: 28 de Marzo de 2010.] http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis.12 HTTP. HyperText Transfer Protocol, por sus siglas en inglés.
26
Los Servicios Web implementan algunos estándares establecidos firmemente hoy
día, por nombrar algunos:
Web Services Protocol Stack: Así se denomina al conjunto de servicios y
protocolos de los servicios Web.
XML (Extensible Markup Language): Es el formato estándar para los
datos que se vayan a intercambiar.
SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote
Procedure Call): Protocolos sobre los que se establece el intercambio.13
La profundización en estos estándares, va mas allá del objetivo de este proyecto,
por lo que se toman a concepto de consulta.
En el grafico siguiente se observa un ejemplo del funcionamiento de los Servicios
Web, y la forma de interacción de los estándares anteriormente mencionados.
13 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Marzo de 2010] SERVICIO WEB
27
Figura 1. Los Servicios Web en funcionamiento
Según el ejemplo del grafico, contextualizándolo a este proyecto, un usuario (que
juega el papel de cliente de los Servicios Web), a través de una aplicación, solicita
información sobre un cliente al cual debe contactar haciendo una petición a un
sistema de registro de activaciones de hosting y dominios que ofrece sus
servicios a través de Internet. El sistema de registro de activaciones de hosting y
dominios ofrece a su cliente (usuario) la información requerida. Para proporcionar
al cliente la información que necesita, este sistema solicita a su vez información a
otros recursos (otros Servicios Web) en relación con el número y tipo de
activaciones, los datos del cliente, valor pagado, etc. El sistema de registro obtiene
información de estos recursos, lo que la convierte a su vez en cliente de esos
otros Servicios Web que le proporcionan la información solicitada sobre el número
y tipo de activaciones, los datos del cliente, etc. Por último, el usuario puede que
solicite información acerca del pago realizado en línea, éste sistema sirve de
intermediario entre el usuario y el servicio Web que gestiono el pago. 14
Las ventajas identificadas al utilizar Servicios Web en el desarrollo del proyecto es
“la gran interoperabilidad entre las aplicaciones de software independientemente
de sus propiedades o de las plataformas sobre las que se instalen” 15 debido a que
trabaja sobre estándares libres que permiten la flexibilidad; “al apoyarse sobre
14 http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb [Citado el: 28 de Marzo de 2010]GUIA BREVE DE SERVICIOS WEB - ¿COMO FUNCIONAN?15 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Septiembre de 2008] SERVICIO WEB
28
HTTP permiten salir por el puerto 80 y de esta forma no se deben cambiar las
reglas de filtrado del firewall” 16 aprovechando al máximo la seguridad que esto
puede brindar a la organización; algo importante es que “permiten que servicios y
software de diferentes compañías ubicadas en diferentes lugares geográficos
puedan ser combinados fácilmente para proveer servicios integrados” 17 esto
debido a los protocolos estándar y abiertos, definidos por la W3C.
Ahora, se aprecia que los servicios Web son muy prácticos debido a que aportan
gran independencia entre la aplicación que usa el Servicio Web y el propio servicio
en sí, de esta forma, los cambios que se hagan a través del tiempo no afectan al
otro directamente, haciéndolo flexible en la construcción de grandes aplicaciones,
además, en la actualidad la tendencia es a construir estas aplicaciones a través de
componentes distribuidos más pequeños que puedan ser fácilmente modificados,
obteniendo más calidad y funcionalidad de las aplicaciones construidas bajo este
panorama. 18
8.2 SERVIDOR WEB
Cuando se habla de Servicios Web, es necesario hablar también de Servidor Web,
quien es el primer actor. Se define al Servidor Web como “un programa que
implementa el protocolo HTTP (o HTTPS, la versión cifrada y autenticada), este
protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para
16 IBID17 IBID18 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Marzo de 2010] RAZONES PARA CREAR SERVICIOS WEB
29
atender y responder a las diferentes peticiones de los navegadores a través de los
Servicios Web, proporcionando los recursos que soliciten” 19.
Un servidor Web básico cuenta con un esquema de funcionamiento muy simple,
basado en ejecutar infinitamente el siguiente bucle:
Figura 2. Bucle básico de un servidor WebLa figura anterior muestra la funcionalidad básica y principal del Servidor Web, sin
embargo debemos considerar que de éste parten diferentes aplicaciones Web,
que son porciones de código que se ejecutan cuando se realizan algunas
peticiones o respuestas HTTP definidas, dentro de estas aplicaciones están:
- Aplicaciones en el lado del cliente: El cliente Web es el encargado de
ejecutarlas en la maquina del usuario. Son las aplicaciones tipo Java o
JavaScript, el servidor proporciona el código de las aplicaciones al cliente y
este, mediante el navegador las ejecuta.
19 http://www.cibernetia.com/manuales/instalacion_servidor_web/1_conceptos_basicos.php [Citado el 28 de Marzo de 2010] CONCEPTOS BASICOS DEL SERVIDOR WEB
Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP es el 80).
Recibe una petición.
Envía el recurso utilizando la misma conexión por la que recibió la petición.
Busca el recurso.
30
- Aplicaciones en el lado del servidor: El servidor Web ejecuta la
aplicación; esta, una vez ejecutada, genera cierto código HTML; el servidor
toma este código recién creado y lo envía al cliente por medio del protocolo
HTTP. 20
Lo anterior demuestra, que en muchas ocasiones la mejor alternativa es conseguir
que las aplicaciones sean en el lado del servidor, debido a que el cliente no debe
tener capacidades añadidas para poder interactuar con la aplicación solicitada.
8.3 APACHE
Cuando se habla de aplicaciones en el lado del servidor, viene a nuestra mente
PHP, debido a que “es un software servidor HTTP de código abierto para
diferentes plataformas” 21 lo hace bastante utilizado y modular, por ser de código
abierto, cualquier vulnerabilidad encontrada es rápidamente solucionada por la
comunidad, además es muy liviana en las transacciones realizadas por éste
convirtiéndolo en el principal socio de las actuales aplicaciones que están basadas
en los Servicios Web.
Algunas ventajas encontradas en este servidor son:
Modular
Open Source22
20 http://es.wikipedia.org/wiki/Servidor_web [Citado el 28 de Marzo de 2010] SERVIDOR WEB21 http://es.wikipedia.org/wiki/Apache_http_server [Citado el: 28 de Marzo de 2010] SERVIDOR HTTP APACHE22 Open Source: Código libre
31
Multi-plataforma
Extensible
Popular (fácil conseguir ayuda/soporte)
Gratuito
Debido a su modularidad se basa en una sección core que es el núcleo principal
donde se encuentra la funcionalidad básica de cualquier Servidor Web, y de allí se
compone de diferentes modulo que le aporta funcionalidad a este núcleo, con el
solo hecho de configurar algunas directivas del modulo en particular y sin
necesidad de volver a instalar el software. Los módulos del Apache se pueden
clasificar en tres categorías:
módulos Base: Modulo con las funciones básicas del Apache.
módulos Multiproceso: Son los responsables de la unión con los puertos
de la maquina, aceptando peticiones y enviando a los hijos a atender a las
peticiones.
módulos Adicionales: Cualquier otro modulo que le añada una
funcionalidad al servidor23.
8.4 MySQL
Dentro del proyecto a realizar se utilizo MySQL como motor de base de datos
relacional, multihilo y multiusuario. MySQL es un sistema de gestión de base de
23 http://es.wikipedia.org/wiki/Apache_http_server [Citado el: 28 de Marzo de 2010] SERVIDOR HTTP APACHE
32
datos con licenciamiento GNU GPL, lo que significa que es libre en algunas partes
del código, sin embargo la compañía Sun Mycrosystems posee el copyright.
“La popularidad como aplicación Web está muy ligada a PHP, que a menudo
aparece en combinación con MySQL” 24, lo que hace que esté presente en muchas
aplicaciones Web transaccionales, debido a que en estos entornos “hay baja
concurrencia en la modificación de datos y en cambio el entorno es intensivo en
lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones” 25.
8.5 PHP
El objetivo del proyecto era lograr tener una aplicación dinámica vía Web, y es en
este punto donde se pensó en PHP como lenguaje de programación, la razón
primordial es que “PHP es un lenguaje de programación interpretado, diseñado
originalmente para la creación de páginas Web dinámicas. Es usado
principalmente en interpretación del lado del servidor (Server-side scripting)” 26.
“PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor” 27,
diseñado primordialmente para desarrollo Web y que se complementa con HTML,
debido a que se toma el código PHP como entrada y se crea páginas Web como
24 http://es.wikipedia.org/wiki/MySQL [Citado el: 28 de Marzo de 2010] MySQL25 IBID26 http://es.wikipedia.org/wiki/.php [Citado el: 3 de Abril de 2010] PHP27 IBID
33
salida; además puede ser utilizado en la mayoría de los sistemas operativos y
plataformas sin costo alguno, debido a su licencia PHP License, que es
considerada software libre por la Free Software Foundation, máximo organismo
del software libre.
Algunas ventajas a resaltar de este lenguaje de programación es que, como se
menciona anteriormente, es multiplataforma, la capacidad de conexión con los
gestores de bases de datos del mercado es alta, y aun mas, destaca la facilidad
de conectividad con MySQL, su documentación es amplia lo que facilita su
implementación, permite las técnicas de Programación Orientada a Objetos, que
es considerada la mejor técnica en la actualidad para el desarrollo de software. 28
Sin embargo, también se encuentra que una de las falencias máximas
encontradas es que permite la creación de código desordenado y complejo de
mantener, si no se lleva una técnica definida por parte del programador.
8.6 SOFTWARE LIBRE
Uno de los factores que las compañías toman en cuenta en el desarrollo de los
proyectos, es el tiempo que se va a invertir y el dinero necesario para sacar
adelante el proyecto, por esta razón uno de los factores a tener en cuenta son las
bondades que brinda el software libre, al eliminar el pago de licencias y en enfocar
los esfuerzos en las aplicaciones y plataformas necesarias en el proyecto a
realizar.
28 IBID
34
El “Software Libre” es un asunto de libertad, no de precio. Para entender el
concepto debes pensar en “libre” como en “libertad de expresión”, no como en
“cerveza gratis” [N. del T.: en ingles una misma palabra (free) significa tanto libre
como gratis, lo que ha dado lugar a cierta confusión].29
Software libre es la definición del software que le brinda a los usuario la libertad de
usar el producto como ellos dispongan, cuando lo adquieren pueden usarlo,
copiarlos, estudiarlo, modificarlo y distribuirlo libremente, sin cobrar patentes o
licencias, el único costo que se puede, o no, tener en cuenta es aquel relacionado
con el medio de distribución (medios magnéticos, medios digitales o medios
ópticos, entre otros).
LIBERTADES DEL SOFTWARE LIBRE
De acuerdo con tal definición, el software es “libre” si garantiza las siguientes libertades:
Libertad 0 Libertad 1 Libertad2 Libertad 3
Ejecutar el programa con
cualquier propósito (privado,
educativo, publico,
comercial, militar, etc.)
Estudiar y modificar el
programa (para lo cual es necesario acceder al código
fuente)
Copiar el programa de
manera que se pueda ayudar al
vecino o a cualquiera.
Mejorar el programa y publicar las
mejoras.
29 http://www.gnu.org/philosophy/free-sw.es.html [Citado el: 3 de Abril de 2010] LA DEFINICION DE SOFTWARE LIBRE
35
Es importante señalar que las libertades 1 y 3 obligan a que se tenga acceso al código fuente.
La “libertad 2” hace referencia a la libertad de modificar y redistribuir el software libremente licenciado bajo algún tipo de licencia de software libre que
beneficie a la comunidad.Figura 3. Libertades del Software Libre
8.7 METODOLOGIA DE PROGRAMACION XP
Para el desarrollo del proyecto la base fue la metodología Extreme Programming –
XP (Programación Extrema) que básicamente consiste en “la simplicidad, la
comunicación y la realimentación o reutilización del código desarrollado”30, la cual
consta de 4 fases que son:
Fase de Planificación.
Fase de Diseño.
Fase de Desarrollo.
Fase de Pruebas.
FASE DE PLANIFICACION
Su objetivo es determinar las causas, efectos, el porqué y cómo del proyecto, se
escriben los relatos de los usuarios, esto es la forma como ellos ven las
necesidades del sistema, cumple la misma finalidad que los casos de uso, con la
30 http://www.info-ab.uclm.es/asignaturas/42551/trabajosAnteriores/Presentacion-XP.pdf [Citado el: 3 de Abril de 2010] INTRODUCCION A EXTREME PROGRAMMING
36
diferencia que los escriben los usuarios de forma precisa y con un lenguaje no
técnico, se utiliza en la fase de pruebas para determinar si el programa cumple
con lo que especifica el usuario.
En esta fase también se busca “el plan de publicaciones” (release planning) donde
se indiquen las historias de usuario que se crearan para cada versión del
programa, de esta forma se establecen los tiempos de implementación y la
prioridad de las historias implementadas.
Se busca la forma de establecer las iteraciones, por regla general cada iteración
tendrá una duración aproximada de 3 semanas y depende del plan de
publicaciones para la implementación de las historias que no pasaron el test por
parte de los usuarios.
Se hace necesario de las reuniones diarias donde se expongan los problemas,
soluciones e ideas de forma conjunta. Estas reuniones deben ser fluidas y todo el
mundo debe tener voz y voto.
FASE DE DESARROLLO
En esta etapa se define el código a implementar, durante todas las etapas de la
metodología se cuenta con el usuario, en esta etapa su presencia es aun más
importante porque es quien define la manera de implementar su historia de
usuario. El objetivo de esta fase es realizar la codificación y compilación de la
37
estructura del aplicativo, de acuerdo a las especificaciones funcionales definidas
en la etapa anterior.
Una vez los programas sean modificados, se debe comenzar con la última fase.
FASE DE PRUEBAS
Uno de los pilares de la metodología XP es el uso de test para comprobar el
funcionamiento de los códigos que vayamos implementando. El uso de los test en
X.P es el siguiente.
Hay que someter a test las distintas clases del sistema omitiendo los métodos
las triviales.
El uso de test es el método de garantizar la refactorización, porque el cambio
en el código no tiene que significar el cambio en su funcionamiento.
Los diversos test se deben subir al repositorio con el código, no se debe subir
un código sin que haya sido evaluado y aprobado su respectivo test.
38
9. MARCO METODOLOGICO
9.1 TIPO DE ESTUDIO
La metodología de investigación aplicada en el presente proyecto de pasantía se
baso en un estudio de tipo desarrollo tecnológico, donde se pretendía aplicar los
conocimientos adquiridos durante la formación profesional propia de la Ingeniería
de Sistemas, para dar como resultado un producto tecnológico para solucionar un
problema que se encontraba presente en el ambiente de aplicación.
El presente trabajo es de corte transversal, debido a que toda la información se
recopilo en un tiempo específico, para lograr, a partir de esta información,
desarrollar la solución implantada y de esta manera dar respuesta a las
expectativas del Departamento de Soporte Hosting y Dominios.
El sector que afectó el presente trabajo son los usuarios que requieren el soporte
en las tecnologías de información brindado por el Departamento de Soporte
Hosting y Dominios. La variable a que se estudió, fueron las activaciones hechas
por el Departamento de Soporte Hosting y Dominios, donde se determinaron los
puntos críticos para facilitar la atención brindada. Este proyecto se desarrolló a
través de seis meses, en los cuales se cumplieron las etapas establecidas en el
cronograma de trabajo, para facilitar el desarrollo de la solución a implantar y
lograr consolidar los objetivos planteados. Toda la información, estudio y
desarrollo del proyecto se desarrolló en Bogotá D.C – Colombia, sin embargo su
39
impacto se vio reflejado en todos los clientes que maneja la compañía a nivel
mundial.
9.2 METODO Y/O DISEÑO DE LA INVESTIGACION
El diseño de la investigación se basó en un diseño cualitativo, donde se estructuró
formalmente y se especificó las características del diseño a implantar en la
solución al problema planteado; tomando las variables de investigación: tipos de
datos cliente, tipo de activación (hosting, dominio),
Además dentro de la investigación se pudo evidenciar que se estaba manejando
un sistema de registro basado en “Hojas de registro en Access” para la
consignación de los datos necesarios en el manejo de las activaciones de Dominio
y Hosting, lo cual llevaba a que la información no fuera correctamente consignada,
cometiendo errores en digitación, falta de información del cliente, según cálculo
del Gerente General, cerca del 15% de los cliente registrados que habían hecho
activación no se detallaban en las hojas de registro, y cerca del 60% de los que se
registraban no tienen la información completa, faltando por ejemplo nombre de la
razón social, nombre de la persona de contacto, número telefónico de contacto,
correo electrónico para notificaciones, etc31. De esta forma según las encuestas de
satisfacción que se habían realizado por parte de la compañía a los usuarios, se
31 Según Simon Borrero, Gerente General Imaginamos.com
40
encontraba que el Departamento de Soporte Hosting y Dominios tenía una imagen
negativa entre los usuarios32.
Se encontró que muchos clientes no eran correctamente contactados para
recordar su renovación, a causa del escenario anteriormente descrito, en
ocasiones estos clientes no tenían datos de contacto y hasta el momento en que
su servicio era suspendido se lograba encontrar la forma de que hicieran su
renovación, generando malestar y una pésima imagen de servicio posventa.
En el pasado la empresa intento utilizar un sistema de CRM para este tipo de
registro pero según el gerente de la compañía este sistema contaba con
herramientas que no se estaban utilizando y generaba que la información no fuera
fácilmente localizada, por esta razón decidieron suspender este CRM y comenzar
a utilizar la hoja de registro en Access, que aunque no fue una muy buena
decisión para ellos logró dar algunas soluciones como el hecho de poder tener un
poco mas fácil la información, conocer y realizar la verificación del servicio de
algunos clientes que se comunicaban para obtener información de su servicio
activo.
En algún momento se evaluó la posibilidad de utilizar un software propietario
llamado WHCMS33, sin embargo la empresa encontró que este sistema aun
32 Dato suministrado por Simon Borrero, Gerente General de Imaginamos.com33 http://www.whmcs.com/features/ [Citado el: 20 de Noviembre de 2011] FEATURES-WHCMS
41
cuando ofrecía algunas alternativas de organizar la información, su costo/beneficio
no era el mejor para la compañía, Simon Borrero, gerente de la empresa,
manifestó que la licencia mensual era excesiva y algunos módulos eran confusos
para el manejo por parte de los usuarios del Departamento de Soporte, según la
información que se había brindado se uso por dos meses, encontrando que el
beneficio era muy bajo por lo que se desecho.
Sin embargo, algunos módulos que el software descrito tenia, se reciclaron para el
desarrollo final, tales como Datos de contacto del cliente, registro de servidores de
hosting disponibles, fecha de activación y próximo vencimiento, reporte de
activaciones.
9.3 PARTICIPANTES
Estuvo conformado por los ingenieros que conforman el Departamento de Soporte
Hosting y Dominios Imaginamos.com, quienes son los directos responsables de
atender a los clientes y registrar las activaciones que se hacen, además de
garantizar que toda la infraestructura de tecnología funcione sin inconvenientes,
los usuarios quienes activan sus servicios con la compañía y que en ocasiones
solicitan sus datos de acceso a la administración de su hosting, por esta razón
requieren la información de forma casi inmediata, quienes no tienen mucho
conocimiento en los problemas comunes de la infraestructura de sistemas y a
quienes con este proyecto se alcanzó y se evitó que sus registros de activación y
42
sus datos de contacto no estuvieran completos o no pudiesen ser ubicamos
rápidamente.
9.4 RECURSOS
Analista, Programador, diseñador y desarrollador de aplicaciones
específicas
Jairo Enrique Celis Carrillo, estudiante de Ingeniería de Sistemas, Universidad
Distrital Francisco José de Caldas.
Asesores
Jose Jair Bonilla, Director de Desarrollo Imaginamos.com
Fernando Martínez Rodríguez, Docente de la Universidad Distrital
Francisco José de Caldas.
RECURSO TECNOLÓGICO
Recurso Descripción
Procesamiento Memoria RAM Referencia
ComputadorPentium IV 2.80
Ghz1 GB HP DX2200
Elementos de Red 1 Router Linksys de 8 puertos
Elementos de
oficinaEscritorio, Esferos, tijeras, marcadores
Otros Pantalla auxiliar para conectar al portátil personal
TABLA 1. RECURSO TECNOLOGICO
43
9.5 INSTRUMENTOS Y EQUIPOS
La recolección de la información se hizo a través de entrevistas y listas de
chequeo con el Director de Desarrollo, a partir de los requerimientos que surgieron
de las reuniones, se estableció los puntos claros a implementar en la solución
planteada.
9.6 INGENIERIA DEL PROYECTO
La metodología utilizada en el proyecto se baso en la metodología de Ingeniería
de Software XP, debido a que es la metodología utilizada en la empresa y brinda
mayor control y agilidad en el desarrollo del sistema planteado. Antes de ejecutar
como cada una de las fases propias de la metodología XP, se considero necesario
hacer algunas reuniones preliminares, dentro de éstas se estableció a grandes
rasgos las historias de usuario que son de interés para el director del
Departamento de Soporte Hosting y Dominios, al mismo tiempo el equipo de
desarrollo se familiarizo con las herramientas, tecnologías y prácticas que se
utilizaron en el proyecto, por otro lado se conoció formalmente los requerimientos
para el sistema implementado.
Por recomendación del Gerente General de la compañía, se hizo necesario
conocer algunos procesos internos de la empresa, además de conocer la directriz
del negocio y las personas encargadas de cada una de las áreas de la compañía.
44
A continuación se explica cada una de las fases para posteriormente introducir los
resultados obtenidos de acuerdo a cada una de las fases cumplidas en el ciclo de
vida de la Programación Extrema.
FASE DE PLANIFICACION
En esta fase el cliente establece la prioridad de cada historia de usuario, y
correspondientemente, los programadores realizan una estimación del esfuerzo
necesario de cada una de ellas. Se toman acuerdos sobre el contenido de la
primera entrega y se determina un cronograma en conjunto con el cliente.
En esta etapa de planificación se hizo una estimación del tiempo dedicado a cada
fase del desarrollo, tomando como base la cantidad de requerimientos que los
usuarios determinaron para el sistema a implementar (esto es los integrantes del
Departamento de Soporte Hosting y Dominios), además del manejo de la
información (actualización, cambio de datos fuente, cantidad de registros por
procesar, entre otros), se estudio la concurrencia y recurrencia a los datos a
manejar en el sistema para evitar retrasos en la información y caídas eventuales
del sistema; por otro lado se establecieron las prioridades de las funcionalidades a
desarrollar según las historias de usuario entregadas, generando un plan de
entregas para acercarse al desarrollo deseado.
Esta etapa ayudo a conocer la forma de abordar la solución planteada, las
expectativas de la empresa con respecto al sistema de desarrollo planteado,
aterrizó cada uno de los requerimientos planteados.
45
FASE DE DISEÑO
En ésta etapa se estableció la forma de emplear los relatos o historias de usuario,
de acuerdo a las prioridades dadas a cada uno de los relatos que fueron
entregados se hicieron los prototipos del sistema de incidencias, éstos ayudaron a
establecer la funcionalidad de los módulos a implementar en el proyecto.
Estos prototipos permitieron mostrar al Departamento de Soporte Hosting y
Dominios un acercamiento a la funcionalidad del sistema, de ésta manera se
podía comprender los pasos que sigue el sistema de incidencias y las pantallas
que el usuario observa en cada momento, ayudando a conocer la visión y
requerimiento de los usuarios.
En la fase de diseño se le permitió a los usuarios un acercamiento inicial no
funcional al sistema, se recogieron comentarios del sistema y permitió hacer
ajustes finales al diseño planteado, para llegar a obtener finalmente el sistema
visual deseado.
FASE DE DESARROLLO
En esta etapa se desarrollo el código que se implementa para el sistema de
incidencias, de acuerdo a los prototipos realizados en la fase anterior se
parametrizó el sistema para que cumpla con los requerimientos y observaciones
por parte del Departamento de Soporte Hosting y Dominios, además se
implemento las historias de usuario con base en las prioridades establecidas. El
46
Director de Desarrollo de Imaginamos.com, estuvo presente en toda esta etapa
para establecer que el desarrollo implementado cumpliera con las expectativas del
proyecto y se ajustara a las historias de usuario entregadas.
Por cada sugerencia por parte del Director de Desarrollo, se hizo la modificación a
los códigos pertinentes, de esta forma se ajustaron los prototipos realizados
llevando a mejoras del sistema final funcional.
FASE DE PRUEBAS
Recordando que uno de los pilares de la metodología XP es el uso de test para
comprobar el funcionamiento de los códigos que vayamos implementando.
Cuando, se establece que el desarrollo cumplió con los ajustes solicitados al
sistema de incidencias, se pasó a la etapa de pruebas; esta etapa nos dio los
puntos principales en los cuales el sistema implementado no estaba cumpliendo
con lo esperado como producto final, se elaborarán diferentes pruebas:
Pruebas al código fuente, esta prueba se realizó para limpiar el código
fuente de instrucciones que no sirven de nada, en ocasiones algunas
instrucciones se comentan debido a los cambios en el código lo que origina
que algunas instrucciones que realmente no funcionan queden allí, además
se verifico que las funcionalidades del sistema de incidencias se ejecutaban
como se desea.
47
Figura 4. Revisión de código34
Se hizo una prueba alfa, esta prueba consistía en que los usuarios finales
elegidos por el Director de Desarrollo, hacían pruebas de funcionalidad y
realizaban preguntas acerca del sistema de registro para lograr registrar las
activaciones y hacer seguimiento de las mismas, durante esta etapa todos
contaron con la presencia del programador, para despejar dudas y
responder a las sugerencias hechas por los usuarios.
Se hizo una prueba beta, esta prueba consistía en que los usuarios
definidos tenían la oportunidad de verificar el sistema, esta vez sin la
presencia del programador, donde se evaluaba la disposición de la
información, la facilidad para registrar su incidencia, la visualización del
seguimiento que se le hace a la incidencia, y pasaron por escrito en un
formato como el siguiente, los errores encontrados al sistema.
34 http://www.willydev.net/descargas/oguzman-diseno_pruebas.pdf [Citado el: 3 de Abril de 2010]
48
Figura 5. Anotaciones Usuario Prueba Beta35
35 http://www.willydev.net/descargas/oguzman-diseno_pruebas.pdf [Citado el: 3 de Abril de 2010]
49
10.RESULTADOS OBTENIDOS
Durante el desarrollo del proyecto se utilizo la metodología de programación XP,
donde se implementaron las fases que la componen, obteniendo los resultados a
continuación descritos en cada una de las fases.
10.1 FASE DE PLANIFICACION
REQUERIMIENTOS PROYECTOSISTEMA DE ADMINISTRACION PARA LA ACTIVACION YSEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS
A través del siguiente documento se establecen los requerimientos o
funcionalidades que el sistema debe cumplir a satisfacción:
1. Tener acceso desde cualquier navegador a la aplicación web
garantizando disponibilidad 24/7/365.
2. Lograr organizar la información de clientes actuales y futuros
permitiendo disponibilidad de información detallada de cada uno en cualquier
instante.
3. Ofrecer la posibilidad de obtener resultados en poco tiempo, esto es
informes semanales, mensuales o en fechas especificas.
4. Ofrecer una herramienta sencilla para registrar activaciones o
renovaciones de clientes, brindando por ende orden y estructura de los datos.
5. Permitir mostrar información primordial para el Departamento de
Soporte, tales como: Clientes vencidos, clientes por vencer, clientes
potenciales, clientes a llamar antes de 3 meses.
Se crean diagramas iniciales de cómo podría ser la aplicación.
Historias de Usuario
50
Dentro de la planeación se estableció la forma como se debía mostrar la
información, aspectos que eran importantes para la funcionalidad del sistema y
como los datos a mostrar en principio se debían mostrar.
Para esto se crearon unos diagramas iniciales de las vistas de diseño como punto
de partida, a continuación adjunto vistas realizadas preliminarmente:
Figura 6. Historia de usuario ingreso
Figura 7. Historia de usuario pagina inicial
51
Figura 8. Historia de usuario adición de activación
Figura 9. Historia de usuario edición de activación
Figura 10. Historia de usuario detalle de activación
52
Figura 11. Historia de usuario generación de informes
10.2 FASE DE DISEÑO
Se determino con el Director de Desarrollo crear diagramas iniciales de cómo
podría ser el diseño de la aplicación a nivel de usuario final, es decir se crearon
pantallas del sistema de acuerdo a la información que se requería y como se
debía mostrar, además fue un punto de partida para el staff de diseñadores y
desarrolladores, estableciendo parámetros de vista con los cuales regirse.
A diferencia de los diagramas de la fase de planeación, estas vistas se orientaban
más hacia la disposición final, vistas reales y secuencia especifica de la aplicación,
fueron diseños que en la empresa se llaman "mockups de vistas de diseño",
metodología propia de la compañía.
Ver Anexo A.
53
Estas vistas fueron entregadas al staff de diseño para ser diseñadas en HTML y
ser maquetadas finalmente, para posterior desarrollo por parte del staff de
desarrolladores.
Igualmente se entregaron al staff de desarrollo para que junto con la maquetación
del diseño HTML se tuviera en cuenta la secuencia de vistas de acuerdo a las
opciones y se constituyo en un prototipo del desarrollo.
Antes de pasar a la etapa de Desarrollo se construyo el modelo de la base de
datos, para establecer los parámetros iniciales del desarrollo, luego de verificar los
distintos modelos de la entidad – relación se estableció como el modelo final el
siguiente modelo, de esta forma se diseña la estructura de la base de datos.
Figura 12. Modelo Entidad – Relación Base de datos del sistema
Como finalización del diseño se logro obtener los resultados esperados para el
usuario final, a continuación se presentan algunos pantallazos del sistema
desarrollado donde se observa el diseño planteado:
54
Figura 13. Pantallas del sistema desarrollado
55
10.3 FASE DE DESARROLLO
Al tener los requerimientos iniciales, las historias de usuario y el prototipo del
sistema, se estableció la fase de desarrollo, donde se desarrollaron los códigos
correspondientes a cada parte del diseño estableció en HTML y la estructura de la
base de datos.
Se utilizo un desarrollo orientado a objetos, donde se establece la capa de
aplicación que es finalmente lo que el usuario final observa e interactúa con él, de
establecen “DAO’s” que son los objetos establecidos en el código del proyecto y
desarrollados a través de entidades, este tipo de desarrollo y la metodología de
programación XP es una práctica implementada por la empresa en todos sus
proyectos de aplicación.
Dentro de la codificación por ejemplo podemos encontrar un ejemplo muy sencillo
para conectarse a la base de datos:
Archivo daoConnection.php
<?php session_start();?><?php
if( isset($_SESSION['admin']) ){ header("location: ./../../admin/menuAdmin.php"); exit;}
include '../dao/daoConnection.php';include '../dao/usersDAO.php';include '../entities/user.php';
$login = $_POST['usuario'];$pass = $_POST['pass'];
$location = "location: ./../../admin/index.php?";
if($login == "" || $pass == ""){ header($location."&errorL1"); exit;}
56
$userDAO = new userDAO;$thisUser = $userDAO->getUserByLogin($login);
if( $thisUser == null){ header($location."&errorL2"); exit;}
$passCrypt = mhash(MHASH_MD5, $pass);
if($thisUser->getPass() != $passCrypt){ header($location."&errorL3"); exit;}
//everything fine!$_SESSION['admin'] = serialize($thisUser);
header("location: ./../../admin/menuAdmin.php");exit;?>
Donde se puede observar de forma muy sencilla como se crean los objetos y se
trabaja con las entidades.
Este tipo de metodología de programación nos permitió poder desarrollar el
sistema de forma rápida, buscando una mejora continua de las diferentes
interacciones y logrando obtener resultados que nos llevan al cumplimiento de los
diferentes objetivos finales.
10.4 FASE DE PRUEBAS
Dentro de la fase de pruebas se hizo una prueba o revisión al código fuente
desarrollado, esto nos ayudo a quitar líneas de código que se habían comentado,
ordenar el código para ser fácilmente interpretado por un desarrollador a futuro,
como finalidad se limpio el código fuente.
Una de las pruebas que se realizo estuvo establecida por el siguiente formato:
57
REVISION DEL CODIGO
FORMATO DE REVISION DEL CODIGO
Fecha: ______________________
Reporte:__________________ Descripción: ____________________
Analista: __________________ Revisor: _______________________
REVISION DEL CODIGO
Actividad Si NoNo
AplicaInformación Adicional
¿Se he hecho revisión por pares?
¿Se ha realizado el proceso de afinamiento sql?
¿Está la mayor cantidad de código en la base de datos?
¿El código cumple con los estándares de la compañía?
¿El código está organizado de tal forma que pueda ser interpretado?
¿La relación de lo que ejecuta el código y la salida obtenida, es la esperada?
TABLA 2. FORMATO REVISION DE CODIGO
El formato nos ayuda a hacer una revisión al código enfocándonos en el registro
de las mejoras que se deben establecer en el desarrollo del sistema, cuando se
58
detecta una falla o se establece una recomendación se llena el formato en la
sección de Información adicional, logrando que se puedan hacer mejoras en el
código fuente final.
Al final se hizo una prueba de Usuario Prueba Beta, donde algunos usuarios
seleccionados escribieron los errores u observaciones encontradas en el sistema:
REVISION PRUEBA BETA
FORMATO DE PRUEBA BETA
Fecha: ______________________
Revisor:______________________ Prueba No:
_______________________
Tabla de tipos estándar de defectos
Código Nombre Descripción10
20
30
40
50
60
70
80
Documentación
Sintaxis
Manejo de Versiones
Asignación
Interfaces
Validación
Datos
Funciones
Comentarios, mensajes
Ortografía de los comandos, puntuación,errores de tecleo, formato de las instrucciones
Manejo de cambios, librerías,control de versiones
Declaraciones, identificadores duplicados,alcance y límites de los mismos
Llamadas y referencias a procedimientos,I/O, interfaz de usuario
Mensajes de error, validaciones incorrectas
Estructuras, contenidos, inicializaciones
Defectos de lógica, puntero, ciclos,recursividad, cálculo y funcionamiento
59
90
100
Sistema
Entorno
Configuración, memoria, tiempo de respuesta
Problemas de diseño, compilación, pruebas del ambiente de desarrollo
Listado de defectos encontrados
Código
DefectoLocalización Descripción del defecto encontrado
TABLA 3. FORMATO PRUEBA BETA
El anterior formato se ha complementado con un formato de pruebas de
funcionalidad:
FORMATO DE PRUEBAS DE FUNCIONALIDAD
Analista: Ejecución 1 2 3 4 5
Fecha: Aprobado
Descripción/observaciones/reportes
Pantallas:
60
TABLA 4. FORMATO DE PRUEBAS DE FUNCIONALIDAD
Esto ayudo a conseguir que los posibles errores encontrados cuando los usuarios
interactúan con el sistema se lograran subsanar de forma rápida y ayudar a
conseguir los objetivos planteados del sistema.
61
11.RECOMENDACIÓNES PARA PROYECTOS FUTUROS
Dentro de las recomendaciones para futuros proyectos podemos encontrar
algunos aspectos que considero importantes:
- Como mejora del sistema se recomienda que se complemente el sistema
empleado para utilización en otros aspectos en los que se registren
servicios cuyo pago sea regularmente en tiempos largos (mes, semestre,
año).
- Para futuros proyectos de esta rama se recomienda utilizar más iteraciones
en las fases de la metodología de programación XP, para obtener sistemas
más robustos sin dejar de lado las libertades que ofrece este tipo de
metodología.
- Variar los módulos que se emplearon tales como clientes, servicios,
renovación de servicios, llamadas a clientes, registro de soporte, etc, esto
ayudara a obtener un sistema a la medida de forma sencilla, pero dejando
libertad de poder obtener resultados a la medida.
62
12.CONCLUSIONES
- Se diseño en implemento un sistema web de administración que ha
permitido la activación y seguimiento de clientes de hosting y dominios para
imaginamos.com, permitiendo obtener mayor control, seguimiento e
información de los clientes y las estadísticas de activación y renovación de
los servicios.
- Se implementó un modulo de reportes, el cual permite analizar los servicios
en la activación de los servicios de hosting y dominios, ayudando en la
toma de decisiones de marketing, dirigidos a aumentar el número de
activaciones semanales.
- Se implemento un modulo de registros de activaciones, clientes, servicios,
permitiendo de forma rápida y sencilla llevar los registros correspondientes
de las activaciones y organizando la forma de realizar esta operación por
parte del Departamento de Soporte.
- Se diseño una interfaz intuitiva y amigable, ayudando a obtener orden en
las activaciones de los clientes, datos de contacto e información relevante
para el Departamento de Soporte Hosting y Dominios.
- Se logro conseguir que el departamento de Soporte obtuviera una visión
amplia de las activaciones realizadas, organizando el proceso de obtener
los datos de los clientes y dar de alta el servicio, así como lograr tener la
información de forma más rápida y sencilla.
63
13.BIBLIOGRAFIA
PRESSMAN, Roger S. Ingeniería del software, 6ª edición. McGraw-Hill,
España, 2005.
SOMMERVILLE, Ian. Ingeniería de Software, 7ª Edición. Ed. Pearson
Educación, España, 2005.
SILBERSCHATZ, Abraham. Fundamentos de Bases de Datos, 5ª Edición.
McGraw-Hill, España, 2006.
13.1 REFERENCIAS ELECTRÓNICAS
Imaginamos.com – Diseño Páginas Web A La Medida
http.//www.imaginamos.com
Service Level Agreement
http://en.wikipedia.org/wiki/Service_level_agreement
Servicios Web en plataforma .NET
http://www.desarrolloweb.com/articulos/1535.php
Guía Breve de Servicios Web
http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb
W3C Consortium. Web Services Architecture. [En línea]
http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis.
Servicio Web
http://es.wikipedia.org/wiki/Servicio_Web
64
Conceptos básicos del servidor Web
http://www.cibernetia.com/manuales/instalacion_servidor_web/1_conceptos
_basicos.php
Servidor HTTP Apache http://es.wikipedia.org/wiki/Apache_http_server
RFC 2616
http://www.ietf.org/rfc/rfc2616.txt
NETCRAFT
http://news.netcraft.com/
Arquitectura del servidor Apache
http://www.desarrolloweb.com/articulos/1112.php
MySQL
http://es.wikipedia.org/wiki/MySQL
MySQL :: Dispelling the myths
http://dev.mysql.com/tech-resources/articles/dispelling-the-myths.html
La definición del software libre
http://www.gnu.org/philosophy/free-sw.es.html
Software Libre
http://es.wikipedia.org/wiki/C%C3%B3digo_libre
Free Software Foundation
http://es.wikipedia.org/wiki/FSF
PHP
http://es.wikipedia.org/wiki/.php
65
Sitio web official de PHP
http://www.php.net/
Manual de referencia de PHP
http://es.php.net/manual/es/
66
ANEXOS
67