Logo Studenta

Sistema-Web-para-la-gestion-de-encuestas-y-evaluaciones

¡Este material tiene más páginas!

Vista previa del material en texto

Aplicación Web para Gestión de Encuestas 
 
 1 
 
 UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO 
 
 
FACULTAD DE ESTUDIOS SUPERIORES 
ARAGÓN 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 MÉXICO, 2008. 
 
T R A B A J O E S C R I T O 
EN LA MODALIDAD DE SEMINARIOS 
Y CURSOS DE ACTUALIZACIÓN Y 
C A P A C I T A C I Ó N P R O F E S I O N A L 
QUE PARA OBTENER EL TÍTULO DE: 
I N GE N I E R O E N C OM P U TA C I ÓN 
 P R E S E N T A : 
 E D G A R W O S V A L D O 
A L V A R E Z C A N S E C O 
 
 
 
ASESOR: M. en C. Marcelo Pérez Medel 
“SISTEMA WEB PARA LA GESTIÓN DE ENCUESTAS 
Y EVALUACIONES” 
 
 
UNAM – Dirección General de Bibliotecas 
Tesis Digitales 
Restricciones de uso 
 
DERECHOS RESERVADOS © 
PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL 
 
Todo el material contenido en esta tesis esta protegido por la Ley Federal 
del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). 
El uso de imágenes, fragmentos de videos, y demás material que sea 
objeto de protección de los derechos de autor, será exclusivamente para 
fines educativos e informativos y deberá citar la fuente donde la obtuvo 
mencionando el autor o autores. Cualquier uso distinto como el lucro, 
reproducción, edición o modificación, será perseguido y sancionado por el 
respectivo titular de los Derechos de Autor. 
 
 
 
Aplicación Web para Gestión de Encuestas 
 
 2 
Agradecimientos 
 
Agradezco a la Facultad de Estudios Superiores Aragón y a todo su personal por haber 
sido participe en el desarrollo de esta tesis y de mi formación profesional. 
 
También quiero dejar constancia de mi agradecimiento al M. en C. Marcelo Pérez 
Medel y a mis revisores por su valiosa ayuda y consejos en el la consecución de este 
trabajo. 
 
Agradezco a mi esposa Brenda y mi hijo Joffre su apoyo cariño y comprensión para 
este logro, y una disculpa por haberles robado momentos de compañía y juegos que por 
supuesto serán recompensados. 
Por ultimo, y no menos importante, a mis padres y hermano (Fernando, Rosalba y 
Erick) por insistirme día tras día durante 8 largos años para la realización de este trabajo 
y animarme incondicionalmente. 
 
Aplicación Web para Gestión de Encuestas 
 
 3 
Índice de contenido 
 
 
Prólogo...............................................................................................................4 
 
Introducción.......................................................................................................5 
 I. Encuestas estadísticas.......................................................................5 
 II. Métodos de encuesta tradicionales..................................................8 
III. Internet como herramienta para la realización de encuestas........9 
 
1. Objetivos y motivación................................................................................10 
1.1. Motivación.......................................................................................10 
1.2. Metodología....................................................................................10 
 1.2.1. Modelo de ingeniería del software......................................11 
 1.2.2. UML....................................................................................13 
 1.2.3. Herramientas de documentación........................................16 
1.3. Requisitos del sistema..................................................................16 
 
2. Antecedentes e investigación....................................................................19 
2.1. Investigación…...............................................................................19 
2.1.1. Estándares de encuestas...................................................19 
2.1.2. Generadores de encuestas disponibles.............................20 
2.2. Estudio tecnológico preliminar.....................................................21 
2.2.1. Aplicaciones Web...............................................................21 
2.2.2. Tecnologías Web utilizadas................................................23 
2.2.3. Arquitectura MVC...............................................................25 
2.2.4. AJAX……............................................................................26 
2.2.5. XML....................................................................................29 
2.2.6 Frameworks de aplicaciones y motores de plantillas..........36 
2.2.7. Persistencia........................................................................37 
2.2.8. Servidor Web......................................................................39 
 2.2.9. Sistema gestor de bases de datos.....................................40 
 
3. Diseño de la arquitectura de la solución...................................................43 
 3.1 Descripción de la aplicación………………………………………....43 
 3.1.1 Ciclo de vida de una encuesta………………………………44 
 3.1.2 Usuarios………………………………………………………..46 
 3.1.3 Entornos de administración………………………………….48 
 3.1.4 Casos de uso UML……………………………………………53 
 3.1.5 XML: formatos de encuesta y respuesta…………………...55 
 3.1.6 Condiciones de flujo…………………………………………..57 
 3.2 Componentes……………………………………………………………59 
 3.3 Arquitectura de la aplicación…………………………………………60 
 3.3.1 Esquema general de la aplicación…………………………..60 
 3.3.2 Diagrama de paquetes………………………………………..61 
 3.3.3 Esquema detallado de clases………………………………..62 
 3.3.4 AJAX……………………………………………………………67 
 3.4 Estructura de la base de datos………………………………………69 
 3.5 Entorno de desarrollo………………………………………………....70 
 3.6 Justificación y evaluación del diseño de la aplicación…………71 
 3.6.1 Software libre / código abierto………………………………71 
 3.6.2 uso de frameworks de aplicación…………………………...72 
 3.6.3 por que MVC…………………..……………………………...72 
 
 Conclusiones y ampliaciones propuestas………………………………..74 
 I. Conclusiones……………………………………………………74 
 II. Ampliaciones propuestas…………………………….………75 
 
Bibliografía………………………………………………………………………77 
Aplicación Web para Gestión de Encuestas 
 
 4 
Prólogo 
 
Las encuestas son un instrumento de primerísima importancia en el mundo de hoy, y 
son empleadas habitualmente en innumerables campos de aplicación como pueden ser 
la política, sociología, investigación, etc. Son mecanismos que ayudan a un mejor 
conocimiento de la sociedad. 
 
Las encuestas entregan, como se acostumbra a decir, una radiografía o una foto de un 
determinado momento. A partir de ellas se comienzan a hacer extrapolaciones, a tomar 
ciertas decisiones, a fijar determinados cursos de acción, pero el principal elemento que 
entrega una encuesta es la sensación de un determinado estado de cosas. 
 
Con el avance de la tecnología, los métodos utilizados para realizar encuestas han 
experimentado grandes cambios, y sin duda el medio más atractivo actualmente para 
llegar a los encuestados es Internet. 
 
La motivación de este proyecto no es tanto el análisis y estudio de los datos 
proporcionados por las encuestas, sino cubrir el vacío existente en cuanto a 
herramientas tanto de diseño de los cuestionarios como de publicación y recolección de 
datos para los mismos. 
 
Se pretende aprovechar el auge de Internet junto con los últimos avances en tecnologías 
Web para crear un entorno uniforme que facilite por una parte el diseño y publicación 
de los cuestionarios, y por otra el acceso al público a los mismos. 
 
Para tal fin se propone una plataforma Web, basada íntegramente en software libre y 
multiplataforma haciendo uso de estándares abiertos como XML. 
 
Esta herramienta integra un entorno de diseño y publicación de encuestas, que permite 
la creación y manipulación de cuestionarios de forma intuitiva, y posibilita la 
reutilización de los diseños de encuestas pasadas para trabajos futuros. Todo ello bajo 
una política de control de accesos yprivilegios flexible y consistente, que permitirá a 
los diseñadores proteger su trabajo de otros usuarios, a la vez que favorece la 
colaboración entre ellos. 
 
La herramienta permite la creación de cuestionarios formados por preguntas de distintos 
tipos, con la posibilidad de organizarlas en bloques y añadir reglas de validación. 
Además permite flujo de presentación de preguntas de forma variable, gracias a un 
flexible sistema de reglas de flujo condicionales. 
 
Finalmente se pretende hacer uso de la capacidad de integración con otros sistemas que 
nos proporciona la tecnología XML, para dotar a la plataforma propuesta de diversos 
modos de exportación de los datos recogidos por las encuestas, y la posibilidad de 
integración con otros proyectos. 
 
Espero que esta herramienta permita mostrar las amplias posibilidades que Internet, el 
desarrollo Web, y el uso de estándares abiertos ofrecen al campo de las encuestas. 
Aplicación Web para Gestión de Encuestas 
 
 5 
Introducción 
 
I. Encuestas estadísticas 
 
 
Ya hemos apuntado en el prólogo la enorme y creciente importancia de las encuestas y 
la gran cantidad de ámbitos de aplicación. Las propias empresas e instituciones 
dedicadas a este campo han evolucionado y perfeccionado notoriamente sus métodos de 
investigación, de selección de muestras, de análisis y evaluación. Con la creciente 
importancia de la información y su análisis en la sociedad actual, sus predicciones son 
de enorme utilidad para las empresas privadas, los investigadores, medios de 
comunicación, etc. 
 
Hay que tener en cuenta que la encuesta es una técnica para recabar información sobre 
una población, a partir de una muestra representativa, utilizando un cuestionario y un 
margen de error controlado. 
 
En consecuencia, las encuestas son instrumentos extraordinariamente sensibles, que al 
no ser manejados adecuadamente o cuando se les utiliza con fines distintos para los 
cuales fueron creadas, suelen ser más una fuente de generación de conflictos y de 
confusiones que una ayuda real. 
 
Estadística descriptiva 
 
La estadística descriptiva es la parte de la estadística que se dedica a analizar y 
representar los datos. Es decir, aquellos métodos que incluyen la recolección, 
presentación y caracterización de un conjunto de datos con el fin de describir 
apropiadamente las diversas características de ese conjunto, pero sin intentar deducir 
nada que se escape al alcance de los datos. 
 
