GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE...

29
GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE DADOS UTILIZANDO BANCO DE DADOS Acadêmico :Luis Fernando Coelho Orientador: Jomi Fred Hübner

Transcript of GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE...

Page 1: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE DADOS UTILIZANDO BANCO DE DADOS

Acadêmico :Luis Fernando CoelhoOrientador: Jomi Fred Hübner

Page 2: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Roteiro

� Introdução� Objetivos� Fundamentação teórica� Desenvolvimento� Conclusões

Page 3: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Introdução

� Problemas Desenvolvimento para Web�Tarefas rotineiras

�Dificuldade de manutenção das telas�Programador X WebDesigner

Page 4: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Motivação

� Reduzir tempo de programação� Agilizar o desenvolvimento de aplicações

Web� Facilitar a manutenção de telas do

sistema

Page 5: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Objetivo principal

� Desenvolver um gerador de código HTML e SQL utilizando a linguagem Java, a partir das definições armazenadas em um dicionário de dados

Page 6: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Objetivos específicos

� Permitir a criação e configuração das tabelas

� Gerar código em tempo de execução� Utilizar o framework WebWork

� Utilizar o Velocity para criação de templates

Page 7: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Fundamentação Teórica

Page 8: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Fundamentação Teórica

� MVC� Velocity� Dicionário de Dados� Geração Código� Ferramentas para Geração de Código

Page 9: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

MVC (Model, View, Controller)

� Model (modelo)

�armazenar objetos na sessão

� View (visualização)

�mostrar o resultado do usuário

� Controller (controle)

� interpreta eventos disparados pela visualização e executa o método corresponde no modelo.

Page 10: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Velocity

� É um template-engine feito em java� Voltado para aplicações web

�separa o HTML do JAVA�compõe a camada VIEW do MVC

Page 11: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Template Velocity<!-- imprimir nome e idade cadastrados --><th>$nome - $idade anos</th> <br><th>Cidade :<th><select>

<!-- listar cada elemento de $cidades -->#foreach($city in $cidades)

<!-- selecionar a cidade cadastrada --><option #if($city.equals($cidade)) selected #end> $city </option>

#end</select> <br><!-- listar cada elemento de $sexos -->#foreach($sex in $sexos)

<!-- selecionar o sexo cadastrado --><input type="checkbox" #if($sex.startsWith($sexo)) checked #end> $sex </input> <br>

#end

Page 12: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Dicionário de Dados

� Tabelas� Atributos� Índices� Integridade referêncial

Page 13: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Geração de Código

ad Gerador de Codigo

Especificar a saida

Projetar o gerador

Implementar a Analise deentrada

Implementar a formataçãoda saida

Consiste em determinar e implementar manualmente como deverá ser a saída

Determinar como será a entrada do gerador

Processar a entrada e armazenar as informações para gerar a saida

Gerar os arquivos

Page 14: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Ferramentas para Geração de Código

� DBDesigner� AspSys� GerCod

Modelagem de Dados e geração de código para PHP

Ferramenta case para criação,definição, documentação e

geração de paginas ASP

Gerar páginas JSP através da definição do banco de Dados MySQL.

Page 15: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Desenvolvimento

Page 16: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Visão Geral do Gerador

Page 17: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Caso de Usoud Diagrama de Caso de Uso

Criar Base de Dados

Desenv olv edor

Cadastrar cada Tabela no Dicionario

Criar uma Ação/Classe para chamar Gerador

Associar uma Tabela a uma Ação/Classe

Page 18: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Diagrama Atividadead Diagrama Ativ idade Cadastro Tabela

Inicio

Criar Tabela

Cadastrar/Alterar Tabela Dicionario

Dados

Criar Nova Tabela ?

Cadastrar Atributos Dicionario?

FIM

[NÃO]

[SIM]

[NÃO]

[SIM]

Page 19: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Estrutura Dicionário de Dados

Page 20: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Detalhes Tabela Atributo

Page 21: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Detalhes Tabela Atributo

Page 22: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Arquitetura do Geradorad Etapas do Gerador

Ler Tabela Atributo

Ler Tabela Indice

Ler Tabela Indice Atributo

Chama o GeradorGera SQL consulta

Executa e Armazena SQL

Gera Pagina

Page 23: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Conclusões

Page 24: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Conclusões

� Os objetivos propostos foram alcançados e o gerador mostrou-se eficiente e facilitou a criação de aplicações web. Alguns itens foram importantes na criação do gerador e da aplicação de Administração e estudo de caso.� NetBeans 4.1 + Tomcat 5.5 � Os frameworks WebWork e Xwork facilitaram estruturar as

aplicações.

� O gerador está sendo utilizado no desenvolvimento de 7 aplicações comerciais na empresa Wheb Sistemas.

Page 25: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Limitações

� A criação de integridades referências não alteram a estrutura do banco

Page 26: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Técnicas e Ferramentas

� Linguagens�Java, Velocity,Html,JavaScript e CSS

� Netbeans 4.1�Jakarta Tomcat 5.5

� FrameWorks�WebWork e Xwork

� Oracle

Page 27: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Extensões

� Novos tipos de atributos ( arquivo de imagem , editor de texto)

� Trabalhar com atributos pais

Page 28: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Números e curiosidades� 480 horas investidas� Gerador

�39 classes e 4320 linhas

� Administração do Dicionário de Dados�17 classes e 1000 linhas

� PEP�31 classes e 1470 linhas

� Total : 87 classes e 6790 linhas

Page 29: GERADOR DE CÓDIGO HTML BASEADO EM DICIONÁRIO DE …campeche.inf.furb.br/tccs/2006-I/2006-1luisfernandocoelhoap.pdf · do banco de Dados MySQL. Desenvolvimento. Visão Geral do Gerador.

Obrigado !

[email protected]