Академический Документы
Профессиональный Документы
Культура Документы
2 No 1, agosto, 2013
64
silvano.lohn@gmail.com, adilson.vahldick@udesc.br
Resumo
Este artigo apresenta o framework FormBuilder, desenvolvido para automatizar a gerao de
telas PrimeFaces e agilizar o desenvolvimento de aplicaes Web. O framework gera trs tipos
de componentes: boto, caixa de edio e caixa de marcao, que sero gerados com base em
anotaes declaradas nas classes de controle desenvolvidas pelo usurio, a ligao entre a classe
de controle e a pgina web ser realizada atravs de uma tag JSF customizada. No final do artigo
apresentada uma aplicao exemplo que utiliza o framework desenvolvido.
Palavras-chave: Framework. Gerador de Tela. Java. JSF. PrimeFaces.
Abstract
This article presents the framework FormBuilder, developed to automate the generation of
screens PrimeFaces and expedite the development of Web applications. The framework
generates three types of components: button, edit box and check box, that will be generated
based on annotations declared in control classes developed by the user, the connection between
the control class and the web page will be accomplished through a custom tag JSF. In the end of
the article is displayed a example application that uses the framework developed.
Keywords: Framework. Screen Generator. Java. JSF. PrimeFaces.
1. Introduo
Em constante crescimento, a Internet est cada vez mais presente na vida das pessoas ao redor do
mundo, diversificando seu uso e afetando diversos aspectos da vida cotidiana dos usurios
domsticos, indstria, comrcio e educao. Hoje diversos setores que realizam seus negcios e
operaes na Internet esto migrando e criando novos sistemas para o ambiente web, suas
funcionalidades e contedo passam por mudanas constantes exigindo um grande esforo das
equipes de desenvolvimento.
Segundo Gimenes et al. (2005), um dos principais objetivos da Engenharia de Software o
reuso de cdigo. Atravs da reutilizao de software obtm-se o aumento da qualidade da
aplicao e a reduo do esforo de desenvolvimento, para isso, utilizam-se componentes de
software, que so unidades reutilizveis que oferecem servios atravs de interfaces bem
definidas.
Horstmann (2007) define um framework sendo um conjunto de classes cooperativas que
implementam os mecanismos que so essenciais para um domnio de problemas especficos,
provendo funcionalidades comuns e adicionais para o desenvolvimento dos mdulos da
aplicao.
Os principais benefcios da utilizao de frameworks, segundo Sommerville (2007), advm da
modularidade, reusabilidade e extensibilidade que os frameworks proporcionam. Frameworks
encapsulam detalhes de implementao volteis atravs de seus pontos de extenso, interfaces
estveis e bem definidas, aumentando a modularidade da aplicao. Os locais de mudanas de
V. 2 No 1, agosto, 2013
65
V. 2 No 1, agosto, 2013
66
o texto que ser apresentado no boto gerado. A Figura 1 apresenta a utilizao da anotao
Button.
V. 2 No 1, agosto, 2013
67
V. 2 No 1, agosto, 2013
68
V. 2 No 1, agosto, 2013
69
A Figura 10 apresenta o mtodo que realiza a gerao da caixa de edio. Na linha 130
criada a expresso que faz a ligao do componente com o atributo que foi o alvo da anotao na
classe de controle. Dessa forma, toda vez que a pgina sofrer uma atualizao, o valor do
atributo ser apresentado no componente gerado. Todo componente gerado deve possuir um
identificador nico. Na linha 132 atribudo o identificador ao componente, que gerado
realizando a concatenao do nome informado no managedBean e o nome do atributo da classe
referente ao componente gerado.
A Figura 11 apresenta o mtodo que realiza a gerao da caixa de marcao. Da mesma forma
que o campo de edio, criada a expresso que realiza a ligao do componente com o atributo
da classe que foi o alvo da anotao e a gerao do seu identificador.
A Figura 12 apresenta o mtodo que realiza a gerao do boto. Na linha 139 atribudo ao
boto o nome que foi definido na propriedade caption da anotao Button. Na linha 141
atribuda uma ao ao boto que realiza a execuo do mtodo que foi alvo da anotao toda vez
que o boto gerado for pressionado.
V. 2 No 1, agosto, 2013
70
A Figura 12 apresenta o mtodo que realiza a gerao do boto. Na linha 139 atribudo ao
boto o nome que foi definido na propriedade caption da anotao Button. Na linha 141
atribuda uma ao ao boto que realiza a execuo do mtodo que foi alvo da anotao toda vez
que o boto gerado for pressionado.
4. Trabalhos Correlatos
Um dos principais frameworks para gerao de interface com base nos objetos de controle ou
modelos da aplicao o framework Apache Isis. Segundo Apache (2013), ele um framework
Java utilizado para o desenvolvimento rpido de aplicaes orientadas a domnio, os
desenvolvedores definem objetos de domnio seguindo convenes e anotaes, o framework
interpreta estes dados e faz a gerao da apresentao e a persistncia dos dados da aplicao.
O Quadro 1 apresenta a comparao entre as principais funcionalidades dos frameworks
FormBuilder e Apache Isis.
Principais Funcionalidades
FormBuilder
Configurao de validaes e componentes via anotaes
Gerao de componentes de interface via anotaes
X
Framework desenvolvido em Java e de cdigo aberto
X
Possui camada de persistncia e segurana
Possui integrao com jUnit
Reutilizao de pginas para gerao automatizada de componentes
X
Quadro 1 Comparao de funcionalidades
Apache Isis
X
X
X
X
X
5. Aplicao Exemplo
Para demonstrar a utilizao do framework, foi desenvolvida uma aplicao exemplo dividida
em trs partes: a pgina XHTML, onde estar declarada a tag formBuilder; a classe de controle,
onde ser declarada as anotaes; e a classe de modelo. Nas prximas sees sero apresentados
cada um desses artefatos.
5.1. Pgina XHTML
A Figura 13 apresenta a pgina XHTML que far a exibio dos componentes gerados. Na linha
9 declarado o namespace referente a tag desenvolvida. Na linha 16 est declarada a tag
formBuilder.
V. 2 No 1, agosto, 2013
71
V. 2 No 1, agosto, 2013
72
A Figura 16 apresenta as declaraes da anotao Button que tiveram como alvo os mtodos
excluirCarro, editarCarro e cadastrarCarro declarados na classe de controle.
V. 2 No 1, agosto, 2013
73
6. Consideraes Finais
Um bom framework deve fornecer interfaces bem definidas para que o seu cdigo seja
reutilizado por outras aplicaes. Sem a utilizao do framework PrimeFaces para a gerao dos
componentes de interface no seria possvel desenvolver o framework FormBuilder no tempo
disponvel.
O desenvolvimento deste trabalho mostrou que possvel criar um framework capaz de gerar
pginas web com tecnologias JSF e PrimeFaces. Mesmo realizando a gerao de apenas trs
tipos de componentes, a arquitetura do framework possibilita o desenvolvimento de novas
anotaes e a gerao de outros componentes PrimeFaces realizando poucas modificaes no
framework.
Os principais objetivos para adoo dos frameworks nas empresas o ganho da produtividade
e a qualidade final das aplicaes desenvolvidas. possvel notar no desenvolvimento da
aplicao exemplo como fcil e rpido construir uma pgina de apresentao, um
desenvolvedor sem grandes conhecimentos em JSF e PrimeFaces consegue declarar as anotaes
em suas classes de controle gerando uma pgina web sem dificuldades.
Optou-se em no gerar pginas XHTML completas e realizar somente o processamento da tag
formBuilder, dessa forma o desenvolvedor consegue definir outros componentes PrimeFaces n
pgina XHTML que no existem referncias nas classes de controle, o desenvolvedor tambm
poderia reutilizar pginas j existentes, inclundo somente a tag formBuilder para
processamento. A forma utilizada no traz problemas de performance, tendo em vista que todos
os componentes JSF so processados da mesma forma, a tag formBuilder tratada como um
simples painel onde adicionado os componentes gerados.
Abaixo segue alguns recursos no presentes no framework desenvolvido que podem ser
implementados:
Desenvolver novas anotaes e a gerao de outros componentes de interface como
tabelas, grades, listas, caixa de mensagens e dilogos;
Desenvolver anotaes que definem formatos de layout para gerao das telas;
V. 2 No 1, agosto, 2013
74
em:
SOMMERVILLE, Ian. Engenharia de software. 8. ed. So Paulo: Pearson, Prentice Hall, 2007.