MANEJADOR DE ENCUESTAS DESARROLLO DE SOFTWARE
Transcript of MANEJADOR DE ENCUESTAS DESARROLLO DE SOFTWARE
ISC-2003-2-22
2
MANEJADOR DE ENCUESTAS
DESARROLLO DE SOFTWARE
LUCIA FERNANDA MUÑOZ GIRON
ANA CAROLINA MARTINEZ SAENZ
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE SISTEMAS
PREGRADO
BOGOTA,
2004
MANEJADOR DE ENCUESTAS
DESARROLLO DE SOFTWARE
LUCIA FERNANDA MUÑOZ GIRON
ANA CAROLINA MARTINEZ SAENZ
Proyecto Dirigido
Juan Pablo Quiroga
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE SISTEMAS
PREGRADO
BOGOTA,
2004
ISC-2003-2-22
2
CONTENIDO
Pag. INTRODUCCION ….……………………………………………………………. 4 Capitulo 1 OBJETIVOS ………………………………………………………. 6 Capitulo 2 MARCO TEORICO ………………………………………………. 8 2.1 Encuestas ……………………………………………………………………….... 8 2.1.1 Definición ……………….……………………………………………….... 8 2.1.2 Pasos de planificación de una encuesta ………………………… 8 2.2 Tecnología a utilizar…………………………………………………………….... 14 2.3 Servlet ………………………………………………………………………….... 14 2.3.1 Definición ……………….……………………………………………….... 14 2.3.2 Ventajas de los Servlets sobre los CGIs ………………………… 15 2.3.3 Estructura básica de un Servlet ..………………………..………….. 16 2.3.4 Ciclo de vida de un Servlet ………………………………………….... 17 2.3.5 Manejo de peticiones del cliente ……………………………..….... 18 2.3.6 Generación de respuestas de servidor …………………….……... 19
2.3.6.1 Codigos de estado …………………………………….. 19 2.3.6.2 Encabezados de respuesta http ..……………….. 22
2.3.7 Ejemplo de un servlet …………………………………………………… 23
2.3 Java Server Pages (JSP) ..………………………………………………….... 25
2.3.1 Definición ……………….……………………………………………….... 25 2.3.2 Comandos en JSP …………………………….………………………… 25
2.3.2.1 Elementos de secuencia de comandos ………... 25 2.3.2.2 Directivas ……………………………….……………….. 26 2.3.2.3 Acciones .……………………………….……………….. 28
2.3.3 Uso de los Java Beans con JSP ..………………………..………….. 28 2.3.4 Ejemplo de un JSP ………………....………………………..………….. 30
ISC-2003-2-22
3
2.4 Integración de los Servlets y JSP .………………………………………….... 31 2.5 JDBC y conexión a Base de Datos .……………………………………….... 34 2.6 MySQL ………………………………..………………………………………….... 35 2.7 Hojas De Estilo En Cascada (CSS) .........……………….........….... 36
2.7.1 Definición ……………….……………………………………………….... 36 2.7.2 Componentes de CSS ...……………………….………………………… 37 Capitulo 3 ARQUITECTURA DE LA APLICACIÓN .…………………. 39 Capitulo 4 DISEÑO DE LA APLICACIÓN .……………………………. 44 4.1 Diagrama de Casos de uso ..…………………….....………………….... 44 4.1 Casos de uso ………………………………………….....………………….... 45 4.2 Diagrama de Clases ...……………………………….....………………….... 60
ISC-2003-2-22
4
INTRODUCCIÓN
La aplicación surge de la necesidad que se percibió de automatizar el proceso de
realización de una encuesta que logre ser útil y agilizar el proceso actual; dado que
para realizar una encuesta es necesario pasar por varios pasos, que pueden llegar
hacer largos y tediosos como lo son: su creación, el darle formato, publicarla,
hacerla llenar, generar las estadísticas de esta y realizar su respectivo análisis.
La idea es no perder el concepto fundamental de realización de una encuesta, en
el cual se busca obtener un instrumento versátil de recolección, proceso y análisis
de información por medio de entrevistas con varias personas (una muestra de la
población objeto de la investigación). [7]
Al buscar automatizar este proceso encontramos puntos a favor y en contra,
dentro de las principales ventajas tenemos: ahorro de tiempo en el proceso,
organización y persistencia de los datos tanto de creación como de respuesta y
reutilización de la información. Por otro lado encontramos algunas desventajas
frente al proceso manual: El rechazo que puede generar en algunas personas la
tecnología y el controlar el llenado, y libertad de opinión al ingresar los datos por
el encuestado.
Un aspecto muy importante fue la elección de la tecnología en que se desarrolla la
aplicación, ya que se busca una herramienta poderosa que permitiera cumplir con
los objetivos propuestos y que al mismo tiempo le de portabilidad al producto, por
lo cual se elige trabajar bajo tecnología Java y se busca aprovechar su eficiencia,
seguridad y economía para procesos cliente-servidor.
ISC-2003-2-22
5
La herramienta permite crear encuestas, esta maneja diferentes roles para la
manipulación y creación de estas. Entre las actividades de manipulación de las
encuestas encontramos modificación (alterar la encuesta en cuestión), duplicación
(realizar una copia de la encuesta elegida), eliminación (borrar una encuesta
determinada), publicación (dar una fecha de vigencia de la encuesta elegida para
ser contestada por otros), verificación de estadísticas (ver la fecha de publicación
de la encuesta), presentación (realizar una vista de cómo será visualizada la
encuesta por los demás usuarios) y adición de preguntas. Esta ultima actividad
trae a su vez el manejo que puede realizarse a las preguntas y a las respuestas
según el tipo de pregunta elegida; para las preguntas también es posible la
modificación (alteración de la pregunta elegida), la consulta (la visualización de la
pregunta elegida), la eliminación (borrar una determinada pregunta) y si el tipo de
pregunta es de selección múltiple, la adición de posibles respuestas. Por otro lado,
da la posibilidad de contestarlas y producir las estadísticas de los datos ingresados
por los usuarios finales. Por medio de esta aplicación se logra tener un manejo
persistente de los datos que componen la estructura de la encuesta, como de los
diferentes datos que se diligencian al contestar esta.
ISC-2003-2-22
6
CAPITULO 1 OBJETIVOS
a. Lograr entender a fondo el problema propuesto, a través de la
necesidad percibida, de manera que sea posible obtener una
solución que permita resolverlo, es decir, lograr automatizar el
proceso de manejo que se le debe dar a una encuesta, desde el
momento en que se crea, se coloca en vigencia, se es contestada, se
generan las estadísticas de los datos que fueron ingresados; porque con
ellos se puede lograr un mejor control, manipulación y organización de los
datos para el usuario final de la aplicación.
b. Conocer acerca del manejo que comúnmente se le da a las encuestas para
así lograr que el producto que se va a ofrecer permita mejorarlo y obtener
un mayor aprovechamiento de la información que con ellas se puede
almacenar.
c. Analizar previamente la funcionalidad de la herramienta, su campo de
acción, y para quien va dirigida; las ventajas y desventajas que esta puede
tener de acuerdo al tipo de usuario que interactuará con la herramienta.
d. Estructurar la implementación de la herramienta de modo que
permita obtener un software de calidad, cumpliendo con los
requerimientos funcionales establecidos en el diseño para obtener
un buen desarrollo de la aplicación.
e. Elegir herramientas para el desarrollo de la aplicación que permitan brindar
a los usuarios finales un grado de confiabilidad y veracidad, al momento de
usar la aplicación.
ISC-2003-2-22
7
f. Desarrollar un producto util, que logre ser utilizado con facilidad por los
usuarios finales y en el cual se deposite la confianza necesaria para el
almacenamiento de la información.
g. Lograr un desarrollo base, el cual sea escalable para que se logre mejorar,
ampliando su funcionalidad y acoplándose a nuevas necesidades de los
usuarios.
ISC-2003-2-22
8
CAPITULO 2 MARCO TEÓRICO
2.1 ENCUESTAS
2.1.1 Definición
La encuesta es un instrumento versátil de recolección, proceso y análisis de
información que permite obtener retroalimentación acerca de un tema especifico;
Por medio de preguntas realizadas a varias personas (una muestra de la población
objeto de la investigación).
2.1.2 Pasos de planificación de una encuesta
Para realizar correctamente una encuesta es necesario comprender a fondo cada
uno de los pasos en la planificación de cualquier encuesta. El proceso consta de
una secuencia de nueve aspectos que deben considerarse cuidadosamente.[7]
a. Establecimiento de Objetivos
Establezca los objetivos de la encuesta de una manera clara, y remítase a estos
objetivos conforme se vaya progresando en el diseño e instrumentación de la
encuesta. Mantenga los objetivos suficientemente simples para completar
exitosamente la encuesta.
ISC-2003-2-22
9
b. Población Objetivo
Defina cuidadosamente la población que va a ser objeto de investigación. Si los
entrevistados van a ser adultos, entonces defina qué se entiende por adulto;
(ejemplo: todos aquellos con más de 18 años de edad). También es importante
establecer qué grupo de adultos está incluido; (ejemplo: todos los residentes
permanentes de un sector). Tenga presente que se va a obtener una muestra de
esa población, por tanto, defina la población de tal manera que la selección sea
factible.
c. Diseño de Muestreo
Seleccione el diseño de muestreo, incluyendo el número de elementos en la
muestra, según el tamaño de la población, de tal manera que sí proporcione
suficiente información, según los objetivos de la encuesta. Muchas encuestas
producen poca información porque no fueron propiamente diseñadas.
Para que una muestra sea confiable en términos estadísticos, debe ser lo
suficientemente grande para representar a la población total y debe ser
proporcionada. Los porcentajes de las diferentes características tales como: sexo,
edad, estado civil, entre otros presentes en la población total, deben ser
aproximadamente igual en la muestra.
d. Métodos de Recolección de Datos
Elegir un métodos apropiado para la recolección de datos como lo son: entrevistas
personales, entrevistas por teléfono, encuestas por Internet y encuestas por
observación directa.
ISC-2003-2-22
10
e. Diseño de un Cuestionario
Esta es quizá la fase más crítica de toda la encuesta. Además, el diseño de
cuestionario es algo que se considera como un arte. Sin embargo, existen algunas
pautas generales que sirven de ayuda. Para esto es necesario recordar:
• ¿Qué se está tratando de determinar?
• ¿Usamos preguntas cerradas o abiertas?
El contenido de las preguntas de un cuestionario puede ser tan variado
como los aspectos que se midan a través de éste. Podemos hablar de dos
tipos de preguntas, preguntas cerradas y preguntas abiertas.
- preguntas cerradas
Las preguntas cerradas contienen respuestas que han sido previamente
determinadas por el investigador. Se presenta al entrevistado las posibles
respuesta a cada una de las preguntas y ellos deben circunscribirse a éstas.
Las preguntas cerradas permiten que el entrevistado pueda seleccionar de
entre dos o más alternativas.
- preguntas abiertas
Las preguntas abiertas no delimitan de antemano la respuesta. Por lo que el
número de respuestas es elevado. En teoría es infinito.
• ¿Una o varias preguntas para medir una variable?
En ocasiones sólo basta una pregunta para recopilar la información
necesaria sobre la variable a medir. En otras ocasiones es necesario
ISC-2003-2-22
11
elaborar varias preguntas para verificar la consistencia de las repuestas. Es
recomendable hacer solamente las preguntas necesarias para obtener la
información deseada o medir la variable.
• ¿Qué características debe tener una pregunta?
Deben ser claras para los entrevistados.
No deben incomodar al entrevistado.
Deben referirse a un sólo aspecto.
No pueden apoyarse en instituciones o ideas respaldadas socialmente ni
en evidencia comprobada.
En las preguntas con varias alternativas y donde el entrevistado sólo
tiene que elegir una, puede ocurrir que el orden en que se presenten
dichas alternativas afecte las respuestas de los sujetos.
El lenguaje utilizado en las preguntas debe ser adaptado a las
características del entrevistado.
• ¿Cómo deben ser las primeras pregunta de un cuestionario?
No se recomienda comenzar con preguntas difíciles de responder o
preguntas muy directas. Los cuestionarios pueden comenzar con preguntas
demográficas, tales como, sexo, estado civil, edad, nivel de educación,
ocupación, nivel de ingreso entre otras. Cuando construimos un cuestionario
es indispensable que pensemos en cuáles son las preguntas ideales para
ISC-2003-2-22
12
iniciar. Estas deberían lograr que el entrevistado se concentre en el
cuestionario.
• ¿De qué está formado un cuestionario?
Además de las preguntas y de las respuestas, un cuestionario está formado
por instrucciones que nos indican cómo contestar el mismo. Las
instrucciones son tan importantes como las preguntas y es necesario que
sean claras para los usuarios a quienes van dirigidas. Es necesario incluir
una instrucción para las preguntas en las cuales los entrevistados pueden
seleccionar más de una alternativa. Una instrucción muy importante es
agradecer al entrevistado por haberse tomado el tiempo de contestar el
cuestionario. También es importante incluir una carta donde se explique el
propósito del cuestionario y se garantice la confidencialidad de la
información, esto ayuda a ganar la confianza del entrevistado.
• ¿De qué tamaño debe ser un cuestionario?
No existe una regla al respecto, aunque si es muy corto se pierde
información y si resulta largo puede ser tedioso de responder. El tamaño
depende del número de variables a medir, el interés de los entrevistados y
la manera como es administrado el cuestionario. Cuestionarios que tomen
más de 35 minutos completarlos pueden resultar tediosos a menos que los
entrevistados estén muy motivados para contestar.
f. Selección y Adiestramientos de Investigadores de Campo
Seleccione cuidadosamente y adiestre a los investigadores de campo. Después de
que el plan de muestreo esté claro y completamente establecido, alguien debe
ISC-2003-2-22
13
recopilar los datos. Aquellos que van a reunir los datos, deben ser cuidadosamente
adiestrados sobre qué mediciones hacer y cómo hacerlas.
El adiestramiento es especialmente importante si se usan entrevistas personales o
por teléfono, porque la tasa de respuesta y la exactitud de las respuestas son
afectada por el estilo personal y el tono de voz del entrevistador.
g. Organización del Trabajo de Campo
Planee en detalle el trabajo de campo. Cualquier encuesta de gran escala involucra
un gran número de personas trabajando como entrevistadores, coordinadores o
personal dedicado al manejo de datos. Antes de que empiece la encuesta deben
organizarse cuidadosamente los diferentes trabajos y establecerse claramente las
líneas de autoridad.
h. Organización del Manejo de Datos
Elabore un esquema de cómo se debe manejar cada pieza de información para
todas las etapas de la encuesta. Las grandes encuestas generan gran cantidad de
información. Es por eso que un plan bien preparado para el manejo de los datos es
importante. Este plan debe incluir los pasos para el proceso de los datos, desde el
momento en que se hace una medición en el campo hasta que se complete el
análisis final. Se debe incluir también un esquema de control de calidad para
verificar la correlación entre los datos procesados y los datos recopilados en el
campo.
i. Análisis de los Datos
Defina el análisis que debe realizarse. Estrechamente relacionados con el paso
anterior, este paso involucra la especificación detallada de los análisis que deben
ISC-2003-2-22
14
ser ejecutados. Se pueden listar los temas que serán incluidos en el informe final.
Si usted considera el informe final antes de que la encuesta sea llevada a cabo,
puede tener más cuidado en la selección de los aspectos a ser medidos en la
encuesta.
Si se siguen estos pasos, la encuesta está lista para un buen comienzo y debe
proporcionar información útil para el investigador.
2.2 TECNOLOGÍA A UTILIZAR
Se implementará una aplicación Web, que es un sistema que permite a un usuario
final acceder a una parcela de información contenida en el universo de información
accesible a través de la red. Las aplicaciones Web son aplicaciones basadas en el
muy extendido paradigma “cliente/servidor”. Este paradigma consiste en un
servidor que sabe cómo proporcionar un servicio y un cliente que desea acceder al
servicio. [8]
2.3 SERVLETS
2.3.1 Definición
Un Servlet es básicamente un programa ejecutado en un servidor Web, que tiene
la función de servir como capa intermedia entre una petición hecha por el
navegador Web o cliente http (Explorer o Netscape) y las aplicaciones en el
servidor Web que pueden incluir bases de datos.
Los Servlets tienen muchas aplicaciones como:
1. Leer datos que se han introducido y enviado en un formulario, página Web o
subprograma.
ISC-2003-2-22
15
2. Buscar información de la petición HTTP que ha sido enviada.
3. Generar resultados usando bases de datos a través de una aplicación existente
o a través de cálculos directos.
4. Dar un formato especifico a los documentos resultantes.
5. Dar a conocer al navegador el tipo de documento que le será devuelto,
estableciendo las cookies y los parámetros que serán mostrados.
6. Devolver el documento a cliente, en un formato específico. [1]
2.3.2 Ventajas de los Servlets sobre los CGIs
Los Servlets frente a los CGIs son mas eficientes, ya que manejan subprocesos no
tan pesados para ejecutar y administrar cada petición, permaneciendo en memoria
después de dar una respuesta; adecuados, puesto que su fácil uso permite un
mejor provecho, a través de operaciones de análisis y decodificación automática de
los datos de formularios, lectura y establecimiento de encabezados http, entre
otras; transportables, ya que están escritos en un lenguaje de fácil acceso como
lo es Java; poderosos, ya que pueden comunicarse directamente con el servidor
sin necesidad de un API, pueden comunicarse entre ellos para compartir datos y
pueden mantener información de una petición a otra; y seguros, porque no
necesitan del sistema operativo para ejecutarse, y muchas de las verificaciones se
hacen por parte del lenguaje de programación Java. [1]
2.3.3 Estructura básica de un Servlet
Los Servlets manejan dos tipos de peticiones: las peticiones GET y las peticiones
POST. Las peticiones GET son las mas usadas por el navegador para las páginas
Web, siendo el navegador quien las genera cuando un usuario teclea una dirección
URL. Las peticiones POST, que son generadas cuando un usuario envía un
formulario HTML.
ISC-2003-2-22
16
Una clase, es un Servlet, si extiende a HttpServlet y sustituye los métodos doGet y
doPost por los datos enviados por las peticiones GET y POST respectivamente.
Estos métodos a su vez deben incluir los argumentos HttpServletRequest y
HttpServletResponse, el primero contiene los métodos para encontrar la
información que esta entrando (datos del formulario, encabezado HTTP, nombre
del host del cliente) y el segundo especifica la información de salida (códigos de
estado, encabezados de respuesta) y permite obtener el PrintWriter que es usado
para enviar el contenido del documento de regreso al cliente. El servlet debe
importar las clases java.io (para PrintWriter), java.servlet (para HttpServlet) y
javax.servlet.http (para HttpServletRequest y HttpServletResponse). [1]
Estructura de un servlet
2.3.4 Ciclo de vida de un servlet
Al iniciarse un servlet se invoca el método init y no lo vuelve a hacer en la próxima
petición del usuario, en este método se incluye el código de configuración de
ejecución único. El metodo init puede especificarse sin argumentos o con
Templates
Archivos Configuracion
Servidor HTTP
Template Cache
Template Loader
Modulo principal
del servlet
Inicializacion Parser XML
Configuracion remota
Servidor HTTP
HTML browser
Interprete
Almac. Persistente de datos
Implementaciones Tag
Envio
Salida CacheSalida Html
Llamado HTTP(Template, parametros)
ISC-2003-2-22
17
argumentos. El primero, es usado, cuando el servlet no requiere leer ninguna
configuración de un servidor a otro. El segundo, es necesario, cuando se requiere
leer una configuración especial del servidor.
Al ejecutarse cada petición de usuario, esta da lugar a un subproceso que invoca el
método service, que es el encargado de verificar el tipo de petición HTTP (GET,
PUT, POST, etc) y ejecutar las instrucciones doXxx necesarias de acuerdo al tipo
de petición que recibe.
Las peticiones doXxx se consideran la esencia de los servlets, ya que en muchos
casos el noventa por ciento del código ejecutado corresponde a instrucciones de
este tipo.
Una vez el servidor decide descargar el servlet, llama al método destroy, con este
se asegura que el usuario podrá cerrar las conexiones a bases de datos y
subprocesos entre otros. [1]
Ciclo de vida de un Servlet
Servidor
Servidor
Servidor
Codigo del Servlet
Codigo del Servlet
Codigo del Servlet
Cargar
Cliente
Cliente
Manejo de requerimientos
del cliente
Descargar
ISC-2003-2-22
18
2.3.5 Manejo de peticiones del cliente
• Datos del formulario (datos de consulta): Si se tiene el siguiente URL:
http://host/path?user=nuser+auser&origin=bwi&dest=lax. Los datos del
formulario son los encontrados después del signo de interrogación. Esta es la
manera más fácil de obtener información acerca de una página Web en un
programa colocado en el servidor.
• Lectura de datos del formulario desde los servlets: La administración de la
información en los servlets se hace de manera automática a través del método
getParameter (dando el nombre como argumento) de HttpServletRequest, y si son
varios valores para el mismo parámetro se deberá utilizar getParameterValues.
• Lectura de los encabezados de petición desde un servlet: Este es realizado a
través de getHeader de HttpServletRequest que devuelve una cadena si el
encabezado se ha proporcionado en la petición, o de lo contrario, retornará null.
2.3.6 Generación de respuestas del Servidor
2.3.6.1. Códigos de Estado
En el momento en que el servidor Web responde a una petición del navegador
Web, esta siempre consta de una línea de estado, encabezados de respuesta, una
línea en blanco y el documento.
La línea de estado consta de la versión HTTP, el código de estado y un mensaje
pequeño. Muchos de los encabezados son opcionales excepto Content-Type que
es el encargado de especificar el tipo de MIME del documento que sigue. Los
ISC-2003-2-22
19
servlets muchas veces ejecutan tareas cuando se están manejando líneas de
estado y encabezados de petición. A través del método setStatus, los sevlets
pueden establecer el código de estado. Este método toma el código de estado que
es de tipo int, como argumento utilizando constantes definidas en
httpServletResponse.
Los códigos de estado pueden clasificarse en cinco categorías:[1]
• 100 y 199: La función de este grupo de códigos es informar. Entre estos se
encuentra el 100 (Continue), que le indica al cliente que continúe; y el 101
(Switching Protocols), que indica que el servidor acatará el encabezado
Upgrade y cambiará a un protocolo distinto.
• 200 y 299: Este grupo de códigos dan conocer que la operación fue exitosa.
Entre estos se encuentra, el 200 (OK), que indica que todo está bien; el 201
(Created), que indica que el servidor generó un nuevo documento como
respuesta a la petición; el 202 (Accepted), que indica que la petición está en
proceso, pero que aún no se ha completado; el 203 (Non-Authoritative
Information), que indica que el documento será devuelto en forma normal,
pero que es posible que algunos de los encabezados de respuesta puedan ser
incorrectos, debido a que se está usando una copia del documento; el 204 (No
Content), que estipula que el documento anterior seguirá mostrándose debido
a que no hay disponible uno nuevo; el 205 (Reset Content), que indica que no
hay ningún nuevo documento; y el 206 (Partial Content), que es enviado
cuando el servidor satisface una petición parcial que incluye el encabezado
Range.
• 300 y 399: Estos son usados para archivos que han sido movidos, estos
incluyen un encabezado location que indica la nueva dirección. Entre estos se
encuentran, el 300 (Multiple Choices), que indica que el documento puede ser
ISC-2003-2-22
20
encontrado en varios lugares; el 301 (Moved Permanently), que indica que el
documento solicitado está en otro lugar; el 302 (Founded), similar al anterior,
pero el encabezado Location debe tomarse como un reemplazo temporal; el
303 (See Other), similar a los dos anteriores, pero con la diferencia es que se la
petición anterior fue POST, entonces el nuevo documento debe ser obtenido
con GET; el 304 (Not Modified), indica que la versión guardada en el caché es
actual; el 305 (Use Proxy), el cual establece que el documento que se desea
ver debe ser obtenido mediante el proxy listado en el encabezado Location; y el
307 (Temporary Redirect), tiene el mismo funcionamiento del 302, este fue
agregado debido a ciertos problemas que se generaban en muchos
navegadores Web.
• 400 y 499: Este grupo muestran que el cliente ha cometido un error. Entre
estos se encuentran, el 400 (Bad Request), que indica que hay sintaxis
incorrecta en la petición del cliente; el 401 (Unauthorized), muestra al cliente
que intento acceder a una pagina protegida por contraseña sin la información
adecuada en el encabezado Authorization; el 403 (Forbidden), indica que el
servidor no quiso dar el recurso, sin tener en cuenta la autorización; el 404
(Not Found), que indica al cliente que no puede encontrarse ningún recurso en
esa dirección; el 405 (Method Not Allowed), muestra que el método de petición
no fue permitido para ese recurso; el 406 (Not Acceptable), indica que el tipo
de recurso solicitado tiene un MIME que no es compatible con los tipos
indicados por el cliente en el encabezado Accept; el 407 (Proxy Authentication
Required), que le indica al cliente que deber autenticarse con el servidor proxy;
el 408 (Request Timeout), que indica que el cliente tardó demasiado en
terminar el envío de la petición; el 409 (Conflict), que es utilizado en
situaciones donde se ha intentado enviar una información incorrecta de un
archivo; y el 412 (Precondition Failed), indica que alguna precondición
establecida en los encabezados de petición fue falsa.
ISC-2003-2-22
21
• 500 y 599: Este grupo indican que hay un error en el servidor. Entre estos se
encuentra, el 500 (Internal Server Error), que este es el código genérico para
especificar que el servidor no tiene claro lo que debe hacer; el 501 (Not
Implemented), el cual indica que el servidor no permite la funcionalidad
necesaria para satisfacer la petición; el 503 (Service Unavailable), que muestra
que el servidor no puede responder debido a que no se encuentra disponible; y
el 505 (HTTP Versión Not Supported), que indica que el servidor no permite la
versión HTTP indicada en la línea de petición.
2.3.6.2 Encabezados de respuesta http
Los encabezados de petición se establecen junto con los encabezados de estado y
son usados para especificar las cookies, la fecha de modificación de la página, para
darle instrucciones al navegador Web de cuando debe cargar de nuevo una
página, indicar el tamaño del archivo utilizando conexiones persistentes,
especificar el tipo de documento que se generará y realizar muchas otras tareas.
Formación de los encabezados de respuesta desde los sevlets
Los encabezados de respuesta permiten una buena efectividad en la elaboración
de los servlets. El método setHeader de HttpServletResponse permite establecer
los encabezados de respuesta. Este método se caracteriza porque recibe dos
cadenas, el nombre del encabezado y el valor que tendrá. Existen otros dos
métodos que se han especializado en establecer encabezados que contengan
fechas y enteros: setDateHeader (String encabezado, long miliseg) y
setIntHeader (String encabezado, int valor).
Otros métodos para especificar encabezados son: [1]
• setContentType, que establece el encabezado Content-Type, siendo muy
utilizado por muchos Servlets.
ISC-2003-2-22
22
• setContentLength, que establece el encabezado Content-Length, muy usado
cuando las conexiones son persistentes.
• addCookie, que inserta una cookie en el encabezado set-Cookie.
• SendRedirect, que establece el encabezado location.
Los servlets para generar imágenes GIF [1]
1 Con el método createImage de la clase component, se debe generar un objeto
Image.
2 Con el método getGraphics que pertenece al objeto Image, se dibujará una
imagen.
3 El método setContentType se debe establecer el encabezado de respuesta
ContentType.
4 Cuando se han enviado datos binarios es necesario ejecutar el método
getOutputStream.
5 Con la clase GifEncoder se debe enviar la imagen en formato GIF al
OutputStream.
ISC-2003-2-22
23
2.3.7 Ejemplo de un servlet
package servlets; import java.io.*; import java.util.*; import javax.servlet.*; import javas.servlet.http.*; public class MostrarParametos extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String titulo ="Lectura de todos los parametros de peticion"; out.println (ServletUtilities.headWithTitle(titulo)+ "<BODY BGCOLOR = \"#FDF5E6\">\n"+ "<H1 ALIGN = CENTER>" + titulo + "</H1>\n"+ "<TABLE BORDER=1 ALIGN=CENTER>\n"+ "<TR BGCOLOR = \"#FFADOO\">\n"+ "<TH>Nombre del parametro<TH>Valor del Parametro"); Enumeration nombresParam=request.gerParameterNames(); while(nombresParam.hasMoreElements()) { String nombreParam =(String)nombresParam.nextElement(); out.print("<TR><TD>"+ nombreParam + "\n<TD>"); String[] valorParam= request.getParamerValues(nombreParam); if(valoresParam.length==1) { String valorParam=valoresParam[0]; if(valorParam.length()==0) out.println("<I>Sin valor</I>"); else out.println(valorParam); } else { out.println("</UL>"); } } out.println("</TABLE>\n</BODY></HTML>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
ISC-2003-2-22
24
2.4 JAVA SERVER PAGES (JSP)
2.4.1 Definición
Una página JSP es un tipo especial de página HTML que contiene unos pequeños
programas (también llamados scripts) que son ejecutados en servidores antes de
ser enviados al usuario para su visualización en forma de página HTML.
Habitualmente esos programas realizan consultas a bases de datos y los resultados
de esas consultas determinan la información que se envía a cada usuario
específico. Los ficheros de este tipo llevan el sufijo .jsp.[2]
Java Server Pages (JSP) nos permite mezclar HTML estándar y estático con
contenido dinámico que se genera con los servlets. Esta tecnología es
ampliamente usada, puesto que no se necesita usar en un sistema operativo o en
un servidor Web específico, además permite acceder profundamente a los servlets
y Java en la parte dinámica.
JSP es transportable a otros sistemas operativos y servidores Web, su parte
dinámica esta escrita en Java contando con una extensa API para redes, acceso a
base de datos, objetos distribuidos, entre otros. [1]
2.4.2 Comandos en JSP
En las páginas que utilizan JSP, además del HTML estándar es necesario incluir
tres tipos de estructuras, como lo son: [1]
2.4.2.1 Elementos de secuencias de comandos
Elementos de secuencias de comandos los cuales permiten especificar el código de
Java, que hará parte del servlet resultante. Existen tres formas:
ISC-2003-2-22
25
• Expresiones: <%= expresión %>, que son evaluados e insertados en el servlet
resultante. Existen variables predefinidas que son utilizadas para simplificar las
expresiones, las mas importantes son request, response, session y out.
Sintaxis:
<jsp:expresión>
expresión de java
</jsp:expresión>
• Scriptlets: <% codigo %>, que se insertan en el método _jspService del
servlet. Estos tienen acceso a las variables definidas como expresiones, además
estos pueden ejecutar varias tareas.
Sintaxis:
<jsp:scriptlet>
expresión de java
</jsp:scriptlet>
• Declaraciones: <%! codigo %>, permite definir métodos que se insertan en el
cuerpo principal de la clase servlet.
Sintaxis:
<jsp:declaration>
expresión de java
</jsp:declaration>
2.4.2.2 Directivas
Las directivas, que son las que controlan la estructura general de los servlets.
Existen tres tipos de directivas: [1]
ISC-2003-2-22
26
• page controla la estructura del servlet cuando se importan clases, cuando se
personaliza la superclase del servlet, o cuando se establece el tipo de contenido.
Esta directiva le permite definir los siguientes atributos:
- El atributo import, encargado de especificar los paquetes que deberán ser
importados por el servlet.
- El atributo contentType, que establece el encabezado de respuesta
contentType el cual indica el tipo de MIME del documento que será enviado
a cliente.
- El atributo isThreadSafe, que garantiza que no se presentaran accesos
simultáneos a la misma instancia del servlet controlando si el servlet
resultante de la página JSP integrará la interfaz SingleThreadModel.
- El atributo session, que controla si la página es parte de una sesión HTTP.
- El atributo buffer, que establece cual es el tamaño utilizado por la variable
out.
- El atributo autoflush está encargado de controlar si el búfer resultante
genera una excepción cuando se llene o se descarga cuando se sobresature.
- El atributo extends, quien muestra la superclase del servlet que será
generado por la página JSP.
- El atributo errorPage, que especifica la página JSP que deberá procesar
varias excepciones.
- El atributo isErrorPage, que especifica si la página JSP en curso puede ser
una página de error para otra página JSP.
- El atributo Language, que especifica el lenguaje de programación que será
utilizado.
• include para insertar un archivo en la clase servlet cuando el archivo JSP se
traduce a un servlet.
• taglib sirve para definir etiquetas de marcado.
ISC-2003-2-22
27
2.4.2.3 Acciones
Las acciones, que son las que permiten especificar componentes existentes que
deberían ser utilizados, y además controlar el comportamiento del motor JSP.
2.4.3 Uso de los JavaBeans con JSP
La API de los JavaBeans otorga un formato estándar de las clases Java. Los beans
permiten aprovechar la capacidad de utilizar las clases de Java, teniendo en cuenta
la capacidad de JSP sobre los servlets. [1]
• La clase de Beans deberá contar con un constructor vacío, que será ejecutado
cuando los elementos JSP generen los beans.
• La clase de Beans no puede tener variables de instancia públicas, es decir
campos, así se asegurará los valores de las variables.
• Los valores persistentes se deben acceder mediante métodos getXxx y setXxx.
a. Uso básico de los beans
jsp:useBean permite cargar un bean que será usado en la página JSP.
Sintaxis:
< jsp:useBean id = ”nombre” class = “Paquete.clase” />
Cuando se establece el atributo scope, se permite establecer una asociación con
otras páginas. El atributo beanName se usa en ves del atributo class y permite
señalar también un archivo que contenga un objeto bean en serie.
ISC-2003-2-22
28
b. Cómo acceder y establecer las propiedades de beans
Es posible conocer las propiedades a través de jsp:getProperty, cuyos atributos
son name, el cual debe coincidir con el identificador dado, property que indica la
propiedad que se necesita y value que tiene el nuevo valor.
c. Cómo compartir los beans
Con el atributo scope los beans pueden almacenarse en uno de cuatro lugares
distintos; este atributo tiene los siguientes posibles valores:
• page, este indica que el objeto se debe colocar en el objeto PageContext
durante la petición en curso.
• Application, señala que el bean debe estar almacenado en el ServletContext
durante la petición en curso.
• Session, este valor indica que el bean será almacenado en el HttpSession
durante la petición en curso.
• Request, este valor indica que el bean será almacenado en el objeto
ServletRequest durante la petición en curso.
ISC-2003-2-22
29
2.4.4 Ejemplo de un JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>ENCUESTAS</TITLE> <link rel="stylesheet" href="presentacion.css" type="text/css"> </HEAD> <BODY> <H1>ESTADISTICAS</H1>
<jsp:useBean id = "usuario" class= "PaqueteEncuestas.usuario" scope= "session"/> <jsp:useBean id = "encuesta" class= "PaqueteEncuestas.encuesta" scope= "session"/> <jsp:useBean id = "pregunta" class= "PaqueteEncuestas.pregunta" scope= "session"/> <jsp:useBean id = "respuesta" class= "PaqueteEncuestas.respuesta" scope= "session"/>
<%@ page import="java.lang.Integer"%> <%@ page import="java.util.*"%> <FORM ACTION="http://localhost:8080/encuesta/principalEncuestas"> <INPUT TYPE="HIDDEN" NAME="idusuario" VALUE=<%=usuario.getIdentificador() %> /> <BLOCKQUOTE> <P><H3>IDENTIFICADOR DE LA ENCUESTA :</H3> <%=(String)request.getAttribute("idEncuesta")%></P> <P><H3>IDENTIFICADOR DE LA ENCUESTA EJECUTADA :</H3> <%=(String)request.getAttribute("encuestaElegida")%></P> <P><H3>NUMERO DE RESPUESTAS :</H3> <%=(String)request.getAttribute("numrtasAN")%></P> <P><H3>PROMEDIO :</H3> <%=(String)request.getAttribute("prom")%></P> <P><H3>VARIANZA :</H3> <%=(String)request.getAttribute("varianzaS")%></P> <P><H3>RESPUESTAS</H3></P> <%@ page import="java.sql.*"%> <%@ page import="java.util.*"%> <%@ page import="PaqueteEncuestas.*"%> <% Vector estadisticasF = (Vector) session.getAttribute("PreguntasAbNumero"); int numeroElementos = estadisticasF.size(); int i=0; for (i=0; i<numeroElementos;i++)
ISC-2003-2-22
30
{ %> <BLOCKQUOTE><P><%=(String)estadisticasF.elementAt(i)%>
</P></BLOCKQUOTE> <% } %> </BLOCKQUOTE> <CENTER>
<A HREF="http://localhost:8080/encuesta/principalEncuestas?pagAnt= <%=request.getAttribute("paginaA")%> & pag=0 & idEncuesta=<%=request.getAttribute("idEncuesta")%> &opcion=VerEjecucion&encuestaElegida=<%= request.getAttribute("encuestaElegida")%> & idusuario=<%=usuario.getIdentificador() %>">
<img border=0 width=30 height=30 src="http://localhost:8080/encuesta/regresar.jpg" v:shapes="_x0000_i1025" alt="Regresar Encuestas">
</A> </CENTER> </FORM> </BODY> </HTML>
2.5 INTEGRACIÓN DE LOS SEVLET Y JSP
El hecho de generar HTML con los servlets es complicado y difícil de cambiar el
resultado, por eso es que es importante el uso de JSP, puesto que permite separar
la parte dinámica de la estática, controlando la disposición de las páginas.
• Modelo MVC implementado
Arquitectura de tipo Modelo – Vista – Controlador, utilizada para separar la lógica
de la aplicación de su representación en HTML[9]
ISC-2003-2-22
31
Modelo MVC
Model View Controller(MVC) [10]
• Model: Donde recide la lógica de la aplicación
JavaBeans y clases para manejo de la lógica de la aplicación
• View: Interfaz
JSP que despliega la página del usuario
• Controller: Procesamiento centralizado
Un servlet que maneja el procesamiento de la transacción lógica, recibe los
pedidos del cliente y coordina la respuesta
La separacion en componentes facilita la reusabilidad e interconexión con otros
componentes [9]
ISC-2003-2-22
32
Modelo MVC Implementado con JSP, Servlets y Beans
• Como reenviar peticiones
Lo primero es hacer uso del método RequestDispatcher para reenviar peticiones o
incluir contenido externo. Luego se debe usar forward para transmitir el control al
URL que esta asociado, y producir el contenido asociado del URL con el método
include.
• Como proveer de información a la página objetivo
Para reenviar la petición de una pagina JSP es necesario obtener el
RequestDispatcher a través del método getRequestDispatcher y luego ejecutar el
forward.
• Como incluir contenido estático o dinámico
Cuando un servlet utiliza forward, no se puede enviar ningún resultado al cliente,
hay que dejarlo en la página objetivo. Al usar el método include, el servlet puede
generar parte del contenido él mismo utilizando una página JSP o un documento
ISC-2003-2-22
33
estático HTML; con este método se puede enviar los datos al navegador Web
antes del llamado, el control se devuelve al servlet y se finaliza la ejecución.
2.6 JDBC Y CONEXIÓN A BASE DE DATOS
JDBC es un API que otorga una biblioteca estándar para acceder a la base de
datos relacional, ofreciendo la posibilidad de tener acceso a diversas bases de
datos SQL con la misma sintaxis de Java. [5]
• Como utilizar JDBC [1]
a Cargar el controlador JDBC: El controlador es el Software que sabe como
comunicarse con el servidor de las bases de datos en uso, este puede
cargarse, al cargar la clase adecuada. Una posible opción es a través del
método Class.forName, con este se toma una cadena que representa al
nombre de la clase y la carga.
b Definir el URL de la conexión: Para esto es importante conocer la
ubicación del servidor de la base de Datos. Los URL’s que apuntan a la
base de datos, utilizan el protocolo jdbc:, el host del servido, puerto y
nombre de la base de Datos.
c Establecimiento de la conexión: Esta se hace a través del paso al
método getConnection la URL, el nombre del usuario de la base de
datos, y la contraseña.
d Crear un objeto Statement: El objeto Statement se usa para enviar
consultas y comando a la base de datos y se genera desde Connection.
ISC-2003-2-22
34
e Ejecutar una consulta o actualización: Al tener el objeto Statement
puede utilizarse para enviar consultas a través del método executeQuery
que devuelve un objeto de tipo ResultSet.
f Procesamiento de los resultados: La manera mas sencilla de procesar los
resultados por filas, con ayuda de los métodos ResultSet, entre los
cuales se encuentra next y los métodos getXxx representándolos con los
nombre de las columnas de la tabla.
g Cerrar la conexión: Para cerrar la conexión se ejecuta el comando
conexion.close.
2.7 MySQL
MySQL es un sistema de administración para bases de datos relacionales (rdbms)
que provee una solución robusta a los usuarios con poderosas herramientas multi-
usuario, soluciones de base de datos SQL (structured Query Language) multi-
threaded.[3]
MySQL posee ciertas características que hacen que sea bastante apropiado en el
desarrollo de aplicaciones Web, entre estas tenemos, rápidez, seguridad, fácil uso,
estabilidad y disponibilidad en muchas plataformas.[4]
2.8 HOJAS DE ESTILO EN CASCADA (CSS)
2.8.1 Definición
CSS es un conjunto de reglas que permite interpretar directamente los documentos
indicando los tipos de letra, las márgenes, el estilo usados para mostrar dicho
ISC-2003-2-22
35
documento al explorador Web, todo esto para que el usuario final pueda apreciar
de una manera agradable la información. CSS tiene en cuenta fuentes, texto,
colores, sangría, entre otros. CSS se diferencia de otras hojas de estilo como XSLT
porque conserva los elementos originales, pero indica como se deben mostrar. [6]
Inicialmente CSS fue generada para HTML, pero con el paso de los años, y la
complejidad que ha alcanzado este lenguaje se empezó a utilizar también con XML
y JSP.
2.8.2 Componentes de una CSS
• Comentarios
Los comentarios son partes de la hoja que sirven al creador de la CSS para tener
presente algunos datos, aunque para el explorador Web estos son ignorados. Los
comentarios se ponen entre /* y */.[6]
• Selector
El selector es similar a la ruta de acceso XSL, pero se debe asociarle propiedades.
Un selector selecciona los elementos a los que se le aplicaran ciertas propiedades.
CSS selecciona un elemento con el nombre que este tiene, por ejemplo, si tenemos
un elemento elem, todos los elementos de este tipo tendrán las siguientes
propiedades:
ISC-2003-2-22
36
elem {
font-family: “Verdana”, serif;
font-size: 12pt;
margin: 5px;
}
Ahora si se desea que varios elementos tengan estas mismas propiedades se
deben poner comas entre estos al declararlos. Si se desea seleccionar un
elemento de acuerdo con su ancestro se deben poner los dos elementos separados
por espacios.
Existen selectores especializados como son el selector fraterno, que solo tienen en
cuenta si un elemento sigue inmediatamente a otro elemento, para lo cual se
utiliza el símbolo +. Otro selector es el de elementos hijos en los que solo se tiene
en cuenta el elemento que está contenido directamente en otro elemento, para lo
cual se utiliza el símbolo /. [6]
• Propiedades
Las propiedades son las normas que aplican a los elementos que las contienen,
cada una tiene un nombre, seguido de dos puntos y uno o varios valores.
Las propiedades se trabajan normalmente con cuatro valores: longitud, porcentaje,
color y URL. El primero es usado para anchuras, alturas y tamaños. El segundo se
utiliza para anchuras, alturas y posición. El tercero representa un valor RGB en
hexadecimal, un valor RGB con enteros o porcentajes, o un valor entendible en
idioma Ingles. El cuarto es utilizado para las imágenes.
ISC-2003-2-22
37
Existen propiedades para el recuadro, entre las que se encuentran las propiedades
de despliegue, margen, relleno, y borde; propiedades para el texto y fuente, entre
los que se encuentran el nombre, tamaño, estilo y grosor de la fuente, la
alineación y sangrado del texto; propiedades de color y fondo, entre los que se
encuentran el color del primer plano, el del fondo, el del borde, y la imagen del
fondo. [6]
• Prioridades
a. Si dos o mas selectores tienen al mismo elemento, las normas se unen.
b. Si las propiedades son diferentes entre si, las normas que tengan un
selector más específico tendrán una prioridad mas alta.
c. No se tiene en cuenta el orden en que se elabora la CSS, es decir, es
posible que las normas que aparecen en la parte superior de la hoja de
estilo tengan una prioridad menor. [6]
ISC-2003-2-22
38
CAPITULO 3 MANEJADOR DE ENCUESTAS
El manejador de encuestas surge como una manera de suplir una necesidad
hallada, automatizar el proceso de elaboración de encuestas, permitiendo asi de
una manera fácil, ágil y útil, el diseño, creación y ejecución de estas para luego ser
contestadas por otros usuarios.
La aplicación consta de dos módulos, el primero, que tiene que ver con el manejo
de usuarios (encuestadores, analizadores, administrador), y encuestas; y el
segundo, que tiene que ver con los usuarios (encuestados), quienes responderán
las preguntas para una determinada encuesta.
En el primer modulo se manejan tres roles diferentes, el administrador, el
encuestador y el analizador.
El administrador es quien esta encargado de toda la parte del manejo de usuarios
que tendrán acceso al primer modulo de la aplicación, entonces para él es posible
la creación, modificación, consulta y eliminación de estos. Para la creación de
usuarios, la aplicación pedirá al administrador ciertos datos los cuales deben ser
ingresados; para la modificación de un usuario, la aplicación pedirá al
administrador cambiar algunos datos de este; para la consulta, bien puede pedir el
login de un usuario cuando solo se desea buscar uno, puede también pedir el rol
para así mostrar los usuarios según el rol, o bien puede simplemente mostrar
todos los usuarios existentes; y para la eliminación la herramienta simplemente se
encargara de eliminar todas aquellas encuestas (si las tiene) de la aplicación y
procederá a borrar dicho usuario.
El encuestador, es quien podrá manipular sus encuestas, es decir, podrá crear,
consultar, modificar, duplicar, ejecutar, consultar la ejecución, eliminar, ver la
ISC-2003-2-22
39
presentación y ver las estadísticas. Para la creación, la herramienta pedirá al
encuestador los datos básicos de la encuesta. Para la consulta, la herramienta
desplegará la información inicial de la encuesta. Para la modificación, esta solo
podrá hacerse si la encuesta no ha sido ejecutada, si se ha ejecutado la
modificación no se realizará. Para la duplicación, el sistema pedirá al usuario
nuevos datos, permitiendo crear una nueva encuesta, con las mismas preguntas
pero con distinto nombre. Para la ejecución el sistema pedirá al usuario las fechas
en que será publicada la encuesta, deben ser fechas vigentes. Para consultar la
ejecución, el sistema simplemente mostrará todos los rangos de fecha en que la
encuesta ha sido ejecutada. Para eliminar una encuesta, la herramienta borrara
todas las preguntas, estadísticas, ejecuciones, respuestas, etc., que se hallan
obtenido para esta. Para ver la presentación, el sistema mostrara una imagen de
cómo quedo la encuesta para que sea contestada por los encuestados. Para ver
las estadísticas de una determinada encuesta ejecutada, la aplicación pedirá al
usuario la pregunta de la cual desea conocer la información almacenada. El
encuestador también tiene la capacidad de manipular las preguntas y respuestas
que se encuentran dentro de una determinada encuesta, el encuestador podrá
tanto para las preguntas como para las respuestas, crearlas, modificarlas,
eliminarlas y moverlas. Para la creación de una pregunta, aparte de la información
básica el usuario debe tener en cuenta el tipo de respuesta para la pregunta (si es
abierta numero, abierta texto o selección múltiple), ya que de esto dependerán el
tipo de estadísticas dadas, y si debe adicionar respuestas. Para la modificación de
una pregunta el sistema pedirá al usuario que cambie algunos datos en esta. Para
la eliminación de una pregunta, el sistema borrara todos los datos de esta, incluso
las respuestas si el tipo era de selección múltiple. Para la creación de una
respuesta, el sistema pedirá algunos datos al encuestador. Para la modificación de
una respuesta el sistema pedirá cambiar algunos datos al encuestador. Para la
eliminación, el sistema simplemente borrara dicha respuesta.
ISC-2003-2-22
40
El analizador, es quien podrá consultar todas las encuestas existentes, así como
sus estadísticas, preguntas, y respuestas. Hay que tener en cuenta que este rol no
podrá hacer ninguna modificación para una encuesta creada.
3.1 ARQUITECTURA DE LA APLICACIÓN
Arquitectura de la aplicación
La arquitectura de la aplicación cuenta con 5 niveles de arquitectura esenciales
(JSP, Servlets, Objetos de procesamiento, Objetos Manejadores BD, Beans) que
procesan los datos desde la petición del usuario hasta la respuesta a esta petición
y 5 módulos de funcionalidad (Usuario, Encuesta, Pregunta, Respuesta,
ISC-2003-2-22
41
contestarEncuesta) que son manejadas por clases aparte en cada nivel. A
continuación se explicarán cada uno:
• Java Server Pages (JSP)
Una petición siempre comienza por medio de la intervención del usuario, donde se
genera la orden para realizar algún proceso. En este nivel se encuentran paginas
básicas en cada modulo como lo son: adicionar, modificar, manejador y verDatos,
que son utilizadas para realizar funcionalidades básicas como adicionar, modificar,
eliminar y consultar dependiendo de cada módulo.
• Servlet
En este módulo se reciben las ordenes del usuario, se leen los datos necesarios
para procesar la petición y se redirecciona la orden a un objeto que se encargará
de procesar según la lógica de la petición. En este nivel se encuentran las clases
manejadoras para cada módulo como lo son: principalUuario, principalEncuesta,
principalPregunta, principalRespueta y PrincipalContestarEncuesta.
• Objetos De Procesamiento
Estos objetos son los encargados de procesar las solicitudes realizadas por el
usuario, aquí se encuentra lo que se conoce comúnmente como “la lógica del
negocio”, este nivel recibe los datos del servlet, los procesa y por medio de beans,
se comunica con la base de datos. Este nivel cuenta con una clase encargada del
manejo lógico de cada módulo, esto archivos son identificados por que su nombre
comienza con “manejo” seguido por el nombre del módulo, dentro de las cuales se
ISC-2003-2-22
42
encuentran: manejoUsuario, manejoEncuesta, manejoPregunta, manejoRespueta y
manejoContestarEncuesta.
• Beans
Son clases que representan objetos físicos de nuestra aplicación. Como lo son:
usuario, encuesta, pregunta y respuesta.
• Objetos Manejadores Base Datos
Este nivel maneja la comunicación directa con la base de datos, para lograr la
persistencia de los datos. Este nivel esta conformado por una única clase que
cuenta con funciones generales para realizar la comunicación con la Base de
Datos.
En general nuestra aplicación se divide en cuatro módulos principales que
interactúan entre si, a continuación se realizara una tabla que recopila cada nivel,
y los archivos correspondientes.
ISC-2003-2-22
43
CAPITULO 4 DISEÑO DE LA APLICACIÓN
4.1 Diagrama de casos de Uso
ISC-2003-2-22
44
4.2 Casos de Uso
Nombre Del Caso De Uso: Adicionar Usuario
Identificador: C1
Actores: Administrador
Iteración:
Resumen: El administrador adiciona un usuario, el cual dependiendo del rol asignado
tendrá ciertos permisos para ejecutar ciertas acciones.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el usuario elige la opción adicionar Usuario.
2. El sistema solicita los datos básicos del usuario, como son nombre, login,
password y rol.
3. El administrador ingresa los datos solicitados del usuario a adicionar y elige
la opción aceptar.
4. El sistema verifica el ingreso de los datos como obligatorios y validos.
5. El sistema despliega un mensaje dando como realizada la transacción.
Caminos Alternativos: N/A
Caminos De Excepción: 4. Se le informa al usuario que los datos suministrados, están incompletos o mal
ingresados.
5. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Modificar Usuario
Identificador: C2
Actores: Administrador
Iteración:
Resumen: El administrador modifica los datos de un usuario ya existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el administrador elige la opción modificar
Usuario.
2. El sistema solicita el login del usuario del cual se quieren modificar los datos.
3. El administrador ingresa el login del usuario a modificar.
4. El sistema verifica la existencia del login del usuario que se desea modificar.
5. El sistema despliega los datos actuales del usuario, al cual se quiere
modificar.
6. El administrador modifica los datos que desee cambiar.
ISC-2003-2-22
45
7. El sistema verifica el ingreso de los datos como obligatorios y validos.
8. El sistema despliega un mensaje comunicando al administrador que la
transacción fue exitosamente realizada.
Caminos Alternativos: N/A
Caminos De Excepción: 4. Se le informa al usuario que el login ingresado no existe.
7. Se le informa al usuario que los datos suministrados, están incompletos o mal
ingresados.
8. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Consultar Usuarios
Identificador: C3
Actores: Administrador
Iteración:
Resumen: El Administrador consulta los datos de todos los usuarios existentes.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el administrador elige la opción Consultar
Usuarios.
2. El sistema despliega en una tabla la información de todos los usuarios.
3. El administrador elige Aceptar cuando a verificado la información solicitada.
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la consulta no se pudo realizar.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Eliminar Usuario
Identificador: C4
Actores: Administrador
ISC-2003-2-22
46
Iteración:
Resumen: El administrador elimina un usuario existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el administrador elige la opción Eliminar
Usuario.
2. El sistema solicita el login del usuario a eliminar.
3. El administrador ingresa el login del usuario a eliminar.
4. El sistema verifica la existencia del usuario.
5. El sistema elimina el usuario identificado con el login ingresado por el
administrador.
6. El sistema Informa que la transacción se realizo satisfactoriamente.
Caminos Alternativos: N/A
Caminos De Excepción: 4. Se le informa al usuario que el login ingresado no existe.
6. Se le informa al usuario que la transacción no se pudo realizar
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Consultar Usuario
Identificador: C5
Actores: Administrador
Iteración:
Resumen: El Administrador consulta los datos de un usuarios existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el administrador elige la opción Consultar
Usuario.
2. El sistema despliega los identificadores de los usuarios existentes.
3. El administrador elige el login del usuario a consultar.
4. El sistema verifica la existencia del login del usuario que se desea consultar.
5. El sistema despliega los datos actuales del usuario
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la consulta no se pudo realizar.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
ISC-2003-2-22
47
Lucía Muñoz
Fecha: Febrero 16, 2003
Caso De Uso: Identificar Usuario
Identificador: C6
Actores: Encuestador
Iteración:
Resumen: El encuestador se identifica para tener acceso a la aplicación
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el encuestador digita sus datos para ingresar
a la aplicación: login, password y rol.
2. El sistema verificará que los datos ingresados sean correctos.
3. Si los datos son correctos, el sistema debe desplegar la ventana de las
encuestas si el usuario es un encuestador o analizador, o la ventana de
manejo de usuarios si el usuario es el administrador.
Caminos Alternativos: 1.1 El usuario desea cancelar la opción de ingreso
Caminos De Excepción: 1. Se le informa al usuario que los datos suministrados, están incompletos o
ingresados de forma incorrecta.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: El usuario debe haber ingresado a la aplicación.
Post-Condiciones:
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Adicionar Encuesta
Identificador: C6
Actores: Encuestador
Iteración:
Resumen: El encuestador crea una nueva encuesta
Curso Básico De Eventos: 1. Este caso de uso inicia cuando, el encuestador elige la opción de crear una
nueva encuesta.
2. El sistema despliega una ventana, en la que se le pedirá al usuario los datos
iniciales de la encuesta, como son: el nombre de la encuesta, las palabras
claves para la misma, y los comentarios.
3. El encuestador debe ingresar los datos al sistema y oprimir el botón de
aceptar.
4. El sistema retornará al encuestador un número para identificar la encuesta
Caminos Alternativos: 3.1 El usuario desea cancelar la acción de crear nueva encuesta.
3.2 El sistema retorna al usuario a la ventana donde aparecen todas las
encuestas disponibles para ese usuario.
ISC-2003-2-22
48
Caminos De Excepción: 3. Se le informa al usuario que los datos suministrados, están incompletos, mal
ingresados, o que el nombre de la encuesta ya existe.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: El usuario tiene acceso al sistema y por lo tanto se encuentra en la ventana de
encuestas
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Consultar Encuesta
Identificador: C7
Actores: Encuestador, Analista
Iteración:
Resumen: El usuario desea observar una encuesta ya existente
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario selecciona alguna de las
encuestas existentes y elige la opción de consultar encuesta.
2. El sistema despliega los datos básicos de la encuesta, es decir, nombre,
comentarios, palabras claves y el identificador.
Caminos Alternativos:
Caminos De Excepción:
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Modificar Encuesta
Identificador: C8
Actores: Encuestador
Iteración:
Resumen: El encuestador quiere hacer modificaciones a una encuesta ya existente
Curso Básico De Eventos: 1. Este caso de uso inicia cuando, el encuestador selecciona dentro de las
encuestas alguna ya existente y la opción para modificarla.
2. El sistema muestra los datos iniciales de la encuesta.
3. El usuario modifica el nombre, palabras claves o comentarios.
ISC-2003-2-22
49
Caminos Alternativos: 3.1 El usuario desea cancelar la opción de modificar la encuesta.
3.2 El sistema deja la encuesta como inicialmente estaba.
3.3 El sistema retorna a la ventana de encuestas disponibles para ese
determinado usuario.
Caminos De Excepción: 1. Se le informa al usuario que ya no es posible modificar la encuesta elegida
debido a que esta ya ha sido respondida por algún (os) encuestado (s). Es
decir ya ha sido ejecutada.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: La encuesta no ha sido publicada
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Duplicar Encuesta
Identificador: C9
Actores: Encuestador
Iteración:
Resumen: El usuario desea crear una encuesta a partir de una ya existente
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario selecciona alguna de las
encuestas existentes y elige la opción de duplicar encuesta.
2. El sistema retorna el formato de la encuesta, con los campos titulo,
comentarios, y palabras claves para ser modificados.
3. El usuario ingresa los nuevos valores.
4. El sistema guarda los valores ingresados y realiza la copia de la encuesta,
junto con todas las posibles preguntas y respuestas existentes en la original.
5. El sistema devuelve el identificador de la nueva encuesta, junto con los datos
que el usuario modificó.
Caminos Alternativos: 3.1 El usuario desea cancelar la petición de duplicar una encuesta existente.
3.2 El sistema retorna a la ventana donde se encuentran todas las encuestas
disponibles para ese usuario.
Caminos De Excepción: 3. Se informa al usuario que ha ingresado un nombre ya existente para la
encuesta, y que por lo tanto debe cambiarlo.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
ISC-2003-2-22
50
Caso De Uso: Eliminar Encuesta
Identificador: C10
Actores: Encuestador
Iteración:
Resumen: El usuario desea eliminar una encuesta existente
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario selecciona alguna de las
encuestas existentes y elige la opción de eliminar encuesta.
2. El sistema muestra los datos iniciales de la encuesta, es decir el
identificador, nombre, comentarios, y palabras claves.
3. El usuario oprime el botón de eliminar.
4. El sistema elimina toda la información concerniente a la encuesta elegida es
decir, identificador, palabras claves, comentarios, preguntas y respuestas;
así como también todas las posibles soluciones que esta pudo tener por
parte de otros usuarios.
5. El sistema notifica al usuario que la encuesta ha sido eliminada.
Caminos Alternativos: 3.1. El usuario oprime el botón de cancelar.
3.2. El sistema retorna a las encuestas de ese determinado usuario
Caminos De Excepción:
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Ejecutar Encuesta
Identificador: C11
Actores: Encuestador
Iteración:
Resumen: El usuario desea poner a disposición de los encuestados la encuesta elegida
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario selecciona alguna de las
encuestas existentes y elige la opción de ejecutar encuesta.
2. El sistema despliega una ventana en la se deben ingresar las fechas de
disponibilidad de la encuesta
3. El usuario ingresa las fechas de vigencia de la encuesta.
4.
Caminos Alternativos: 4.1 El usuario desea cancelar la acción.
4.2 El sistema retorna a la ventana en que aparecen todas las encuestas
disponibles para ese determinado usuario.
Caminos De Excepción: 3. El sistema informa al usuario que ha ingresado un intervalo de tiempo
inadecuado.
ISC-2003-2-22
51
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 13, 2003
Caso De Uso: Consultar Ejecución
Identificador: C12
Actores: Encuestador, analizador
Iteración:
Resumen: El usuario desea conocer las estadísticas encontradas en una encuesta específica
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario selecciona alguna de las
encuestas existentes y elige la opción de consultar ejecución.
2. El sistema despliega una ventana en la que se verifica los principales datos
de la encuesta y la vigencia de esta, es decir todos los intervalos de fecha en
los que la encuesta ha sido ejecutada.
Caminos Alternativos:
Caminos De Excepción: 1. El sistema le informa al usuario que ha elegido una encuesta que no ha sido
ejecutada.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: N/A
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
echa: Febrero 13, 2003
Caso De Uso: Ver Estadísticas
Identificador: C13
Actores: Encuestador, analizador
Iteración:
Resumen: El usuario desea conocer la información de las preguntas para una determinada
encuesta, para así conocer las estadísticas.
Curso Básico De Eventos: 1. Este caso de uso comienza cuando el usuario ha seleccionado de una
encuesta existente la opción Ver Ejecución, oprimiendo el Botón de Ver
Estadísticas en la ventana de Ver Ejecución.
ISC-2003-2-22
52
2. El sistema despliega una ventana en la que se puede observar la información
de todas las preguntas, identificador, orden, pregunta, descripción, tipo de
respuesta.
3. El usuario debe elegir la pregunta de la cual desea conocer las estadísticas y
luego debe oprimir el botón de Ver Resultados.
4. El usuario ha seleccionado una pregunta de selección por tanto el sistema
desplegará las estadísticas de acuerdo a este tipo de pregunta, es decir
mostrará el identificar de la encuesta, el identificador de la encuesta
ejecutada, la pregunta, la descripción, el número de respuestas obtenidas, y
para cada respuesta la frecuencia y el porcentaje
Caminos Alternativos: 3.1 El usuario ya no desea conocer las estadísticas, por tanto oprimirá el botón
de Cancelar.
3.2
ISC-2003-2-22
53
pregunta, descripción, tipo de dato de las respuestas, numero de
respuestas, tipo de despliegue y si es requerido o no dar una respuesta.
3. El encuestador ingresa los datos solicitados por el sistema y elige la opción
aceptar.
4. El sistema verifica el ingreso de los datos como obligatorios y validos
5. El sistema despliega un mensaje comunicando al encuestador que la
transacción fue exitosamente realizada.
Caminos Alternativos: N/A
Caminos De Excepción: 4.Se le informa al usuario que los datos suministrados, están incompletos o mal
ingresados.
5. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le adicionará la pregunta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Modificar Pregunta
Identificador: C15
Actores: Encuestador
Iteración:
Resumen: El encuestador modifica la información de una pregunta ya creada.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador elige la pregunta a modificar
y la opción Modificar Pregunta.
2. El sistema verifica la existencia de la pregunta y despliega los datos
ingresados para esta.
3. El encuestador modifica los datos a cambiar y elige la opción Aceptar.
4. El sistema verifica el ingreso de la información.
5. El sistema despliega un mensaje comunicando al encuestador que la
transacción fue exitosamente realizada.
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la pregunta no existe para la encuesta.
4. Se le informa al usuario que la información está incompleta o mal ingresada.
5. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le modificará la pregunta exista.
ISC-2003-2-22
55
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le modificará la pregunta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Cambiar orden Preguntas
Identificador: C18
Actores: Encuestador
Iteración:
Resumen: El encuestador cambia el orden delas preguntas de una encuesta ya existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador cambia de orden las
preguntas, por medio de las flechas y elige la opción Cambiar orden.
2. El sistema cambia el orden de las preguntas, para el despliegue en la
encuesta.
3. El sistema informa al encuestador que la operación fue realizada
satisfactoriamente.
Caminos Alternativos: N/A
Caminos De Excepción: 3. Se le informa al usuario que la transacción no fue realizada satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le cambiara el orden de las preguntas exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Adicionar Respuesta
Identificador: C19
Actores: Encuestador
Iteración:
Resumen: El encuestador adiciona una respuesta a una encuesta ya creada.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador elige la opción Adicionar
respuesta.
2. El sistema solicita el ingreso de la respuesta.
3. El encuestador ingresa los datos solicitados por el sistema y elige la opción
ISC-2003-2-22
56
aceptar.
4. El sistema verifica el ingreso de los datos como obligatorios y validos
5. El sistema despliega un mensaje comunicando al encuestador que la
transacción fue exitosamente realizada.
Caminos Alternativos: N/A
Caminos De Excepción: 4.Se le informa al usuario que los datos suministrados, están incompletos o mal
ingresados.
5. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le adicionará la respuesta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Modificar Respuesta
Identificador: C20
Actores: Encuestador
Iteración:
Resumen: El encuestador modifica la información de una respuesta ya creada.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador elige la respuesta a modificar
y la opción Modificar Respuesta.
2. El sistema verifica la existencia de la respuesta y despliega los datos
ingresados para esta.
3. El encuestador modifica los datos a cambiar y elige la opción Aceptar.
4. El sistema verifica el ingreso de la información.
5. El sistema despliega un mensaje comunicando al encuestador que la
transacción fue exitosamente realizada.
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la pregunta no existe para la encuesta.
4. Se le informa al usuario que la información está incompleta o mal ingresada.
5. Se le informa al usuario que la transacción no fue realizada
satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le modificará la respuesta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
ISC-2003-2-22
57
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Consultar Respuesta
Identificador: C21
Actores: Encuestador
Iteración:
Resumen: El encuestador consulta una respuesta ya existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador elige la respuesta a consultar
y la opción Consultar Respuesta.
2. El sistema verifica la existencia de la respuesta y despliega los datos
ingresados para esta.
3. El Encuestador elige la opción aceptar, cuando haya consultado la
información solicitada.
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la respuesta no existe para la encuesta o que la
transacción no fue realizada satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le consultará la respuesta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Eliminar Respuesta
Identificador: C22
Actores: Encuestador
Iteración:
Resumen: El encuestador elimina una respuesta ya existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador elige la respuesta a eliminar y
la opción Eliminar Respuesta.
2. El sistema verifica la existencia de la respuesta.
3. El sistema elimina la respuesta seleccionada, e informa al encuestador que
la operación fue realizada satisfactoriamente.
Caminos Alternativos: N/A
Caminos De Excepción: 2. Se le informa al usuario que la respuesta no existe.
3. Se le informa al usuario que la transacción no fue realizada satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
ISC-2003-2-22
58
Pre-Condiciones: Que la encuesta a la que se le modificará la respuesta exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
Nombre Del Caso De Uso: Cambiar orden Respuestas
Identificador: C23
Actores: Encuestador
Iteración:
Resumen: El encuestador cambia el orden de las respuestas de una encuesta ya existente.
Curso Básico De Eventos: 1. Este caso de uso inicia cuando el Encuestador cambia de orden las
respuestas, por medio de las flechas y elige la opción Cambiar orden.
2. El sistema cambia el orden de las respuestas, para el despliegue en la
encuesta.
3. El sistema informa al encuestador que la operación fue realizada
satisfactoriamente.
Caminos Alternativos: N/A
Caminos De Excepción: 3. Se le informa al usuario que la transacción no fue realizada satisfactoriamente.
Puntos De Extensión: N/A
Triggers: Bajo pedido del usuario.
Suposiciones: N/A
Pre-Condiciones: Que la encuesta a la que se le cambiara el orden de las respuestas exista.
Post-Condiciones: N/A
Autor: Carolina Martínez
Lucía Muñoz
Fecha: Febrero 16, 2003
ISC-2003-2-22
59
4.3 Diagrama De Clases
a. Principal.java
b. PrincipalEncuestas.java
ISC-2003-2-22
60
c. PrincipalPregunta.java
d. PrincipalRespuesta.java
e. PrincipalContestarEnc.java
f. ManejoUsuarios.java
ISC-2003-2-22
61
g. ManejoEncuestas.java
h. ManejoPreguntas.java
ISC-2003-2-22
62
i. ManejoRespuestas.java
j. ManejoContestarEnc.java
k. Usuario.java
ISC-2003-2-22
63
l. Encuesta.java
m. Pregunta.java
n. Respuesta.java
o. EncuestaEjecutada.java
ISC-2003-2-22
64
p. ManejadorBD.java
ISC-2003-2-22
65
Niveles
Módulos
JSP Servlet
Objetos de procesamiento Beans Objetos maneja-
dores BD
Usuario
adicionarUsuario
consultarUsuarios
elegirRol
elegirUsuario
eliminarUsuario
frameUsuario
ingresoUsuario
menuUsuario
menuUsuarioFrame
modificarUsuario
noExisteUsuario
verDatosUsuario
PrincipalUsuario manejoUsuarios Usuario
Encuesta
adicionarEncuesta(encuesta)
ejecutarEncuesta
eliminadaEncuesta
encuestaNoModificada
manejadorEncuesta(menuEncuesta)
menuEncuestaAnalista
modificarEncuesta
noEjecutadaEncuesta
verDatosEncuesta
verEncuesta
principal encuesta manejoEncuestas Encuesta
manejadorBD
ISC-2003-2-22
66
Pregunta
adicionarPregunta
consultarPreguntas
manejadorPreguntas
modificarPregunta
verDatosPregunta
PrincipalPregunta manejoPreguntas Pregunta
Respuesta
adicionarRespuesta
manejadorRespuesta
modificarRespuesta
verDatosRespuesta
principalRespuesta manejoRespuestas Respuesta
EjecutarEncuesta
constestarEncuesta
encuestaEnviada
llenarEncuesta
manejadorConstestarEnc
verEjecucucionEncuesta
verEjecutadaEncuesta
PrincipalContestarEncuesta manejoContestarEncuesta encuestaEjecutada
Estadísticas
verEstadisticasAbNumero
verEstadisticasAbTexto
verEstadisticasSeleccion
verPreguntasEncEjec
PrincipalEncuesta manejoEncuesta
Tabla 1. Arquitectura de la aplicación
ISC-2003-2-22
67
4.3 Modelo Entidad Relación
ISC-2003-2-22
68
4.4 Tablas Relacionales
ROLES
identificador Rol
PK, NN NN
USUARIOS
identificador nombre login password cod_rol
PK, NN NN NN NN FK, NN
ENCUESTAS
Identificador nombre pal_clave Comentario cod_usuario
PK, NN NN NN NN FK, NN
ENCUESTAS REALIZADAS
identificador cont_usuario fecha_inicio fecha_fin cod_encuesta
PK, NN NN NN NN FK, NN
TIPOS_DESPLIEGUE
identificador Despliegue
PK, NN NN
TIPOS_PREGUNTA
Identificador tipo
PK, NN NN
ISC-2003-2-22
69
PREGUNTAS
id Nombre Desc requerido Orden
Num_
respuestas
cod_tipo
_pregunta
cod_tipo_
despliegue Cod_encuesta
PK,
NN NN NN NN NN NN PK, NN PK, NN FK, NN
RESPUESTAS
Identificador respuesta orden cod_pregunta
PK, NN NN NN FK, NN
PREGUNTAS_CONTESTADAS
identificador valor_numerico comentario cod_pregunta cod_respuesta
PK, NN FK, NN FK
ENCUESTAS_LLENADAS
identificador Cod_preg_contestada cod_enc_realizada cont_usuario
PK, NN FK, NN FK, NN NN
ISC-2003-2-22
70
4.5 Diagramas De Secuencia
ADICIONAR USUARIO
ISC-2003-2-22
71
CONSULTAR USUARIO
ISC-2003-2-22
72
CONSULTAR USUARIOS
ISC-2003-2-22
73
CONSULTAR USUARIOS POR ROL
ISC-2003-2-22
74
ELIMINAR USUARIO
ISC-2003-2-22
75
INGRESO USUARIO
ISC-2003-2-22
76
ADICIONAR ENCUESTA
ISC-2003-2-22
77
MODIFICAR ENCUESTA
ISC-2003-2-22
78
CONSULTAR ENCUESTA
ISC-2003-2-22
79
DUPLICAR ENCUESTA
ISC-2003-2-22
80
ELIMINAR ENCUESTA
ISC-2003-2-22
81
EJECUTAR ENCUESTA
ISC-2003-2-22
82
VER EJECUCION
ISC-2003-2-22
83
VER PREGUNTAS
ISC-2003-2-22
84
VER ENCUESTA
ISC-2003-2-22
85
CONTESTAR ENCUESTA
ISC-2003-2-22
86
LLENAR ENCUESTA
ISC-2003-2-22
87
ADICIONAR PREGUNTA
ISC-2003-2-22
88
MODIFICAR PREGUNTA
ISC-2003-2-22
89
CONSULTAR PREGUNTA
ISC-2003-2-22
90
ELIMINAR PREGUNTA
ISC-2003-2-22
91
ADICIONAR RESPUESTA
ISC-2003-2-22
92
MODIFICAR RESPUESTA
ISC-2003-2-22
93
CONSULTAR RESPUESTA
ISC-2003-2-22
94
ELIMINAR RESPUESTA
ISC-2003-2-22
95
4.6 Interfaz Asociada A Los Diagramas De Secuencia
INGRESAR USUARIO
Si un usuario desea ingresar debe suministrar su login y password. Una vez ingresados los datos debe oprimir Aceptar. El sistema se encarga de validar el usuario y dependiendo del rol se desplegará dos pantallas, una para el rol administrador y otra para el rol de encuestador o el de analista.
CONSULTAR USUARIO
Para lograr modificar un usuario, se debe elegir su login, como se muestra en la pantalla. Una vez elegido el usuario se debe proceder a oprimir el botón.
ISC-2003-2-22
96
ELEGIR USUARIO
Una vez elegido el usuario, se mostraran los datos básicos de este.
CONSULTA USUARIOS EXISTENTES
Una vez elegida la opción CONSULTAR USUARIOS, se mostrarán todos los usuarios mostrando de cada uno su nombre, login y rol.
CONSULTAR POR ROL
Para consultar los usuarios según su rol, el cual puede ser: Administrador, Encuestador o Analista. Luego se debe proceder a oprimir el botón ELEGIR ROL.
ISC-2003-2-22
97
Al elegirse un rol determinado, se desplegará por pantalla sólo los usuario que tienen como rol, el que se ha seleccionado anteriormente. En nuestro ejemplo el rol elegido es “Encuestador”.
ELIMINAR USUARIO
Para eliminar un usuario se debe primero elegir el usuario que se desea eliminar, y luego oprimir el botón ELEGIR USUARIO. Si la eliminación del usuario fue exitosa, se desplegará por pantalla un mensaje que verifica la eliminación del usuario.
ISC-2003-2-22
98
ADICIONAR ENCUESTA
Si el rol del usuario es encuestador, siempre observará esta pantalla en la que se encuentran todas las encuestas creadas por él y la opción de adicionar una nueva encuesta con el icono:
El encuestador debe ingresar los datos para la nueva encuesta como son el titulo, los comentarios y las palabras claves. Una vez realiza esta operación tiene la posibilidad de Aceptar o de Devolverse si ya no desea realizar la operación, es decir, si no desea crear una nueva encuesta. Una vez el encuestador ha decidido crear una nueva encuesta tendrá la posibilidad de verla y conocer así el número identificador asignado para esta, junto con los datos que el ingreso en el paso anterior: identificador, nombre, comentarios y palabras claves
ISC-2003-2-22
99
CONSULTAR ENCUESTA
En la pantalla donde muestra todas las encuestas creadas por un usuario con rol encuestador, este puede consultar cualquiera de ellas, oprimiendo el icono:
Que se encuentra al mismo nivel de la encuesta que desea consultar.
Una vez se ha oprimido el botón de consultar se despliega esta pantalla con los datos de la encuesta: identificador, nombre, comentario y palabras claves.
MODIFICAR ENCUESTA
Una vez el encuestador se encuentra en esta pantalla, observando todas sus encuestas, podrá modificar solo aquellas que aun no han sido publicadas, es decir las que aun no han sido contestadas por ningún usuario con rol encuestado. El icono que identifica esta acción es:
ISC-2003-2-22
100
Una vez el encuestador ha oprimido el botón para modificar una encuesta, aparecerán los datos actuales de esta. El encuestador debe ingresar los nuevos datos para dicha encuesta. Si el encuestador quiere modificarla realmente bebe oprimir el botón de Aceptar; sino, podrá cancelar la operación con el botón de Regreso, retornando a la pantalla de encuestas.
En este momento tenemos dos casos
1. El caso en que la encuesta puede modificarse: Si el encuestador modifica la encuesta seleccionada aceptando en la pantalla anterior, observará en esta pantalla los ultimos datos ingresados: nombre, comentarios, palabras claves. Observe quedentificador no ha cambiado.
2. El caso en que la encuesta no pueda modificarse:
En este caso la encuesta elegida no puede modificarse porque la encuesta ya ha sido ejecutada, es decir ya ha sido publicada para ser contestada. En ese momento el sistema desplegará una pantalla como la mostrada, en la que se tiene en cuenta el identificador de la encuesta.
ISC-2003-2-22
101
DUPLICAR ENCUESTA
Una vez el encuestador se encuentra en esta pantalla, observando todas sus encuestas, podrá duplicarlas todas, sin ninguna restricción. El icono que identifica esta acción es:
El encuestador debe ingresar un nuevo titulo para la encuesta, y si quiere puede cambiar o agregar comentarios y palabras claves para esta. Si el encuestador quiere duplicar realmente la encuesta deberá oprimir el botón de aceptar; si no esta seguro pude devolverse. El sistema mostrara al encuestador los datos, que el ingreso anteriormente: nombre, comentarios, palabras claves; y además el nuevo identificador. Es importante tener en cuenta que las preguntas y respuestas de dicha encuesta también se duplican.
ISC-2003-2-22
102
ELIMINAR ENCUESTA Una vez el encuestador se encuentra en esta pantalla, observando todas sus encuestas, podrá eliminar cualquiera sin ninguna restricción. El icono que identifica esta acción es:
El sistema mostrara este mensaje si la encuesta ha podido ser eliminada
ADICIONAR PREGUNTA
Para lograr adicionar una pregunta a una encuesta específica es necesario ingresar por el siguiente
icono: El cual se encuentra en la parte inferior de la página.
ISC-2003-2-22
103
Luego se desplegará la página que observamos a nuestra izquierda, donde se nos pedirá los datos básicos para la creación de la pregunta. Una vez ingresados estos procederemos a confirmar la información presionando ACEPTAR. Si la operación anterior fue exitosa, el sistema retornará a la primera pantalla mostrada, con la diferencia que la pregunta adicionada aparecerá al final, junto con las otras preguntas pertenecientes a una específica encuesta. Por otro lado si la operación no fue exitosa, saldrá una pantalla de error que retornara a la primera pantalla mostrada.
MODIFICAR PREGUNTA
Para modificar una pregunta se debe hacer clic, sobre el icono :
El cual es la primera opción que se encuentra dentro de las funciones básicas para cada pregunta.
Al elegir la opción de modificar una pregunta, se despliega esta pantalla con los datos existentes de la pregunta, dando la posibilidad de poder modificar cualquier dato existente, una vez se hayan cambiado los datos, se procede a presionar ACEPTAR.
ISC-2003-2-22
104
Si la operación fue exitosa, se desplegará una pantalla de visualización de los datos modificados y se dará la opción de regresar nuevamente a la primera pantalla, que es la manejadora de preguntas, con la pregunta, claro está ya modificada.
CONSULTAR PREGUNTA
Para poder consultar una pregunta, se debe hacer clic sobre el icono:
El cual es la segunda opción que se encuentra dentro de las funciones básicas para cada pregunta.
Una vez se elija la opción de consultar la pregunta, se desplegará esta pantalla con la información básica de la pregunta y se dará la opción de regresar nuevamente a la anterior pantalla, que es la manejadora de preguntas.
ISC-2003-2-22
105
ELIMINAR PREGUNTA Para elegir la opción de eliminar pregunta se debe presionar el icono:
El cual es la tercera opción que se encuentra dentro de las funciones básicas para cada pregunta. Una vez se presione esta opción. Si la operación fue exitosa se desplegará la misma pantalla, con la diferencia, que la pregunta eliminada no aparecerá.
MANEJO RESPUESTAS
Existe por ultimo la opción de modificar las respuestas para cada pregunta, presionando el icono
Esta opción solo se desplegará para la preguntas que sean de opción múltiple.
ISC-2003-2-22
106
Una vez se presione la opción nombrada anteriormente, se desplegará esta pantalla, que dará la opción de adicionar, modificar, consultar, eliminar las respuestas para una específica pregunta.
ADICIONAR RESPUESTA
Para adicionar una respuesta a una pregunta, se debe presionar el link:
El cual se encuentra en la parte inferior de la página.
Luego de presionar el icono, se desplegará esta pantalla para ingresar la respuesta que se desea adicionar, una vez se ingrese la información, se debe presionar el botón ACEPTAR.
ISC-2003-2-22
107
Una vez se haya adicionado la respuesta correspondiente, se desplegarán las respuestas existentes incluyendo la que se acaba de adicionar, con las opciones para modificarla, consultarla o eliminarla.
MODIFICAR RESPUESTA Para modificar una respuesta es necesario hacer click sobre el icono:
de la respuesta a la cual se quiere modificar.
A continuación se desplegará esta pantalla, con la información existente de la respuesta para poder modificarla, una vez se halla modificado se debe presionar el botón ACEPTAR.
ISC-2003-2-22
108
Una vez se de ACEPTAR, se desplegarán los datos modificados de la respuesta, y si se está de acuerdo con esto se debe presionar el botón: REGRESAR MANEJO RESPUESTA. Para continuar.
Y por último se desplegará la pantalla principal de respuestas, con las respuestas existentes y la respuesta ya modificada.
CONSULTAR RESPUESTA Para consultar una respuesta es necesario oprimir el icono:
correspondiente de la respuesta que se quiere consultar.
ISC-2003-2-22
109
Entonces se desplegará a continuación la información de la respuesta, y luego de esto se debe oprimir el botón: REGRESAR MANEJO RESPUESTA, para volver a la pantalla anterior.
ISC-2003-2-22
110
CAPITULO 5 CONCLUSIONES
a. Se logró entender a fondo el problema propuesto, a través de la
necesidad que se percibió en un primer momento, obteniendo
una solución que permitió resolverlo, es decir, se logró
automatizar el proceso de manejo que se le debe dar a una
encuesta, desde el momento en que se crea, se coloca en vigencia, se es
contestada, se generan las estadísticas de los datos que fueron ingresados;
permitiendo un mejor control, manipulación y organización de los datos
para el usuario final de la aplicación.
b. Se obtuvo un conocimiento previo acerca del manejo que comúnmente se
le da a las encuestas, de modo que permitiera que el producto ofrecido
mejorará el proceso, para obtener un mayor aprovechamiento de la
información que con ellas se puede almacenar.
c. A través del análisis previo a la elaboración de la aplicación se logró
conocer el campo de acción, su funcionalidad y hacia quien va dirigida; asi
como las ventajas y desventajas que el usuario obtendría al interactuar con
esta
d. Se obtuvo un software de calidad, gracias a la estructuración que
se obtuvo para implementar la herramienta, a través del
cumplimiento de los requerimientos funcionales establecidos en la
etapa de diseño.
e. Se logró un producto de calidad que cumplió con los objetivos iniciales a
través del conocimiento, manejo e integración de las herramientas
elegidas, como son Java, Servlet, Jsp y MySql, permitiendo brindar a los
ISC-2003-2-22
111
usuarios finales un grado de confiabilidad y veracidad, al momento de usar
la aplicación.
f. Se logró que el producto realizado tuviera un uso fácil, para que así los
usuarios finales adquirieran un grado de confianza para la elaboración, el
manejo de las encuestas y el almacenamiento de información.
g. El desarrollo realizado hasta este momento para la herramienta permitirá
en un futuro su mejora y escalabilidad, debido a la portabilidad, seguridad,
eficiencia y flexibilidad de las herramientas utilizadas para el desarrollo de
este, de acuerdo a las necesidades que se presenten en los usuarios.
ISC-2003-2-22
112
CAPITULO 6 TRABAJO POR REALIZAR
Debido al corto tiempo que se tuvo para realizar la aplicación se considera que
existe trabajo que puede ser realizado en un futuro:
1. Es importante brindarle mayor seguridad a la base de datos, para así evitar
fallas o alteraciones en la información.
2. Permitir flexibilidad y estandarización en el transporte y manipulación de datos,
para lo cual se requiere el uso de XML.
3. Realización de varias plantillas para lograr que cada encuestador escoja la más
apropiada para el diseño de su encuesta.
4. En cuanto a la elaboración de las estadísticas, es importante tener en cuenta
que para un encuestador es mucho mas agradable poder observar el resumen
de la información a través de gráficos que le permitan una mejor comprensión
de los resultados obtenidos para su encuesta.
5. En cuanto al ingreso de los usuarios encuestadores, se buscaría que estos
tuvieran acceso a todas las encuestas, para reconocer que información, puede
ser reutilizada, sin afectar la original.
6. Formar un banco de preguntas y respuestas de modo que puedan ser utilizadas
por todos los usuarios encuestadores.
7. En cuanto a los usuarios encuestados, es importante definir que pueden existir
usuarios que necesiten ingresar con una clave de acceso y otros que puedan
ser libres, en cuanto a los que necesitan ingresar con clave de acceso pueden
clasificarse según grupos, para que así haya una mayor facilidad en el
ISC-2003-2-22
113
momento en que se decida que usuarios pueden llenar una determinada
encuesta.
ISC-2003-2-22
114
BIBLIOGRAFIA
[1] Hall Marty. Servlet y Java Server Pages, Pearson Educación, Prentice Hall. México, 2001.
[2] Diccionario de términos Xombra.
Consultar en http://www.xombra.com/terminos.php?cat=10 (diciembre 2003)
[3] Base de Datos MySQL.
Consultar en http://www.terra.com.mx/servicioaclientes/articulo/118449/default.htm
(Enero 2004)
[4] Aprenda MySQL en 120 min.
Consultar en http://www.mysql-hispano.org (febrero 2003)
[5] Operaciones Avanzadas con JDBC y Java
Consultar en http://programacion.com/java/tutorial/jdbcadv (marzo 2003)
[6] Marchal Benoit. XML con ejemplos, Pearson Educación, Prentice Hall. México,
2001.
[7] proyectos de Evaluación
Consultar en http://oducuh.upr.clu.edu/vision.htm (enero 2004)
[8] Diseño y desarrollo de aplicaciones web multidispositivo
Consultar en
http://www.germinus.com/sala_prensa/articulos/Diseno_desarr_aplicaciones_web_multidis
po%20(Febrero%202003).pdf (enero 2004)
[9] Desarrollo de aplicaciones web con Java y XML
Consultar en http://congreso.javahispano.org/files/ppt/javaXMLXSL.pdf
(enero 2004)
[10] Taller de sistemas de información I
Consultar en http://www.fing.edu.uy/inco/cursos/tsi1/teorico/10-web.pdf
(enero 2004)
ISC-2003-2-22
115