Proyecto Fin de Carrera:

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Proyecto Fin de Carrera:"

Transcripción

1 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA Proyecto Fin de Carrera: Herramienta de Generación de Informes (HGI) AUTOR: JUAN MOHEDANO CUADRADO DIRECTOR: JOSE LUIS CUMPLIDO MADRID, JUNIO 2006

2 Autorizada la entrega del proyecto del alumno: JUAN MOHEDANO CUADRADO. EL DIRECTOR DEL PROYECTO JOSÉ LUÍS CUMPLIDO Fdo.: Fecha: 29/06/2005 Vº Bº del Coordinador de Proyectos DAVID CONTRERAS BÁRCENA Fdo.: Fecha: 29/06/06

3 Dedicatoria A mi padre Bernabé, a mi madre Matilde, a mis Hermanos Berna y Josito, y por supuesto a mis Abuelos. Os quiero

4 Agradecimientos Me gustaría agradecer a todas las personas que han hecho posible llegar a este punto de mi formación académica y concebir este proyecto como una realidad, a mis padres Bernabé y Matilde, a mis hermanos Bernabé y José Manuel, a todos mis compañeros de empresa (Galeón Software S.L.), en especial a Iván y a José Luís, a mis compañeros de clase Carlos, Berrón, José Luís, Maria, Alex, Iván, Sergi a mis profesores, a mis Amigos, a mi coordinador David Contreras, y en general a todo lo relacionado con el ICAI. A todos: Muchas Gracias

5 Resumen Debido a la escasez de software libre en el área de creación de informes, se ha desarrollado una aplicación para mejorar tanto la edición y configuración del informe, como la ejecución, generación y presentación del mismo. El propósito de esta herramienta es implementar las necesidades a la hora de generar un informe a partir de datos almacenados en una base de datos, aprovechándose de las nuevas tecnologías. Otro objetivo prioritario es la presentación en diversos formatos, siendo estos *.pdf,*.xls y *.html. Se han elegido estos formatos por las prestaciones de cada uno para el posterior tratamiento del informe realizado. El formato *.xls, una vez procesado, es capaz de ser modificado y mostrar gráficos de los datos obtenidos. El sistema además proporciona al usuario la capacidad de decidir el estilo del informe, abarcando tareas desde tamaño y alineación del texto hasta la incursión o no de una columna de datos en uno u otro tipo de formato. Otro de los puntos fuertes a destacar del proyecto HGI, es la posibilidad de guardar informes que se consideran importantes o necesarios para realizar funciones tales como un histórico de los datos de la empresa. Estando implementada esta posibilidad, es necesario complementar la herramienta con la opción de poder abrir un informe anteriormente realizado, permitiéndose modificaciones sobre el mismo. - HERRAMIENTA GENERADORA DE INFORMES - I

6 No seria correcto terminar esta breve explicación, sin incidir en las técnicas de la herramienta, HGI está programada en Java con tecnología Struts/J2EE, se ha programado de esta manera ya que es la tecnología predominante para aplicaciones de este tipo. Así pues con la finalidad de tener un entorno completo de edición, parametrización y ejecución, para que a partir de cualquier modelo de datos almacenado en una base de datos, podamos generar una serie de informes en diversos formatos y estilos se ha creado el PROYECTO HERRAMIENTA DE GENERACION DE INFORMES (HGI). - HERRAMIENTA GENERADORA DE INFORMES - II

7 Abstract Due to the shortage of free software in the creation reports area, it has been developed an application to improve the report edition, configuration, execution, generation and the presentation. The main goal of this tool is to implement the generating report needs from stored data in a database, taking the advantages of the new technologies. Another high-priority objective is the presentation in diverse formats, like * pdf, *.xls and * html. These formats have been chosen for the benefits of each one in the resulting report. The *.xls format, once processed, it can be modified and is able to show graphics of the data collected. The system also let the user to decide the report style, including tasks like text size and alignment, or the possibility to include a data column in different formats. Other important issue to highlight of the HGI project, is the ability to save reports that are considered important or needed to develop tasks like the company s data historical. Once this possibility has been implemented, it is necessary to complement the tool with the option of open a report previously made, allowing modifications on the same one. It wouldn t be correct ending this brief explanation, without talking about the tool s techniques, HGI is programmed in Java with Struts/J2EE technology, it has been programmed in this programming language because is the main technology for this kind of applications. - HERRAMIENTA GENERADORA DE INFORMES - III

8 So, with the purpose of having a complete edition, styling and execution landscape, from any data modelling stored in a data base, it can be generated a reports series in diverse formats and styles, it has been created REPORT GENERATION TOOL (RGT). - HERRAMIENTA GENERADORA DE INFORMES - IV

9 HERRAMIENTA DE GENERACIÓN DE INFORMES (HGI) - HERRAMIENTA GENERADORA DE INFORMES - V

10 ÍNDICE 1. Introducción Descripción Objetivos Herramientas y Técnicas Estado del Arte Justificación Generación de informes 2.1. Introducción Formatos HTML PDF XLS XML Conclusiones Planificación del proyecto 3.1. Metodología Ciclo de vida HGI Estrategias de Gestión de Riesgos Recursos del Proyecto HERRAMIENTA GENERADORA DE INFORMES - VI

11 4. Ingeniería del software Modelo de Dominio Diagramas de clases Introducción Diagrama de clases HGI Modelo de Casos de Uso Diagramas de casos de uso Descripción de casos de uso Reglas de negocio 4.3. Diagrama de Arquitectura Diagrama de paquetes Descripción de los subsistemas Modelo Dinámico Detallado Diagramas de secuencia Interfaz de Usuario Implementación Valoración económica Conclusiones Bibliografía Anexos 8.1. Anexo A: Entrevista con el cliente Anexo B: Manual de usuario HERRAMIENTA GENERADORA DE INFORMES - VII

12 INTRODUCCIÓN Descripción del Proyecto Actualmente la generación de informes dentro de la empresa se realiza de forma manual, existen personas encargadas de realizar informes a partir de los campos existentes en la Base de Datos, pero esto hoy en día deriva en una mala gestión, ya que los datos de estos archivos pueden no estar actualizados, debido al tiempo encargado en recoger datos, comparar, sacar valores de una tabla que tiene muchos campos La idea de informatizar el proceso de generación de informes es imprescindible, debido a la gran cantidad de información que es necesario manejar. Además se consigue mejorar la labor de la persona que actualmente tiene que realizar los informes, al no tener que hacerlo a mano, evitando así discordancias entre los datos reflejados en el informe y la Base de Datos. Otra de las mejoras que consigue la informatización de este sistema, es la rapidez en la ejecución de los informes, incomparable con el tiempo empleado actualmente, además de su presentación en diversos formatos, para su posterior utilización y salvado. - HERRAMIENTA GENERADORA DE INFORMES - 1

13 Ámbito del Proyecto El presente sistema se enmarca dentro del plan de Sistemas de Información, con la finalidad de mecanizar el Sistema de Generación de Informes de la compañía, siendo capaz de coexistir con las aplicaciones existentes. Desde el punto de vista estratégico de la empresa, el sistema esta orientado a la parametrización y edición de informes, mejorando así las estimaciones de los mismos. Desde la perspectiva informática el sistema debe cumplir una serie de requisitos que serían: Coexistir con las aplicaciones existentes sobre las mismas bases de datos, es decir, si se dan incursiones de nuevas tablas, nuevos campos, nuevos valores que el sistema sea capaz en todo momento de definir un informe con una información veraz y actualizada. Contemplar la estructura actual sobre el Subsistema de Generación de Informes. El sistema ha de tener la característica de actualizarse y modificarse con facilidad. Para una mayor comprensión del sistema a mecanizar se ha hecho una división de los objetivos dependiendo del carácter de los mismos ya sean objetivos operativos u objetivos empresariales. - HERRAMIENTA GENERADORA DE INFORMES - 2

14 El ámbito del sistema a mecanizar comprende las funciones de: Crear nuevos informes Abrir informes anteriores Guardar informes Ejecutar informe Elegir formato del informe Elegir estilo de cada informe En cuanto a la información mostrada en el informe, se debe poder mostrar toda aquella información referente a la base de datos de forma eficiente y adecuada. Permitiendo filtrar la información según el usuario desee. Los informes deberán aparecer de una forma clara y en el formato y estilo deseado por el que realice el informe. En todo momento se deben poden conocer las opciones del informe, permitiendo la modificación de las mismas. Debido a las particularidades de algunos clientes, habrá que dar la posibilidad de mostrar o no un dato, según interese para cada formato de informe. Se debe poder buscar un informe anteriormente guardado de forma intuitiva y clara, así como guardarlo. Como consecuencia de la nueva tendencia empresarial de creación de informes, es necesario que el sistema facilite en todo momento la posibilidad de la impresión de cada informe, eso nos lo proporcionará cada aplicación, según el formato elegido. - HERRAMIENTA GENERADORA DE INFORMES - 3

15 Reconocimiento del problema ABRIR GUARDAR USUARIO EJECUTAR ELEGIR FORMATO BBDD *.XLS *.PDF *.HTML El usuario interactúa con el sistema para la realización de informes, eligiendo las opciones requeridas por este, la base de datos contra la que se conecta, el estilo, el formato El sistema muestra para cada informe sus características. Estas pueden ser modificadas con el fin de obtener el informe necesitado en cada caso. - HERRAMIENTA GENERADORA DE INFORMES - 4

16 los actuales. El sistema permite recuperar informes anteriormente realizados y salvar La finalidad será la ejecución del informe, pudiendo este obtenerse en distintos formatos para las aplicaciones Adobe Acrobat, Microsoft Excel y cualquier aplicaron capaz de leer *.html, como son Microsoft Internet Explorer, Mozilla Firefox - HERRAMIENTA GENERADORA DE INFORMES - 5

17 Modelo Lógico del Sistema Objetivo El objetivo de este documento es establecer de forma clara, global y precisa los requerimientos para el desarrollo del sistema HGI (Herramienta Generadora de Informes), cuya utilización es la creación, edición y parametrización de informes nuevos, o informes anteriormente guardados, permitiendo la posibilidad de almacenar los que se deseen. Para ello se va a recoger el flujo de la información, es decir, productores y consumidores de la información (entradas y salidas del sistema). Además se recogerá la estructura de dicha información estudiando el contenido y dependencias de los flujos y entidades de datos. Entrada: - Selección de usuario Interfaz Entrada: - Selección de usuario - XML Nuevo Informe Abrir Informe Entrada: - BB.DD - Estilo - Query Editar opciones del informe Entrada: - 3 Secciones Entrada: - 3 Secciones Guardar Ejecutar Salida: - XML Salida: - Pdf, Xls, Html - HERRAMIENTA GENERADORA DE INFORMES - 6

18 Restricciones La puesta en marcha de la Herramienta Generadora de Informes tendrá que estar lista para finales de Junio del Las personas que van a gestionar el sistema no van a ser técnicos informáticos por lo tanto el sistema debe ser fácil de gestionar y actualizar, lo único que se requiere es la habilidad de escribir queries. El sistema ha de tener instaladas las aplicaciones necesarias para que la herramienta sea utilizable. Han de instalarse también las herramientas que son capaces de leer los formatos finales del informe. - HERRAMIENTA GENERADORA DE INFORMES - 7

19 Áreas implicadas Las áreas implicadas en el informe son tres: Configuración Sección Columna ÁREA CONFIGURACIÓN FUNCIONES Elegir Base de Datos Estilo del Titulo, Colores, Tamaño, Tipo de Letra Seleccionar Query del informe SECCIÓN Titulo, Color de letra, Tamaño Alineación, Color de Fondo COLUMNA Añadir una nueva columna Aparece o no en cada tipo Dato a mostrar Tamaño de Fuente, Alineación, Color Las opciones a realizar con el informe son: Nuevo Abrir Guardar Ejecutar - HERRAMIENTA GENERADORA DE INFORMES - 8

20 Objetivos Objetivos Empresariales Ofertar productos en todo momento y según las características que desee el cliente. Realizar un informe a medida. Implantar un recurso que optimice gastos y agilice los procesos de negocios. Como aplicar las herramientas a los procesos internos y externos de negocio. Mejorar la productividad del usuario final. Hacer que el sistema sea transparente para el usuario respecto a su funcionamiento. La creación de un sistema fácil de utilizar y de configurar. Conocer las necesidades de cliente. Permitir al usuario en todo momento modificar condiciones del informe. Permitir al usuario en todo momento saber en que situación se encuentra el informe. Tener información en todo momento de cada informe. Permitir al usuario decidir el formato del informe. Identificar las necesidades que resuelven las nuevas tecnologías de la información y de comunicación. Comprender los beneficios que las Tecnologías Informáticas aportan a la actividad empresarial. Diseñar, desarrollar e implementar el sistema H.G.I. Realizar una evaluación critica del producto y la investigación, tanto en eficacia como en impacto de la nueva herramienta de informes dentro de la empresa. Mejorar la productividad del usuario final. - HERRAMIENTA GENERADORA DE INFORMES - 9

21 Facilitar la adaptación a las necesidades cambiantes en el área de informes. Agilizar el proceso de realización del informe. Poder mostrar al usuario los informes realizados anteriormente. - HERRAMIENTA GENERADORA DE INFORMES - 10

22 Objetivos Operativos Permitir mostrar la información de cada informe. Gestionar la búsqueda de informes anteriormente realizados desde nodo raíz. Permitir la apertura de informes anteriores. Posibilidad de mostrar todos los informes realizados con anterioridad. Facilitar la modificación, creación y eliminación de informes. El objetivo operativo más importante del proyecto es el desarrollo de un framework que genere informes, a partir de los datos de una base de datos. La funcionalidad de dicho framework abarcará desde la creación de un entorno gráfico en el que definir visualmente el informe a generar, así como el procesado del informe y su presentación en diversos formatos. Hay que tener un entorno completo de edición, ejecución y parametrización. Mantener tiempos de respuesta reducidos. Estudiar las diferentes plataformas de desarrollo del sistema de generación de informes. Crear una herramienta completa. Obtener un sistema fácil de mantenimiento y actualización. Disponer de una metodología a seguir para la creación de copias de seguridad. - HERRAMIENTA GENERADORA DE INFORMES - 11

23 Herramientas y técnicas Introducción a la programación orientada a objetos Junto con el paradigma de la orientación a procedimientos, son las dos filosofías generales de diseño más importantes. A diferencia de la orientación a procedimientos (OP), la orientación a objetos (OO) no concibe los procesos como una secuencia de procedimientos con su entrada y salida sino que se basa en un conjunto de objetos interactuando: Veamos a continuación los aspectos más destacados de esta filosofía general de diseño. 1. Clases y objetos 2. Encapsulación 3. Intercambio de mensajes 4. Herencia - HERRAMIENTA GENERADORA DE INFORMES - 12

24 Saber desarrollar aplicaciones para potentes sistemas Windows en Java es básico para cualquier Ingeniero Informático, sobre todo por que es el entorno y el lenguaje por el cual han apostado la mayoría de empresas en la actualidad para el desarrollo de herramientas de este tipo. - HERRAMIENTA GENERADORA DE INFORMES - 13

25 Introducción a Java La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios que se utilizan para recorrer Internet. Por la misma estructura del lenguaje, los nuevos navegadores permiten la telecarga de "applets", pequeños fragmentos de programas compactos, precompilados, que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones, sonido y especialmente la verdadera interactividad. El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un código elemental parecido al ensamblador, llamado también p-code o byte-code. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje máquina) muy rápidamente, en el transcurso de la propia ejecución del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una máquina a otra. La facilita hasta el punto de lograrla desaparecer. Aparece entonces la "máquina virtual". Una máquina virtual es una capa lógica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad sólo ve una reconstrucción lógica de un ordenador. - HERRAMIENTA GENERADORA DE INFORMES - 14

26 Para ejecutar un programa Java compilado, es preciso también que cuente con una implementación de la máquina virtual específica donde se desea ejecutar, la cual efectúa la transformación del p-code en un programa comprensible para la máquina. - HERRAMIENTA GENERADORA DE INFORMES - 15

27 Introducción a struts Es un framework que implementa el patrón de arquitectura MVC (Modelo Vista Controlador) en Java. Un framework es la extensión de un lenguaje mediante una o más jerarquías de clases que implementan una funcionalidad y que (opcionalmente) pueden ser extendidas. El framework puede involucrar TagLibraries. El patrón de arquitectura MVC es un patrón que define la organización independiente del Model (Objetos de Negocio), la View (interfaz con el usuario u otro sistema) y el Controller (controlador del workflow de la aplicación: "si estoy aquí y me piden esto entonces hacer tal cosa, si sale bien mostrar esto y sino lo aquello otro"). - HERRAMIENTA GENERADORA DE INFORMES - 16

28 Funcionamiento en aplicaciones Web como HGI El navegador genera una solicitud que es atendida por el Controller (un Servlet especializado). El mismo se encarga de analizar la solicitud, seguir la configuración que se le ha programado en su XML y llamar al Action correspondiente pasándole los parámetros enviados. El Action instanciará y/o utilizará los objetos de negocio para concretar la tarea. Según el resultado que retorne el Action, el Controller derivará la generación de interfaz a una o más JSPs, las cuales podrán consultar los objetos del Model a fines de realizar su tarea. - HERRAMIENTA GENERADORA DE INFORMES - 17

