Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Cleiton Eduardo Saturno
Título: Geração de interfaces de usuário a partir de um projeto de telas
 
Conclusão:
Com o desenvolvimento da ferramenta foi possível comprovar os benefícios trazidos pelas I-CASE e pela geração automática de código, visto que o processo de geração de código é bastante rápido, se comparado com o processo manual. Para se ter uma idéia da velocidade da geração, uma tela com 56 componentes visuais teve seu código gerado, para Java, em aproximadamente nove segundos. Deve-se acrescentar a esta estatística o tempo necessário para a construção do protótipo de tela no EA, contudo, este tempo é gasto apenas na primeira vez que se constrói o protótipo, restando depois a simples tarefa de gerar o código para a linguagem de destino. O equilíbrio entre integração e flexibilidade, proposto pelo conceito de I-CASE, foi alcançado com sucesso com o uso dos controles ActiveX, para o processo de integração, e com o uso de templates, para o processo de geração de código. Os controles ActiveX forneceram um processo implícito de integração, em que o usuário “imagina” que está trabalhando com mais um recurso do EA, e não com uma ferramenta externa. A opção pelo uso de templates trouxe flexibilidade ao processo de geração de código, uma vez que se pode definir a forma de saída do código de acordo com a necessidade. Esta flexibilidade foi corroborada pela criação de templates que possibilitaram a geração de código para as linguagens Visual Basic (apêndice J) e C# (apêndice K). A solução proposta cria uma inevitável (e saudável) separação entre a camada de interface da aplicação e as demais camadas que possam porventura existir, característica que vem ao encontro do que preconizam as ferramentas geradoras de código para GUI. Esta afirmação é corroborada pela possibilidade de se criar um projeto de interface com usuário independente da linguagem de programação que será usada no desenvolvimento, o que permite usar o mesmo esqueleto de interface para diversas plataformas de aplicação. Um requisito importante no contexto das I-CASE diz respeito à usabilidade, e apregoa pela manutenção de um padrão visual entre as ferramentas do ambiente integrado. Esta meta também foi perseguida e alcançada pelo plugin, que teve como inspiração a tela de geração de código para o diagrama de classes do EA (Figura 31), tendo como produto a tela exibida pela Figura 32. Após concluída a implementação da solução proposta, pôde-se constatar que as ferramentas usadas no processo de desenvolvimento supriram todas as necessidades, em especial o GALS, que facilitou bastante o desenvolvimento dos analisadores léxico e sintático, usados exaustivamente em quatro processos distintos do plugin. Também os recursos providos pela tecnologia COM foram eficientes na criação de uma integração consistente entre o cliente e o plugin. A ferramenta possui algumas restrições, principalmente em relação ao uso do template, que não permite a criação de estruturas de controle sofisticadas como while, for e case, bem como não permite operações aritméticas nem operações lógicas complexas. Apesar de a ferramenta reconhecer a estrutura do EA composta por elementos dentro de outros elementos, esta característica não é mantida no processo de geração de código, ocasião em que todos os elementos são lançados dentro de uma mesma lista e gerados linearmente, obedecendo a ordem de inserção nesta lista. Esta restrição causa uma indefinição no processo de geração de código, pois, caso haja dois ou mais grupos (com semânticas distintas) de elementos do tipo RadioButton, por exemplo, não há como definir a qual grupo cada elemento pertence, o que culminará na geração de um grupo único destes elementos, possivelmente sem sentido para o contexto da aplicação. Para melhor difusão da ferramenta construída foi criado um projeto no portal Sourceforge.net. As informações sobre o projeto podem ser obtidas a partir do endereço , e os códigos fontes estão disponíveis no endereço .