Esto último es importante, ya que aunque a veces se tiende a generalizar a toda la 
población las conclusiones obtenidas tras un análisis descriptivo, su poder inferencial 
es mínimo y debería evitarse tal proceder. Otras ramas de la estadística se centran en el 
contraste de hipótesis y su generalización a la población. 
 
Estadística Inferencial 
 
La inferencia estadística que comprende los métodos y procedimientos para deducir 
propiedades (hacer inferencias) de una población a partir de una pequeña parte de la 
misma (muestra). Tiene por objetivo describir las características de un conjunto, pero 
sin la necesidad de realizar el registro de datos a todos los elementos o unidades del 
conjunto o población, sino a una parte de ésta. 
 
Es importante resaltar que la estadística inferencial no nos da una certeza completa en 
sus resultados, sino que están sujetas a una probabilidad de error. Una incorrecta 
selección de las unidades muéstrales pueden acarrear la imposibilidad de inferir 
correctamente las características de una población. 
 
 
Aplicación Web para Gestión de Encuestas 
 
 6 
 
Términos y conceptos básicos 
 
• Población: es la totalidad de elementos bajo consideración de un estudio 
estadístico. La población se refiere e un grupo finito de elementos. 
• Elementos de una población: son las unidades individuales que constituyen o 
conforman una población. 
• Universo: conjunto de elementos que, a diferencia de la población no tiene 
límite numérico. 
• Muestra: porción de la población que se selecciona para fines de análisis. 
Siempre debe de ser representativa de la población total. 
• Parámetro: medida que se calcula con el propósito de describir alguna 
característica de la población. 
• Estadística: son medidas que se calculan con el propósito de describir algunas 
características de una sola muestra de la población. 
 
Censo 
 
Es una investigación que cubre todos los miembros o elementos de una población dada. 
Un censo completo a menudo es innecesario, antieconómico y una molestia para el 
público, además de ser menos efectivo que una encuesta para recoger ciertos tipos de 
información. 
 
Encuesta 
 
Es una investigación en la cual la información se obtiene de una fracción de la 
población llamada muestra. La encuesta por muestreo disfruta de ciertas ventajas que la 
hacen atractiva frente al censo, aún en los casos donde a éste se le considera 
prácticamente exclusivo, como son los estudios sobre población. Algunas de estas 
ventajas son: 
 
• Su realización resulta mucho menos costosa que el censo. 
• Permite mayor rapidez en la recopilación y análisis de los datos, y por tanto en 
la obtención de resultados. 
• El número de entrevistadores utilizado en la encuesta es mucho menor y por 
consiguiente es posible ofrecerles una capacitación más eficaz y una 
supervisión más cuidadosa. 
• La encuesta por muestreo es menos notoria que el censo y no constituye una 
pesadumbre para el público. 
• Es posible introducir métodos científicos objetivos de medición para corregir 
posibles errores. 
Sin embargo, también presentan algunas desventajas respecto al censo puro, como por 
ejemplo: 
• Estimaciones para áreas pequeñas. 
• El planeamiento y ejecución de la investigación suele ser más complejo que si se 
realiza por censo. 
• Requiere para su diseño de profesionales con buenos conocimientos de teoría y 
habilidad en su aplicación. 
• El público generalmente la rechaza. 
Aplicación Web para Gestión de Encuestas 
 
 7 
 
Etapas de una encuesta por muestreo 
 
1. La planeación: constituye el establecimiento del objeto de la investigación y la 
creación de la estrategia general para obtener y analizar los datos. Incluye 
además, la elaboración de presupuestos, revisión de literatura, definición de 
objetivos específicos, etc. 
 
2. La elaboración de un diseño de investigación: El diseño de la muestra está 
relacionado estrechamente con la planeación y por lo regular ocurre en forma 
simultanea, consiste en una programación preparada de antemano con el 
objetivo de recolectar y analizar la información necesaria para satisfacer los 
objetivos del estudio, al costo más bajo posible. 
 
 
3. Diseño de la muestra (muestreo): Es el proceso de seleccionar ciertos 
elementos de la población; En esta etapa, el investigador debe definir con 
claridad y cuidado la población que se va a estudiar y la generalización de los 
datos de la muestra que dicha población permitirá. La muestra debe ser 
representativa de la población de la cual se extrae, para lo cual los 
procedimientos aleatorios para elegir las unidades son la forma más confiable de 
selección. 
 
4. Diseño del cuestionario: Es el proceso de adaptar los diferentes objetivos del 
estudio a preguntas que permitan obtener la información necesaria. Esta etapa 
incluye la formulación del tipo de pregunta, número de éstas, secuencia y los 
medios para mantener motivada a la persona encuestada. 
 
5. El trabajo de campo: En esta etapa de la investigación se produce la 
recolección de los datos de los elementos de la muestra. Se incluye también el 
reclutamiento y formación de entrevistadores, supervisores y otro personal de 
campo. 
 
6. La verificación y la codificación: Son procesos afines diseñados con el 
propósito de transcribir la información registrada en los cuestionarios a una 
forma adecuada para el análisis estadístico. El objetivo básico de la verificación 
es el eliminar respuestas incompletas o inconsistentes, como también los errores 
en el uso del cuestionario.La codificación es un proceso técnico que consiste en 
convertir datos cualitativos en datos numéricos que puedan ser almacenados, 
tabulados con rapidez y facilidad. 
 
7. La preparación para el análisis: Esta etapa incluye un conjunto de actividades, 
como: captura de datos, chequeos rutinarios para determinar la compatibilidad 
de las respuestas, plan de tabulación de datos, etc. 
 
8. Análisis y preparación del informe: Consiste en la presentación e 
interpretación de tablas simples y de múltiples entradas de los datos recopilados 
en la investigación. El objetivo de esta etapa es proporcionar un resumen de los 
datos, capaz de satisfacer los propósitos de la investigación, lo mas breve y 
comprensible posible. 
Aplicación Web para Gestión de Encuestas 
 
 8 
 
 
II. Métodos de encuestas tradicionales 
 
Es en la etapa de trabajo de campo, una vez diseñado el cuestionario y seleccionados los 
elementos de la muestra, en la que se produce la recolección de los datos. Para ello es 
necesario algún método de acercamiento a las personas que conforman la muestra 
seleccionada. 
 
Tradicionalmente los métodos más habituales para efectuar este acercamiento a los 
encuestados han sido: 
 
• Correo: Generalmente se envía por correo postal (o electrónico) una carta de 
presentación. Las encuestas por correo se justifican cuando se posee una lista 
confiable de direcciones y no se requiere una respuesta inmediata. También son 
habituales cuando no se dispone de recursos para adoptar otro método o es 
necesario favorecer el anonimato. 
 
• Telefónica: En este caso se llama por teléfono al encuestado, procurando darle 
facilidades de horario. Tiene la ventaja de que las respuestas pueden ser 
registradas directamente en algún soporte informático, por lo que suelen 
producir resultados rápidamente. 
 
• Cara a cara: La encuesta se completa en una entrevista personal con el 
encuestado, tomando registro de sus respuestas. Este tipo de encuestas es 
habitual cuando no se dispone de listas de donde sacar la muestra, o bien se 
estima que los encuestados podrían no tener intenciones de responder la 
encuesta, o podrían hacerlo de forma inexacta por correo o teléfono. 
 
• Reparto de cuestionarios: La forma habitual de hacer encuestas en empresas o 
instituciones individuales es repartir cuestionarios, delegando en los encuestados 
la responsabilidad de rellenarlos y entregarlos de manera establecida. 
 
Sin embargo, todos estos métodos, en mayor o menor medida, adolecen de varios 
problemas como son: 
 
• Alto costo económico, lo que puede suponer además una restricción a la hora de 
decidir el tamaño de la muestra. 
 
• Proceso lento de recolección de datos. 
 
• Necesidad de entrevistadores cualificados 
 
• Necesidad de verificación y codificación de los datos recogidos. 
 
 
 
 
 
 
Aplicación Web para Gestión de Encuestas 
 
 9 
 
III. Internet como herramienta para la realización de encuestas 
 
La realización de encuestas a través de Internet resulta muy apropiada en un mundo en 
el que el número de personas que se conectan a la red es muy elevado y crece 
rápidamente. Utilizando este espacio podemos llegar a un número mucho mayor de 
objetivos que el que podríamos alcanzar si utilizáramos el teléfono o el correo 
electrónico, y de este modo podemos conseguir resultados más fiables y pertinentes. 
 
Sin embargo, no todo son ventajas. Uno de los desafíos mayores a los que nos 
enfrentamos al realizar encuestas a través de Internet es asegurarnos de que los 
encuestados sean representativos. Por este motivo, se hace necesario que lo encuestados 
proporcionen cierta información clasificatoria, bien como parte del cuestionario o 
mediante un registro de usuario. Esta información permite asegurarse de que todos los 
grupos demográficos están representados y poner las respuestas en contexto para poder 
hacer extensivos de manera fiable los resultados al resto de la población. 
 
Además de las ya mencionadas, el uso de Internet como medio para encuestas tiene 
otras ventajas: 
 
• Las encuestas por Internet resultan menos costosas y más rápidas. 
• La inmediatez en la publicación de cuestionarios y la recolección de datos. 
• Permite la verificación y codificación de los datos en el mismo momento de su 
recolección. 
• La investigación puede abarcar diversas ubicaciones e idiomas y en ella se 
pueden utilizar videos e imágenes, recursos inaplicables a las encuestas 
efectuadas por métodos tradicionales. 
• Su interactividad las hace más atractivas y menos intrusivas para el encuestado 
que otros métodos. 
 
En cuanto a las desventajas, algunas de ellas son: 
 
