GERADOR DE ARTEFATOS PARA APLICAÇÕES WEB

Propaganda
GERADOR DE ARTEFATOS PARA APLICAÇÕES WEB
GENERATOR ARTIFACTS FOR WEB APPLICATIONS
Juliane Rosário – [email protected]
Murillo da Silva Casa Grande – [email protected]
Prof. M. Sc. Anderson Pazin – [email protected]
RESUMO
A utilização de geradores de artefatos ajuda as organizações a desenvolverem
múltiplos produtos de uma família de software com mais facilidades do que pelo
modo de implementação tradicional. Além de códigos, os geradores podem produzir
a documentação do usuário e do software, diagramas, casos de testes e figuras.
Geradores aceleraram e automatizam o processo de desenvolvimento de software
através do reuso de códigos pré-escritos, conhecidos como templates, que definem
parte de processos rotineiros de um determinado domínio, reduzindo assim o tempo
no desenvolvimento e os custos para sua disponibilização e utilização. Esse gerador
de artefatos tem como objetivo diminuir as atividades repetitivas de copiar, colar e
alterar.
Palavras-chave: AlphaWEB. Gerador de Artefatos. Aplicações. Software.
ABSTRACT
The use of generators of artifacts helps organizations develop multiple products in a
family of software with more features than the traditional method of implementation.
Besides codes, the generators can produce user documentation and the software,
diagrams, test cases and figures. Generators accelerated and automate the process
of software development through the reuse of pre-written code, known as templates,
which define part of routine processes of a particular domain, thus reducing
development time and the costs for the availability and use. This generator of
artifacts has as aims to reduce the repetitive activities of copy, paste and change.
Keywords: AlphaWEB. Generator of Artifacts. Applications. Software.
INTRODUÇÃO
O desenvolvimento de softwares é um processo complexo e de difícil
realização, devido às mudanças de tecnologia e às alterações nos requisitos que
surgem no decorrer do processo de desenvolvimento (PAZIN, 2004).
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
Para facilitar esse processo, algumas técnicas podem ser utilizadas. O reuso
de software, visa diminuir a possibilidade de inserção de erros e com isso o produto
final pode ser gerado com maior qualidade (JUNIOR, 2006). A técnica de reuso pode
ser automatizada por softwares específicos chamados de geradores ou wizards
(PAZIN, 2004).
Geradores de Artefatos são ferramentas que têm a capacidade de
automatizar e acelerar o processo de desenvolvimento de softwares, por meio de
reuso de código pré-escrito, chamados de templates. Os geradores permitem ao
desenvolvedor inserir especificações do programa em alto nível e a ferramenta gera
um produto de software (PAZIN, 2004).
Os geradores de artefatos trazem benefícios em termos de produtividade para
o software, pelo fato de gerarem classes de alto nível com base em suas
especificações (JUNIOR, 2006).
O gerador proposto neste trabalho cria as classes Java Beans com as regras
de negócios da aplicação, os scripts SQL de criação do banco de dados e as
interfaces HTML para a aplicação. Esses artefatos são gerados a partir das tabelas
existentes em um banco de dados. A utilização deste gerador de aplicação pode ser
justificada pela diminuição de tarefas repetitivas e pelos benefícios oferecidos como
a alta qualidade do produto gerado.
1
A LINGUAGEM JAVA
Java é uma linguagem de programação, desenvolvida pela empresa Sun
Microsystems voltada para a programação Orientada a Objetos (OO) (JAVA, 2009).
Ela foi criada com base nos elementos das linguagens C e C++ com finalidade de
adicionar conteúdo dinâmico a páginas da Web, como interatividade e animações,
atendendo as necessidades crescentes dos usuários e desenvolvedores (DEITEL e
DEITEL, 2005).
Java é utilizada em todos os principais setores corporativos de médio e
grande porte no mundo inteiro e está presente em uma ampla gama de dispositivos
programáveis como computadores, celulares, PDA, e redes (DEITEL e DEITEL,
2005).
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
A linguagem foi projetada com os seguintes objetivos: orientação a objetos,
portabilidade, recursos de rede e segurança, e oferece diversas vantagens em
relação ao uso de outras tecnologias de servidor como: flexibilidade, e benefícios
como escalabilidade de distribuir o processamento de aplicações desenvolvidas em
diversos servidores (GONÇALVES, 2007). Ela possui uma tecnologia que permite
maior velocidade, flexibilidade e um conjunto completo de classes base, nas
seguintes plataformas (SUN, 2009):
a) JSE (Java Standard Edition): é um ambiente básico destinado ao
desenvolvimento e execução das aplicações para desktops e estações de
trabalho;
b) JEE (Java Enterprise Edition): plataforma voltada para desenvolvimento de
aplicações de grande porte, onde a execução é realizada em servidores,
como aplicações para Web;
c) JME (Java Micro Edition): é destinada para desenvolvimento de
programas e aplicações para dispositivos móveis ou de pequeno porte,
como celulares.
As diferentes tecnologias existentes para a linguagem, possibilita variações
nas formas de desenvolvimento de sistemas, oferecendo aos desenvolvedores
opções de desenvolvimento com: servidores web, banco de dados relacionais,
computadores de grande porte, telefones móveis, sistemas de cartão de crédito,
entre outros (BODOFF, 2005).
2
GERADORES DE ARTEFATOS
Geradores de artefatos têm como finalidade acelerar o processo de
implementação no desenvolvimento de software, pois ajudam automatizar parte de
um processo rotineiro para um determinado domínio, traduzindo especificações de
uma linguagem de programação de alto nível para uma linguagem de baixo nível,
validando essas especificações e transformando-as automaticamente em artefatos
de software da aplicação (PAZIN, 2004).
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
Geradores de artefatos podem ter diferentes significados, podendo ser
considerados como compiladores, wizards e gerador de códigos (JUNIOR, 2006).
Sua pode trazer benefícios como o aumento de produtividade, redução do tempo
para desenvolvimento de um novo produto, prototipação e qualidade no produto
gerado (PAZIN, 2004). Um gerador de artefatos tem como finalidade realizar as
seguintes funções (JUNIOR, 2006):
a) validar das especificações de entrada e relatar erros ou avisos de
inconsistências;
b) completar a especificação utilizando as configurações padrão, caso seja
necessário;
c) realizar otimização;
d) gerar implementação.
Um artefato é um produto qualquer criado como parte da definição,
manutenção ou utilização de um processo de software (PAZIN, 2004). Dentre os
artefatos incluem descrições de processos, especificações, componentes, códigos,
aplicação, documentação para o usuário, etc. (ARTEFATO, 2010). Por essa
definição, todos os produtos criados por um gerador, desde scripts do banco de
dados à aplicação final são considerados artefatos (PAZIN, 2004).
Assim sendo, os geradores de artefatos ajudam uma organização a construir
múltiplos produtos de uma família com mais facilidades do que pelo modo de
implementação tradicional (PAZIN, 2004). Além dos códigos, os geradores podem
produzir documentação do usuário e do software, casos de teste, diagramas e
figuras, porém, um dos problemas dos geradores de aplicação é o seu alto custo de
desenvolvimento e manutenção (JUNIOR, 2006).
3
TEMPLATES
Template (Gabarito) é um documento sem conteúdo, é um modelo de página
que contém conjuntos de instruções de formatação visual, e instruções sobre onde e
qual tipo de conteúdo deve ser inserido a cada elemento da apresentação do
modelo (TEMPLATE, 2010).
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
Os templates são estruturas pré-existentes de código que são utilizadas para
definir os produtos que se deseja gerar por meio de um gerador de aplicação ou
artefatos (PAZIN, 2004). Esses templates possuem partes fixas, que estão
presentes em todos os artefatos gerados, e partes variáveis que permitem a criação
de diferentes artefatos de software utilizando o mesmo template (PAZIN, 2004).
De modo geral templates são modelos que servem de matriz para a produção
em escala de um produto ou serviço, possuem conjuntos de configuração padrão de
acordo com que as novas páginas vão sendo criadas, são utilizados para a
produção massiva de conteúdo e documentos e para separar o conteúdo da
apresentação, conteúdo de texto e web design e layouts da página (TEMPLATE,
2010). A utilização de templates permite a redução de custos e de prazos de
produção, pelo fato de servir como referência para a criação de novos arquivos e
diminuir casos de soluções isoladas (AVELLAR E DUARTE, 2010).
4
GERADOR DE ARTEFATOS DESENVOLVIDO ‘AlphaWEB’
Para melhor entender o gerador de artefatos e suas funcionalidades, é
necessário entender seu fluxo de execução durante sua utilização e criação dos
artefatos através da utilização de templates. O processo utilizado para a definição
dos templates do gerador foi seguindo os padrões dos scripts SQL, das classes
Beans e das páginas HMTL. Esses templates foram elaborados através da análise
de modelos de artefatos já existentes.
Fonte: Elaborado pelos Autores, 2010.
Figura 1. Utilização de templates durante a geração dos artefatos.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
A Figura 1 ilustra a utilização do gerador no momento em que o usuário for
solicitar a geração do artefato, o gerador deve processar um conjunto de
especificações que são definidas em seu código fonte, utilizando seus templates
para transformá-los no artefato final. O gerador processa essas especificações e as
informações fornecidas a ele pelo usuário e cria os artefatos SQL, Bean e/ou HTML
da aplicação de acordo com as definições estabelecidas em seus templates.
Analisando os artefatos foram identificadas em seus modelos partes fixas e
variáveis. Para que o gerador possa criar os artefatos às partes fixas são
previamente definidas em seu código fonte e as partes variáveis são substituídas
pelas informações que são fornecidas ao gerador pelo usuário através da utilização
de esquemas do banco de dados.
A Figura 2 apresenta o template definindo para os scripts Bens, sendo que os
itens em negrito representam as partes fixas do template e as partes variáveis são
colocadas entre tags.
public class <NomeTabela> {
private <tipo> <nome>;
public <NomeTabela> ( ){ }
public <tipo> get<Atributo> ( ) {
return <atributo>;
}
public void set<Atributo> (<tipo> <atributo>) {
this.<atributo> = <atributo>;
}
}
Fonte: Elaborado pelos Autores, 2010.
Figura 2. Template definido para criação das classes Beans.
Todos os artefatos produzidos pelo gerador (SQL, Bean e HTML) passaram
pela mesma forma de identificação das partes variáveis e fixas, definindo-se os
templates para cada artefato desejado. Após a definição dos templates, eles foram
embutidos no código da classe Java responsável pela geração dos artefatos no
gerador.
A Figura 3 ilustra o esquema completo de funcionamento do gerador de
artefatos e os artefatos SQL, Bean e HTML gerados por ele.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
...
Templates modelo = new Templates();
AtributosDAO obj = new AtributosDAO();
modelo.getScriptSQL(tabela, esquema);
modelo.getScriptHTML(obj.getAtribut
os ObjAtributo(esquema, tabela),
esquema, tabela);
modelo.getScriptBean(obj.getAtribut
osObjAtributo(esquema, tabela),
esquema, tabela);
response.getWriter().close();
...
CREATE TABLE
OFICINA.TIPOAPARELHO (
CODIGO NUMBER(22),
DESCRICAO VARCHAR2(50)
);
Script SQL de criação da tabela
public class TipoAparelho {
Gerador de
scripts SQL
Lê as definições
Java para geração
dos artefatos
private int codigo;
private String descricao;
public TipoAparelho(){}
public int getCodigo(){
return codigo;
}
Gerador AlphaWEB
public void setCodigo(int codigo){
this.codigo = codigo;
}
Gerador de
classes Beans
public String getDescricao(){
return descricao;
}
Templates
Recupera dados das
especificações do
Gerador
public void setDescricao(String
descricao){
this.descricao = descricao;
}
}
Gerador de
interfaces HTML
Classe Bean
Base de Dados
do Gerador
Interface HTML
Fonte: Elaborado pelos Autores, 2010.
Figura 3. Funcionamento do gerador de artefatos.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
O gerador cria seus artefatos em arquivos distintos no sistema operacional do
usuário e esses artefatos são gerados em um diretório padrão que está definido no
código fonte da aplicação. Após a geração do artefato o usuário poderá alterar seu
conteúdo de acordo com suas necessidades e de sua aplicação que está sendo
desenvolvida.
A Figura 4 apresenta a interface de geração dos artefatos. O usuário para
gerar o artefato, deverá informar os dados do respectivo artefato que deseja criar,
primeiro ele deve selecionar na lista de esquemas existentes no banco de dados, em
seguida deverá informar qual a tabela com seus atributos que deseja gerar o
artefato, e por fim deve escolher qual tipo de artefato ele deseja gerar, sendo eles
três tipos: SQL, Java Bean e HTML. O usuário poderá gerar quantos artefatos for
necessário para sua aplicação, sendo que ele poderá utilizar um esquema e tabela
por vez. O sistema cria os artefatos com todos os atributos cadastrados nas tabelas
dos esquemas, e após a criação do artefato o usuário poderá deletar os atributos
que não lhe são úteis e até mesmo adicionar ou alterar algum atributo da tabela.
Fonte: Elaborado pelos Autores, 2010.
Figura 4. Tela de Gerar Artefatos.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
As Figuras 5, 6 e 7 apresentam exemplos artefatos gerados pelo AlphaWEB,
esses artefatos foram criados através da utilização do esquema de estudo de caso,
Oficina Eletrônica. Os artefatos SQL, Bean e HTML gerados são referentes à tabela
de Comissão e todos seus atributos.
CREATE TABLE OFICINA.COMISSAO (
CODIGO NUMBER(22),
DATAPAGAMENTO DATE(7),
VALOR NUMBER(22)
);
Fonte: Elaborado pelos Autores, 2010.
Figura 5. Artefato de scripts SQL da Tabela Comissão.
public class Comissao {
private int codigo;
private DATE datapagamento;
private int valor;
public Comissao(){}
public int getCodigo(){
return codigo;
}
public void setCodigo(int codigo){
this.codigo = codigo;
}
public DATE getDatapagamento(){
return datapagamento;
}
public void setDatapagamento(DATE datapagamento){
this.datapagamento = datapagamento;
}
public int getValor(){
return valor;
}
public void setValor(int valor){
this.valor = valor;
}
}
Fonte: Elaborado pelos Autores, 2010.
Figura 6. Artefato Bean da Tabela Comissão.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
<html>
<head>
<title> Página HTML da Tabela Comissao </title>
</head>
<body>
<form id="idComissao">
codigo: <input type="text" id="codigo" /><br/>
datapagamento: <input type="text" id=
"datapagamento" /> <br/>
valor: <input type="text" id="valor" /> <br/><br/>
<input type="button" value="Salvar" />
<input type="button" value="Limpar" />
</form>
</body>
</html>
Scripts HMTL e Interface
Fonte: Elaborado pelos Autores, 2010.
Figura 7. Artefato HTML da Tabela Comissão.
CONCLUSÃO
Com a pesquisa realizada, foi possível compreender as funcionalidades e
utilização de um gerador de artefatos. O gerador de artefatos AlphaWEB,
apresentado neste trabalho, gera
artefatos em arquivos distintos no sistema
operacional, de acordo com os templates definidos no código fonte. Os artefatos
criados podem ser utilizados por aplicações de plataforma web ou desktop.
O gerador desenvolvido trabalha na plataforma web através de um browser
(navegador) de internet, sem precisar ser instalado na máquina do usuário. O
gerador realiza uma análise da estrutura de banco de dados e utiliza o resultado
dessa análise para formatar os arquivos SQL, Beans e HTML/JSP. Inicialmente o
gerador funciona apenas para o banco de dados Oracle. O gerador poderá receber
atualizações de sua recente versão, tendo como objetivo adaptar o sistema às
necessidades dos usuários.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
Com o desenvolvimento desse sistema, concluiu-se que a utilização de um
gerador de artefatos pode auxiliar o desenvolvimento de uma aplicação de software,
pois o sistema pode ser utilizado por qualquer tipo de desenvolvedor que tenha
como objetivo desenvolver uma aplicação em menor tempo, mas com maior
produtividade.
REFERÊNCIAS
ARTEFATO. Artefato: Desenvolvimento de Software, Brasil, 16 mai. 2010.
Disponível em: < http://pt.wikipedia.org/wiki/Artefato>. Acesso em: 01 jun. 2010.
AVELLAR E DUARTE. Glossario: Template, Brasil, [s.d.]. Disponível em:
<http://www.avellareduarte.com.br/glossario/glossario.htm>. Acesso em: 12 mai.
2010.
BODOFF, S.; et al. Tutorial do J2EE. Tradução Cláudio Rodrigues Pistilli Rio
Janeiro: Editora Ciência Moderna, 2005.
DEITEL, H.M.; DEITEL, P.J. Java: como programar. 6. ed. São Paulo: Pearson
Prentice Hall, 2005.
GONÇALVES, E. Desenvolvendo Aplicações Web com JSP, Servlets,
JavaServer Faces, Hibernate, EJB 3 Persistence e Ajax. Rio de Janeiro: Ciência
Moderna, 2007.
JAVA. Saiba mais sobre a tecnologia Java, Brasil, [s.d.]. Disponível em:
<http://www.java.com/pt_BR/about/>. Acesso em: 26 ago. 2009.
JUNIOR, E. K. S. Um de Gerador de Aplicações Configurável. 2006. Dissertação
(Mestrado em Ciências de Computação e Matemática Computacional) – Instituto de
Ciências Matemáticas e de Computação, USP de São Carlos, São Paulo.
PAZIN, A. GAwCRe: Um de Gerador de Aplicações baseadas na Web para o
Domínio de Gestão de Clínicas de Reabilitação. 2004. Dissertação (PósGraduação em Ciência da Computação) – Centro de Ciências Exatas e de
Tecnologia, Universidade Federal de São Carlos, São Paulo.
SUN. 1995: Começa a Grande Revolução da Tecnologia Java, Brasil, [s.d.].
Disponível em: <http://br.sun.com/aboutsun/historia.jsp>. Acesso em: 27 ago. 2009.
TEMPLATE.
Template,
Brasil,
02
mar.
2010.
Disponível
<http://pt.wikipedia.org/wiki/Templates>. Acesso em: 10 mai. 2010.
em:
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 1., n.2, jul/dez de 2010
Download