Upload
gabriel-omar-cotelli
View
322
Download
2
Embed Size (px)
Citation preview
Una Herramienta de
Reporting Reflexiva
Gabriel Omar Cotelli
A reflective reporting tool
Agenda
� Introducción / Intro
� Objetivos / Goals
� Documentos y Rendering / Documents � Documentos y Rendering / Documents
and Rendering
� Editor de Reportes / Report Editor
� Trabajo Futuro / Future Work
2
Intro
IntroducciónIntro
Mercap
� 13 años desarrollando sistemas
financieros con Smalltalk
� Productos Unitrade y XTrade para el
mercado financieromercado financiero
� Desarrollo con metodologías ágiles
4
� 13 years developing financial systems using
Smalltalk
� Unitrade and XTrade products for the financial
market
� Agile development
XTrade� Es un sistema financiero complejo
�12.951 Clases
�729.537 Líneas de Código
�16.312 Casos de Test Funcionales�16.312 Casos de Test Funcionales
� Para un mercado en cambio constante
5
� XTrade is a complex financial system
� 12.951 Classes
� 729.537 Lines of Code
� 16.312 Functional Test Cases
� Always changing market
Objetivos
Goals
� Programación Visual de Reportes
� Permitir que un analista funcional pueda generar
reportes
� Permitir al cliente hacer modificaciones rápidas a
un reporte
� Poder generar los documentos resultantes en � Poder generar los documentos resultantes en
varios formatos
7
� Visual report programming
� Enables a functional analyst to create a report
� Helps the customer to make quick changes
� Documents must be rendered in several formats
Documentos y
RenderingDocuments and renderingDocuments and rendering
Definiciones de Reportes� Definen la estructura del documento que se va a generar
� Especifican la consulta a evaluar para obtener los objetos iniciales
� Define que variables se podrán utilizar durante la generación del reporte
Report Definitions
generación del reporte
� Son una composición de definiciones de elemento de un documento
� A report definition:
� Defines the structure of the document to generate
� Specifies which query must be evaluated to get the initial objects
� Defines the variables that can be used in report generation
� Is a composition of document element definitions
Definiciones de Elemento del Documento
� Elementos que representan una parte del
documento a generar (secciones, tablas,
imágenes, etc)
� Elementos programáticos (Envíos de Mensajes,
Asignaciones)
� Elementos que trabajan sobre colecciones
(iteración, filtros y transformaciones)
Document element definitions� Elements representing document parts (sections, tables,
images…)
� Programmatic elements (Message Sending, Assignment)
� Collection related elements (iterations, filters and
transformations)
El Objeto Actual� Inicialmente el contexto de evaluación que se usa en la generación del reporte tiene como objeto actual el resultado de evaluar la consulta especificada.
� El mismo se modifica al evaluar un componente que realiza un envío de mensaje y se reemplaza
Current object
que realiza un envío de mensaje y se reemplaza con el objeto obtenido como resultado del envío de mensaje
� Initially the evaluation context used during report generation has as a “current object” the query result
� The current object is changed during the evaluation of a “Message Sending” component and is replaced with the result of the message sending
Proceso de Generación de un Reporte� Se evalúa la consulta definida y se utiliza como objeto actual el resultado de la misma
� Se evalúan las definiciones de elementos por orden con el objeto actual
� Si la definición es compuesta se evalúan también las definiciones que la componen
12
� Se obtiene finalmente un objeto que representa el documento Report generation process
� The query is evaluated and the result is set as current object
� The element definitions are evaluated in order together with the current object
� For composite definitions the children definitions are also evaluated
� Finally an object representing the document is obtained
Rendering� A partir del objeto que representa el documento se genera el archivo de salida en el formato seleccionado dependiendo del renderer implementado
� El mismo documento puede renderizarse en distintos formatos (HTML, Excel, Word, etc.)distintos formatos (HTML, Excel, Word, etc.)
13
� Based on the object representing the document the selected renderer generates the output file
� The same document can be rendered into several formats (HTML, Word, Excel, …)
Editor de Reportes
Report EditorReport Editor
Hasta ahora pareciera que no hay
nada nuevo….
15
Until now nothing new….
…vamos a ver un ejemplo en vivo
para entender mejor donde se usa
la capacidad reflexiva de Smalltalk
16
…let’s see a live example
Trabajo FuturoFuture WorkFuture Work
� Permitir configurar parámetros arbitrarios del
reporte que no dependan de la consulta elegida
� Permitir al usuario “reificar” conjuntos de
colaboraciones para poder reusarlas
posteriormente
� Soporte de Drag and Drop
� Mejor administración del estilo y presentación
final de los documentos
18
� Non query dependent report parameters
� Allow the user to reify collaborations for later reuse
� Definitions Drag and Drop support
� Better document style management
¿Preguntas?
Questions?
¡Gracias!Thanks!Thanks!