29 Para qué sirve? Evidentemente, como todo framework intenta, simplifica notablemente la implementación de una arquitectura según el patrón MVC. El mismo separa muy bien lo que es la gestión del workflow de la aplicación, del modelo de objetos de negocio y de la generación de interfaz. El controlador ya se encuentra implementado por Struts, aunque si fuera necesario se puede heredar y ampliar o modificar, y el workflow de la aplicación se puede programar desde un archivo XML Las acciones que se ejecutarán sobre el modelo de objetos de negocio se implementan basándose en clases predefinidas por el framework y siguiendo el patrón Facade. Y la generación de interfaz se soporta mediante un conjunto de Tags predefinidos por Struts cuyo objetivo es evitar el uso de Scriplets (los trozos de código Java entre "<%" y "%>"), lo cual genera ventajas de mantenimiento y de perfomance (pooling de Tags, caching, etc). Logísticamente, separa claramente el desarrollo de interfaz del workflow y lógica de negocio permitiendo desarrollar ambas en paralelo o con personal especializado. También es evidente que potencia la reutilización, soporte de múltiples interfaces de usuario (Html, shtml, Wml, Desktop applications, etc.) y de múltiples idiomas, localismos, etc. Licencia Foundation. Struts está bajo la licencia "free-to-use-license" de la Apache Soft. - HERRAMIENTA GENERADORA DE INFORMES - 18

30 Model El Model comprende todos los Objetos de Negocio donde se implementa la lógica de negocio (el "como está hecho") y donde se debe soportar todos los requisitos funcionales del Sistema sin mezclarlo con partes correspondientes al workflow (el "qué hacer") que corresponden al Controller. Action Bean Generalmente, los Action Beans siempre realizan las siguientes acciones: 1. Obtener los valores necesarios del Action Form, JavaBean, request, session o de donde sea. 2. Llamar a los objetos de negocio del Model. 3. Analizar los resultados, y según los mismos retornar el ActionForward correspondiente. System State Beans Los System State Beans son el conjunto de objetos de negocio que representan el estado actual del sistema, por ejemplo: el carrito de la compra que el usuario va modificando a lo largo de su interacción con la aplicación. Estos objetos de negocio serán típicamente JavaBeans o EJBs de los que se guardará referencia en la sesión del usuario, que serán modificados desde los Action y que serán consultados desde las JSPs. Esta clase de objetos no debiera tener ningún conocimiento de la View. BusinessLogic Beans Los objetos de negocio son los que implementan la lógica de negocio, el cómo hacer las cosas y su propia persistencia. Estos objetos de negocio no debiera tener ningún conocimiento de la View o el Controller de forma que debieran ser perfectamente reutilizables para implementar soporte a distintas interfaces y hasta para incluirse en nuevas aplicaciones. - HERRAMIENTA GENERADORA DE INFORMES - 19

31 Accediendo a BD Con Struts se puede definir un datasource para una aplicación desde el struts-config.xml. Este datasource nos permite obtener una connection desde un Action y desde allí utilizarlo o pasarlo al Model. Esto es realmente muy práctico. View La View comprende las JSP (principalmente) y los servlets involucrados en la generación de la interfaz de usuario o con otros Sistemas. Struts provee soporte para construir aplicaciones multi-idioma, interacción con formularios y otras utilidades mediante la utilización de Tags especiales (TagLibraries). Forms Una de las tareas que durante el desarrollo de una aplicación insume mucho trabajo (aunque en realidad no lo merezcan) es la interacción con formularios, ya sea para editar u obtener nueva información. Las comprobaciones, la gestión de errores, el volver a presentarle el mismo form al usuario con los valores que puso y los mensajes de error y un largo etcétera están soportadas por Struts a fines de hacernos la vida un poco más fácil. La idea es la siguiente: todo el trabajo de comprobaciones y generación de mensajes de error se implementa en los ActionForm y todo el trabajo de generación de interfaz en la/s JSP. Tags Básicamente, un Tag de JSP consiste en un Tag con formato <prefijotaglib:nombretag atributo=valor... > que cuando la JSP se compila es sustituido por una llamada a la clase TagHandler que se encarga de resolver su funcionalidad. - HERRAMIENTA GENERADORA DE INFORMES - 20

32 Controller El Controller comprende la funcionalidad involucrada desde que un usuario genera un estímulo (click en un link, envío de un formulario, etc.) hasta que se genera la interfaz de respuesta. Entre medio, llamará a los objetos de negocio del Model para que resuelvan funcionalidad propia de la lógica de negocio y según el resultado de la misma ejecutará la JSP que deba generar la interfaz resultante. Struts incluye un servlet que a partir de la configuración de struts-config.xml recibe las solicitudes del usuario, llama al Action Bean que corresponda y, según lo que éste retorne, ejecuta una JSP. Por consiguiente, las tareas que se deben realizar son: Escribir una clase Action que extienda de org.apache.action.action. Ver sección "Controller Action Bean". Configurar el struts-config.xml para que incluya el nuevo action mapping y sus posibles forwards de salida. - HERRAMIENTA GENERADORA DE INFORMES - 21

33 Struts en funcionamiento Como todo framework, Struts consiste en una librería de clases y una serie de configuraciones por lo que su instalación es muy similar en todos los servidores de aplicaciones que provean (o puedan agregársele) soporte de: Java Development Kit (version 1.2 or posterior) Servlet Container (version 2.2 or posterior) JavaServer Pages (JSP) (version 1.1 o posterior) XML Parser compatible con Java API for XML Parsing (JAXP) specification, 1.1 o posterior JDBC 2.0 Optional Package Classes Si bien están comenzando a surgir aplicaciones que gestionan la configuración de Struts en forma visual (Camino, StrutsConsole, etc.) es muy recomendable familiarizarse primero con la configuración manual antes de utilizar estas herramientas - HERRAMIENTA GENERADORA DE INFORMES - 22

34 Estado del Arte Actualmente ya se encuentran desarrolladas Herramientas Generadoras de Informes muy potentes, pero ninguna interesante de coste cero. La más puntera y por eso la que va a ser descrita es Seagate Crystal Reports 8: Seguramente la mejor H.G.I del mercado Posee un lenguaje de programación que se puede utilizar para personalizar la salida de los informes. Este lenguaje se parece bastante a VBScript, Visual Basic Script, aunque tiene una sintaxis propia que es diferente, y se ha mejorado respecto a anteriores versiones. Es una herramienta ideal para todos los programadores que trabajan con BBDD y generan informes habitualmente, ya que trabaja con casi cualquier herramienta de desarrollo del mercado Windows y tiene capacidades avanzadas para Internet. Es preciso un aprendizaje que puede llevar su tiempo. PVP: o Developer: 600 aprox. o Profesional: 470 aprox. Otra herramienta de generación de informes a tener en cuenta sería JasperReports, una herramienta popular y de código abierto, que usando un informe en XML, es capaz de presentarlo en pantalla, enviarlo a impresión o salvarlo en un documento PDF. - HERRAMIENTA GENERADORA DE INFORMES - 23

35 Justificación Tras este estudio previo no se ha considerado completo ninguno de estos paquetes. Por esta razón, se ha desarrollado el proyecto HGI que pretende cubrir todas estas carencias. Además, destacar que la herramienta diseñada es totalmente gratuita, ya que ha sido desarrollada con aplicaciones gratuitas y por tanto entiendo que esta debe ser open-source. La herramienta generadora de informes es capaz de presentar el proyecto en una hoja de cálculo, esto es fundamental para informes numéricos, ya que permite obtener gráficos, estadísticas, medias a partir del informe base. La herramienta también implementa la funcionalidad de mostrar o no ciertos datos para cada tipo de informe, esto puede ser útil a la hora de utilizar dichos informes por el personal de la empresa, ya que nos permite filtrar datos que no sea aconsejable mostrar, como la cuenta bancaria, o cualquier dato a proteger. No son necesarios conocimientos informáticos, ni VBScript, ni java, ni ningún otro tipo de lenguaje de programación, simplemente con saber hacer queries y conocer los estilos que acepta el informe seria suficiente. El sistema contiene también la funcionalidad de poder guardar y abrir informes, para nuevas ediciones de los mismos, o para guardar un histórico de meses, años, días o lo que se desee. - HERRAMIENTA GENERADORA DE INFORMES - 24

36 GENERACIÓN DE INFORMES Introducción En este apartado, se van a destacar los lenguajes o formatos utilizados por el sistema de generación de informes. Primeramente se presentan los posibles formatos en los cuales se muestra o se tiene la posibilidad de mostrar el informe. Estos son tres: HTML PDF XLS Cada uno de estos formatos de presentación tiene unas características óptimas para el tratado de este tipo de documentos, más adelante se describen para cada tipo en particular. También se ha considerado importante el hecho de destacar el lenguaje XML, ya que será el medio de almacenamiento intermedio de los informes utilizado entre la aplicación y el formato de presentación. Se han desechado lenguajes como *.txt por su apariencia de texto plano y *.doc, ya que no tienen características tan importantes para el desarrollo de informes como los elegidos. - HERRAMIENTA GENERADORA DE INFORMES - 25

37 Introducción a HTML HTML, HyperText Markup Language, es un lenguaje para la definición de estilos lógicos en documentos de hipertexto, siendo el medio principal para la diseminación de información en World Wide Web. HTML se limita a describir la estructura y el contenido de un documento, nunca el formato de la página y su apariencia, ya que éstos son muy dependientes del visualizador utilizado Directivas Las directivas (tags) en HTML proporcionan información adicional al cliente que visualiza el documento. Un documento sin ninguna directiva no resaltará ninguna parte del texto. Las directivas en HTML son códigos especiales que están contenidos en un documento. Se usan caracteres especiales para delimitarlas. Entidades Las entidades proporcionan un método para incluir caracteres especiales o reservados: Caracteres internacionales Símbolos tipográficos Símbolos especiales para HTML - HERRAMIENTA GENERADORA DE INFORMES - 26

38 Posibilidades de este formato para HGI Las posibilidades que presenta este tipo de presentación: Es un lenguaje estandarizado. No necesita la instalación previa de ninguna aplicación que tenga coste asociado, hoy en día se distribuyen muchas aplicaciones gratuitas que leen este tipo de formatos. La gran mayoría de ordenadores personales traen hoy en día aplicaciones capaces de leer este formato. Se puede exportar a otro tipo de lenguajes. Es un lenguaje muy fácil de escribir desde java, ya que es lenguaje base de presentación de sus documentos. Con las herramientas necesarias para la aplicación ya se cubre la posibilidad de mostrar el informe en este formato, ya que esta se despliega en un servidor Tomcat, y para acceder a la este despliegue es necesario un Explorer. Librería utilizada formato. No es necesaria ningún tipo de librería especial para escribir en este - HERRAMIENTA GENERADORA DE INFORMES - 27

39 Introducción a PDF PDF significa: Portable File Document ("fichero de documento portátil"). Como su propio nombre indica, es un formato de datos que se puede usar para describir documentos. Adobe, la firma que desarrolló el PDF, comercializa programas capaces de crear, editar y ver ficheros en formato PDF. Dado que las especificaciones de este formato de ficheros están públicamente disponibles, muchas compañías han desarrollado sus propios programas para usar PDFs. En el ámbito de la preimpresión, el formato PDF se usa cada vez más para intercambiar información entre distintas aplicaciones. Qué se puede hacer con PDF El formato PDF se puede usar para: Crear documentos electrónicos. Intercambiar datos. Archivar datos. Crear documentos interactivos. Qué aspecto tiene un fichero PDF Los ficheros PDF suelen tener la extensión *.PDF. Y un icono de este aspecto: - HERRAMIENTA GENERADORA DE INFORMES - 28

40 Cómo se abren los ficheros PDF La forma más fácil de ver ficheros PDF es descargar del sitio de Adobe el lector gratuito de PDFs llamado "Acrobat Reader". Cómo se crean los ficheros PDF Cada vez son más los programas capaces de "exportar" sus ficheros al formato PDF. Para las aplicaciones que no disponen de esta opción, basta con imprimir el fichero a un fichero PostScript y a continuación utilizar Acrobat Distiller para convertir ese fichero en un PDF. Posibilidades de este formato para HGI El formato PDF tiene unas peculiaridades muy destacables: Es un estándar multiplataforma, quiere decir que si alguien crea un fichero PDF en una estación de trabajo UNIX, éste se podrá abrir en un ordenador Windows. Los ficheros PDF pueden ser independientes del dispositivo. Los ficheros PDF son compactos, esto consigue que el tamaño de los PDFs se reduzca al mínimo. Los PDFs pueden contener elementos multimedia, elementos de hipertexto, enlaces a direcciones de correo y pequeñas miniaturas de las distintas páginas. El formato PDF es capaz de ser seguro. La persona que crea el PDF puede asignarle al fichero unas opciones de seguridad que hacen que sea imposible abrir el fichero sin una clave, impedir ningún cambio, impedir su impresión, y cosas similares. Como se ha dicho antes, en el ámbito de la preimpresión, el formato PDF se usa cada vez más. Para leer este formato no se necesita ninguna aplicación con sote asociado, basta con descargarse la aplicación Adobe Acrobat Reader que es gratuita y esta disponible en Internet. - HERRAMIENTA GENERADORA DE INFORMES - 29

41 PDF también tiene sus desventajas Por supuesto. Las hay: El formato PDF es un formato propiedad de una compañía. Adobe decide sus especificaciones y las hace públicas. El formato PDF intenta serlo todo para todo el mundo. Eso hace que no sea tan eficiente en algunas tareas como lo sería una herramienta específica para ese fin. El formato PDF está orientado a la visualización de documentos. Por eso no conserva la estructura lógica del documento. Los PDFs no están hechos para ser editados. Se pueden hacer pequeños cambios dentro de un PDF, pero es virtualmente imposible añadirle grandes bloques de texto Librería utilizada Para el desarrollo de la parte del proyecto HGI relacionada con el PDF se ha usado la librería Itest, que es una librería open-source, que añade al java varias funciones relacionadas con la creación y modificación de archivos *.PDF. - HERRAMIENTA GENERADORA DE INFORMES - 30

42 Introducción a Excel La hoja de cálculo Excel de Microsoft es una aplicación integrada en el entorno Windows cuya finalidad es la realización de cálculos sobre datos introducidos en la misma, así como la representación de estos valores de forma gráfica. A estas capacidades se suma la posibilidad de utilizarla como base de datos. Excel trabaja con hojas de cálculo que están integradas en libros de trabajo. Un libro de trabajo es un conjunto de hojas de cálculo y otros elementos como gráficos, hojas de macros, etc. El libro de trabajo contiene 16 hojas de cálculo que se pueden eliminar, insertar, mover, copiar, cambiar de nombre... Cada una de las hojas de cálculo Excel es una cuadrícula rectangular que tiene filas y 256 columnas. Las filas están numeradas desde el uno y las columnas están rotuladas de izquierda a derecha de la A a la Z, y con combinaciones de letras a continuación. La ventana muestra sólo una parte de la hoja de cálculo. La unidad básica de la hoja de cálculo es una celda. Las celdas se identifican con su encabezamiento de columna y su número de fila. La hoja de cálculo se completa introduciendo texto, números y fórmulas en las celdas. Con Excel pueden hacerse distintos tipos de trabajos: Hojas de Cálculo, Bases de Datos y Gráficos, de lo que se tratará en este manual, pero también Macros (un documento similar a una hoja de cálculo que contiene grupos de instrucciones para realizar tareas específicas). - HERRAMIENTA GENERADORA DE INFORMES - 31

43 Qué aspecto tiene un fichero XLS aspecto: Los ficheros PDF suelen tener la extensión *.XLS. Y un icono de este Cómo se abren los ficheros XLS Si en lugar de crear un nuevo documento se quiere abrir uno ya guardado debe elegirse Archivo Abrir o pulsar el botón y aparecerá un cuadro de diálogo donde se puede localizar el documento, se selecciona y se pulsa Abrir. Cómo se crean los ficheros XLS Para crear un nuevo libro de trabajo se debe elegir dentro del menú Archivo la opción Nuevo. También se puede crear un nuevo libro pulsando el botón de página en blanco que está dentro de la barra estándar. Posibilidades de este formato para HGI El formato XLS tiene unas peculiaridades muy destacables: Es una aplicación encuadrada en el entorno Windows, que como bien sabemos, es el sistema operativo utilizado por la gran mayoría de usuarios. Dentro de este entorno, se integra en la herramienta Microsoft Office, muy distribuida también en el mundo de los ordenadores personales. Al ser una hoja de cálculo, permite el uso de los datos de los informes para múltiples opciones, como son gráficos, estadísticas - HERRAMIENTA GENERADORA DE INFORMES - 32

44 Además al ser una herramienta Microsoft, brinda la posibilidad de guardar, abrir, imprimir Librería utilizada Para el desarrollo de la parte del proyecto HGI relacionada con el XLS se ha usado la librería POI 2.5, una librería open-source, cuyo proyecto consiste en APIs para manipular varios formatos de ficheros basados en el formato de Documento Compuesto OLE 2 de Microsoft, utilizando Java puro. En concreto, se pueden leer y escribir ficheros MS Excel utilizando Java. Pronto se podrá leer y escribir ficheros Word utilizando Java. POI es su solución Java Excel así como su solución Java Word. Entre los ficheros basados en el formato de Documento Compuesto OLE 2 de Microsoft se incluyen la mayor parte de los ficheros de Microsoft Office tales como XLS y DOC así como formatos de fichero basados en el API de serialización MFC. - HERRAMIENTA GENERADORA DE INFORMES - 33

45 Introducción a XML XML es una familia de tecnologías creadas por el 3W Consortium en 1996, entre las que se incluye el metalenguaje de marcado XML que sirve para definir otros lenguajes de marcado y representar la información con la semántica deseada, de tal forma que los elementos que lo componen puedan dar información sobre lo que contienen, y no necesariamente sobre su estructura física o presentación, como ocurre en HTML. La familia de tecnologías XML es independiente de la plataforma sobre la que se use, por lo tanto compatible con todo tipo de sistemas. El lenguaje XML es un subconjunto simplificado del lenguaje SGML, que tiene como objetivo el poder estructurar información en un documento de texto plano, lo cual le hace un lenguaje fácil de depurar y de entender. Es un lenguaje ideal para la creación de documentos con información estructurada, como por ejemplo hojas de cálculo, ficheros de configuración, o como en el caso del HGI, meros informes. XML contiene un conjunto de reglas para crear estos documentos de texto con el objetivo de evitar que la información de estos documentos sea ambigua. A diferencia de HTML, las marcas y las reglas de un documento XML son estrictas, y una etiqueta o un atributo olvidado pueden dejar inservible a un documento. También es un lenguaje modular que permite la creación de documentos a partir de otros documentos con distintos formatos, o sea con diferentes tipos de atributos, eliminando las ambigüedades entre los distintos documentos mediante mecanismos de espacios de nombres. - HERRAMIENTA GENERADORA DE INFORMES - 34

