Manejador de encuestas desarrollo de software
Texto completo
(2) 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.
(3) ISC-2003-2-22. CONTENIDO. INTRODUCCION ….…………………………………………………………….. Pag. 4. Capitulo 1 OBJETIVOS ……………………………………………………….. 6. Capitulo 2 MARCO TEORICO ……………………………………………….. 8. 2.1 Encuestas. ………………………………………………………………………..... 2.1.1 Definición ……………….……………………………………………….... 2.1.2 Pasos de planificación de una encuesta …………………………. 8 8 8. 2.2 Tecnología a utilizar……………………………………………………………..... 14. 2.3 Servlet. 14. …………………………………………………………………………..... 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6. Definición ……………….……………………………………………….... Ventajas de los Servlets sobre los CGIs ………………………… Estructura básica de un Servlet ..………………………..………….. Ciclo de vida de un Servlet ………………………………………….... Manejo de peticiones del cliente ……………………………..….... Generación de respuestas de servidor …………………….……... 2.3.6.1 Codigos de estado …………………………………….. 2.3.6.2 Encabezados de respuesta http ..……………….. 2.3.7 Ejemplo de un servlet ……………………………………………………. 14 15 16 17 18 19 19 22 23. 2.3 Java Server Pages (JSP) ..…………………………………………………..... 25. 2.3.1 Definición ……………….……………………………………………….... 2.3.2 Comandos en JSP …………………………….………………………… 2.3.2.1 Elementos de secuencia de comandos ………... 2.3.2.2 Directivas ……………………………….……………….. 2.3.2.3 Acciones .……………………………….……………….. 2.3.3 Uso de los Java Beans con JSP ..………………………..…………... 25 25 25 26 28 28. 2.3.4 Ejemplo de un JSP ………………....………………………..…………... 30. 2.
(4) ISC-2003-2-22. 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) .........……………….........….... 2.7.1 Definición ……………….……………………………………………….... 2.7.2 Componentes de CSS ...……………………….…………………………. 36 36 37. Capitulo 3 ARQUITECTURA DE LA APLICACIÓN. .………………….. 39. .…………………………….. 44. Diagrama de Casos de uso ..…………………….....………………….... Casos de uso ………………………………………….....………………….... Diagrama de Clases ...……………………………….....………………….... Modelo entidad relación ..............……………….....………………….... Tablas relacionales ………………………………….....………………….... Diagramas de secuencia .………………………….....…………………..... 44 45 60 67 68 70. Capitulo 4 DISEÑO DE LA APLICACIÓN 4.1 4.1 4.2 4.3 4.4 4.5. 3.
(5) ISC-2003-2-22. 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.. 4.
(6) ISC-2003-2-22. 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.. 5.
(7) ISC-2003-2-22. 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.. 6.
(8) ISC-2003-2-22. 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.. 7.
(9) ISC-2003-2-22. 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.. 8.
(10) ISC-2003-2-22. 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.. 9.
(11) ISC-2003-2-22. 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 10.
(12) ISC-2003-2-22. 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. 11.
(13) ISC-2003-2-22. 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. 12.
(14) ISC-2003-2-22. 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 13.
(15) ISC-2003-2-22. 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. 14.
(16) ISC-2003-2-22. 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.. 15.
(17) ISC-2003-2-22. 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]. Templates Archivos Configuracion. HTML browser. Servidor HTTP. Servidor HTTP. Template Cache. Inicializacion. Template Loader Llamado HTTP(Template, parametros). Modulo principal del servlet. Envio Salida Html. Parser XML. Configuracion remota. Almac. Persistente de datos Interprete Implementaciones Tag. Salida Cache. 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 16.
(18) ISC-2003-2-22. 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]. Servidor. Codigo del Servlet. Cargar. Cliente Codigo del Servlet. Manejo de requerimientos del cliente. Servidor. Servidor. Cliente. Codigo del Servlet. Descargar. Ciclo de vida de un Servlet. 17.
(19) ISC-2003-2-22. 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. formulario son los encontrados después del signo de interrogación.. datos. del. 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 18.
(20) ISC-2003-2-22. 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 19.
(21) ISC-2003-2-22. 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.. 20.
(22) ISC-2003-2-22. •. 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. 21.
(23) ISC-2003-2-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.. 22.
(24) ISC-2003-2-22. 2.3.7. Ejemplo de un servlet. package servlets; import import import import. java.io.*; java.util.*; javax.servlet.*; 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); } }. 23.
(25) ISC-2003-2-22. 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: 24.
(26) ISC-2003-2-22. •. 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] 25.
(27) ISC-2003-2-22. •. 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.. 26.
(28) ISC-2003-2-22. 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. 27.
(29) ISC-2003-2-22. 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.. 28.
(30) ISC-2003-2-22. 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++). 29.
(31) ISC-2003-2-22. { %> <% } %>. <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]. 30.
(32) ISC-2003-2-22. 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]. 31.
(33) ISC-2003-2-22. 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 32.
(34) ISC-2003-2-22. 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.. 33.
(35) ISC-2003-2-22. 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 multiusuario, soluciones de base de datos SQL (structured Query Language) multithreaded.[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 2.8.1. HOJAS DE ESTILO EN CASCADA (CSS) 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 34.
(36) ISC-2003-2-22. 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:. 35.
(37) ISC-2003-2-22. 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.. 36.
(38) ISC-2003-2-22. 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]. 37.
(39) ISC-2003-2-22. 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 38.
(40) ISC-2003-2-22. 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.. 39.
(41) ISC-2003-2-22. 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,. 40.
(42) ISC-2003-2-22. 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. 41.
(43) ISC-2003-2-22. 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.. 42.
(44) ISC-2003-2-22. CAPITULO 4 DISEÑO DE LA APLICACIÓN 4.1. Diagrama de casos de Uso. 43.
(45) ISC-2003-2-22. 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. 2.. Este caso de uso inicia cuando el usuario elige la opción adicionar Usuario. 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.. 44.
(46) ISC-2003-2-22. 7. 8.. El sistema verifica el ingreso de los datos como obligatorios y validos. 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. 45.
(47) ISC-2003-2-22. 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. 46.
(48) ISC-2003-2-22. 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. 3.. El sistema verificará que los datos ingresados sean correctos. 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. Caminos Alternativos:. El sistema retornará al encuestador un número para identificar la encuesta. 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.. 47.
(49) ISC-2003-2-22. Caminos De Excepción:. 3. Se le informa al usuario que los datos suministrados, están incompletos, mal. 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. ingresados, o que el nombre de la encuesta ya existe.. 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.. 48.
(50) ISC-2003-2-22. 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. 49.
(51) ISC-2003-2-22. 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. Caminos Alternativos:. El sistema notifica al usuario que la encuesta ha sido eliminada.. 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.. 50.
Documento similar
Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in
This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)
Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas
d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que
De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la
Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y