• Se corre el riesgo de no abarcar homogéneamente la muestra escogida. 
• No hay supervisión sobre las contestaciones, haciendo que muchos cuestionarios 
puedan ser nulos. 
• Puede provocar rechazos en sectores de la población que consideren el medio 
menos fiable, o que no le den tanta importancia como a encuestas recibidas por 
medios tradicionales. 
• No se llega a aquellos sectores de la población que no disponen de Internet o no 
están suficientemente familiarizados con la navegación en la Web. 
 
De éstas, las dos primeras son subsanables técnicamente, mientras que las segundas son 
consecuencia de una situación que va desapareciendo a medida que avanza la 
penetración de Internet en la sociedad. Por todo ello, la rapidez, precisión y eficacia de 
Internet como medio para la realización de encuestas han logrado convertir a las 
antiguas tecnologías de investigación en obsoletas. 
Aplicación Web para Gestión de Encuestas 
 
 10 
 
1. Objetivos y motivación 
 
 
1.1 Motivación 
 
Tal y como vimos en la introducción, dos de las mayores problemáticas asociadas a los 
métodos tradicionales de encuestas son su alto costo económico y el tiempo transcurrido 
desde que finaliza el diseño del cuestionario hasta que todos los datos han sido 
recabados, codificados y finalmente almacenados. 
 
El objetivo del presente proyecto es desarrollar un entorno intuitivo de diseño y 
publicación de encuestas a través de Internet que ataque precisamente los dos problemas 
señalados. 
 
Por una parte, se necesita una herramienta de diseño de encuestas potente y flexible, que 
permita crear cuestionarios de uso general de forma simple. Esta herramienta estaría 
dentro de un entorno de gestión que permita tanto la colaboración entre los diseñadores 
a la hora de crear las encuestas, como la reutilización de encuestas pasadas para nuevos 
cuestionarios. 
 
Una vez diseñados los cuestionarios, éstos se publicarán quedando accesibles a través 
de Internet a todos los posibles encuestados. Éstos podrán rellenar los cuestionarios de 
forma cómoda y enviarlos, de manera que sus respuestas queden automáticamente 
registradas. De esta forma nos ahorramos el tiempo y los costos asociados al método de 
contacto con los destinatarios de las encuestas y la recolección de los datos. 
 
Otra fuente de motivación importante para centrar este proyecto en el desarrollo de una 
aplicación Web es el auge que está experimentando hoy en día este tipo de desarrollo 
frente a las aplicaciones de escritorio tradicionales. 
 
En la actualidad es cada vez más frecuente que la gente sustituya el software tradicional 
por aplicaciones Web. Son varios factores los que nos empujan a sustituirlas, como por 
ejemplo el precio, ya que en muchos casos estas herramientas son gratuitas o tienen 
precios mucho más accesibles. 
 
Esta tendencia ofrece además grandes ventajas a los desarrolladores sobre las 
aplicaciones tradicionales, ya que abaratan el costo de las comunicaciones, el de las 
implantaciones y, sobre todo, el mantenimiento posterior. 
 
1.2 Metodología 
En este capítulo vamos a definir la metodología que se seguirá en el desarrollo del 
proyecto. 
Aplicación Web para Gestión de Encuestas 
 
 11 
 
1.2.1 Modelo de ingeniería de software 
 
Una vez definidos los objetivos del proyecto es necesario establecer una metodología de 
análisis,diseño e implementación adecuada al desarrollo de la aplicación Web que se 
pretende llevar a cabo. Hay que tener en cuenta que el objetivo de este proyecto no es 
hacer un trabajo de ingeniería de software completo y detallado, siguiendo una 
metodología estrictamente, sino más bien dotar al desarrollo del mismo de un enfoque 
ordenado según alguno de los modelos de análisis más extendidos. 
 
Teniendo en cuenta lo anterior, se ha elegido entre los numerosos modelos teóricos 
englobados dentro de la ingeniería del software, el modelo incremental. 
 
La elección de este modelo se debe fundamentalmente a dos motivos: 
 
• Es un modelo flexible ideal para proyectos relativamente modulares y para 
equipos de trabajo reducidos. 
 
• Los requisitos del sistema a desarrollar no están absolutamente cerrados desde el 
principio, y es probable que evolucionen durante el tiempo de desarrollo del 
mismo. 
 
En cuanto a la notación de análisis y modelado, tanto de los requisitos del sistema como 
del diseño de la solución a adoptar, la elección ideal para este proyecto es sin duda 
UML, por varias razones: 
 
• Se pretende seguir un diseño orientado a objetos, y UML es el estándar para el 
mismo. 
 
• UML permite centrarse en el modelado de determinados aspectos sin estar 
obligado a seguir un guión de análisis rígido. 
 
Modelo de desarrollo incremental 
 
El modelo de desarrollo incremental en la ingeniería del software es una variación del 
ciclo de vida clásico en cascada. Este último es un enfoque metodológico que ordena 
rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de 
cada etapa debe esperar a la finalización de la inmediata anterior. 
 
Un ejemplo de una metodología de desarrollo en cascada es: 
 
1. Análisis de requerimientos 
2. Diseño del sistema 
3. Diseño del programa 
4. Codificación 
5. Pruebas 
6. Implantación 
7. Mantenimiento 
 
Aplicación Web para Gestión de Encuestas 
 
 12 
En el modelo incremental, las etapas son las mismas que en el ciclo de vida clásico en 
cascada, y su realización sigue el mismo orden, pero corrige la problemática de la 
linealidad de dicho modelo. Fue desarrollado por Lehman (1984) como una forma de 
reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar 
la toma de decisiones en los requerimientos hasta adquirir experiencia con el sistema. 
En cada paso sucesivo se agregan al sistema nuevas funcionalidades o requerimientos 
que permitan el refinado a partir de una versión previa. Durante el desarrollo de cada 
incremento se puede utilizar el modelo de cascada o evolutivo, adaptado al subsistema 
que representa la porción de requerimientos a implementar en dicho incremento. 
 
 
 
 Figura 1.1 modelo incremental 
 
Ventajas: 
• Tiene en cuenta la naturaleza evolutiva del software. 
• Los primeros incrementos permiten descubrir nuevos requerimientos para 
sucesivos incrementos. 
• El cliente recibe pronto nuevas versiones operativas (aunque incompletas) del 
producto, y como consecuencia, se involucra más en el proceso. Además puede 
aclarar los requerimientos que no tenga claros conforme vea las entregas del 
sistema. 
• Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir 
en cada incremento. 
• Funciona bien cuando el equipo de programadores es escaso. 
 
Desventajas: 
• Problemas para determinar las funcionalidades a desarrollar en cada incremento. 
El primer incremento suele ser el núcleo del producto. 
• Puede ser difícil establecer la correspondencia requerimiento-incremento, al 
igual que detectar las unidades o servicios genéricos para todo el sistema. 
• Peligro de caer en el modelo “construir y corregir”. 
Definición inicial de 
requerimientos 
Asignar 
requerimientos a los 
incrementos 
Diseñar 
arquitectura del 
sistema 
Validación 
de los 
incrementos 
Integración de 
los incrementos 
Validación 
del sistema 
Desarrollar los 
incrementos del 
sistema 
Sistema 
final 
Aplicación Web para Gestión de Encuestas 
 
 13 
1.2.2 UML 
 
Introducción a UML 
 
UML (Unified Modeling language, lenguaje de modelado unificado) es un lenguaje que 
permite modelar, construir y documentar los elementos que forman un sistema, software 
orientado a objetos. Se ha convertido en el estándar de facto de la industria, debido a 
que ha sido impulsado por los autores de los tres métodos más usados de orientación a 
objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados 
por la empresa Rational Software para crear una notación unificada en la cual basar la 
construcción de sus herramientas CASE. En el proceso de creación de UML han 
participado, no obstante, otras empresas de gran peso en la industria como Microsoft, 
Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores. Esta 
notación ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a 
que incorpora las principales ventajas de cada uno de los métodos particulares en los 
que se basa. 
 
UML no pretende ser un método de desarrollo completo. No incluye un proceso de 
desarrollo paso a paso. UML incluye todos los conceptos que se consideran necesarios 
para utilizar un proceso moderno iterativo, basado en construir una sólida arquitectura 
para resolver requerimientos dirigidos por casos de uso. 
 
Los conceptos y modelos de UML pueden agruparse en las siguientes áreas 
conceptuales: 
 
Estructura estática 
 
Cualquier modelo preciso debe definir primero su universo, esto es, los conceptos clave 
de la aplicación, sus propiedades internas, y las relaciones entre cada una de ellas. Este 
conjunto de construcciones es la estructura estática. Los conceptos de la aplicación son 
modelados como clases, cada una de las cuales describe un conjunto de objetos que 
almacenan información y se comunican para implementar un comportamiento. El 
diagrama más importante para describir la estructura estática es el diagrama de clases y 
puede usarse para generar la mayoría de las declaraciones de estructuras de datos en un 
programa. 
 
Comportamiento dinámico 
 
Hay dos formas de modelar el comportamiento, una es el ciclo de vida de un objeto y la 
forma como interactúa con el resto del mundo (diagrama de estados), y la otra es por 
los patrones de comunicación de un conjunto de objetos conectados, es decir, la forma 
en que interactúan entre sí (diagramas de actividad, secuencia, colaboración, etc.). 
La visión de un objeto aislado es una máquina de estados, muestra la forma en que el 
objeto responde a los eventos en función de su estado actual. La visión de la interacción 
de los objetos se representa con los enlaces entre objetos junto con el flujo de mensajes 
y los enlaces entre ellos. 
 
En la siguiente tabla vemos cómo se agrupan los diferentes diagramas que componen la 
notación UML, según el tipo de comportamiento que modelan. 
 
Aplicación Web para Gestión de Encuestas 
 
 14 
