Propostas de Estágio 2011/2012

DEI - FCTUC
Gerado a 2024-04-29 13:03:39 (Europe/Lisbon).
Voltar

Titulo Estágio

Desenvolviemnto de uma biblioteca para geração de gráficos e diagramas dinâmicos usando HTML5 e GWT

Área Tecnológica

Engenharia de Software

Local do Estágio

Ciengis, IPN, Rua Pedro Nunes, 3030-199 Coimbra

Enquadramento

A quinta versão do HTML permite a exploração de funcionalidades gráficas que anteriormente não se encontravam disponíveis nos vários browsers sem a utilização de "plugins". A utilização dos elementos SVG e Canvas permitem a criação de imagens 2D complexas no próprio browser, tais como gráficos (plots) científicos e diagramas para representação de dados. Através da combinação da utilização de AJAX e destas novas funcionalidades, os dados de cada gráfico podem agora ser transmitidos de forma assíncrona e a sua representação actualizada no browser, possibilitando novas formas de interagir com o utilizador. Uma vez que os gráficos e diagramas são gerados no cliente, não existe a necessidade de sobrecarregar os servidores com a criação de imagens estáticas.

Adicionalmente, o aparecimento de novas tecnologias como o [url=http://code.google.com/intl/pt-PT/webtoolkit/]Google Web Toolkit[/url] (GWT), possibilita facilmente desenvolver código complexo e com elevada performace. O GWT permite ao programador escrever código na linguagem Java que poderá ser transformado/compilado em Javascript.

O JFreeChart é provavelmente a biblioteca livre e de código aberto desenvolvida em Java de melhor qualidade que permite criar um grande variedade de gráficos e diagramas profissionais. Contudo a sua utilização em aplicações web está dependente ou da geração de imagens estáticas no servidor ou da utilização de um plugin para correr uma applet no browser.

Actualmente, não existe nenhuma biblioteca livre e de código aberto que permitam tirar partido das novas tecnologias presentes no HTML5 e do GWT com um nível que qualidade e variedade de gráficos e diagramas equivalente ao JFreeChart.

Objetivo

Desenvolvimento de uma biblioteca para geração dinâmica de gráficos e diagramas utilizando o(s) elemento(s) Canvas e/ou SVG do HTML5.

O código será desenvolvido em Java usando o [url=http://code.google.com/intl/pt-PT/webtoolkit/]GWT[/url] para compilar o código em Javascript. Um dos pontos de partida/inspiração para esta biblioteca a será o [url=http://www.jfree.org/jfreechart/]JFreeChart[/url]. A estratégia de implementação da biblioteca seguirá o paradigma Model/View/Controller (MVC).

No final é esperado que a biblioteca permita a criação dinâmica dos seguintes gráficos e diagramas:
- gráficos de dispersão;
- gráficos de linhas;
- gráficos de colunas;
- diagramas circulares.

Outros tipos de gráficos poderão ser desenvolvidos.

As representações dos dados em gráficos de dispersão, linhas e colunas poderão ser combinados no mesmo gráfico. Todos os gráficos serão altamente personalizáveis, com a possibilidade de escolha das cores, formas, fontes, etc...

Plano de Trabalhos - Semestre 1

Tarefa 1 (Set-Nov): Compilação das várias bibliotecas open-source para geração das primitivas gráficas (linhas, curvas, pontos...) em SVG e/ou Canvas, tendo especial atenção às bibliotecas implementadas em Java/GWT.
Avaliação e escolha de uma biblioteca existente para utilização no projecto. Caso nenhuma das bibliotecas existentes seja adequada, desenvolvimento de uma pequena biblioteca (em Java/GWT) que será usada para este fim.

Tarefa 2 (Nov-Dez): Compilação de uma lista das bibliotecas open-source existentes para a geração de gráficos e diagramas dinâmicos. Estudo da biblioteca JFreeChart e de outras que tenham sido consideradas relevantes. Desenvolvimento da estratégia de implementação em Canvas/SVG usando a biblioteca criada/escolhida na primeira Tarefa.

Plano de Trabalhos - Semestre 2

Tarefa 3 (Fev-Abr): Desenvolvimento da biblioteca para gerar gráficos e diagramas usando GWT e a biblioteca da Tarefa 1. A biblioteca será desenvolvida usando a estratégia Model/View/Controller (MVC).

Tarefa 4 (Maio): Análise e benchmarks do código em diversos browsers. Optimização da biblioteca para a representação de grandes quantidades de dados.

Condições

O estagiário trabalhará nas instalações da Ciengis, no Instituto Pedro Nunes (perto do Pólo II).
Será fornecida uma compensação monetária no segundo semestre.

Observações

Todo o desenvolvimento será realizado em Linux.

Orientador

Andrey Romanenko
andrey.romanenko@ciengis.com 📩