46 Posibilidades de este formato para HGI El formato XLS tiene unas peculiaridades muy destacables: El lenguaje XML, se ha destacado en este documento debido a su importancia como almacenamiento medio entre el formato de presentación y la aplicación. En este lenguaje, se almacenan todas las opciones que definen el informe, desde la query de acceso a la base de datos, hasta los estilos básicos de presentación. Librería utilizada Para el desarrollo de la parte del proyecto HGI relacionada con XML se ha usado la librería Jdom, que aunque está en sus primeras versiones, ha causado un gran interés debido a la facilidad de procesar XML con Java comparado con otras librerías como DOM o SAX, ya que esta ha sido puramente diseñada para el entorno Java, siendo capaz de parsear, manipular y externalizar el XML usando constructores estándar de Java. También se ha utilizado la librería XercesImpl, que es una Librería de clases Java usada por Apache Ant para procesar XML. - HERRAMIENTA GENERADORA DE INFORMES - 35

47 Conclusiones Los motivos por los cuales se han elegido estos tres formatos para los informes son los siguientes: Los tres son lenguajes estándar. Los *.pdf pueden contener elementos multimedia, elementos de hipertexto, enlaces a direcciones de correo y pequeñas miniaturas de las distintas páginas. En el ámbito de la preimpresión, el formato PDF se usa cada vez más. El formato *.xls, al ser una hoja de cálculo, permite el uso de los datos de los informes para múltiples opciones, como son gráficos, estadísticas Los tres lenguajes permiten almacenar los informes realizados independientemente. Los tres formatos en conjunto, cubren las necesidades más importantes en el área de edición de informes. El formato *.html, se puede exportar a otro tipo de lenguajes. - HERRAMIENTA GENERADORA DE INFORMES - 36

48 PLANIFICACIÓN DE PROYECTO Metodología a seguir La metodología a seguir incluirá las siguientes tareas: 1. Documentación: En esta etapa se realizarán consultas bibliográficas relacionadas con el análisis y diseño de sistemas de información con UML, a los fines de elaborar un manual de UML con sus diagramas, definición y ejemplos. 2. Análisis de requerimientos: En esta etapa se busca la necesidad del usuario y la forma en que se va a presentar la solución. Actividades: Identificar Casos de Uso del sistema Dar detalle a los casos de uso descritos Definir una interfaz inicial del sistema Desarrollar el Diagramas necesarios Desarrollar Diccionario de Datos 3. Diseño del sistema: En esta etapa se define una subdivisión del sistema por funciones y la forma de comunicación para su interacción Actividades: Identificar la arquitectura del sistema Definir los componentes del sistema Refinar los casos de uso - HERRAMIENTA GENERADORA DE INFORMES - 37

49 4. Diseño Detallado: en esta etapa se adecuará el análisis a las características específicas del software. Actividades: Agregar detalles de implementación al modelo Desarrollar el modelo de interfaz Desarrollar los modelos de control, persistencia y comunicación - HERRAMIENTA GENERADORA DE INFORMES - 38

50 Ciclo de Vida UML Historia del UML La notación UML se deriva y unifica las tres metodologías de análisis y diseño Orientada a Objeto más extendidas: Metodología de Grady Booch para la descripción de conjuntos de objetos y sus relaciones. Técnica de modelado orientada a objetos de James Rumbaugh (OMT: Object-Modeling Technique). Aproximación de Ivar Jacobson (OOSE: Object- Oriented Software Engineering) mediante la metodología de casos de uso (use case). El desarrollo de UML comenzó a finales de 1994 cuando Grady Booch y Jim Rumbaugh de Rational Software Corporation empezaron a unificar sus métodos. A finales de 1995, Ivar Jacobson y su compañía Objectory se incorporaron a Rational en su unificación, aportando el método OOSE. De las tres metodologías de partida, las de Booch y Rumbaugh pueden ser descritas como centradas en objetos, ya que sus aproximaciones se enfocan hacia el modelado de los objetos que componen el sistema, su relación y colaboración. Por otro lado, la metodología de Jacobson es más centrada a usuario, ya que todo en su método se deriva de los escenarios de uso. UML se ha ido fomentando y aceptando como estándar desde el OMG que es también el origen de CORBA, el estándar líder en la industria para la programación de objetos distribuidos. En 1997 UML 1.1 fue aprobada por la OMG convirtiéndose en la notación estándar de facto para el análisis y el diseño orientado a objetos. - HERRAMIENTA GENERADORA DE INFORMES - 39

51 Introducción Desde los inicios de la informática se han estado utilizando distintas formas de representar los diseños de una manera más bien personal o con algún modelo gráfico, La falta de estandarización en la representación gráfica de un modelo impedía que los diseños gráficos realizados se pudieran compartir fácilmente entre distintos diseñadores, con este objetivo se creo el Lenguaje Unificado de Modelado (UML). UML es el lenguaje de modelado de sistemas de software más conocido en la actualidad; es el estándar internacional aprobado por la OMG (Object Managment Group), consorcio creado en 1989 responsable de la creación, desarrollo y revisión de especificaciones para la industrial del software. UML es un grupo de especificaciones de notaciones orientadas a Objetos, las cuales están compuestas por distintos diagramas, que representan las diferentes etapas del desarrollo de un proyecto de software. Se entiende por ciclo de vida de un proyecto software a todas las etapas por las que pasa un proyecto, desde la concepción de la idea que hace surgir la necesidad de diseñar un sistema software, pasando por el análisis, desarrollo, implantación y mantenimiento del mismo y hasta que finalmente muere por ser sustituido por otro sistema. - HERRAMIENTA GENERADORA DE INFORMES - 40

52 Aunque UML es bastante independiente del proceso, para obtener el máximo rendimiento de UML se debería considerar un proceso que fuese: Dirigido por los casos de uso, o sea, que los casos de uso sean un artefacto básico para establecer el comportamiento del deseado del sistema, para validar la arquitectura, para las pruebas y para la comunicación entre las personas involucradas en el proyecto. Centrado en la arquitectura de modo que sea el artefacto básico para conceptuar, construir, gestionar y hacer evolucionar el sistema. Un proceso iterativo, que es aquel que involucra la gestión del flujo de ejecutables del sistema, e incremental, que es aquel donde cada nueva versión corrige defectos de la anterior e incorpora nueva funcionalidad. Un proceso incremental se denomina dirigido por el riesgo, lo que significa que cada nueva versión se ataca y reducen los riesgos más significativos para el éxito del proyecto. Este proceso, dirigido a los casos de uso, centrado en la arquitectura, iterativo e incremental pude descomponerse en fases, donde cada fase es el intervalo de tiempo entre dos hitos importantes del proceso, cuando se cumplen los objetivos bien definidos, se completan los artefactos y se toman decisiones sobre si pasar o no a la siguiente fase. - HERRAMIENTA GENERADORA DE INFORMES - 41

53 En el ciclo de vida de un proyecto software existen cuatro fases: 1. La iniciación, es cuando la idea inicial está lo suficientemente fundada para poder garantizar la entrada en la siguiente fase. 2. La siguiente fase, es la de elaboración, esta fase es cuando se produce la definición de la arquitectura y la visión del producto. En esta fase se deben determinar los requisitos del sistema y las pruebas sobre el mismo. 3. Posteriormente se pasa a la fase de construcción, que es cuando se pasa de la base arquitectónica ejecutable hasta su disponibilidad para los usuarios, en esta fase se reexaminan los requisitos y las pruebas que ha de soportar. 4. La transición, es cuando el software se pone en mano de los usuarios. Raramente el proceso del software termina en la etapa de transición, incluso durante esta fase el proyecto es continuamente reexaminado y mejorado erradicando errores y añadiendo nuevas funcionalidades no contempladas. Un elemento que distingue a este proceso y afecta a las cuatro fases es una iteración, que es un conjunto bien definido de actividades, con un plan y unos criterios de evaluación, que acaban en una versión del producto, bien interna o externa. - HERRAMIENTA GENERADORA DE INFORMES - 42

54 Qué es UML UML es el primer método en publicar un meta-modelo en su propia notación, incluyendo la notación para la mayoría de la información de requisitos, análisis y diseño. Se trata pues de un meta-modelo auto-referencial. UML es un lenguaje estándar que sirve para escribir los planos del software, puede utilizarse para visualizar, especificar, construir y documentar todos los artefactos que componen un sistema con gran cantidad de software. UML puede usarse para modelar desde sistemas de información hasta aplicaciones distribuidas basadas en Web, pasando por sistemas empotrados de tiempo real. UML es solamente un lenguaje por lo que es sólo una parte de un método de desarrollo software, es independiente del proceso aunque para que sea optimo debe usarse en un proceso dirigido por casos de uso, centrado en la arquitectura, iterativo e incremental. UML es un lenguaje por que proporciona un vocabulario y las reglas para utilizarlo, además es un lenguaje de modelado lo que significa que el vocabulario y las reglas se utilizan para la representación conceptual y física del sistema. UML es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo ya que al ser estándar, los modelos podrán ser interpretados por personas que no participaron en su diseño (e incluso por herramientas) sin ninguna ambigüedad. En este contexto, UML sirve para especificar, modelos concretos, no ambiguos y completos. - HERRAMIENTA GENERADORA DE INFORMES - 43

55 Debido a su estandarización y su definición completa no ambigua, y aunque no sea un lenguaje de programación, UML se puede conectar de manera directa a lenguajes de programación como Java, C++ o Visual Basic, esta correspondencia permite lo que se denomina como ingeniería directa (obtener el código fuente partiendo de los modelos) pero además es posible reconstruir un modelo en UML partiendo de la implementación, o sea, la ingeniería inversa. UML proporciona la capacidad de modelar actividades de planificación de proyectos y de sus versiones, expresar requisitos y las pruebas sobre el sistema, representar todos sus detalles así como la propia arquitectura. Mediante estas capacidades se obtiene una documentación que es valida durante todo el ciclo de vida de un proyecto. El lenguaje UML se compone de tres elementos básicos, los bloques de construcción, las reglas y algunos mecanismos comunes. Estos elementos interaccionan entre sí para dar a UML el carácter de completitud y noambigüedad. Los bloques de construcción se dividen en tres partes: Elementos, que son las abstracciones de primer nivel. Relaciones, que unen a los elementos entre sí. Diagramas, que son agrupaciones de elementos. Existen cuatro tipos de elementos en UML, dependiendo del uso que se haga de ellos: Elementos estructurales. Elementos de comportamiento. Elementos de agrupación Elementos de anotación. - HERRAMIENTA GENERADORA DE INFORMES - 44

56 Las relaciones, a su vez se dividen para abarcar las posibles interacciones entre elementos que se nos pueden presentar a la hora de modelar usando UML, estas son: relaciones de dependencia, relaciones de asociación, relaciones de generalización y relaciones de realización. Se utilizan diferentes diagramas dependiendo de qué, nos interese representar en cada momento, para dar diferentes perspectivas de un mismo problema, para ajustar el nivel de detalle..., por esta razón UML soporta un gran numero de diagramas diferentes aunque, en la practica, sólo se utilicen un pequeño número de combinaciones. UML proporciona un conjunto de reglas que dictan las pautas a la hora de realizar asociaciones entre objetos para poder obtener modelos bien formados, estas son reglas semánticas que afectan a los nombres, al alcance de dichos nombres, a la visibilidad de estos nombres por otros, a la integridad de unos elementos con otros y a la ejecución, o sea la vista dinámica del sistema. UML proporciona una serie de mecanismos comunes que sirven para que cada persona o entidad adapte el lenguaje a sus necesidades, pero dentro de un marco ordenado y siguiendo unas ciertas reglas para que en el trasfondo de la adaptación no se pierda la semántica propia de UML. Dentro de estos mecanismos están las especificaciones, que proporcionan la explicación textual de la sintaxis y semántica de los bloques de construcción. Otro mecanismo es el de los adornos que sirven para conferir a los modelos de más semántica, los adornos son elementos secundarios ya que proporcionan más nivel de detalle, que quizá en un primer momento no sea conveniente descubrir. - HERRAMIENTA GENERADORA DE INFORMES - 45

57 Las divisiones comunes permiten que los modelos se dividan al menos en un par de formas diferentes para facilitar la comprensión desde distintos puntos de vista, en primer lugar tenemos la división entre clase y objeto (clase es una abstracción y objeto es una manifestación de esa abstracción), en segundo lugar tenemos la división interfaz / implementación donde la interfaz presenta un contrato (algo que se va a cumplir de una determinada manera) mientras que la implementación es la manera en que se cumple dicho contrato. Por ultimo, los mecanismos de extensibilidad que UML proporciona sirven para evitar posibles problemas que puedan surgir debido a la necesidad de poder representar ciertos matices, por esta razón UML incluye los estereotipos, para poder extender el vocabulario con nuevos bloques de construcción, los valores etiquetados, para extender las propiedades un bloque, y las restricciones, para extender la semántica. De esta manera UML es un lenguaje estándar "abierto-cerrado" siendo posible extender el lenguaje de manera controlada. - HERRAMIENTA GENERADORA DE INFORMES - 46

58 Estrategia de gestión del riesgo Para gestionar los posibles problemas que puedan surgir durante el proyecto se llevará a cabo una estrategia de riesgos proactiva, que consistirá en identificar los riesgos potenciales, valorar su probabilidad e impacto, priorizarlos y establecer un plan de gestión para los más importantes. Análisis del riesgo Tras un estudio de mi propia persona, el producto, el proceso y el proyecto, los posibles riesgos conocidos y predecibles que podrían comprometer el éxito del proyecto y que hemos identificado han sido los siguientes: Cambio en los requisitos del producto. Problemas con el empleo de nuevas tecnologías. Abandono o deficiencias en el rendimiento de mi propia persona. Cambio en el diseño del producto. Deficiencias en la documentación del código. Casos de prueba diseñados incorrectamente. Problemas a la hora de comunicarse con el profesor. Estimación del proyecto significativamente baja. Problemas con la disponibilidad del hardware y el software necesarios para el proyecto. - HERRAMIENTA GENERADORA DE INFORMES - 47

59 Estudio de los riesgos Los riesgos del proyecto, priorizados en función de su probabilidad y su impacto, quedarían de la siguiente forma: Riesgo Probabilida d Impacto Nivel Abandono del proyecto por mi parte Remota Catastrófico Intolerable Cambio en los requisitos del producto Probable Serio Alto Problemas con el empleo de nuevas tecnologías Estimación del proyecto significativamente baja Probable Serio Alto Ocasional Crítico Alto Casos de prueba diseñados incorrectamente Probable Menor Medio Cambio en el diseño del producto Ocasional Medio Bajo Problemas de comunicación con el profesor Ocasional Menor Bajo Problemas de comunicación con el director Ocasional Menor Bajo Problemas con la disponibilidad del Hw y Sw Remoto Serio Bajo Deficiencias en la documentación del código Probable Insignificante Bajo Problemas con la experiencia Remoto Menor Tolerable - HERRAMIENTA GENERADORA DE INFORMES - 48

60 Plan de gestión del riesgo Basándonos en la regla de Pareto y considerando sólo los riesgos de niveles intolerable y alto ubicados por encima de la línea de corte, desarrollaremos el plan de gestión como sigue: Riesgo: Abandono de mi persona Reducción: No es posible, sino lo hago yo, quien lo va a hacer por mí. Riesgo: Cambio en los requisitos del producto Reducción: Hay que asegurarse de que el cliente tiene una idea formal de lo que se requiere y de que estará dispuesto a establecer una comunicación fluida con el equipo, a participar en las reuniones para identificar los requisitos y a participar en las distintas revisiones que se llevarán a cabo. Supervisión: Se supervisará cuidadosamente el cumplimiento de los pasos de reducción del riesgo descritos en el punto anterior. Gestión: Revisar los requisitos, el análisis y diseño y la planificación temporal. Riesgo: Problemas con el empleo de nuevas tecnologías Reducción: Formación en las nuevas tecnologías que se van a emplear. Supervisión: Se supervisará que la formación sea la adecuada y que se lleva a cabo de acuerdo con la planificación temporal. Gestión: Habría que profundizar en la formación hasta alcanzar la suficiente para resolver el problema. Se produciría un reajuste en la planificación temporal. Riesgo: Estimación del proyecto significativamente baja Reducción: Se realizará una estimación lo más precisa posible. Supervisión: Se supervisará diariamente que el desarrollo del proyecto se ajusta a la estimación realizada. Gestión: En caso de que se produjera un desajuste, aunque fuera mínimo, se resolvería mediante horas extras hasta que la marcha del proyecto volviera a coincidir con la estimación. - HERRAMIENTA GENERADORA DE INFORMES - 49

61 En el caso de que, a lo largo del proyecto, surgiera cualquier otro problema distinto de los identificados, inmediatamente habría que evaluar el riesgo encontrado y proponer un plan para gestionarlo. No en vano se enfatizará un proceso continuo, pudiéndose modificar los riesgos identificados conforme se vaya teniendo más información y pudiéndose sugerir y agregar unos nuevos a medida que se vaya logrando un mejor criterio. - HERRAMIENTA GENERADORA DE INFORMES - 50

62 Recursos del Proyecto Personal Para el desarrollo del proyecto se cuenta con un equipo, compuesto por mi persona, supervisado por un director y coordinado por un profesor de la Universidad Pontificia de Comillas. Yo soy el que decido, mi director aconseja y el profesor de la Universidad decide si es correcto o no. Todas las decisiones se van a tomar a consenso, ya que así es como se obtienen los mejores resultados. Hardware y software La tecnología utilizada para el desarrollo del proyecto, tanto hardware como software, será la siguiente: Para la realización de la planificación temporal se ha optado por la utilización de la herramienta Microsoft Project, que permite, de forma sencilla, el manejo de redes de tareas y posibilita la organización y visualización de los datos (actividades, tiempos, precedencias, recursos y costes), en distintos formatos de manera automática (redes de tareas, estructura de descomposición de trabajos, calendario...), así como generación automática de ficheros de resultados. Para el desarrollo de la documentación se ha optado por la utilización de Microsoft Word. El sistema operativo a utilizar será el Windows XP - HERRAMIENTA GENERADORA DE INFORMES - 51