Area Diagrama Conceptos principales 
Diagramas de clases 
Clase, asociación, generalización, 
dependencia, realización, interfaz. 
Diagramas de casos de uso 
Casos de uso, Actor, asociación, extensión, 
generalización. 
Diagramas de componentes 
Componente, interfaz, dependencia, 
realización. 
 
Estática 
Diagramas de despliegue 
Nodo, componente, dependencia, 
localización. 
Diagramas de estados Estado, evento, transición, acción. 
Diagramas de actividad 
Estado, actividad, transición, determinación, 
división, unión. 
Diagramas de secuencia Interacción, objeto, mensaje, activación. 
 
Dinámica 
Diagramas de colaboración 
Colaboración, interacción, rol de 
colaboración, mensaje 
 
 
Diagramas UML utilizados 
 
Diagrama de casos de uso 
 
El modelado de casos de uso es la técnica más efectiva y, a la vez, la más simple para 
modelar los requerimientos del sistema desde la perspectiva del usuario. No pertenece 
estrictamente al enfoque orientado a objeto, sino que es más una técnica para captura de 
requerimientos.• Describen bajo la forma de acciones y reacciones el comportamiento de un 
sistema desde el punto de vista del usuario. 
• Permiten definir los límites del sistema y las relaciones entre el sistema y el 
entorno. 
• Son descripciones de la funcionalidad del sistema independientes de la 
implementación. 
• Se divide el conjunto de necesidades atendiendo a la categoría de usuarios que 
participan en el mismo. 
• Están basados en el lenguaje natural, es decir, es accesible por los usuarios. 
 
 
Diagrama de paquetes 
 
Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un 
paquete. UML no impone una regla para componer los paquetes, sin embargo para ser 
funcional la asignación debe seguir un cierto principio racional, tal como funcionalidad 
común, implementación relacionada o punto de vista común. 
 
Las dependencias que se presentan entre elementos individuales, pero en un sistema de 
cualquier tamaño, deben ser vistas en un nivel más alto. Las dependencias entre 
paquetes resumen dependencias entre los elementos internos a ellos, es decir, las 
dependencias del paquete son derivables a partir de las dependencias entre los 
elementos individuales que los componen. 
 
Aplicación Web para Gestión de Encuestas 
 
 15 
En el diagrama, los paquetes se dibujan como rectángulos con pestañas (similar al icono 
de carpeta), y las dependencias se muestran como flechas con líneas discontinuas. El 
operador “::”, permite designar una clase definida en un contexto distinto del actual. 
 
 
Diagramas de clases 
 
El diagrama de clases es el diagrama principal para el análisis y diseño. Un diagrama de 
clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La 
definición de clase incluye definiciones para atributos y operaciones. 
 
Una clase está representada por un rectángulo que dispone de tres apartados, el primero 
para indicar el nombre, el segundo para los atributos y el tercero para los métodos. 
Existen tres relaciones diferentes entre clases, dependencia, generalización, y 
asociación: 
 
Dependencias: es una relación de uso, es decir, una clase usa a otra que la necesita para 
su cometido. Se representa con una flecha discontinua desde la clase utilizadora a la 
clase utilizada. 
 
Generalización: representa el concepto de herencia. 
Asociación: especifica que los objetos de una clase están relacionados con los elementos 
de otra clase. Se representa mediante una línea continua que une las dos clases. 
 
Diagrama de secuencia 
 
Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una 
aplicación a través del tiempo, y típicamente se modela para cada caso de uso. Mientras 
que el diagrama de caso de uso permite el modelado de una vista a alto nivel del 
escenario, el diagrama de secuencia contiene detalles de implementación del mismo, 
incluyendo los objetos y clases que se usan para implementarlo, y los mensajes pasados 
entre los objetos involucrados. 
 
• Línea de vida de un objeto: un objeto se representa como una línea vertical 
punteada con un rectángulo de encabezado y con rectángulos a través de la línea 
principal que denotan activación (ejecución de métodos). El tiempo de vida 
transcurre de arriba abajo. 
• Activación: muestra el periodo de tiempo en el cual el objeto se encuentra 
desarrollando alguna operación, bien sea por sí mismo o por medio de 
delegación a alguno de sus atributos. Se denota como un rectángulo delgado 
sobre la línea de vida del objeto. 
• Mensaje: el envío de mensajes entre los objetos se denota mediante una línea 
sólida dirigida, desde el objeto que emite el mensaje hacia el objeto que lo 
ejecuta. 
 
 
 
Aplicación Web para Gestión de Encuestas 
 
 16 
1.2.3 Herramientas de documentación 
 
En los requisitos de la arquitectura del sistema se incluye la importancia de basar el 
desarrollo en soluciones de código libre, por lo que es de sentido común que para la 
documentación del aplicativo se siga esta misma filosofía. 
 
De esta manera, las herramientas empleadas para la redacción y documentación del 
presente proyecto serán: 
 
• OpenOffice para la redacción del documento. 
 
1.3 Requisitos del sistema 
 
Tal y como vimos en la introducción, uno de los principales objetivos que pretende 
conseguir el sistema es el de acortar las etapas de una encuesta por muestreo. Más 
concretamente simplificar el proceso de diseño del cuestionario, y sobre todo simplificar 
el trabajo de campo, la verificación y codificación de la información registrada en los 
cuestionarios y la preparación de la misma para el análisis posterior. En esto último 
juega un papel importantísimo el entorno en el que se va a desarrollar el sistema. 
 
En este apartado veremos los principales requisitos que plantea el sistema a nivel de 
arquitectura. 
 
Accesibilidad 
 
Si queremos cumplir con los objetivos fijados, la aplicación debe ser accesible al 
máximo número de posibles destinatarios de las encuestas diseñadas, además de a los 
propios usuarios diseñadores. Esto, en cuanto a accesibilidad a la misma implica 
fundamentalmente las siguientes cuestiones: 
 
• La aplicación debe de ser accesible a través de Internet para asegurar la mayor 
difusión posible de las encuestas. 
• El formato y tecnologías implicadas en el desarrollo de la misma deben asegurar 
la compatibilidad con el máximo número de posibles configuraciones 
(navegadores, sistemas operativos, etc.) de los potenciales destinatarios de la 
encuesta. 
• Debe disponer de un entorno visual claro, sencillo e intuitivo. No todos los 
destinatarios de las encuestas están habituados al uso de aplicaciones Web. 
• Los tiempos de carga y respuesta de la aplicación deberían de ser tan reducidos 
como sea posible, tanto para facilitar la labor del diseñador, como para reducir el 
riesgo de que a los encuestados les provoque una molestia contribuir con las 
encuestas. 
 
 
 
 
 
Aplicación Web para Gestión de Encuestas 
 
 17 
Multiplataforma 
 
En cuanto al entorno de ejecución del sistema, es importante que sea multiplataforma. 
Los sistemas de software que se necesitarán para la ejecución de la aplicación son 
básicamente: 
 
• Un servidor Web 
• Alguna tecnología de desarrollo del lado del servidor Web 
• Un sistema motor de base de datos relacionales 
• Y las aplicaciones de soporte que sean necesarias. 
 
Sería deseable que cada uno de los componentes estuviera disponible para varios 
sistemas operativos o configuraciones de hardware diferentes, tratando también que la 
interacción entre ellos y su configuración individual no varíen demasiado según la 
plataforma elegida. 
 
Software libre 
 
Como extensión a lo citado en el punto anterior, sería deseable que los componentes 
seleccionados sean aplicaciones libres con código fuente disponible. Esto, además de 
asegurar en gran medida su carácter multiplataforma, evita los costos asociados a 
licencias de productos comerciales. 
 
Esto se debe aplicar también a las herramientas de desarrollo de software, para 
garantizar que todo el conjunto siga con una filosofía homogénea. 
 
Escalabilidad 
 
Dado que se desconoce el nivel de servicio que debe ofrecer el sistema, en cuanto al 
número de usuarios y encuestas que debe ser capaz de soportar, como a la posibilidad de 
futuras ampliaciones de funcionalidad, es preciso tener muy en cuenta la escalabilidad 
que debe ser extendido a todo el sistema: 
 
• En cuanto a los sistemas de software que dan soporte a la aplicación. De su 
escalabilidad depende directamente la de la aplicación. Por ejemplo, de la 
escalabilidad tanto del servidor Web como del motor de base de datos elegidos 
dependerá que la aplicación crezca en cuanto a nivel de servicio. 
• En cuanto al código fuente de la aplicación, que el sistema pueda ser ampliado 
de forma natural depende no sólo del lenguaje elegido, sino de la organización 
del mismo. Debe ser lo más modular posible y preferiblemente siguiendo 
orientación a objetos. 
 
SeguridadEl sistema almacena datos confidenciales. En primer lugar datos de contacto sobre los 
usuarios diseñadores de encuestas. Y en segundo lugar los introducidos por los 
encuestados en cada una de las encuestas que se pongan a su disposición. Estos últimos 
una vez introducidos, no deben ser accesibles mas que a los usuarios designados 
específicamente para operar con ellos. 
 
Aplicación Web para Gestión de Encuestas 
 
 18 
Distinguiendo entre los usuarios diseñadores o administradores y los destinatarios de la 
encuesta (o encuestados), el sistema tendrá dos partes claramente diferenciadas: 
 
• Parte privada o de administración. Esta parte de la aplicación permitirá el diseño 
y manipulación de las encuestas, y la administración de aspectos del sistema 
como la gestión de usuarios, la configuración, etc. 
• Parte pública. Ésta será la parte del sistema que vea el público, es decir, los 
destinatarios de las encuestas. 
 