63 El entorno de desarrollo será el Eclipse, por ser una herramienta actual y potente en el desarrollo de aplicaciones JAVA. Además, los miembros del equipo poseen experiencia a la hora de su utilización. El gestor de la base de datos será Mysql, con la ventaja de que su uso es gratuito. La herramienta de creación y manipulación de la base de datos será SqlYog por su fácil manejo y por ser conocida por el grupo. El servidor Web a utilizar es el Tomcat 5. Como hardware dispondremos de los equipos que nos brinda la Facultad y de los equipos personales y de trabajo del desarrollador. - HERRAMIENTA GENERADORA DE INFORMES - 52

64 Lista de Recursos Los datos de los miembros del equipo son: NOMBRE Juan Mohedano Cuadrado José Luís Cumplido (Director) David Contreras (Profesor) CARGO Analista- Programador Director Coordinador - HERRAMIENTA GENERADORA DE INFORMES - 53

65 Modelo de Dominio INGENIERÍA DEL SOFTWARE DAO - Llama CONNECTIONMANAGER - Implementa REPORTBUILDER - Utiliza DOCUMENTBUILDER - Heredan de REPORTBUILDERPDF REPORTBUILDERHTML REPORTBUILDERXLS SELECTREPORTACTION <<implements>> <<interfaz>> Gráficos - HERRAMIENTA GENERADORA DE INFORMES - 54

66 Modelo Dinámico Detallado Diagrama de Clases El Diagrama de Clases es el diagrama principal para el análisis y diseño. Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La definición de clase incluye definiciones para atributos y operaciones. El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones. El mundo real puede ser visto desde abstracciones diferentes (subjetividad). Mecanismos de abstracción Clasificación / Instanciación Composición / Descomposición Agrupación / Individualización Especialización / Generalización La clasificación es uno de los mecanismos de abstracción más utilizados. La clase define el ámbito de definición de un conjunto de objetos, y cada objeto pertenece a una clase, Los objetos se crean por instanciación de las clases. Cada clase se representa en un rectángulo con tres compartimientos: Nombre de la clase Atributos de la clase Métodos de la clase - HERRAMIENTA GENERADORA DE INFORMES - 55

67 Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. Por esta razón se crearon niveles de visibilidad para los elementos que son: (-) Privado: es el más fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminología C++) (#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación) Relaciones entre clases Los enlaces entre objetos pueden representarse entre las respectivas clases y sus formas de relación son: Asociación y Agregación. Generalización/Especialización. Las relaciones de Agregación y Generalización forman jerarquías de clases. Asociación La asociación expresa una conexión bidireccional entre objetos. Una asociación es una abstracción de la relación existente en los enlaces entre los objetos. Puede determinarse por la especificación de multiplicidad (mínima...máxima) Uno y sólo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) 0..* Cero o muchos 1..* Uno o muchos (al menos uno) - HERRAMIENTA GENERADORA DE INFORMES - 56

68 Agregación La agregación representa una relación parte_de entre objetos. En UML se proporciona una escasa caracterización de la agregación. Esta relación puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes. Una agregación se podría caracterizar según la pregunta: Puede el objeto parte comunicarse directamente con objetos externos al objeto agregado? No => inclusiva Si => no inclusiva Puede cambiar La composición del objeto agregado? Si => dinámica No => estática Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo. Un Diagrama de Clases muestra la abstracción de una parte del dominio. Un Diagrama de Objetos representa una situación concreta del dominio. Las clases abstractas no son instanciadas. - HERRAMIENTA GENERADORA DE INFORMES - 57

69 Generalización Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases, se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización. La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas. La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. Generalización y Especialización no son operaciones reflexivas ni simétricas pero sí transitivas. La especialización es una técnica muy eficaz para la extensión y reutilización. La noción de clase está próxima a la de conjunto. Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase. Generalización y especialización expresan relaciones de inclusión entre conjuntos - HERRAMIENTA GENERADORA DE INFORMES - 58

70 Diagrama de clases HGI Paquete iu SelectReportAction + perform(actionmapping _mapping, ActionForm _form, HttpServletRequest _request,httpservletresponse _response) Paquete servicios ReportBuilder - protected _xmldocdef : Document - protected CONFIG : String - protected TITLE : String - protected QUERY : String - protected SECTION : String - protected COLUMN : String - protected INDEXEDBY : String - protected ID : String - protected HEADER : String - protected VALUE : String - protected DB : String - protected DRIVER : String - protected URL : String - protected USER : String - protected PASSWORD : String - protected TITLESTYLE : String - protected BORDER : String - protected ALIGN : String - protected BackGroundColor : String - protected _title : String - protected _query : String - protected _titlesection : String - HERRAMIENTA GENERADORA DE INFORMES - 59

71 ReportBuilder - protected _titlesection : String - protected _titlecolumn : String - protected _headercolumn : String - protected _idcolumn : String - protected _valuecolumn : String - protected _reporttitlestyle : String - protected _sectiontitlestyle : String - protected _columntitlestyle : String - protected _configalign : String - protected _sectionalign : String - protected _columnalign : String - protected _configtitlebgcolor : String - protected _sectiontitlebgcolor : String - protected _columntitlebgcolor: String - private ConnectionManager _connectionmanager; - public _driver : String - public _url : String - public _user : String - public _pwd : String - protected _sectionborder : int - protected _configborder : int + public ReportBuilder(Document) : Document + public void parseconfigzone() + public void parsesectionzone() + public void parsecolumnzone() + public getconnection() : Connection + protected getchildtextnotnull(element, String) : String + protected getchildtextintnotnull(element, String) : int + protected getchildtextshortnotnull(element, String) : int - HERRAMIENTA GENERADORA DE INFORMES - 60

72 ReportBuilderHtml - public _html : String - public _nombrepropiedadescolumna:arraylist - public ps : PreparedStatement - public columnelement : List - public iter : Iterator - public poscolumna : int - public element : Element - public value : String - public _rsdc : ArrayList - public dynabean : DynaBean - public _onecolumnname : String - public _onecolumnvalue : String - public configelement : Element + public ReportBuilderHtml(Document) : Document + public print() : String + private void addline(string) + protected void parsehtlmconfigzone() ReportBuilderPdf - private static final Widths : float[] - protected static FONTTITLESIZE : String - protected static FAMILYFONT : String - protected static FONTSIZE : String - static BACKGROUNDCOLORPDF : String - protected static LETTERCOLOR : String - protected _fonttitlereportsize : int - protected _fonttitlesectionsize : int - protected _fonttitlecolumnsize : int - protected _fontcolumndatasize : int - protected _reportfamilyfont : String - protected _sectionfamilyfont : String - protected _columnfamilyfont : String - protected _align : String - protected _backgroundcolorreport: String - protected _backgroundcolorsection : String - HERRAMIENTA GENERADORA DE INFORMES - 61

73 ReportBuilderPdf - protected String _backgroundcolorcolumn; - protected String _lettercolorreport; - protected String _lettercolorsection; - protected String _lettercolorcolumn; com.lowagie.text.document _pdfdocument - public ps : PreparedStatement - public out_ : PdfWriter - public configelement : Element - public columnelement : List - public iter : Iterator - public element : Element - public tituloinforme : PdfPTable - public cell : PdfPCell - public tituloseccion : PdfPTable - public numcolumns : int - public titulocolumnas : PdfPTable - public crearcolumnas : PdfPTable - public _rsdc : ArrayList - public _nombrepropiedadescolumna : ArrayList - public value : String - public dynabean : DynaBean - public _onecolumnname : String - public _onecolumnvalue : String - public j : int + public ReportBuilderPdf(Document) : Document + public void print(outputstream) + private void parsepdfconfigzone() + private void parsepdfsectionzone() + public void parsepdfcolumnzone() + private creartituloinforme(int, int) : PdfPTable + private creartituloseccion(int, int) : PdfPTable + private createcell(string, int, String, String) : PdfPCell + private creartitulocolumnas (int, int) : PdfPTable + private crearcolumnas (int) : PdfPTable + private convertirfuente(string) : String + private convertiralign(string) : int + private convertircolor(string) : Color - HERRAMIENTA GENERADORA DE INFORMES - 62

74 ReportBuilderXls - protected _workbook : HSSFWorkbook - public static final NOMBRE_HOJA : String - protected static FONTTITLESIZE : String - protected static FAMILYFONT : String - protected static FONTSIZE : String - protected static COLUMNWIDHTXLS : String - protected static TITLEFONTITALIC : String - protected static TITLEFONTBOLD : String - protected static TITLEFONTHEIGHT : String - protected static LETTERCOLOR : String - protected static BACKGROUNDCOLORXLS : String - protected _fonttitlereportsize : int - protected _fonttitlesectionsize : int - protected _fonttitlecolumnsize : int - protected _fontcolumndatasize : int - protected _reportfamilyfont : String - protected _sectionfamilyfont : String - protected _columnfamilyfont : String - protected _aligntitle : String - protected _alignconfig : String - protected _aligncolumn : String - protected _columnwidth : int - public _titlefontitalic : Boolean - public _titlefontbold : Boolean - protected _titlefontheight : int - protected _lettercolorconfig : String - protected _lettercolorsection : String - protected _lettercolorcolumn : String - protected _backgroundcolor : String - protected _backgroundcolorsection : String - protected _backgroundcolorcolumn : String - protected _titlefontheightsection : int - protected _titlefontheightcolumn : int - public celltitle : HSSFCell - public out_ : PdfWriter - private e : Exception - public sectionslist : List - public numsections : int - public sheet : HSSFSheet - public row : HSSFRow - public cell : HSSFCell - HERRAMIENTA GENERADORA DE INFORMES - 63

75 ReportBuilderXls - public configelement : Element - public sectionslist : List - public i : int - public sectionslist : List - public element : Element - public numsections : int - public columnelement : List - public iter : Iterator - public j : int - public columnelement : List - public datavalue : ArrayList - public value : String - public ps : PreparedStatement - public _rsdc : ArrayList - public i : int - public j1 : int - public dynabean : DynaBean - public j : int - public _onecolumnname : String - public _onecolumnvalue : String - public alignment : int - public italic_ : boolean - public bold : boolean - public fontsize_ : int - public _color : short - public _backgroundcolor : short + public ReportBuilderXls(Document) : Document + public void print(outputstream) + private rendertitle() : HSSFCell + protected void parsexlsconfigzone() + private void rendertitlesection() + private void rendertitlecolumns() + private void renderdatacolumns() + private formatxlscell( HSSFCell, int, boolean, boolean, int, short, short) : HSSFCell + private convertiralign(string) : int + private convertircolor(string) : short - HERRAMIENTA GENERADORA DE INFORMES - 64

76 DocumentBuilder - protected sb : org.jdom.input.saxbuilder - protected _xmldocdef : Document - protected file : FileReader - protected testpath : String + public static builddom(string) : Document Paquete DAO ConnectionManager - protected prop : Properties - protected user : String - protected pwd : String - protected drv: java.sql.driver - protected conn : Connection + public getconnection(string driver,string url, String user, String pwd) : Connection DAO - protected ps : PrepareStatement - protected rset : ResultSet - protected rsdc : RowSetDynaClass - protected conn : Connection - protected query : String - protected where : String - protected order : String + public static getreportlist(connection, String, String, String, PreparedStatement) : Collection - HERRAMIENTA GENERADORA DE INFORMES - 65

77 Modelo de Casos de Uso Los Casos de Uso no son parte del diseño, sino parte del análisis. De forma que al ser parte del análisis nos ayudan a describir qué es lo que es sistema debe hacer. Los Casos de Uso son qué hace el sistema desde el punto de vista del usuario. Es decir, describen un uso del sistema y cómo este interactúa con el usuario. Por la notación UML se puede esperar que los Casos de Uso sean también una forma visual de representar la información. Sin embargo, si bien los casos de usos se pueden agrupar en diagramas, los diagramas no son lo importante. Si lo primordial de los casos de uso no son los diagramas, entonces que es lo importante? Lo realmente útil de los casos de uso es el documento que describe el caso de uso, en este documento se explica la forma de interactuar entre el sistema y el usuario. A continuación se presenta la estructura básica de un caso de uso: Nombre: Autor: Descripción: Actores: Precondiciones: Flujo Normal: Flujo Alternativo: Poscondiciones: - HERRAMIENTA GENERADORA DE INFORMES - 66

78 Dando por hecho el significado de los campos evidentes como nombre, autor, fecha y descripción, se pasa a describir los demás. Los actores son aquellos que interactúan con el sistema. Las precondiciones son los hechos que se han de cumplir para que el flujo de evento se pueda llevar a cabo. Luego tenemos el flujo de eventos, que corresponde a la ejecución normal y exitosa del caso de uso. Los flujos alternativos son los que nos permiten indicar qué es lo que hace el sistema en los casos menos frecuentes e inesperados. Por último, las poscondiciones son los hechos que se ha de cumplir si el flujo de eventos normal se ha ejecutado correctamente. De forma que, la estructura de un caso de uso es un documento como el anteriormente presentado. Los casos de uso se pueden detallar más o menos dependiendo de la necesidad del problema. - HERRAMIENTA GENERADORA DE INFORMES - 67

79 La plantilla completa de los casos de uso sería: Use Case ID: Use Case Name: Created By: Date Created: Last Updated By: Date Last Updated: Actors: Description: Trigger: Preconditions: 1. Postconditions: 1. Normal Flow: 1. Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Assumptions: Notes and Issues: - HERRAMIENTA GENERADORA DE INFORMES - 68

80 Diagrama de Casos de Uso Realizar un nuevo informe Abrir un informe Guardar un informe Ejecutar un informe - HERRAMIENTA GENERADORA DE INFORMES - 69

81 Descripción de Casos de Uso Realizar un informe Casos de Uso Nombre: Realizar un nuevo informe Actor primario: Usuario de la aplicación Actores secundarios: Precondiciones: Trigger: Se encarga un nuevo informe por parte del cargo superior Escenario Primario: 1. El usuario se conecta con la aplicación 2. El usuario selecciona el caso de uso 3. El usuario introduce la información de configuración 4. El usuario introduce la información de sección 5. El usuario introduce el numero de columnas del informe 6. El usuario introduce la información de columna Extensiones: Datos: Información de Configuración Titulo del informe Estilo del titulo del informe Color del titulo del informe Tamaño de letra del titulo del informe Tipo de letra del titulo del informe Alineación del titulo del informe Color de fondo del titulo del informe para el *.pdf - HERRAMIENTA GENERADORA DE INFORMES - 70

82 Color de fondo del titulo del informe para el *.xls Color de fondo del titulo del informe para el *.html Color de la letra Base de Datos con la que conecta: o Driver o URL o Usuario o Password Query del informe Borde de la tabla para *.html Ancho de columna para *.xls Letra negrita para *.xls Letra cursiva para *.xls Tamaño de letra para *.xls Información de la sección Titulo de la sección Estilo del titulo de la sección Tamaño del titulo de la sección Alineación del titulo de la sección Borde de la tabla para *.html Color de fondo del titulo de la sección para *.pdf Color de fondo del titulo de la sección para *.xls Color de fondo del titulo de la sección para *.html Color de letra del titulo de la sección - HERRAMIENTA GENERADORA DE INFORMES - 71

83 Información de la columna Decidir si la columna saldrá o no en *.pdf Decidir si la columna saldrá o no en *.xls Decidir si la columna saldrá o no en *.html Titulo de la columna Estilo del titulo de la columna Tamaño de letra del titulo de la columna Tamaño de letra de los datos de la columna Alineación del titulo de la columna Alineación de los datos de la columna Tipo de letra del titulo de la columna Tipo de letra de los datos de la columna ID de la columna Valor de la query que muestra la columna Formato de la columna Otros requerimientos: - HERRAMIENTA GENERADORA DE INFORMES - 72

84 Abrir un informe Casos de Uso Nombre: Abrir informe Actor primario: Usuario de la aplicación Actores secundarios: Precondiciones: Trigger: Se decide por parte de un superior volver a un antiguo informe Escenario Primario: 1. El usuario se conecta con la aplicación 2. El usuario selecciona el caso de uso 3. El usuario introduce la ruta donde se encuentra el informe 4. El usuario abre el informe 5. El sistema muestra la información de configuración 6. El sistema muestra la información de sección 7. El sistema muestra el numero de columnas del informe 8. El sistema muestra la información de columna Extensiones: 3a. El usuario navega por la aplicación hasta la carpeta donde se encuentra dicho informe 5a. El usuario modifica la información de configuración 6a. El usuario modifica la información de sección 7a. El usuario modifica el número de columnas 8a. El usuario modifica la información de columnas - HERRAMIENTA GENERADORA DE INFORMES - 73

85 Datos: Información de Configuración Titulo del informe Estilo del titulo del informe Color del titulo del informe Tamaño de letra del titulo del informe Tipo de letra del titulo del informe Alineación del titulo del informe Color de fondo del titulo del informe para el *.pdf Color de fondo del titulo del informe para el *.xls Color de fondo del titulo del informe para el *.html Color de la letra Base de Datos con la que conecta: o Driver o URL o Usuario o Password Query del informe Borde de la tabla para *.html Ancho de columna para *.xls Letra negrita para *.xls Letra cursiva para *.xls Tamaño de letra para *.xls Información de la sección Titulo de la sección Estilo del titulo de la sección Tamaño del titulo de la sección Alineación del titulo de la sección - HERRAMIENTA GENERADORA DE INFORMES - 74

86 Borde de la tabla para *.html Color de fondo del titulo de la sección para *.pdf Color de fondo del titulo de la sección para *.xls Color de fondo del titulo de la sección para *.html Color de letra del titulo de la sección Información de la columna Decidir si la columna saldrá o no en *.pdf Decidir si la columna saldrá o no en *.xls Decidir si la columna saldrá o no en *.html Titulo de la columna Estilo del titulo de la columna Tamaño de letra del titulo de la columna Tamaño de letra de los datos de la columna Alineación del titulo de la columna Alineación de los datos de la columna Tipo de letra del titulo de la columna Tipo de letra de los datos de la columna ID de la columna Valor de la query que muestra la columna Formato de la columna Otros requerimientos: - HERRAMIENTA GENERADORA DE INFORMES - 75

87 Guardar un informe Casos de Uso Nombre: Guardar un informe Actor primario: Usuario de la aplicación Actores secundarios: Precondiciones: Se tiene un informe en pantalla Trigger: Se decide por parte de un superior guardar un informe Escenario Primario: 1. El sistema muestra el informe vivo (RN001) con la información del informe 2. El usuario selecciona el caso de uso 3. El usuario introduce la ruta donde quiere almacenar el informe 4. El usuario introduce el nombre del informe a almacenar 5. El sistema guarda el informe Extensiones: 2a. El usuario navega por la aplicación hasta la carpeta donde se desea guardar dicho informe Datos: Información del informe Titulo del informe Estilo del titulo del informe Color del titulo del informe Tamaño de letra del titulo del informe Tipo de letra del titulo del informe - HERRAMIENTA GENERADORA DE INFORMES - 76

88 Alineación del titulo del informe Color de fondo del titulo del informe para el *.pdf Color de fondo del titulo del informe para el *.xls Color de fondo del titulo del informe para el *.html Color de la letra Base de Datos con la que conecta: o Driver o URL o Usuario o Password Query del informe Borde de la tabla para *.html Ancho de columna para *.xls Letra negrita para *.xls Letra cursiva para *.xls Tamaño de letra para *.xls Titulo de la sección Estilo del titulo de la sección Tamaño del titulo de la sección Alineación del titulo de la sección Borde de la tabla para *.html Color de fondo del titulo de la sección para *.pdf Color de fondo del titulo de la sección para *.xls Color de fondo del titulo de la sección para *.html Color de letra del titulo de la sección Decidir si la columna saldrá o no en *.pdf Decidir si la columna saldrá o no en *.xls Decidir si la columna saldrá o no en *.html Titulo de la columna Estilo del titulo de la columna Tamaño de letra del titulo de la columna - HERRAMIENTA GENERADORA DE INFORMES - 77

89 Tamaño de letra de los datos de la columna Alineación del titulo de la columna Alineación de los datos de la columna Tipo de letra del titulo de la columna Tipo de letra de los datos de la columna ID de la columna Valor de la query que muestra la columna Formato de la columna Otros requerimientos: - HERRAMIENTA GENERADORA DE INFORMES - 78

90 Ejecutar un informe Casos de Uso Nombre: Ejecutar un informe Actor primario: Usuario de la aplicación Actores secundarios: Precondiciones: Trigger: Se decide por parte de un superior volver a un antiguo informe Escenario Primario: 1. El sistema muestra el informe vivo (RN001) con la información del informe 2. El usuario selecciona el caso de uso 3. El usuario decide el formato del informe a ejecutar 4. El sistema muestra el informe en el formato elegido Extensiones: 3a. El usuario decide el formato *.HTML 3b. El usuario decide el formato *.XLS 3c. El usuario decide el formato *.PDF Información del informe Titulo del informe Estilo del titulo del informe Color del titulo del informe Tamaño de letra del titulo del informe Tipo de letra del titulo del informe Alineación del titulo del informe Color de fondo del titulo del informe para el *.pdf - HERRAMIENTA GENERADORA DE INFORMES - 79

91 Color de fondo del titulo del informe para el *.xls Color de fondo del titulo del informe para el *.html Color de la letra Base de Datos con la que conecta: o Driver o URL o Usuario o Password Query del informe Borde de la tabla para *.html Ancho de columna para *.xls Letra negrita para *.xls Letra cursiva para *.xls Tamaño de letra para *.xls Titulo de la sección Estilo del titulo de la sección Tamaño del titulo de la sección Alineación del titulo de la sección Borde de la tabla para *.html Color de fondo del titulo de la sección para *.pdf Color de fondo del titulo de la sección para *.xls Color de fondo del titulo de la sección para *.html Color de letra del titulo de la sección Decidir si la columna saldrá o no en *.pdf Decidir si la columna saldrá o no en *.xls Decidir si la columna saldrá o no en *.html Titulo de la columna Estilo del titulo de la columna Tamaño de letra del titulo de la columna Tamaño de letra de los datos de la columna Alineación del titulo de la columna - HERRAMIENTA GENERADORA DE INFORMES - 80

92 Alineación de los datos de la columna Tipo de letra del titulo de la columna Tipo de letra de los datos de la columna ID de la columna Valor de la query que muestra la columna Formato de la columna Otros requerimientos: - HERRAMIENTA GENERADORA DE INFORMES - 81

93 Reglas de negocio Es información referente al campo donde actúa la aplicación, es información típica del negocio. Para comprenderlo mejor, se describe un ejemplo básico; si en una oficina de la empresa inmobiliaria sólo puede haber hasta veinte empleados, el SGBD debe dar la posibilidad al usuario de definir una regla al respecto y debe hacerla respetar. En este caso, no debería permitir dar de alta un empleado en una oficina que ya tiene los veinte permitidos. Informe vivo (RN001) En los casos de uso anteriores, se nombraba la expresión Informe vivo, esto significa que, en dicho instante tiene que haber un informe en pantalla, un informe relleno, completo y accesible desde todas sus áreas, con todas sus opciones marcadas, su query bien realizada, su conexión con una base de datos correcta, estilos adecuados - HERRAMIENTA GENERADORA DE INFORMES - 82

94 Diagrama de Arquitectura Diagrama de paquetes Iu Servicios DAO Dominio - HERRAMIENTA GENERADORA DE INFORMES - 83

95 Descripción de los subsistemas Core del framework Hay que definir un metalenguaje en formato xml, para poder almacenar la definición de los informes. informe. Para ello hay que identificar y definir una serie de tags que nos ayuden a definir cada una de las partes de nuestro Lista de Tags reconocidos en el XML a falta de algunos: REPORT CONFIG DB Tag principal que define el informe. Dentro de este tag se definen datos globales de configuración. Selecciona la base de datos contra la que se realizan los informes. DRIVER URL USER PASSWORD Contendrá el paquete necesario para la conexión (MySql). Dirección de la base de Datos. Usuario registrado en dicha base de datos. Password para el usuario anterior. - HERRAMIENTA GENERADORA DE INFORMES - 84

96 TITLE TITLESTYLE FONTTITLESIZE FAMILYFONT ALIGN BACKGROUNDCOLOR BACKGROUNDCOLOR PDFXLS QUERY BORDER COLUMNWIDHTXLS TITLEFONTBOLDXLS TITLEITALICXLS Titulo del informe. Estilo del titulo del informe (Sólo para HTML). Tamaño de letra del titulo del informe. (Sólo para pdf). Tipo de letra que se va a usar. Se introduce como se expone abajo. 1 Helvetica 2 Courier 3 Times_Roman 4 Symbol 5 Zapfdingbats Situación del titulo del informe. Color de fondo del titulo del informe (HTML). Color de fondo del titulo del informe (PDF y Excel). Define la consulta con la que se genera el informe. Establece el borde de la tabla html. Establece el ancho de las columnas usadas en el xls. Si el valor es true el titulo saldrá en letra negrita (sólo para xls). Si el valor es true el titulo saldrá en letra cursiva (sólo para xls). - HERRAMIENTA GENERADORA DE INFORMES - 85

97 TITLEFONTHEIGHTXLS LETTERCOLOR FONTCOLOR SECTION TITLE Es un número entero que determinara el tamaño de letra del titulo (sólo para xls). Color del titulo del informe. Para pdf y Excel. Color del titulo del informe. Para HTML. Representa la tabla del informe. INDEXEDBY ResultsList Titulo de la tabla. TITLESTYLE FONTTITLESIZE FAMILYFONT ALIGN BORDER BACKGROUNDCOLOR Define el estilo del titulo de la sección (Sólo HTML). Tamaño de letra del titulo de la sección. (Sólo para pdf).. Tipo de letra que se va a usar. Se introduce como se expone abajo. 1 Helvetica 2 Courier 3 Times_Roman 4 Symbol 5 Zapfdingbats Situación del titulo de la sección. Establece el borde de la tabla del informe. Color de fondo del titulo de la sección (HTML). - HERRAMIENTA GENERADORA DE INFORMES - 86

98 BACKGROUNDCOLOR PDFXLS LETTERCOLOR COLUMN TITLE TITLESTYLE FONTTITLESIZE FONTSIZE BACKGROUNDCOLOR Color de fondo del titulo de la sección (PDF y Excel). Color de letra del titulo de la sección. Para pdf y Excel. Define una nueva columna en el informe. Pdf Y/N define si se va a mostrar o no en el pdf. Xls Y/N define si se va a mostrar o no en el xls. Html Y/N define si se va a mostrar o no en el html. Titulo de la columna. Define el estilo del titulo de la columna (para todas el mismo, HTML). Tamaño de letra del titulo de la columna (sólo para pdf). Tamaño de letra de los datos de las columnas (para todas el mismo tamaño). Color de fondo de la columna (HTML). BACKGROUNDCOLOR PDFXLS FAMILYFONT Color de fondo de la columna (PDF y Excel). Tipo de letra que se va a usar. Se introduce como se expone abajo. 1 Helvética 2 Courier 3 Times_Roman - HERRAMIENTA GENERADORA DE INFORMES - 87

99 ALIGN ID VALUE LETTERCOLOR 4 Symbol 5 Zapfdingbats Situación de los datos de la columna (para todas el mismo). El titulo siempre va centrado. ID de la columna. Valor que se va a mostrar. Color de letra de las columnas (para todas el mismo). Para pdf y xls. - HERRAMIENTA GENERADORA DE INFORMES - 88

100 Un ejemplo de uso con la lista de tags: <REPORT> <CONFIG> <TITLE>Informe empleados</title> <TITLESTYLE>tituloRojo</TITLESTYLE> <FONTTITLESIZE>16</FONTTITLESIZE> <FAMILYFONT>Symbol</FAMILYFONT> <ALIGN>Center</ALIGN> <BACKGROUNDCOLOR>#ccccc</BACKGROUNDCOLOR> <DB> <DRIVER>com.mysql.jdbc.Driver</DRIVER> <URL>jdbc:mysql:// :3306/hgi</URL> <USER>root</USER> <PASSWORD>galeon</PASSWORD> </DB> <QUERY>select id, nombre, apellido from empleados </QUERY> <BORDER>1</BORDER> </CONFIG> <SECTION INDEXEDBY="resultsList"> <TITLE>Seccion</TITLE> <TITLESTYLE>normalNegrita</TITLESTYLE> <FONTTITLESIZE>12</FONTTITLESIZE> <FAMILYFONT>Helvetica</FAMILYFONT> <ALIGN>Center</ALIGN> <BORDER>1</BORDER> <BACKGROUNDCOLOR>bgGris</BACKGROUNDCOLOR> <COLUMN html="y" pdf="y" xcl="y"> <TITLE>ID</TITLE> <TITLESTYLE>normal</TITLESTYLE> <FONTTITLESIZE>14</FONTTITLESIZE> <FONTSIZE>12</FONTSIZE> <FAMILYFONT>Helvetica</FAMILYFONT> <ALIGN>Center</ALIGN> <BACKGROUNDCOLOR>bgGris</BACKGROUNDCOLOR> <ID>1</ID> <HEADER>Y</HEADER> <VALUE>resultsList[#INDEX].id</VALUE> </COLUMN> <COLUMN html="y" pdf="y" xcl="y"> <TITLE>NOMBRE</TITLE> <TITLESTYLE>normal</TITLESTYLE> <FONTTITLESIZE>14</FONTTITLESIZE> <FONTSIZE>12</FONTSIZE> <FAMILYFONT>Helvetica</FAMILYFONT> <ALIGN>Center</ALIGN> <BACKGROUNDCOLOR>bgGris</BACKGROUNDCOLOR> <ID>2</ID> <HEADER>Y</HEADER> <VALUE>resultsList[#INDEX].nombre</VALUE> </COLUMN> <COLUMN html="y" pdf="y" xcl="y"> - HERRAMIENTA GENERADORA DE INFORMES - 89

101 <TITLE>APELLIDOS</TITLE> <TITLESTYLE>normal</TITLESTYLE> <FONTTITLESIZE>14</FONTTITLESIZE> <FONTSIZE>12</FONTSIZE> <ALIGN>center</ALIGN> <FAMILYFONT>Helvetica</FAMILYFONT> <BACKGROUNDCOLOR>bgGris</BACKGROUNDCOLOR> <ID>3</ID> <HEADER>Y</HEADER> <VALUE>resultsList[#INDEX].apellido</VALUE> </COLUMN> </SECTION> </REPORT> Este Xml, generaría un informe, Informe empleados, con su titulo, estilo, campos, colores se podrían haber elegido otros, al igual que podíamos haber elegido también diferentes tags, para hacer más columnas, cabeceras - HERRAMIENTA GENERADORA DE INFORMES - 90

102 Módulo de edición y configuración del informe El propósito es conseguir un entorno de edición visual en el que definir nuestro informe, de manera que en lugar de tener que editar a mano el xml que define el informe, tengamos una serie de componentes gráficos que nos ayuden a pintar en pantalla el informe. Módulo de ejecución, generación y presentación del informe Una vez que el informe ha sido definido, necesitaremos un módulo que sepa parsear la definición del informe, obtener los datos de la base de datos y presentar los resultados según el formato definido en el informe. El propósito es poder presentar informes en formato HTML, PDF y EXCELL a partir de una misma definición de informe. - HERRAMIENTA GENERADORA DE INFORMES - 91

103 Modelo Dinámico Detallado Diagramas de Secuencia Un diagrama de secuencia muestra las interacciones entre objetos ordenadas en secuencia temporal. Muestra los objetos que se encuentran en el escenario y la secuencia de mensajes intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por el escenario. En aplicaciones grandes además de los objetos se muestran también los componentes y casos de uso. El mostrar los componentes tiene sentido ya que se trata de objetos reutilizables, en cuanto a los casos de uso hay que recordar que se implementan como objetos cuyo rol es encapsular lo definido en el caso de uso. Para mostrar la interacción con el usuario o con otro sistema se introducen en los diagramas de secuencia las boundary classes. En las primeras fases de diseño el propósito de introducir estas clases es capturar y documentar los requisitos de interfaz, pero no el mostrar como se va a implementar dicha interfaz. Los diagramas de secuencia, formalmente diagramas de traza de eventos o de interacción de objetos, se utilizan con frecuencia para validar los casos de uso. Documentan el diseño desde el punto de vista de los casos de uso. Observando qué mensajes se envían a los objetos, componentes o casos de uso y viendo a grosso modo cuanto tiempo consume el método invocado, los diagramas de secuencia nos ayudan a comprender los cuellos de botella potenciales, para así poder eliminarlos. - HERRAMIENTA GENERADORA DE INFORMES - 92

104 A la hora de documentar un diagrama de secuencia resulta importante mantener los enlaces de los mensajes a los métodos apropiados del diagrama de clases. En la figura anterior se muestra un ejemplo de diagrama de secuencia, que da detalle al caso de uso PedirProducto del ejemplo de la máquina de café. Los conceptos más importantes relacionados con los diagramas de secuencia son: Línea de vida de un objeto (lifeline): La línea de vida de un objeto representa la vida del objeto durante la interacción. En un diagrama de secuencia un objeto se representa como una línea vertical punteada con un rectángulo de encabezado y con rectángulos a través de la línea principal que denotan la ejecución de métodos (activación). El rectángulo de encabezado contiene el nombre del objeto y el de su clase, en un formato nombreobjeto: nombreclase. Por ejemplo, el objeto m, instancia de la clase MaquinaCafe envía dos mensajes seguidos para dar respuesta a la operación PedirProducto: Servir al objeto p de la clase Producto y DarVueltas a sí mismo (self-delegation). - HERRAMIENTA GENERADORA DE INFORMES - 93

105 Activación: Muestra el período de tiempo en el cual el objeto se encuentra desarrollando alguna operación, bien sea por sí mismo o por medio de delegación a alguno de sus atributos. Se denota como un rectángulo delgado sobre la línea de vida del objeto. En el ejemplo anterior el objeto ingredientes se encuentra activo mientras ejecuta el método correspondiente al mensaje Servir, el objeto p se encuentra activo mientras se ejecuta su método Servir, que ejecuta _ingredientes.servir, y el objeto m se encuentra activo mientras se ejecuta p.servir y DarVueltas. Mensaje: El envío de mensajes entre objetos se denota mediante una línea sólida dirigida, desde el objeto que emite el mensaje hacia el objeto que lo ejecuta. En el ejemplo anterior el objeto m envía el mensaje Servir al objeto p y un poco más adelante en el tiempo el objeto m se envía a sí mismo el mensaje DarVueltas. Tiempos de transición: En un entorno de objetos concurrentes o de demoras en la recepción de mensajes, es útil agregar nombres a los tiempos de salida y llegada de mensajes. Analizando la recepción de una llamada telefónica puede tenerse un diagrama como el de la figura. Caminos alternativos de ejecución y concurrencia: En algunos casos sencillos los caminos alternativos pueden expresarse en un diagrama de secuencias alternativas de ejecución. Estas alternativas pueden representar condiciones en la ejecución o diferentes hilos de ejecución ( threads). - HERRAMIENTA GENERADORA DE INFORMES - 94

106 Destrucción de un objeto Se representa como una X al final de la línea de ejecución del objeto. Por ejemplo, en el diagrama anterior se muestra el final de ob2 y de ob1. Métodos recursivos Un ejemplo de un método recursivo es el método more en ob1. Es un rectángulo adyacente a la activación principal y con líneas de llamada de mensajes, que indican la entrada y salida de la recursión. - HERRAMIENTA GENERADORA DE INFORMES - 95

107 Diagramas de Secuencia de HGI Primer Diagrama Struts :selectreportaction :documentbuilder :reportdao :showreport.jsp Execute() builddom(testpath) getreportlist() <<creates>> :Informe *setx() <<forward>> *getx() - HERRAMIENTA GENERADORA DE INFORMES - 96

108 Segundo Diagrama Struts :selectreportaction :reportbuilder :reportdao :showreport.jsp Execute() builddom(testpath) parseconfig() parsesection() parsecolumn() <<creates>> :Informe *setx() <<forward>> *getx() - HERRAMIENTA GENERADORA DE INFORMES - 97

109 Tercer Diagrama Struts :selectreportaction :reportbuilderhtml :reportdao :showreport.jsp Execute() builddom(testpath) parseconfightml() parsesectionhtml() parsecolumnhtml() <<creates>> :Informe *setx() <<forward>> *getx() - HERRAMIENTA GENERADORA DE INFORMES - 98

110 Cuarto Diagrama Struts :selectreportaction :reportbuilderpdf :reportdao :showreport.jsp Execute() builddom(testpath) parseconfigpdf() parsesectionpdf() parsecolumnpdf() <<creates>> :Informe *setx() <<forward>> *getx() - HERRAMIENTA GENERADORA DE INFORMES - 99

111 Quinto Diagrama Struts :selectreportaction :reportbuilderxls :reportdao :showreport.jsp Execute() builddom(testpath) parseconfigxls() parsesectionxls() parsecolumnxls() <<creates>> :Informe *setx() <<forward>> *getx() - HERRAMIENTA GENERADORA DE INFORMES - 100

112 Interfaz de Usuario El sistema de Generación de Informes, consta de una interfaz visual basada en ventanas, que permite al usuario de la aplicación un manejo intuitivo y sencillo del mismo. De esta forma la realización de una búsqueda de un informe se asemeja a la de cualquier búsqueda realizada por una de las aplicaciones de la familia Microsoft, dando así una imagen de familiaridad con el producto, tanto a la hora de buscar un informe para abrirlo como para guardarlo. El resto de operaciones realizadas a través de HGI, se asemejan a la forma de trabajar de los software visuales con los que contamos hoy en día. El sistema está basado en una pantalla principal desde la cual se iniciará la aplicación, esta permanecerá constante durante toda la generación, ejecución y parametrización del informe, lo que ira modificándose será la parte central de dicha pantalla. - HERRAMIENTA GENERADORA DE INFORMES - 101

113 Ventana inicial Componentes En esta pantalla podemos destacar el papel de varios componentes: Link Inicio Link Nuevo Link Abrir Link Guardar Link Ejecutar Todos estos componentes son de navegación, esto quiere decir que nos redirigirán a otras páginas de la interfaz, según lo que nos interese hacer. Con el Link Inicio, volveremos a esta página principal. En esta ventana principal se mostrarán todos los módulos de la aplicación. - HERRAMIENTA GENERADORA DE INFORMES - 102

114 Ventana Nuevo A través de esta ventana nos encargaremos de editar cada una de las posibles zonas: Componentes Menú: Situado a la izquierda de la pantalla. o Tres links, cada uno te redirige a esa zona: Configuración Sección Columna o Un botón + Creará nuevas columna para el informe, estás son para mostrar los datos elegidos en la query - HERRAMIENTA GENERADORA DE INFORMES - 103

115 Zona de Configuración En esta zona elegiremos las opciones de Configuración: Conexión con la Base de Datos o Driver: tipo de BBDD Oracle MySql o Url o User o Password Titulo del Informe y su alineación Opciones particulares de cada formato: o PDF: Tamaño, color de fondo, letra. o XLS: Color de fondo, ancho de columna. o HTML: Estilo, color, borde. - HERRAMIENTA GENERADORA DE INFORMES - 104

116 Componentes Botones o Guardar o Cancelar Cajas de texto o A rellenar por el usuario Menús desplegables o Tipo de base de datos o Alineación o Borde o Tamaño de letra o Tipo de letra - HERRAMIENTA GENERADORA DE INFORMES - 105

117 Zona de Sección En esta zona elegiremos las opciones de Sección: Titulo de la sección y su alineación Opciones particulares de cada formato: o PDF: Tamaño, color de fondo, letra. o XLS: Color de fondo, ancho de columna. o HTML: Estilo, color, borde. Componentes Botones o Guardar o Cancelar Cajas de texto o A rellenar por el usuario Menús desplegables - HERRAMIENTA GENERADORA DE INFORMES - 106

118 Zona de Columna En esta zona elegiremos las opciones de cada columna: En que formato estará presente dicha columna Titulo de la columna y su alineación Opciones particulares de cada formato: o PDF: Tamaño, color de fondo, letra. o XLS: Color de fondo, ancho de columna. o HTML: Estilo, color, borde. - HERRAMIENTA GENERADORA DE INFORMES - 107

119 Componentes Tres campos de opción para elegir en que formato aparecerá dicha columna, no son autoexcluyentes. Botones o Guardar o Cancelar Cajas de texto o A rellenar por el usuario Menús desplegables - HERRAMIENTA GENERADORA DE INFORMES - 108

120 Ventana Ejecutar En esta ventana elegiremos el formato del informe a mostrar: Se implementa la funcionalidad de poder extraer el informe en un formato, luego en otro y finalmente en el último, estos son: o Pdf o Xls o Html Componentes Tres radio button autoexcluyentes entre sí: o Pdf o Xls o Html Botón Ejecutar - HERRAMIENTA GENERADORA DE INFORMES - 109

121 Ventana Abrir En esta ventana elegiremos el informe a mostrar: Componentes Los componentes típicos de cualquier aplicación de Microsoft, un botón de abrir, otro de cancelar, poder seleccionar la carpeta a elegir - HERRAMIENTA GENERADORA DE INFORMES - 110

122 Ventana Guardar En esta ventana elegiremos el nombre y donde guardar el informe: Componentes Los componentes típicos de cualquier aplicación de Microsoft, un botón de abrir, otro de cancelar, poder seleccionar la carpeta a elegir - HERRAMIENTA GENERADORA DE INFORMES - 111

123 CÓDIGO DE LA APLICACIÓN Clase ReportBuilder Es la clase padre, se encarga de leer las tres secciones del XML con el fin de obtener los datos de las opciones generales, como por ejemplo la Base de Datos con la que conectaremos, el usuario y el passwords de la misma, el titulo del informe El método ha destacar de esta clase es el getconnection, que devuelve un objeto de la clase connection, instanciado con los valores leídos del xml. package com.hgi.reportfw; imports public class ReportBuilder { //Documento XML que contiene la definición del informe protected Document _xmldocdef; //Tags XML definidos protected static String CONFIG = "CONFIG"; protected static String TITLE = "TITLE"; protected static String QUERY = "QUERY"; //Variables locales protected String _title; protected String _query; private ConnectionManager _connectionmanager; public String _driver = "";. public ReportBuilder(Document xmldocdef_) throws Exception{ this._xmldocdef = xmldocdef_;} /*Parsea la zona Config */ - HERRAMIENTA GENERADORA DE INFORMES - 112

124 public void parseconfigzone() throws Exception{ Element configelement = _xmldocdef.getrootelement().getchild(config); if(configelement == null) { throw new Exception("No "+CONFIG+" tag present."); } _title = getchildtextnotnull(configelement,title); _reporttitlestyle = getchildtextnotnull(configelement,titlestyle); _query = getchildtextnotnull(configelement,query); _configborder = getchildtextintnotnull(configelement,border); _configalign = getchildtextnotnull(configelement,align); protected String _title; protected String _query; private ConnectionManager _connectionmanager; public String _driver = "";. public ReportBuilder(Document xmldocdef_) throws Exception{ this._xmldocdef = xmldocdef_;} /*Parsea la zona Config */ public void parseconfigzone() throws Exception{ Element configelement = _xmldocdef.getrootelement().getchild(config); if(configelement == null) { throw new Exception("No "+CONFIG+" tag present."); } _title = getchildtextnotnull(configelement,title); _reporttitlestyle = getchildtextnotnull(configelement,titlestyle); _query = getchildtextnotnull(configelement,query); _configborder = getchildtextintnotnull(configelement,border); _configalign = getchildtextnotnull(configelement,align); - HERRAMIENTA GENERADORA DE INFORMES - 113

125 _configtitlebgcolor = getchildtextnotnull(configelement,backgroundcolor); Element dbelement = _xmldocdef.getrootelement().getchild(config).getchild(db); _driver = getchildtextnotnull(dbelement,driver); _url = getchildtextnotnull(dbelement,url); _user = getchildtextnotnull(dbelement,user); _pwd = getchildtextnotnull(dbelement,password); this._connectionmanager = new ConnectionManager();} /*Parsea la zona Exception */ public void parsesectionzone() throws Exception { Element sectionelement = _xmldocdef.getrootelement().getchild(section); if(sectionelement == null) { throw new Exception("No "+SECTION+" tag present."); } _titlesection = getchildtextnotnull(sectionelement,title); _sectiontitlestyle = getchildtextnotnull(sectionelement,titlestyle); _sectionborder = getchildtextintnotnull(sectionelement,border); _sectionalign = getchildtextnotnull(sectionelement,align); _sectiontitlebgcolor = getchildtextnotnull(sectionelement,backgroundcolor);} public void parsecolumnzone() throws Exception { List columnelement = _xmldocdef.getrootelement().getchild(section).getchildren(colum N; if(columnelement!= null) { Iterator iter = columnelement.iterator(); while (iter.hasnext()) { _ columntitlestyle =getchildtextnotnull(element,titlestyle); - HERRAMIENTA GENERADORA DE INFORMES - 114

126 Element element = (Element) iter.next(); _titlecolumn = getchildtextnotnull(element,title); _idcolumn = getchildtextnotnull(element,id); _headercolumn = getchildtextnotnull(element,header); _valuecolumn = getchildtextnotnull(element,value); _columnalign = getchildtextnotnull(element,align); _columntitlebgcolor = getchildtextnotnull(element,backgroundcolor); } } } public Connection getconnection() throws Exception{ Connection connection = null; connection = _connectionmanager.getconnection(_driver,_url,_user,_pwd); return connection; } protected String getchildtextnotnull(element section_, String tag_) { String value = ""; try { if(section_.getchildtexttrim(tag_)!=null) { value = section_.getchildtexttrim(tag_);} }catch (Exception e){} return value; } protected int getchildtextintnotnull(element section_, String tag_) { int value = 0; try { value = Integer.parseInt(section_.getChildTextTrim(tag_)); }catch (Exception e){} return value; } protected int getchildtextshortnotnull(element section_, String tag_) { short value = 0; - HERRAMIENTA GENERADORA DE INFORMES - 115

127 try { value = Short.parseShort(section_.getChildTextTrim(tag_)); }catch (Exception e){} return value; }} - HERRAMIENTA GENERADORA DE INFORMES - 116

128 Clase ReportBuilderHtml, ReportBuilderXls y ReportBuilderPdf Son las tres clases hijas de la clase padre anteriormente citada, cada una se encargará de leer las opciones particulares y pintar el informe según la opción elegida. El código mostrado es referente a la clase Html, para tener un ejemplo de uso de esta herencia: package com.hgi.reportfw; imports public class ReportBuilderHtml extends ReportBuilder{ //Código particular a la clase, constructor } - HERRAMIENTA GENERADORA DE INFORMES - 117

129 Clase ConnectionManager Es la clase que crea la conexión con la Base de Datos, incluye el método getconnection destacado anteriormente. package com.hgi.reportfw.db; imports public class ConnectionManager { public Connection getconnection(string driver,string url, String user, String pwd) throws Exception{ Properties prop = new Properties(); prop.setproperty("user", user); prop.setproperty("password", pwd); java.sql.driver drv = (java.sql.driver)class.forname(driver).newinstance(); Connection conn = (drv).connect(url,prop); return conn;}} - HERRAMIENTA GENERADORA DE INFORMES - 118

130 Clase DAO Es la clase que ejecuta la query contra la BBDD. package com.hgi.reportfw.db; imports public class DAO { public static Collection getreportlist(connection conn, String query, String where, String order, PreparedStatement ps) throws SQLException, IllegalAccessException, InvocationTargetException { ps = conn.preparestatement(query +" "+where+" "+order); ResultSet rset = ps.executequery(); RowSetDynaClass rsdc = new RowSetDynaClass(rset,true); rset.close(); ps.close(); return rsdc.getrows();}} - HERRAMIENTA GENERADORA DE INFORMES - 119

131 Clase Action SelectReportAction Esta clase será la encargada de, según sea la elección de formato del usuario mostrar uno u otro en cada caso. Devuelve a través del Action Mapping la siguiente vista a mostrar. package com.hgi.action; imports public class selectreportaction extends Action{ public ActionForward perform(actionmapping _mapping, ActionForm _form, HttpServletRequest _request, HttpServletResponse _response) throws IOException, ServletException { try { String reporttype = _request.getparameter("reporttype"); String testpath = "C:/Documents and Settings/Juan/workspace/HGI/WebRoot/xml/reportSimple.xml"; Document _xmldocdef = DocumentBuilder.buildDOM(testPath); if(reporttype.equals("h")){ ReportBuilderHtml reportbuilder = new ReportBuilderHtml(_xmlDocDef); reportbuilder.parseconfigzone(); reportbuilder.parsesectionzone(); reportbuilder.parsecolumnzone(); String html = reportbuilder.print(); PrintWriter out = _response.getwriter(); out.print(html); out.flush(); return null; } else if(reporttype.equals("p")){ - HERRAMIENTA GENERADORA DE INFORMES - 120

132 ReportBuilderPdf pdf = new ReportBuilderPdf(_xmlDocDef); pdf.parseconfigzone(); pdf.parsesectionzone(); pdf.parsecolumnzone(); _response.setheader("cache-control", "max-age=30"); _response.setcontenttype("application/pdf"); _response.setheader("content-disposition", "attachment; filename=\"" + "Informe.pdf" + "\""); pdf.print(_response.getoutputstream()); return null; } else if(reporttype.equals("e"){ ReportBuilderXls xls = new ReportBuilderXls(_xmlDocDef); xls.parseconfigzone(); xls.parsesectionzone(); xls.parsecolumnzone(); _response.setheader("cache-control", "max-age=30"); _response.setcontenttype("application/pdf"); _response.setheader("content-disposition", "attachment; filename=\"" + "Informe.xls" + "\""); xls.print(_response.getoutputstream()); return null; } return _mapping.findforward("success"); } catch (FileNotFoundException e) { e.printstacktrace(); } catch (JDOMException e) { e.printstacktrace(); } catch (Exception e) { e.printstacktrace();} return null; }} - HERRAMIENTA GENERADORA DE INFORMES - 121

133 Código del struts-config.xml relacionado con la acción: <action-mappings> <action path="/selectreport" type="com.hgi.action.selectreportaction" name="selectreport" scope="session"> <forward name="success" path="/jsp/showreport.jsp"/> </action> </action-mappings> - HERRAMIENTA GENERADORA DE INFORMES - 122

134 Archivo web.xml Es el archivo que contendrá la información necesaria para saber que servlet ejecutará cada petición. <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.actionservlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/web-inf/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> - HERRAMIENTA GENERADORA DE INFORMES - 123

135 Valoración Económica Para el cálculo del presupuesto a mostrar al cliente, se ha estimado un total de 350 horas estipuladas para la realización del proyecto. Personas % Tiempo Coste/hora Total Jefe de Proyecto 5% Programador 95% Por el total de trabajos descritos en este proyecto, se facturará la cantidad de... Los precios indicados incluyen IVA pero no otros impuestos. - Aplicación SW (análisis, diseño, desarrollo, implementación e instalación) Manual y demás documentación SUBTOTAL Impuestos asociados IVA 16 % TOTAL Los trabajos realizados tienen un periodo de garantía de 90 días, una vez que se encuentren preparados para instalar en producción. El pago se realizará mediante transferencia bancaria a la cuenta que se proporcione, a 30 días vista desde la presentación de la factura, de acuerdo con la siguiente distribución: o El 50% del importe de la propuesta se pagará a la finalización del proyecto. o El 50% del importe de la propuesta se pagará al inicio del proyecto. - HERRAMIENTA GENERADORA DE INFORMES - 124

136 A la finalización de cada una de las etapas que se realizan durante el desarrollo del proyecto, se formalizará por El Cliente la aceptación y validación de la misma. El Cliente podrá solicitar modificaciones tanto en contenidos como en funcionalidades sobre dichas páginas, que serán estudiadas y presupuestadas, elaborando la oferta correspondiente para su aprobación. - HERRAMIENTA GENERADORA DE INFORMES - 125

137 Conclusiones Después del esfuerzo realizado, se puede concluir que la aplicación desarrollada facilita las labores en cuanto a la generación, parametrización y ejecución de informes, cumpliendo con la funcionalidad deseada en el análisis de requisitos. A partir de ahora y ayudado por esta aplicación, es posible mantener los controles de los informes que se realizan en el seno interno de la empresa, llevando un control de toda la información que se maneja en la Base de Datos y la información del informe en sí, garantizando en todo momento la coherencia de los datos. Anteriormente, el funcionamiento se llevaba a cabo de manera más manual y sin tanto acceso a la Base de Datos, lo que daba lugar a duplicación de la información que además no era la misma en muchos casos, y la posibilidad de obtener una información obsoleta. En la generación de informes actual, esta forma, aunque sea efectiva, ya no es viable hoy en día, y de ahí la necesidad surgida. A la hora de desarrollar esta aplicación se ha tenido en cuenta la forma de funcionar de un usuario normal que navega por Internet y por lo tanto, esto ha influido a la hora de diseñar las ventanas del interfaz. Como se decía al principio de esta documentación, se ha mostrado el proceso completo de desarrollo de la misma, a partir de cuadros, diagramas y esquemas, y se ha garantizado que cumple no sólo con la funcionalidad que pidió el cliente, si no que además a partir de la Validación de diseño y desarrollo, se ha intentado dotarla de facilidad de uso, estética y eliminar de ella todos las posibles incidencias que enturbiarían la calidad de la aplicación. - HERRAMIENTA GENERADORA DE INFORMES - 126

138 A pesar del sencillo manejo de este sistema, se han empleado mensajes de aviso que le guiarán en todo momento, con el fin de evitar la necesidad de formación de aquel usuario final, de forma que cualquier duda pueda ser resuelta de forma rápida y eficaz. Garantía del correcto desarrollo la aplicación, ha sido el seguimiento que durante todo este proceso se ha llevado a cabo al estar en continuo contacto con una persona encargada de realizar los informes dentro de la empresa y con el Director del Proyecto, no sólo en los hitos previamente marcados en la planificación, si no interesándose en el cumplimiento de los plazos establecidos, lo niveles de calidad y funcionalidad de la misma, el diseño de la aplicación y la propia estética de esta documentación. Sencillez, pero también organización de los datos, optimización de las consultas a la Base de Datos y la verificación del cliente, prueba del cumplimiento de los objetivos marcados en la planificación. - HERRAMIENTA GENERADORA DE INFORMES - 127

139 Bibliografía Toda la documentación que se presenta en este proyecto forma parte de la documentación generada en el desarrollo de esta aplicación. Además se consultaron los siguientes libros y páginas Web: [BARR94] Barraco de Areba, Jesús. Metodología del Análisis estructurado de sistemas. Madrid, [UMLP03] Larman, Craig. Applying UML and Patterns. 2 nd Edition [PNWS] Programing.NET Web Services; O Reilly; Alex Ferrara & MaThew MacDonald. [ASPN02] ASP.NET; Anaya Multimedia; Oscar Gonzalez Moreno [ISOO06] Ingeniería del Software orientada a objetos; Mcgraw Hill/interamericana de Mexico; Schach, Stephen [UMLG99] UML gota a gota; Addison Wesley Longman; Fowler, Martin [MDOO98] Modelado y diseño orientado a objetos; Prentice Hall; Rumbaugh James [SQLUP91] SQL para usuarios y programadores; Paraninfo; J. Benavides Abajo, J.M. Olaizola Bartolomé, E. Rivero [PROA02] Programing ASP.NET; O Really & Associates; Liberty, Jesse y Hurwitz, Dan [ISQLU02] Introducción al SQL para usuarios y programadores; International - HERRAMIENTA GENERADORA DE INFORMES - 128

140 Editores Spain Paraninfo; Enrique Rivero [MOUM97] Modelado de objetos con UML; Eyrolles; Muller, Pierre-Alain [QUIC05] [AEMI05] [PROGR05] [ELGUI05] [SOMAN05] [ASPN05] - HERRAMIENTA GENERADORA DE INFORMES - 129

141 PROYECTO FIN DE CARRERA Sistema de Generación de Informes Anexos - HERRAMIENTA GENERADORA DE INFORMES - 130

142 Anexo A: Entrevista con el Cliente Qué tipo de utilidad informática es la que hay que tratar para implementarla en un sistema Web? La generación de informes En qué consiste una herramienta de generación de informes? Se trata de una herramienta capaz de generar un informe, a partir de una consulta concreta a una Base de Datos. En que formatos se puede generar el informe? El informe se puede generar en tres formatos: o *.pdf o *.html o *.xls Cómo se introduce la información de dicha consulta? La consulta de introduce con la forma de una consulta SQL. Cuáles son las zonas a destacar en el informe? Las zonas a tener en cuenta en el informe son tres: 1. La zona de configuración, es la zona del informe en sí, contiene datos como pueden ser su titulo, la base de datos contra la que conecta 2. La zona de sección, habrá una sección por cada consulta, con lo cual a cada sección habrá que especificarle su titulo 3. La zona de columna, es donde saldrán los datos consultados en la query SQL, especificada anteriormente en la zona de configuración. - HERRAMIENTA GENERADORA DE INFORMES - 131

143 Qué datos incluye la zona de configuración? Los datos que incluye esta zona son: o Titulo del informe o Estilo del titulo o Color de fuente o Tipo de fuente o Alineación del titulo o Color de fondo del titulo para los tres formatos o Base de datos con la que se conecta para obtener el informe o Query de consulta a la Base de Datos o Borde de la tabla del titulo o Ancho de columna para *.xls o Letra Negrita para el titulo en *.xls o Letra Cursiva para el titulo en *.xls Cómo se conecta con la Base de Datos? Se conecta mediante un Driver, este especificará el tipo de base de datos, una URL, que especifica la dirección de la base de datos, y un usuario y un password para la misma. Con qué tipo de Bases de Datos permite una conexión? Con Bases de Datos de tipo MySql u Oracle. Qué datos incluye la zona de configuración? Los datos que incluye esta zona son: o Titulo de la sección o Tamaño de letra del titulo o Tipo de letra o Alineación del titulo o Color de fondo del titulo para los tres formatos o Borde de la tabla - HERRAMIENTA GENERADORA DE INFORMES - 132

144 Qué datos incluye la zona de configuración? Los datos que incluye esta zona son: o En que formato aparecerá dicha columna o Titulo de la columna o Tamaño de letra del titulo o Tamaño de letra de los datos de la columna o Tipo de letra o Alineación del titulo o Color de fondo para los tres formatos o ID de la columna o Valor que se muestra o Formato del valor mostrado Qué información ha de contener el campo valor? El campo valor, será de la forma: resultslist[#index].nombre_especificado_en_la_query. Qué beneficios aportará esta aplicación? Rapidez y comodidad a la hora de generar un informe. Qué servicios debe dar la nueva aplicación? Creación de nuevos informes. Salvado de nuevos informes. Modificación de informes anteriores. - HERRAMIENTA GENERADORA DE INFORMES - 133

145 Ejecución de los informes en tres formatos estándares: o *.pdf o *.xls o *.html Decisión de estilos de cada zona del informe. Qué estilos debe permitir el informe? o.peknegrita { color: #000000; text-decoration: none; font-weight: bold; background-color: #FFFFFF; font-size: 10px} o.pekazul { font-family: Verdana; font-size: 10px; color: #336699; textdecoration: none; font-weight: normal } o.pek { font-size: 10px ; color: #660000; background-color: #FFFFFF } o.pekclip { color: #000000; text-decoration: none; font-size: 10px; background-color: #FFFFFF; clip: rect( ); font-weight: normal } o.pekclara { color: #666666; font-size: 10px; font-weight: normal} o.pekcursiva { font-style: italic; color: #666666; font-size: 10px} o.pekbgmarron { background-color: #CCCC99} o.pekboldbgmarronoscuro { color: #000066; text-decoration: none; fontsize: 10px; background-color: #999966; clip: rect( ); font-weight: bold} o.pekbgazuloscuro { color: #FFFFFF; text-decoration: none; font-weight: bold ; background-color: #336699; font-size: 10px} o.pekbgazulclaro { color: #336699; text-decoration: none; font-weight: bold ; background-color: #6699CC; font-size: 10px} o.pekbgmarron { color: #003366; text-decoration: none; font-size: 10px; background-color: #CCCC99; clip: rect( ); font-weight: normal} o.pekbgamarillo { color: #003366; text-decoration: none; font-size: 10px; background-color: #FFFFCC; clip: rect( ); font-weight: normal } o.normal { font-family: Verdana; font-size: 11px; color: #003366; fontweight: normal} o.normalnegrita { color: #000000; text-decoration: none; font-weight: bold ; font-size: 11px} - HERRAMIENTA GENERADORA DE INFORMES - 134

146 o.normalbgblanco { font-family: Verdana; font-size: 11px; color: #FFFFFF; text-decoration: none; font-weight: normal } o.normalbgazuloscuro { color: #FFFFFF; text-decoration: none; fontweight: bold ; font-size: 11px; background-color: #336699} o.normalbgmarron { color: #FFFFFF; text-decoration: none; font-weight: bold ; font-size: 11px; background-color: #999966} o.normalazul { font-size: 11px; color: #336699} o.normalazuloscuro { font-size: 11px; color: #003366} o.normalrojo { font-size: 11px; color: #990000} o.normalnegro { font-size: 14px; color: #000000} o.normalmarronclaro { font-size: 11px; color: #CCCC99} o.tituloverdoso{ font-family: Verdana; font-size: 18px; color: #CCCC99; font-weight: bold; text-decoration: none} o.titulorojo { font-size: 18px; color: #660000} o.titulonegro { font-size: 18px; color: #000000} o.bggris { background-color: #cccccc} o.bgazulazafata { background-color: #6699CC} o.bgazul { background-color: #336699} o.bgazuloscuro { background-color: #003366} o.bgmarronoscuro { background-color: #999966} o.bgmarronclaro { background-color: #CCCC99} o.bgamarillo { background-color: #FFFFCC} o.bgnegro { background-color: #000000} o.bgblanco { background-color: #FFFFFF} o.txtpek { font-size: 10px} o.txtpeknegro{ font-size: 10px ; color: #000000} o.txtpekazul { font-size: 10px ; color: #336699} o.txtpekrojo { font-size: 10px ; color: #990000} o.txtpekboldrojo{ font-size: 10px ; color: red ;font-weight: bold} o.lineaazuloscura { font-size: 2px; background-color: #003366; color: # } o.lineamarronoscura { font-size: 2px; background-color: #999966; color: #999966} - HERRAMIENTA GENERADORA DE INFORMES - 135

147 o.lineamarronclara { font-size: 2px; background-color: #CCCC99; color: #CCCC99 } o.lineanegra { font-size: 2px; background-color: #000000; color: # } o.lineablanca { font-size: 2px; background-color: #FFFFFF; color: #FFFFFF } o.lineaazul { font-size: 2px; background-color: #336699; color: # } o.lineaazuloscura { font-size: 2px; background-color: #6699CC; color: #6699CC } o.lineagris { font-size: 2px; color: #CCCCCC; background-color: #CCCCCC} o.lineaamarilla { font-size: 2px; background-color: #FFFFCC; color: #FFFFCC } - HERRAMIENTA GENERADORA DE INFORMES - 136

148 Anexo B: Manual de Usuario Instalación de la aplicación Para poder disfrutar de la aplicación, primeramente será necesario instalar todos los componentes necesitados por la misma: o Myeclipse, una vez instalado este habrá que importar el sistema de clases java. o MySql u Oracle, contendrán las bases de datos necesarias para realizar las consultas. o Tomcat 5, será el servidor Web sobre el cual se desplegara la aplicación. o Clases en java contenidas en hgi.zip, se descomprimirán en cualquier directorio. Una vez instaladas las herramientas necesarias, se desplegará la aplicación sobre el servidor Tomcat. - HERRAMIENTA GENERADORA DE INFORMES - 137

149 Inicio de la aplicación Una vez desplegada la aplicación sobre el servidor Tomcat 5, se pasará la utilización de la misma. Para ello es necesario abrir una ventana del navegador de Internet, ya que nuestra aplicación se basa en sistemas Web. En la barra de dirección del navegador, introduciremos la url, proporcionada por el servidor, en la cual se ha desplegado la aplicación, en este caso: - HERRAMIENTA GENERADORA DE INFORMES - 138

150 Una vez introducida la dirección pulsaremos intro o pulsaremos sobre el botón ir, situado a la derecha de la barra de dirección, entrando así en la aplicación HGI en sí. - HERRAMIENTA GENERADORA DE INFORMES - 139

151 Comenzar a generar un nuevo informe Para generar un nuevo informe, se debe pulsar el link NUEVO: informe: Una vez pulsado dicho link, se accederá a la definición de un nuevo - HERRAMIENTA GENERADORA DE INFORMES - 140

152 Como se puede observar en la imagen anterior, al pulsar el link nuevo, aparece el menú de nuevo informe, este aparece sin ninguna opción en pantalla, ya que esta será la tarea de la persona que defina el nuevo informe. Para ello el usuario tendrá que empezar definido las opciones de la zona de configuración, para ello hay que pulsar sobre el link Configuración, situado en el menú que acaba de aparecer. - HERRAMIENTA GENERADORA DE INFORMES - 141

153 Una vez pulsado dicho link, aparecerán en pantalla las opciones a rellenar en dicha zona. Estas son: Elección de la Base de Datos contra la que se hará el informe En este apartado habrá que seleccionar, el driver de la Base de Datos, aquí es donde se distingue entre las Bases de Batos Oracle y MySql. También habrá que indicar la dirección url de dicha Base de Batos, esto se hará de la forma Para la conexión hay que especificar el usuario y el password de la base de datos, estos serán facilitados por la persona que creo dicho almacenamiento. - HERRAMIENTA GENERADORA DE INFORMES - 142

154 Consulta sobre la Base de Datos Para hacer esta consulta, es necesario tener conocimientos de SQL, en este campo, se introducirá la consulta de la misma forma que cuando la hacemos directamente en programas como el MySql, Oracle, Embarcadero Titulo del informe Estos campos se rellenarán con los datos referentes al titulo del informe, en este caso, será el titulo en si y su alineación, la alineación es un campo con varias opciones, left, center y right. - HERRAMIENTA GENERADORA DE INFORMES - 143

155 Opciones únicas del *.HTML En este apartado, la información sólo será relevante para el formato de presentación *.html. Estos campos se rellenarán con, el estilo del titulo, color de fondo para el titulo y borde de la tabla para el título. Los estilos posibles se encuentran descritos en la hoja de estilos onelook.css. - HERRAMIENTA GENERADORA DE INFORMES - 144

156 Opciones únicas del *.PDF En estos campos, se introducirán las opciones relativas a la presentación en *.pdf, estas son, tamaño de letra del titulo, color de fondo del titulo, familia de letra del titulo. El color de fondo posible será: red, blue, black, cyan, green, orange, yellow, magenta, pink, si este campo aparece vacío, por defecto se rellenará con white. El tamaño de letra, es un combo-box con valores de 1 a 20. Las familias de letras posibles serán: Helvetica, Courier, Times_Roman, Symbol, Zapfdingbats si este campo aparece vacío, por defecto se rellenará con la familia Courier. - HERRAMIENTA GENERADORA DE INFORMES - 145

157 Opciones únicas del *.XLS En estos campos se introducirán los valores opcionales para la presentación del informe en formato *.xls. El color de fondo posible será: red, blue, brown, black, tan, green, orange, yellow, turquoise, pink, si este campo aparece vacio, por defecto se rellenará con white. El ancho de columna se rellenará con un numero entero, para un buen uso del mismo, será probable que haya que hacer varias ejecuciones del mismo para ver si el ancho esta ajustado a lo que se necesita. El tamaño de letra, es un combo-box con valores de 1 a 20. La utilización de letra cursiva o negrita, se realizará si dichos campos no aparecen vacíos. - HERRAMIENTA GENERADORA DE INFORMES - 146

158 Opciones compartidas del *.XLS y del *.PDF En este campo se introducirá el color de la fuente del titulo para la presentación del informe en formato *.xls y *.pdf. Este campo permitirá los valores: red, blue, brown, black, tan, green, orange, yellow, turquoise, pink, si este campo aparece vacio, por defecto se rellenará con black. Cuando se haya terminado de rellenar esta zona, habrá que pulsar sobre el botón Guardar para guardar estas opciones, sino se está conforme con el nuevo informe se podrá pulsar el botón Cancelar. - HERRAMIENTA GENERADORA DE INFORMES - 147

159 Una vez definidos los campos de la zona de Configuración, habrá que pasar a rellenar el resto de opciones, para ello la siguiente zona será Sección, para entrar en los valores de esta zona, habrá que pulsar sobre el link Sección. - HERRAMIENTA GENERADORA DE INFORMES - 148

160 Titulo de la sección Estos campos se rellenarán con los datos referentes al titulo de la sección, en este caso, será el titulo en sí y su alineación, la alineación es un campo con varias opciones, left, center y right. Opciones únicas del *.HTML En este apartado, la información sólo será relevante para el formato de presentación *.html. Estos campos se rellenarán con, el estilo del titulo, color de fondo para el titulo y borde de la tabla para el título. - HERRAMIENTA GENERADORA DE INFORMES - 149

161 Opciones únicas del *.PDF En estos campos, se introducirán las opciones relativas a la presentación en *.pdf, estas son, tamaño de letra del titulo, color de fondo del titulo, familia de letra del titulo. El color de fondo posible será: red, blue, black, cyan, green, orange, yellow, magenta, pink, si este campo aparece vacío, por defecto se rellenará con white. El tamaño de letra, es un combo-box con valores de 1 a 20. Las familias de letras posibles serán: Helvetica, Courier, Times_Roman, Symbol, Zapfdingbats si este campo aparece vacío, por defecto se rellenará con la familia Courier. - HERRAMIENTA GENERADORA DE INFORMES - 150

162 Opciones únicas del *.XLS En estos campos se introducirán los valores opcionales para la presentación del informe en formato *.xls. El color de fondo posible será: red, blue, brown, black, tan, green, orange, yellow, turquoise, pink, si este campo aparece vacio, por defecto se rellenará con white. El tamaño de letra, es un combo-box con valores de 1 a HERRAMIENTA GENERADORA DE INFORMES - 151

163 Opciones compartidas del *.XLS y del *.PDF En este campo se introducirá el color de la fuente del titulo para la presentación del informe en formato *.xls y *.pdf. Este campo permitirá los valores: red, blue, brown, black, tan, green, orange, yellow, turquoise, pink, si este campo aparece vacio, por defecto se rellenará con black. Cuando se haya terminado de rellenar esta zona, habrá que pulsar sobre el botón Guardar para guardar estas opciones, sino se está conforme con los datos de la sección se podrá pulsar el botón Cancelar. - HERRAMIENTA GENERADORA DE INFORMES - 152

164 Una vez definidos los campos de la zona de Sección, habrá que pasar a rellenar el resto de opciones, para ello la siguiente zona será Columna, para entrar en los valores de esta zona, habrá que pulsar sobre el botón +, situado a la derecha de la palabra Columna. A cada pulsación de este botón +, se creará una nueva columna, de la que habrá especificar sus valores, lo lógico seria integrar en el informe, el número de columnas suficientes como para poder mostrar todos los elementos de la consulta. Si luego se cree necesario se podrá acceder a los datos de cada columna pulsando sobre el link de la misma. - HERRAMIENTA GENERADORA DE INFORMES - 153

165 Opción de aparición de la columna Se puede elegir si dicha columna, aparecerá o no en cualquiera de los formatos soportados, la aparición de la misma en un formato, se realizara si esta marcada la opción de dicho formato. Titulo de la columna Estos campos se rellenarán con los datos referentes al titulo de la sección, en este caso, será el titulo en sí y su alineación, la alineación es un campo con varias opciones, left, center y right. - HERRAMIENTA GENERADORA DE INFORMES - 154

166 Opciones propias de la columna Estos campos se rellenarán con los datos referentes a cada columna, estos serán, el id de la columna, la alineación de los datos de la misma, esto será una caja con tres posibles valores, center, right, y por último el valor a mostrar en dicha columna. El campo valor tendrá que tener la siguiente estructura: resultslist[#index].nombre_campo_especificado_consulta - HERRAMIENTA GENERADORA DE INFORMES - 155

167 Opciones únicas del *.HTML En este apartado, la información sólo será relevante para el formato de presentación *.html. Estos campos se rellenarán con, el estilo del titulo y el color de fondo para el titulo. - HERRAMIENTA GENERADORA DE INFORMES - 156

168 Opciones únicas del *.PDF En estos campos, se introducirán las opciones relativas a la presentación en *.pdf, estas son, familia de la letra utilizada, color de fondo, tamaño de fuente del titulo y tamaño de fuente de los datos El color de fondo posible será: red, blue, black, cyan, green, orange, yellow, magenta, pink, si este campo aparece vacío, por defecto se rellenará con white. El tamaño de letra, es un combo-box con valores de 1 a 20. Las familias de letras posibles serán: Helvetica, Courier, Times_Roman, Symbol, Zapfdingbats si este campo aparece vacío, por defecto se rellenará con la familia Courier. - HERRAMIENTA GENERADORA DE INFORMES - 157

169 Opciones únicas del *.XLS En estos campos se introducirán los valores opcionales para la presentación del informe en formato *.xls. El color de fondo posible será: red, blue, brown, black, tan, green, orange, yellow, turquoise, pink, si este campo aparece vacio, por defecto se rellenará con white. El tamaño de letra, es un combo-box con valores de 1 a 20. Cuando se haya terminado de rellenar esta zona, habrá que pulsar sobre el botón Guardar para guardar estas opciones, sino se está conforme con la nueva columna se podrá pulsar el botón Cancelar. - HERRAMIENTA GENERADORA DE INFORMES - 158

170 Abrir un informe Para abrir un informe, se debe pulsar el Link ABRIR: Una vez pulsado dicho link, se accederá a la interfaz para decidir el informe a abrir: - HERRAMIENTA GENERADORA DE INFORMES - 159

FUNCIONAMIENTO: FUNCIONALIDAD

FUNCIONAMIENTO: FUNCIONALIDAD STRUTS Qué Es? Es un framework que implementa el patrón de arquitectura MVC en Java. El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo III. Diseño del Sistema. Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS 1. Introducción Los ambientes de aprendizaje acompañados de trabajos colaborativos como estrategia se revierten en actividades de diferente índole (análisis de videos,

Más detalles

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión 1.0. http://148.216.31.29:8080/siia/ PRONAD

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión 1.0. http://148.216.31.29:8080/siia/ PRONAD MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión 1.0 http://148.216.31.29:8080/siia/ PRONAD II C o n t e n i d o 1 Tabla de contenido C o n t e n i d o... I 1. Bienvenido...III 2. Antes de Comenzar...III 3. Iniciando

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Técnica de modelado de objetos (I) El modelado orientado a objetos es una técnica de especificación semiformal para

Más detalles

Anexo 4 Documento de Arquitectura

Anexo 4 Documento de Arquitectura Anexo 4 Documento de Arquitectura 1. Introducción El anexo se describe el propósito y alcance referentes al proyecto correspondiente al documento de arquitectura. 2. Propósito El propósito del anexo de

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Sistema de SaaS (Software as a Service) para centros educativos

Sistema de SaaS (Software as a Service) para centros educativos Sistema de SaaS (Software as a Service) para centros educativos Definiciones preliminares: Qué es SaaS? SaaS (1) es un modelo de distribución del software que permite a los usuarios el acceso al mismo

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: TRABAJO BIBLIOGRAFICO DE, CONCEPTOS, IMÁGENES, EJEMPLOS,

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA ÍNDICE DEL DOCUMENTO 1. INTRODUCCIÓN...2 1.1. REQUISITOS TÉCNICOS...2 2. DECLARACIONES...3 2.1. CREAR UNA

Más detalles

GUÍA BÁSICA USUARIO MOODLE 2.6

GUÍA BÁSICA USUARIO MOODLE 2.6 GUÍA BÁSICA USUARIO MOODLE 2.6 Esta guía representa los pasos a seguir por el alumno desde la aceptación en un curso Moodle hasta su posterior utilización, pero antes de explicar la forma de acceder y

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 -

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 - Graballo+ Agosto de 2007-1 - Índice Índice...2 Introducción...3 Características...4 DESCRIPCIÓN GENERAL...4 COMPONENTES Y CARACTERÍSTICAS DE LA SOLUCIÓN...5 Recepción de requerimientos...5 Atención de

Más detalles

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Ministerio de Educación Base de datos en la Enseñanza. Glosario Ministerio de Educación Base de datos en la Enseñanza. Glosario Instituto de Tecnologías Educativas 2011 Glosario Glosario GLOSARIO Archivo Un archivo es un elemento que contiene información y que a su

Más detalles

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD COMBINAR CORRESPONDENCIA EN MICROSOFT WORD Combinar documentos consiste en unir dos documentos diferentes sin que se modifiquen los datos que aparecen en ellos. Esta operación es muy útil y muy frecuente

Más detalles

WINDOWS. Iniciando Windows. El mouse

WINDOWS. Iniciando Windows. El mouse Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible

Más detalles

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Primer avance de proyecto de software para la gestión de inscripciones en cursos Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados

Más detalles

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE (Sistema Operativo Windows) Marzo 2011 Lourdes Moreno López 1,2 lmoreno@inf.uc3m.es 1: Grupo LaBDA,

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE LA APLICACIÓN HELP DESK CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUIA DISPONIBLE EN: http://preparadorivan.blogspot.com/ - http://preparadormssi.50webs.com/inicio.html La World Wide Web o la Web, es una de las múltiples

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

Manual de usuario del Centro de Control

Manual de usuario del Centro de Control Manual de usuario del Centro de Control www.ximdex.com Tabla de contenidos 1. Centro de Control...4 2. Gestor de Canales...5 2.1. Añadir un nuevo canal...6 2.2. Modificar las propiedades del canal...6

Más detalles

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA (Tico 2.0) EDITOR TICO La idea principal que motivo este proyecto fue trasladar la definición tradicional de tablero de comunicación en

Más detalles

TRÁFICO DE PISO 2. Rev. 1 15/04/09

TRÁFICO DE PISO 2. Rev. 1 15/04/09 TRÁFICO DE PISO 2 Manual de Usuario Rev. 1 15/04/09 Manual del Usuario. Tráfico de Piso 2. Qué es Tráfico de Piso? Se denomina Tráfico de Piso a la afluencia de personas al showroom del concesionario,

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML Diseño Diseño en el PUD Diseño de software Patrones arquitectónicos Diseño Orientado a Objetos en UML 1 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos de uso, Modelo

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa Código del programa: PEMDE Programa Experto en MANEJO DE DATOS CON EXCEL Modalidad: Virtual Descripción del programa 1 Presentación del programa Justificación Microsoft Excel es la herramienta de manejo

Más detalles

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1 Traslado de Copias y Presentación de Escritos Manual de Usuario V.3.1 Página: 2 45 INDICE INTRODUCCIÓN... 3 1 ACCESO A LA APLICACIÓN... 3 2 PROCESO DE FIRMA... 4 3 TRASLADOS PENDIENTES DE ACEPTAR POR EL

Más detalles

Herramienta de Gestión Integral de E-Business

Herramienta de Gestión Integral de E-Business Herramienta de Gestión Integral de E-Business Ingeniería técnica de informática de sistemas Autor: David López Martín Tutor: Antoni Oller Arcas Índice Introducción Metodología Análisis Diseño Planificación

Más detalles

Análisis y diseño del sistema CAPÍTULO 3

Análisis y diseño del sistema CAPÍTULO 3 Análisis y diseño del sistema CAPÍTULO 3 36 CAPÍTULO 3 Análisis y diseño del sistema En este capítulo se pretende realizar un análisis detallado de los requerimientos del software a desarrollar para la

Más detalles

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana EXCEL PRÓLOGO Microsoft Excel es una hoja de cálculo de gran capacidad y fácil uso. Excel no solo es una hoja de calculo, sino también tiene capacidad para diseñar bases de datos (listas) de forma totalmente

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

Operación de Microsoft Excel

Operación de Microsoft Excel Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,

Más detalles

Prezi: editor de presentaciones

Prezi: editor de presentaciones Prezi: editor de presentaciones Descripción Francisco Mora En momentos en que la Web 2.0 es un entorno de interacción, aparecen múltiples servicios que permiten compartir y editar recursos de forma conjunta.

Más detalles

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,

Más detalles

GUÍA DE COMUNICACIÓN DE PROBLEMAS DE SUMINISTRO DE MEDICAMENTOS DE USO HUMANO

GUÍA DE COMUNICACIÓN DE PROBLEMAS DE SUMINISTRO DE MEDICAMENTOS DE USO HUMANO GUÍA DE COMUNICACIÓN DE PROBLEMAS DE SUMINISTRO DE USO HUMANO Versión: 17/07/2009-1 - ÍNDICE 1 Descripción general de comunicaciones de Desabastecimiento... 3 2 Requisitos técnicos del navegador internet...

Más detalles

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 4 Julio 2009 Índice 1. Generalidades... 3 1.1

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema Sistema de Gestión Portuaria Uso General del Sistema Uso General del Sistema Página 1 de 21 Contenido Contenido... 2 1.Ingreso al Sistema... 3 2.Uso del Menú... 6 3.Visualizar Novedades del Sistema...

Más detalles

QUERCUS PRESUPUESTOS MANUAL DEL USO

QUERCUS PRESUPUESTOS MANUAL DEL USO QUERCUS PRESUPUESTOS MANUAL DEL USO 2 Tabla de Contenido 1 Introducción 1 1.1 General 1 1.1.1 Que es Quercus Presupuestos? 1 1.1.2 Interfaz 1 1.1.3 Árbol de Navegación 2 1.1.4 Estructura de Datos de un

Más detalles

Manual del Alumno de la plataforma de e-learning.

Manual del Alumno de la plataforma de e-learning. 2 Manual del Alumno de la Plataforma de E-learning 3 4 ÍNDICE 1. Página de Inicio...7 2. Opciones generales...8 2.1. Qué es el Campus...8 2.2. Nuestros Cursos...9 2.3. Cómo matricularme...9 2.4. Contactar...9

Más detalles

"Módulo OOWS para StarUML" INTRODUCCIÓN

Módulo OOWS para StarUML INTRODUCCIÓN UNA HERRAMIENTA PARA DIAGRAMAS OOWS: "Módulo OOWS para StarUML" Richard Medina Z. Universidad de Concepción, Chile INTRODUCCIÓN Una herramienta CASE (Computer Aided Software Engineering,

Más detalles

Sistema de Mensajería Empresarial para generación Masiva de DTE

Sistema de Mensajería Empresarial para generación Masiva de DTE Sistema de Mensajería Empresarial para generación Masiva de DTE TIPO DE DOCUMENTO: OFERTA TÉCNICA Y COMERCIAL VERSIÓN 1.0, 7 de Mayo de 2008 CONTENIDO 1 INTRODUCCIÓN 4 2 DESCRIPCIÓN DE ARQUITECTURA DE

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

Instructivo - Instalación y Uso de PDF Creator

Instructivo - Instalación y Uso de PDF Creator Versión : 1.00 Preparado por : Subdirección de Innovación Tecnológica Preparado para : Dirección de Informática Autor : Juan Moyano González Fecha creación : 05 de Febrero de 2008 Última modificación :

Más detalles

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW): INFORMÁTICA IE MÓDULO INTERNET Términos a conocer y conceptos básicos World Wide Web (WWW): Digamos, simplemente, que es un sistema de información, el sistema de información propio de Internet. Sus características

Más detalles

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS Índice Aplicación Delphos Portal... 3 Consulta de la Información... 4 1. Información

Más detalles

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos Plataforma Moodle Accediendo a los contenidos Formatos ----------------------------------------------------------------------- 2 Glosarios -----------------------------------------------------------------------

Más detalles

Microsoft Access 2010 (Completo)

Microsoft Access 2010 (Completo) Microsoft Access 2010 (Completo) Descripción: Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2010, estudiando los conceptos fundamentales de las bases de datos:

Más detalles

PRESENTACIÓN DEL PRODUCTO

PRESENTACIÓN DEL PRODUCTO PRESENTACIÓN DEL PRODUCTO esernet, s.l. Sebastián Elcano, 32 Planta 1 Oficina 22 28012 Madrid Teléfono: 91 433 84 38 -- Fax. 91 141 21 89 www.esernet.com -- esernet@esernet.com 1. Introducción 2. Descripción

Más detalles

Informes. 3. Elija la opción Nuevo (en la parte superior de la ventana) 4. Elija Autoinformes: en tablas y luego la tabla o consulta que se usará.

Informes. 3. Elija la opción Nuevo (en la parte superior de la ventana) 4. Elija Autoinformes: en tablas y luego la tabla o consulta que se usará. Informes Se pueden imprimir fácilmente los registros en una tabla o el resultado de un filtro simplemente usando el botón de Impresora de la barra de herramientas, o la opción Archivo / Imprimir. Sin embargo,

Más detalles

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula> Objetos educativos y estandarización en e-learning: Experiencias en el sistema Fernández-Manjón, B.1, López Moratalla, J.2 Martínez Ortiz, I. 2, Moreno Ger, P. 2 Universidad Complutense de Madrid,

Más detalles

BASES DE DATOS OFIMÁTICAS

BASES DE DATOS OFIMÁTICAS BASES DE DATOS OFIMÁTICAS Qué es una Bases de Datos Ofimática?. En el entorno de trabajo de cualquier tipo de oficina ha sido habitual tener un archivo con gran parte de la información necesaria para el

Más detalles

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos

Más detalles

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado Capítulo VI Estudio de Caso de Aplicación del Integrador de Información Desarrollado 6.1 Organización elegida La Organización elegida para el caso de aplicación, es la empresa CTM Tours del grupo Costamar,

Más detalles

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Metodología Evolutiva Incremental Mediante Prototipo y Técnicas Orientada a Objeto (MEI/P-OO)

Más detalles

Manual de Usuario Sistema de Ticket -Help Desk Portal Clientes

Manual de Usuario Sistema de Ticket -Help Desk Portal Clientes Manual de Usuario Sistema de Ticket -Help Desk Portal Clientes SECRETARIA DE PLANIFICACION Y GESTION INSTITUCIONAL www.redecofi.unc.edu.ar AÑO 2010 Manual Sistema Ticket OTRS Página 1 de 1 www.redecofi.unc.edu.ar/otrs

Más detalles

http://www.nicasoft.com.ni

http://www.nicasoft.com.ni BSC-RH es un sistema automatizado de planificación estratégica y gestión, utilizado en empresas para direccionar las actividades del negocio a la visión y estrategia de la organización. Mejora la comunicación

Más detalles

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1 Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de

Más detalles

Formularios. Formularios Diapositiva 1

Formularios. Formularios Diapositiva 1 Formularios Crear un formulario utilizando el Asistente para formularios Modificación en vista Diseño Adición de Controles a un Formulario Adición de un Subformulario a un formulario Formularios Diapositiva

Más detalles

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc COMBINACIÓN DE CARTAS Y CORRSPONDENCIA vbnmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyuiop

Más detalles

POWER POINT. Iniciar PowerPoint

POWER POINT. Iniciar PowerPoint POWER POINT Power Point es la herramienta de Microsoft Office para crear presentaciones que permiten comunicar información e ideas de forma visual y atractiva. Iniciar PowerPoint Coloque el cursor y dé

Más detalles

CREACIÓN Y CONFIGURACIÓN DE WIKIS

CREACIÓN Y CONFIGURACIÓN DE WIKIS Paso 1: Creación CREACIÓN Y CONFIGURACIÓN DE WIKIS Como con el resto de actividades, para crear un wiki lo primero es activar el modo de edición y seleccionar la opción Wiki de la lista desplegable Agregar

Más detalles

Sistema Inteligente de Exploración

Sistema Inteligente de Exploración Observatorio Municipal de Estadística Sistema Inteligente de Exploración Capítulos 1. Consideraciones iniciales y requerimientos... 2 2. Navegación... 3 3. Consulta de indicadores... 5 3.1. Elaboración

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Manual de Usuario Sitio Dinámico e-ducativa Versión 7.01.00

Manual de Usuario Sitio Dinámico e-ducativa Versión 7.01.00 Manual de Usuario Sitio Dinámico e-ducativa Versión 7.01.00 ÍNDICE DE CONTENIDOS INTRODUCCIÓN...3 ÁREAS DEL SITIO WEB...4 1. ENCABEZADO...5 2. SECCIONES Y PÁGINAS DEFINIDAS...5 3. CONTENIDO...5 4. NOVEDADES

Más detalles