La aplicación debe proveer de un mecanismo de autenticación para los usuarios 
encargados del diseño y el mantenimiento de las encuestas y los datos introducidos en 
ellas. Los usuarios tendrán diferentes perfiles, pudiendo haber usuarios dedicados sólo 
al diseño de las encuestas, otros al mantenimiento de las encuestas disponibles y al 
tratamiento de sus datos, y otro a la administración general del sistema (permisos de 
usuarios, accesos, etc.). 
 
Los usuarios se englobarán en grupos de usuarios, de forma que cada encuesta sólo 
podrá ser modificada por su diseñador o por el grupo al que pertenezca si éste lo decide. 
 
En cuanto a los destinatarios de las encuestas, es evidente que no pueden tener acceso a 
ninguna de las funciones que acaban de ser descritas. Sólo podrán acceder a las 
encuestas que se pongan disponibles en el sistema, y a ver los resultados o resúmenes 
de aquéllas que estén ya finalizadas, pero cuyas conclusiones se quieran poner a 
disposición del público. Opcionalmente, también se podría proteger a una encuesta 
activa mediante una contraseña, para que sólo un grupo de personas (a las que se facilita 
dicha contraseña) tengan acceso a ella. 
 
Uso de estándares 
 
Para favorecer la interacción con otros sistemas se debe procurar adecuar, tanto las 
salidas de la aplicación como los formatos de almacenamiento a formatos 
estandarizados. Por ejemplo, permitir impresiones en PDF, exportación de los datos 
recopilados en las encuestas a diferentes formatos. 
 
Para conseguir esto último es imprescindible almacenar los datos recopilados en algún 
formato estándar, que permita una fácil conversión a otros tipos de formatos. De este 
modo también aseguramos la escalabilidad del sistema, reduciendo la complejidad de 
modificar la aplicación para que produzca nuevos formatos de salida. 
 
Fácil instalación y mantenimiento 
 
En cuanto a la instalación y mantenimiento del sistema, de nuevo dependemos de los 
componentes elegidos para soportar la aplicación, esto es, sistemas multiplataforma, de 
código libre, estándares, etc.; se debe ser capaz de ofrecer una solución robusta, y con 
una instalación y un mantenimiento claros y bien documentados. 
 
Aplicación Web para Gestión de Encuestas 
 
 19 
 
2. Antecedentes e Investigación 
 
2.1 Investigación 
 
2.1.1 Estándares de encuestas 
 
ADM Asociación Alemana de Institutos de Investigación de Mercado y 
Opinión 
http://www.adm-ev.de 
 
 Estándares de calidad para la realización de encuestas por Internet 
 http://www.solucionesnetquest.com/papers/Onlinestandards_ES.pdf 
 
Documento que presenta una concretización de los estándares generales 
en relación tanto al diseño como a las técnicas específicas de captación y 
análisis de datos mediante encuestas por Internet. 
Centro Centroamericano de Población, Universidad de Costa Rica 
 http://ccp.ucr.ac.cr/eqsoftware/ 
 http://ccp.ucr.ac.cr/eqsoftware/eqml.html 
 
 
 
El EQLM: una especificación que permite representar tanto cuestionarios 
simples como complejos de censos y encuestas en XML. Se basa en un 
modelo matemático llamado Algebra de Preguntas que se desarrolló 
analizando miles de preguntas en decenas de cuestionarios de censos, 
encuestas y otras investigaciones. 
 
El modelo conceptual del sistema (EQ-Software), es una arquitectura 
extensible, inicialmente compuesta de tres módulos: una aplicación para 
el diseño visual de cuestionarios que aísla al investigador de los detalles 
técnicos del EQML, una aplicación para recolección de datos en Palm y 
una aplicación que controla la distribución de áreas de enumeración entre 
los entrevistadores y los datos recolectados por ellos. La arquitectura 
puede extenderse para recolectar datos por otros medios como Web, 
papel Tablet PC, etc. 
 
 Triple-S 
 http://www.triple-s.org/ 
 
El estándar triple-s es un estándar abierto para compartir encuestas entre 
distintos sistemas independientemente de la plataforma hardware o 
software. 
 La última revisión es la Triple-S XML versión 2.0 de mayo del 2006. 
 
Aplicación Web para Gestión de Encuestas 
 
 20 
 
2.1.2 Generadores de encuestas disponibles 
 
 Net Quest 
 http://www.solucionesnetquest.com 
 
Survey manager es una solución de software desarrollada íntegramente 
por Netquest para la gestión de encuestas avanzadas a través de Internet. 
 
 Questionmark 
 http://www.questionmark.com/esp/home.htm 
 
Software para crear, distribuir y analizar test, encuestas y evaluaciones, 
con dos versiones: Perception para Web (distribución vía Internet o 
intranet) y Perception para Windows (vía redes sin servidor). 
 
 Entryware 
 http://www.trevenque.es/index.php/Entryware/44/0 
El sistema Entryware es un conjunto de herramientas versátil y potente 
destinado a la recolección móvil de datos. Formado por el software 
Entryware de Techneos Systems, y por ordenadores de bolsillo con 
sistema operativo Palm OS, este sistema combina movilidad y facilidad 
de uso. 
 
 Atnova Web Systems 
 http://www.atnova.com/ 
 
Atnova Perception. Software para la investigación de mercados; 
encuestas por Internet. Es una plataforma Web para investigación de 
mercados con la que podría realizar encuestas a través de Internet y 
obtener resultados en tiempo real. 
 
 Encuesta Fácil 
 http://www.encuestafacil.com/ 
 
Es una herramienta Web que permite a los usuarios elaborar por sí 
mismos, de una forma rápida y sencilla, encuestas internas y externas que 
ayuden a la toma de decisiones. EncuestaFacil.com permite obtener 
información en tiempo récord utilizando muy pocos recursos. 
 
 2Ask 
 http://www.2ask.net/ 
 
 Servicio de Internet para encuestas online. Características principales: 
 
• Crea cuestionarios de forma rápida y sencilla 
• Realiza encuestas online a bajo precio 
• Analiza los resultados de las encuestas en cualquier momento 
• Intercambio directo de datos con Excel 
Aplicación Web para Gestión de Encuestas 
 
 21 
 
CleverForm 
http://www.cleverform.com/ 
 
 Servicio de Internet para encuestas online. 
 
SnapSurveys 
http://www.snapsurveys.com/ 
 
Es un sistema basado en Windows para el diseño, publicación, captación 
de datos y análisis de cuestionarios. Soporta diferentes formas de 
recolección, Web email, papel, teléfono, PDA. Además proporciona una 
robusta capacidad de análisis (tablas, gráficas,..). 
 
 Web Survey Toolbox 
 http://www.websurveytoolbox.org/ 
 
Herramienta open source para la creación de encuestas tanto simples 
como complejas. Desarrollado en entorno Java. 
 PhpESP 
 http://www.butterfat.net/wiki/Projects/phpESP 
 
Herramienta open source para crear, administrar recopilar resultados y 
ver estadísticas de encuestas. Desarrollado en php. 
 
2.2 Estudio tecnológico preliminar 
 
2.2.1 Aplicaciones Web 
 
Una aplicación Web es aquella en la que los usuarios acceden mediante un servidor 
Web, ya sea a través de Internet o de una intranet. Las aplicaciones Web son populares 
debido a la practicidad del navegador Web como cliente ligero, y a la posibilidad para 
actualizar y mantener aplicacionessin distribuir e instalar software en miles de 
potenciales clientes. Aplicaciones como los clientes de correo electrónico vía Web, el 
comercio electrónico o aplicaciones de banca online son ejemplos bien conocidos de 
aplicaciones Web. 
 
En el modelo de aplicaciones cliente-servidor puro, cada aplicación tenía su propio 
programa cliente y su interfaz de usuario, éstos tenían que ser instalados por separado 
en cada estación de trabajo de los usuarios. Una mejora o cambio en el software del 
servidor, como parte de la aplicación, requería típicamente una mejora de los clientes 
instalados en cada una de las estaciones de trabajo. En contraste, las aplicaciones Web 
generan dinámicamente una serie de páginas en un formato estándar, soportado por 
navegadores Web comunes como HTML o XHTML. Generalmente cada página Web 
individual es enviada al cliente como un documento estático, siendo la secuencia de 
páginas recibidas la que proporciona una experiencia interactiva. De esta forma el único 
costo de instalación por el lado del cliente es asegurase de que tiene un navegador 
compatible con las tecnologías utilizadas. 
Aplicación Web para Gestión de Encuestas 
 
 22 
 
Una ventaja significante es la construcción de aplicaciones Web que soporten las 
características de los navegadores estándar y que deberían funcionar igual 
independientemente del navegador o la versión del sistema operativo instalado en el 
cliente. En vez de crear clientes para Windows, Mac, Linux, e incluso otro tipo de 
plataformas como PDA’s o navegadores para teléfonos móviles, la aplicación es escrita 
una única vez y es mostrada correctamente en casi cualquier medio compatible. Sin 
embargo, aplicaciones inconsistentes de HTML, CSS, DOM y otras especificaciones de 
navegadores pueden causar problemas en el desarrollo y soporte de aplicaciones Web. 
 
Sin embargo, las interfaces Web tienen ciertas limitaciones en la funcionalidad del 
cliente. Operaciones básicas comunes en las aplicaciones de escritorio como dibujar en 
la pantalla respondiendo a acciones de usuario o arrastrar y soltar no están soportadas 
por las tecnologías Web estándar. Por esta razón surgen una serie de tecnologías del 
lado del cliente que pretenden añadir funcionalidades que aumenten la interactividad de 
la interfaz del navegador. Este es el caso de tecnologías como Macromedia Flash, 
applets de Java, o más recientemente lo que se ha venido a denominar el modelo 
AJAX. 
 
Cabe distinguir por tanto dos entornos en los que se desarrollan las aplicaciones Web: 
 
• Aplicaciones en el lado del cliente: el cliente Web es el encargado de 
ejecutarlas en la máquina del usuario. Son aplicaciones tipo Java o Javascript en 
las que el servidor proporciona el código de las aplicaciones al navegador del 
cliente y éste, mediante el uso de plugins, las ejecuta. 
 
• Aplicaciones en el lado del servidor: el servidor Web ejecuta la aplicación, la 
cual una vez ejecutada genera cierto código HTML que el servidor ensambla con 
el resto de la página y la envía al cliente por medio del protocolo HTTP. 
 
Estructura 
 
Aunque existen infinidad de variaciones en cuanto a la estructura de una aplicación 
Web, están comúnmente estructuradas como aplicación de tres capas. 
 
• Una capa cliente, que en su forma más común serán navegadores Web en 
plataformas heterogéneas. 
• Una capa de aplicación, integrada por el servidor Web, un motor implementando 
alguna tecnología de script (PHP, JSP, ASP, etc.) y adicionalmente por otras 
aplicaciones de las que éste se sirve para componer sus respuestas. 
• Y una capa de datos, que típicamente será un sistema de gestión de base de 
datos, aunque podría ser cualquier tipo de tecnología de acceso y 
almacenamiento de datos, o incluso accesos a Web services externos u otras 
aplicaciones Web. 
 
Aplicación Web para Gestión de Encuestas 
 
 23 
 
 
 Figura 2.1 Estructura de una aplicación Web 
 
 
Este esquema básico puede verse alterado para adecuarse a los requerimientos de cada 
aplicación, siendo generalmente la capa de aplicación la que se subdivida dando lugar a 
esquemas más complejos. De esta forma podría añadirse una capa de Web services. 
 
 
2.2.2 Tecnologías Web utilizadas 
 
Haremos en breve repaso de los lenguajes y tecnologías dirigidos a la programación de 
aplicaciones Web en los que se basará la implementación del sistema para la gestión de 
encuestas. 
 
 
HTML: Acrónimo de Hyper Text Markup Language. Es un lenguaje de marcas 
diseñado para estructurar textos. 
 
HTML es un lenguaje muy sencillo que permite describir hipertexto, es decir, texto 
presentado de forma estructurada y agradable, con enlaces que conducen a otros 
documentos o fuentes de información relacionadas, y con inserciones multimedia 
(gráficos, sonido…). Básicamente se trata de un conjunto de etiquetas que sirven para 
definir la forma en la que se presentara el texto y otros elementos de la página, creando 
una estructura estándar que será luego procesada por un programa especializado 
(típicamente un navegador) para su presentación final. 
 
XML: Acrónimo en inglés de eXtensible Markup Language (Lenguaje de marcas 
extensible), es un metalenguaje extensible de etiquetas desarrollado por el W3C (World 
Wide Web Consortium). Es una simplificación y adaptación de SGML y permite definir 
la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un 
Aplicación Web para Gestión de Encuestas 
 
 24 
lenguaje definido por SGML). Por lo tanto, XML no es realmente un lenguaje en 
particular, sino una manera de definir lenguajes para diferentes necesidades. 
 
XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la 
hacen mucho más potente. Actualmente se propone como un estándar para el 
intercambio de información estructurada entre diferentes plataformas, facilitando la 
compatibilidad entre sistemas para compartir la información de una manera segura, 
fiable y fácil. 
 
XHTML: Acrónimo en inglés de eXtensible Hyper Text Markup Language (Lenguaje 
extensible de marcado de hipertexto). Es la versión XML del HTML pensado para 
sustituir a éste último. Su objetivo es avanzar en lograr una Web más semántica donde 
la información y la forma de representarla estén claramente diferenciadas. 
 
 
CSS: Las hojas de estilo en cascada (Cascading Style Sheets) son un lenguaje formal 
usado para definir la presentación de un documento estructurado escrito en HTML o 
XML (y por extensión en XHTML). El W3C es el encargado de formular la 
especificación de las hojas de estilo que servirá de estándar para los navegadores. 
Existen actualmente dos versiones CSS1 y CSS2, con CSS3 en estado de desarrollo. 
Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas 
diferencias de implementación según marcas y versiones de los navegadores. CSS2, sin 
embargo esta solo parcialmente implementado en los más recientes. 
 
JavaScript: Es un lenguaje interpretado orientado a las páginas Web y diseñado para 
ser ejecutado en el navegador. Fue inventado por Breadan Eich en la empresa Netscape 
Comunications que fabricó los primeros navegadores de Internet comerciales. En 1997 
fue adoptado como un estándar por la ECMA (European Computer Manufacturers 
Association) con el nombre de ECMAScript. Poco después también lo fue como 
estándar ISO. 
 
DOM: El Document Object Model (Modelo de Objetos de Documento) es un modelo 
para representar los objetos que componen los documentos HTML ó XML, con sus 
atributos y métodos asociados. Es un API independiente del lenguaje para acceder, 
añadir y cambiar dinámicamente contenido estructurado en páginas Web. Actualmente 
navegadores como Internet Explorer de Microsoft han añadido extensiones a este 
estándar, dificultando de esta manera la compatibilidad entre navegadores. 
 
La referencia y manipulación de los objetos que forman el árbol DOM es fundamental 
para la programación en lenguajes interpretados como el anterior citadoJavaScript. 
 
 
AJAX: Acrónimo de Asynchronous JavaScript And XML (JavaScript y XML 
asíncronos), es una técnica de desarrollo Web para crear aplicaciones interactivas. Estas 
se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación 
asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios 
sobre la misma página sin necesidad de recargarla. Esto significa aumentar la 
interactividad, velocidad y uso de la misma. 
 
Aplicación Web para Gestión de Encuestas 
 
 25 
JAVA: JAVA es un lenguaje de programación orientado a objetos desarrollado por 
Sun Microsystems. Las aplicaciones Java están típicamente compiladas en un bytecode, 
aunque la compilación en código maquina nativo también es posible. En el tiempo de 
ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la 
ejecución. 
2.2.3 Arquitectura MVC 
 
Uno de los modelos más usados en el diseño de arquitecturas de software para 
aplicaciones Web es la arquitectura MVC. 
 
La arquitectura MVC (Model View Controller, en castellano Modelo Vista 
Controlador) es un patrón de diseño de software que consiste en dividir el software en 
tres componentes principales: el modelo de datos de la aplicación, la interfaz con el 
usuario y la lógica de control. 
 
El patrón MVC se ve frecuentemente en aplicaciones Web, donde la vista es la página 
HTML, el control es el código que provee de datos dinámicos a la página y el modelo 
contiene clases representativas de la aplicación. 
 
• El modelo: Esta es la representación específica del dominio de la información 
sobre la cual funciona la aplicación. El modelo es otra forma de llamar a la capa 
de dominio o lógica de negocio. Esta lógica es la que añade significado a los 
datos que gestiona la aplicación, sin prestar atención a como será la 
visualización en interacción con los mismos. 
 
• La vista o interfaz de usuario la constituyen aquellos componentes encaminados 
a mostrar una representación concreta del modelo. 
 
• El controlador está compuesto por la parte del software que se encarga de 
relacionar las entradas externas al sistema con las acciones que es necesario 
ejecutar sobre el modelo. Este responde a eventos, usualmente acciones del 
usuario, e invoca cambios en el modelo y probablemente actualizaciones en la 
vista del mismo. 
 
 
 
Figura 2.2 Estructura de una aplicación Web 
Aplicación Web para Gestión de Encuestas 
 
 26 
 
(1) El usuario interactúa con la interfaz y el controlador recibe la notificación de 
actuación del usuario 
(2) El controlador actúa sobre el modelo para cumplir con la petición del usuario. 
(3) El controlador delega en las vistas para que se genere una determinada 
representación. 
(4) La vista obtiene del modelo los datos que necesita para mostrarse. 
(5) Finalmente, el usuario ve actualizada su interfaz con el resultado de la 
operación. 
 
En casi cualquier programa que hagamos podemos encontrar estas tres partes bien 
diferenciadas, siendo la división aun más evidente en el desarrollo de aplicaciones Web. 
 
 
2.2.4 AJAX 
 
Como ya se vio en la sección anterior, AJAX (Asynchronous Javascript And XML) es 
una técnica de desarrollo Web, cuyo principal objetivo es potenciar la interactividad de 
las aplicaciones Web acercándola a la experiencia de usuario típica de las aplicaciones 
de escritorio tradicionales. 
 
En realidad AJAX no es una tecnología en sí misma, sino la unión de varias tecnologías 
que se han convertido en estándares en el campo del desarrollo Web. De esta forma 
AJAX incorpora: 
 
• Presentación basada en estándares usando XHTML y CSS 
• Visualización e interacción dinámicas usando el Document Object Model 
• Intercambio y manipulación de datos mediante XML y XSLT 
• Recuperación de datos de forma asíncrona usando el objeto XMLHttpRequest 
• Javascript como hilo conductor de todas estas tecnologías 
 
 
 
 
Aplicación Web tradicional 
 
Para entender el cambio que propone AJAX, vamos a ver primero de qué forma 
funciona el modelo clásico de aplicaciones Web. Cuando se inicia la sesión, se carga 
una página HTML enviada por el servidor. Cuando se pulsa un enlace, se rellena un 
formulario, o se realiza una consulta, el navegador construye una petición HTTP que es 
enviada al servidor. 
 
Con esta información el servidor realiza la operación que se le ha pedido, quizá consulta 
una base de datos, recupera un gráfico o realiza un cálculo, y genera una nueva página 
HTML completa con el resultado de la operación, que será devuelta al navegador del 
cliente que a su vez la presenta, borrando la página anterior. En muchos casos la nueva 
página generada es muy similar a la precedente, a lo mejor con un gráfico más amplio o 
una información adicional. 
 
Aplicación Web para Gestión de Encuestas 
 
 27 
Este es un modelo adaptado del uso original de Internet como un medio de 
visualización de información en forma de hipertexto, y que tiene mucho sentido a nivel 
técnico, pero no la tiene desde el punto de vista de la interactividad en la experiencia del 
usuario. 
 
El problema de este esquema, bien conocido por todos, es que mientras el servidor está 
ocupado procesando la petición (entre muchas otras) el usuario está esperando 
pacientemente a que le llegue la nueva página, lo que no siempre ocurre rápidamente. 
Todo sucede en el lado del servidor, mientras que en el lado del usuario el navegador 
tiene que esperar en cada una de sus acciones a que el servidor reciba la petición, la 
procese, y vuelva a generar toda la página HTML completa, incluso aunque lo que haya 
cambiado sea un simple dato. 
 
 
Aplicación AJAX 
 
Una aplicación AJAX modifica el ciclo petición-espera-respuesta de la interacción en la 
Web introduciendo un intermediario entre el usuario y el servidor: el motor AJAX. En 
vez de cargar una página Web, al inicio de la sesión, el navegador carga además el 
motor AJAX, escrito en Javascript. Este motor es el responsable de construir y 
modificar dinámicamente la interfaz que el usuario ve y de comunicarse con el servidor 
en nombre de éste, permitiendo que la interacción del usuario con la aplicación suceda 
de forma asíncrona (independiente de la comunicación con el servidor). Así, el usuario 
nunca estará mirando una ventana en blanco del navegador y un icono de reloj de arena 
esperando a que el servidor haga algo. 
 
El motor AJAX lo que hace es proporcionar un marco flexible e independiente del 
servidor que realiza toda la interacción con el usuario y que puede contener 
herramientas de cálculo, validación, sistemas sofisticados de producción e interacción 
con gráficos o cualquier cosa que se pueda programar en Javascript. 
Cada acción de un usuario que en el modelo tradicional generaría un requerimiento 
HTTP toma la forma de una llamada Javascript al motor AJAX. Cualquier respuesta a 
una acción del usuario que no requiera un viaje de vuelta al servidor (como una simple 
validación de datos, edición de datos en memoria, incluso algo de navegación) es 
manejada por su cuenta. Si el motor necesita algo del servidor para responder (sea 
enviando datos para procesar, cargar código adicional, o recuperando nuevos datos) 
hará las peticiones al mismo asincrónicamente en segundo plano. El servidor responderá 
a estas peticiones usualmente enviando datos en formato XML que el motor AJAX 
recibirá, procesara y presentara al usuario cuando estén listos, y sin interrumpir la 
interacción del usuario en la pagina HTML de la aplicación. 
 
Aplicación Web para Gestión de Encuestas 
 
 28 
 
 
Figura 2.3 Aplicación AJAX 
 
 
De esta forma la interactividad del usuario con la aplicación se mejora sensiblemente, 
principalmente: 
 
• Se eliminan los periodos de espera en los que la aplicación pierde pro completo 
toda su funcionalidad hasta que se refresca por completo. El usuario esta en todo 
momento en contacto con la interfaz de la aplicación. 
• Además, se disminuyen los tiempos de carga de datos delservidor. Como ya no 
es necesario recargar toda la pagina HTML, la comunicación motor AJAX –
Servidor se limita exclusivamente al trafico de datos (usualmente XML), y no a 
elementos propios de la presentación de los mismos, que ya no se envían 
repetidos una y otra vez. 
 
Aplicación Web para Gestión de Encuestas 
 
 29 
 
El objeto XMLHttpRequest 
 
El objeto XMLHttpRequest es la clave del tratamiento de las comunicaciones en esta 
técnica de desarrollo Web. XMLHttpRequest es una API que puede invocarse desde 
Javascript, JScript, VBscript y otros lenguajes de script incluidos en un navegador 
Web, que se usa para transferir y manipular datos XML hacia y desde el navegador 
Web, estableciéndose un canal de conexión independiente entre el lado del cliente de la 
página Web y el servidor. 
 
Los datos devueltos por la llamada a XMLHttpRequest serán, por lo general, obtenidos 
desde bases de datos en el servidor. La llamada puede devolver datos en XML o, más 
generalmente, en cualquier otro formato textual como JSON, HTML o incluso texto 
plano. 
 
 
2.2.5 XML 
 
XML es un estándar impulsado por W3C el cual hay en día nos ayuda a organizar y 
representar datos por lo cual esta siendo aplicado en multitud de campos y para 
diversos fines: archivo electrónico y gestión de contenidos, publicación Web, 
intercambio electrónico de documentos, comercio electrónico, educación y muchos 
otros campos que seria casi imposible mencionar aquí. 
 
Aunque como ya hemos mencionado, XML es un estándar del W3C el cual nació en el 
mundo Web y que se utiliza dentro y fuera de su ámbito. XML es una forma de 
representar datos que han de circular por la red y por ello no está ligado necesariamente 
a su presentación en un navegador. 
 
Su función principal es la de organizar contenidos haciendo que los documentos XML 
sean entendibles entre diferentes tipos de aplicaciones. 
 
Es por tanto un metalenguaje, que junto con un conjunto de reglas que rigen como 
añadir marcado a un texto, permite construir documentos en los que se hace explicita la 
estructura de los mismos. 
 
El los lenguajes definidos con XML, dicha estructura se concibe como un árbol de 
elementos, donde cada elemento puede tener asociado un conjunto de pares atributo-
valor. XML permite definir dichas estructuras utilizando un formalismo gramatical (p. 
ej., (*)DTD, XML Schema) 
 
En XML las etiquetas se agregan al lenguaje según nuestras necesidades y su objetivo 
no es informar sobre cómo deben mostrarse los datos, sino describirlos, además de 
permitir definir nuevas etiquetas y ampliar las existentes. Es más, un documento XML 
no está destinado para ser visualizado en un navegador, sino para ser procesado por 
cualquier aplicación que sea capaz de extraer sus datos y manipularlos. 
 
 
Aplicación Web para Gestión de Encuestas 
 
 30 
 
 
Un sencillo ejemplo de documento XML seria: 
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ficha sexo="masculino" tipo="operador"> 
<nombre>Pedro</nombre> 
<apellido>Campos</apellido> 
<dir>La Laguna</dir> 
</ficha> 
 
 
En este primer ejemplo se pueden apreciar las dos entidades básicas de XML: los 
elementos y los atributos. 
 
• Los elementos representan los distintos componentes lógicos del documento. En 
el ejemplo: nombre, apellido y dir. 
 
• Los atributos se corresponden con los calificadores asociados a los elementos. 
En este caso el elemento pregunta tiene dos atributos: sexo y tipo. 
 
Un documento XML es, por lo tanto, el conjunto de etiquetas con los respectivos datos 
asociados a cada una de ellas. Los documentos XML pueden incluir cualquier tipo de 
datos basados en texto, desde artículos de una publicación, a notas de prensa pasando 
por registros de una base de datos, o los recientes canales de noticias en formato RSS. 
 
Tipos de documento XML 
 
Hay dos tipos de documentos XML: válidos y bien formados. Éste es uno de los 
aspectos más importantes de este lenguaje, así que hace falta entender bien la diferencia: 
 
• Bien formados: son todos los que cumplen las especificaciones del lenguaje 
respecto a las reglas sintácticas y pueden, por lo tanto, ser analizados 
correctamente por cualquier procesador XML que cumpla con la norma. 
 
• Validos: además de estar bien formados, siguen una estructura y una semántica 
determinada por un documento de definición externo expresado como DTD o 
XSchema. 
 
Estructura de un documento XML 
 
Un documento XML está formado por una mezcla de datos e información de etiquetado 
sobre los mismos, que además pueden incluir un prólogo con la siguiente información: 
 
• La declaración XML que incluye la versión usada en el documento, el tipo de 
codificación utilizada y el carácter autónomo (Standalone) del mismo. Un 
documento standalone es aquel que no está basado en un documento de 
definición externo. 
 
Aplicación Web para Gestión de Encuestas 
 
 31 
• Una declaración de tipo de documento (DTD), que se usará para validar que el 
documento XML se ajusta al lenguaje definido por el documento de definición 
especificado. 
 
En cuanto a las reglas de sintaxis que debe de cumplir el cuerpo de un documento XML 
para considerarse bien formado, de manera abreviada podemos nombrar las siguientes 
características: 
 
• Los documentos han de seguir una estructura completamente jerárquica con lo 
que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe 
estar correctamente incluida en otra, es decir, las etiquetas deben estar 
correctamente anidadas. Los elementos de contenido deben estar correctamente 
cerrados. 
 
• XML permite elementos sin contenido, pero la etiqueta debe ser: 
<elemento_sin_contenido /> 
 
• Los documentos XML solo permiten un elemento raíz del que todos los demas 
sean parte, es decir, solo pueden tener un elemento inicial. 
 
• Los valores de los atributos XML siempre deben de estar encerrados entre 
comillas simples o dobles. 
 
• El XML es sensible a mayúsculas y minúsculas. Existe un conjunto de 
caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, 
saltos de línea) que los procesadores XML tratan de forma diferente en el 
marcado XML. 
 
• Los nombres que identifican los elementos, atributos, etc., deben cumplir una 
serie de reglas similares a las que definen los identificadores en la mayoría de 
lenguajes de programación. 
 
• Las etiquetas, referencias de entidad y declaraciones se denominan marcas; son 
partes del documento que el procesador XML espera entender. El resto del 
documento entre marcas son los datos entendibles por las personas. 
 
 
DTD: Definición de Tipos de Documento 
 
Como antes e comento, los documentos XML pueden ser validados o bien formados. En 
cuanto a los validos, ya sabemos que su gramática esta definida en los DTD. 
 
Los DTD no son mas que definiciones de los elementos que pude incluir un documento 
XML, de la forma en que deben hacerlo (qué elementos van dentro de otros) y los 
atributos que se les puede dar. 
 
Para especificar la definición DTD que se usara en un determinado documento XML se 
usara la etiqueta DOCTYPE, que puede ser usada de dos maneras: 
 
Aplicación Web para Gestión de Encuestas 
 
 32 
Incluir dentro del documento una referencia al documento DTD en forma de URI 
(Universal Resource Identifier, ò identificador universal de recursos) y mediante la 
siguiente sintaxis: 
 
<!DOCTYPE ficha SYSTEM ”…/archivo.dtd” 
 
O bien incluir dentro del propio documento el DTD entre corchetes, de este modo: 
 
<?xml version="1.0"?> 
<!DOCTYPE ficha [ 
<!ELEMENT ficha (nombre+,apellido+,dir*,foto?,tlf|fax?)> 
<!ATTLIST ficha sexo (masculino|femenino) #IMPLIED> 
<!ATTLIST ficha tipo (operador|admin) #REQUIRED> 
<!ELEMENT nombre (#PCDATA)> 
<!ELEMENT apellido (#PCDATA)> 
<!ELEMENT dir (#PCDATA)> 
<!ELEMENT foto EMPTY> 
]> 
<ficha sexo="masculino" tipo="operador"> 
<nombre>Pedro</nombre> 
<apellido>Campos</apellido> 
<dir>La Laguna</dir> 
</ficha> 
 
En cuanto a la definición de los elementos,es bastante intuitiva: después de la cláusula 
<!ELEMENT se incluye el nombre del elemento (el que luego se indicara en la 
etiqueta), y después diferentes datos en funcion del elemento: entre paréntesis, si el 
elemento es no vació, se indica el contenido que puede tener el elemento: la lista de 
elementos hijos o que descienden de él si los tiene, separados por comas; o el tipo de 
contenido, normalmente #PCDATA, que indica datos de tipo texto, que son los mas 
habituales. Si es un elemento vació, se indica con la palabra EMPTY. 
 
A la hora de indicar los elementos descendientes (los que están entre paréntesis) vemos 
que van seguidos de unos caracteres especiales: ‘+’,’*’,’?’ y ‘|’. Sirven para indicar que 
tipo de uso se permite hacer de estos elementos dentro del documento: 
 
• +: uso obligatorio y múltiple; permite uno o más elementos de este tipo dentro 
del elemento padre, pero como mínimo uno. 
• *: opcional y múltiple; puede no haber ninguna ocurrencia, una o varias. 
• ?: opcional pero singular; puede no haber ninguno o como mucho uno. 
• |: equivale a un OR, es decir, da la opción de usar un elemento de entre los que 
forman la expresión, y solo uno. 
 
De este modo, en la definición del elemento ficha del ejemplo anterior, se indica que el 
elemento ficha puede contener los siguientes elementos: un nombre y un apellido como 
mínimo, pero puede tener mas de uno de cada; opcionalmente puede incluirse una o 
varias direcciones, pero no es obligatorio; opcionalmente también se puede incluir una 
única foto; y por fin, puede incluirse, aunque no es obligatorio en ninguno de los dos 
casos, un teléfono o fax. 
 
Aplicación Web para Gestión de Encuestas 
 
 33 
Para la definición de los atributos, se usa la declaración <!ATTLIST, seguida de el 
nombre del elemento del que estamos declarando los atributos; el nombre del atributo, 
los posibles valores del atributo, etc. También se pueden definir el tipo de dato y 
características como si es requerido, fijo (valor único para todos los elementos del 
mismo tipo), si es un valor único para todo el documento, etc. 
Es importante destacar un aspecto de cara a la optimización del diseño de nuestros 
DTD’s: muchas veces tendremos que decidir entre especificar atributos de nuestros 
elementos como elementos descendientes o como atributos en si mismos. ¿Qué 
diferencia habría entre ambos? Queda a discreción del diseñador el decidir entre ambas, 
pero hay que tener en cuenta que si se usa la primera forma, el proceso tiene que bajar al 
siguiente nivel del árbol de elementos mientras que en el segundo caso lo puede obtener 
referenciado directamente un atributo del elemento actual. 
 
Sin embargo se suele recomendar la segunda opción, por estar mas acorde con la 
filosofía XML de que las etiquetas reverencien siempre su contenido, sin necesidad de 
acudir a los atributos, que era lo que hasta ahora se hacia en HTML. 
 
 
XML Schema 
 
Un XML Schema es un documento de definición estructural al estilo de los DTD, que 
además cumple con el estándar XML. Los documentos Schema (usualmente con 
extensión XSD) se concibieron como un sustituto de los DTD teniendo en cuanta los 
puntos débiles de estos y la búsqueda de mayores y mejores capacidades a la hora de 
definir estructuras para los documentos XML, como la declaración de los tipos de datos. 
Esto significa que siendo posible hacer una transformada XSLT a un documento XML 
Schema, tenemos muchas mas opciones que un DTD. Por ejemplo, XML Schema 
ofrece muchas posibilidades necesarias en las aplicaciones de procesado de datos, como 
tipos de datos complejos como fechas, números, strings, además de tipos de datos 
complejos creados por el usuario. 
 
La programación en Schema XML se basa en namespaces. Podemos encontrar una 
analogía entre estos y los llamados “packages” en Java. Cada namespace contiene unos 
elementos y atributos que están estrechamente relacionados con el namespace. Así, a la 
hora de definir un elemento oun atributo de un namespace, siempre se creara una 
conexión entre los diferentes campos de este. Además, esta forma de trabajar, nos 
permite relacionar elementos que no están en el mismo namespace pero que si 
mantienen una relación. 
 
Después de escribir un Schema XML se puede confirmar la correcta realización 
mediante la validación de esquemas XML. 
 
Procesamiento de documentos XML 
 
En un entorno donde se esta trabajando con documentos XML es importante distinguir 
entre los siguientes elementos: 
 
• El documento XML propiamente dicho. El estándar describe como es un 
documento XML, pero no donde ni como se almacena. 
Aplicación Web para Gestión de Encuestas 
 
 34 
• El procesador XML o parser. Se rata de un modulo software que lee el 
documento y proporciona acceso a su contenido y estructura 
• la aplicación propiamente dicha, que usa los servicio del procesador XML. El 
estándar no se ocupa de este elemento. 
 
Ya hemos hablado de las características de los documentos XML, y puesto que el 
estándar no se ocupa de la capa de aplicación, vamos ahora a ver brevemente las 
alternativas a la hora de procesar dichos documentos. 
 
El W3C ha especificado dos mecanismos para acceder a documentos XML, y trabajar 
con ellos. Se tratan simplemente de unas normas que indican a los desarrolladores la 
manera de acceder a los documentos. Estas normas incluyen una jerarquía de objetos 
que tienen unos métodos y atributos con los que tendremos que trabajar y que nos 
simplificaran las tareas relativas al recorrido y acceso a las partes del documento. Estos 
dos mecanismos se denominan SAX y DOM 
 
SAX se utiliza para hacer un recorrido secuencial de los elementos del documento 
XML, y se basa en un procesamiento orientado a eventos. Básicamente se programan 
las acciones que se necesitan ejecutar cada vez que se inicia o cierra un elemento 
mientras el parser va leyendo el documento. 
 
DOM implica la creación de un árbol en memoria que contiene el documento XML, y 
con el en memoria podemos hacer cualquier tipo de recorrido y acciones con los 
elementos que queramos. Por lo tanto, el documento XML debe ser leído por completo 
antes de poder generar al árbol, al contrario que SAX, que va disparando acciones a 
medida que se lee. 
 
Se puede programar con el lenguaje de programación que se desee para acceder a un 
documento XML. Los creadores del lenguaje son los responsables de crear unas API 
que cumplan las especificaciones de XML para que luego los desarrolladores de cada 
lenguaje las encuentren y puedan trabajar con ellas. 
 
Por su parte, los creadores de algunos lenguajes han implementado una tercer manera de 
programar con XML que se llama XSLT. Empresas como por ejemplo la organización 
Apache, SUN ó Microsoft, ya la están apoyando, aunque en el W3C no han dicho que 
sea un estándar. Es importante señalar que la W3C es un organismo relativamente lento 
y que mucho de lo que se hace en XML actualmente solo esta en la W3C contemplado 
como “notas”. 
 
El trabajo con bases de datos y XML se esta desarrollando con un lenguaje que se llama 
XQL (XML Query Language). 
 
XSLT 
 
XSL, siglas de Extensible StyleSheet Language (lenguaje extensible de hojas de estilo) 
es una familia de lenguajes basados en el estándar XML que permite describir como la 
información contenida en un documento XML cualquiera debe ser transformada o 
formateada para su presentación en un medio especifico. 
 
Esta familia esta formada por tres lenguajes: 
Aplicación Web para Gestión de Encuestas 
 
 35 
 
• El XSLT propiamente dicho, que permite especificar reglas de conversión de 
documentos XML de una determinada sintaxis a otra (por ejemplo, de un XML 
a otro o a un documento HTML). 
• XSL-FO (Lenguaje de hojas extensibles de formateo de objetos), que permite 
especificar el formato visual con el cual se quiere presentar un documento 
XML, es usado principalmente para generar documentos PDF. 
• XPath, o XML Path Language, es una sintaxis (no basada en XML) para 
acceder o referirse

Continuar navegando