PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+

Documentos relacionados
Ferramenta para conversão de interfaces gráficas desenvolvidas em Delphi para a biblioteca GTK+ Acadêmico: Josimar Zimermann

FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO (TCC)

Algoritmos e Programação

Algoritmos e Programação

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO IMPLEMENTAÇÃO DA TÉCNICA TEXT MINING VIA WEB APLICADO NO AMBIENTE DO EMPREENDEDOR.

Delphi2Java-II: ferramenta para conversão de formulários Delphi em código Java

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SISTEMA DE GESTÃO ESCOLAR ORIENTADO A OBJETO UTILIZANDO BANCO DE DADOS CACHÉ

Componentes gráficos para prototipagem e documentação rápid a em Delphi. Aluno: Reinoldo Krause Junior Orientadora: Luciana Pereira de Araújo

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO PROTÓTIPO DE UM VISUALIZADOR DE MODELOS 3D PARA DISPOSITIVOS MÓVEIS UTILIZANDO A PLATAFORMA.NET CF 2.

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO COMPILADOR JAVA 5.0 PARA GERAR EXECUTÁVEL NATIVO PARA PLATAFORMA PALM OS

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SISTEMA GERENCIAL DE CONTROLE ESTATÍSTICO PARA FACÇÃO

5 Implementação 5.1 Plataforma 5.2 Arquitetura

2

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO JOGO DE XADREZ PARA CELULAR ENTRE DOIS PARTICIPANTES. alternativo:

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SISTEMA GERENCIAL PARA AUTOMAÇÃO DE FORÇA DE VENDAS USANDO DISPOSITIVOS MÓVEIS BASEADOS EM PALM OS

GERAÇÃO DE INTERFACES ANDROID A PARTIR DO DELPHI

FERRAMENTA DE APOIO À AUTOMATIZAÇÃO DE TESTES ATRAVÉS DO TESTCOMPLETE PARA PROGRAMAS DESENVOLVIDOS EM DELPHI

Análise e projeto de sistemas

Figura 16 Niagara - Visão de grupos de notas.

Padrão para Especificação de Requisitos de Produto de Multimídia

Curso online de. Formação em Front-End. Plano de Estudo

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO TÍTULO: DISTRIBUIÇÃO OTIMIZADA DE POLÍGONOS EM UM PLANO BIDIMENSIONAL

TURNO: Matutino VERSÃO: 1 N o

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Prof. Esp. Fabiano Taguchi SOFTWARES

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SOFTWARE PARA MONITORAÇÃO DO CONTEÚDO DO TRÁFEGO DE REDE EM AMBIENTE CORPORATIVO

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Desenvolvimento de Aplicações Desktop

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA

Sérgio Koch Van-Dall

Curso Online de E-commerce. Plano de Estudo

1. IDENTIFICAÇÕES 1. ALUNO

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Laboratório 01 NetBeans

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO (TCC)

Gerenciador de ambientes para testes manuais

Software Para Geração de Consultas e Relatórios

Guia de Instalação e Inicialização. Para DataPage+ 2012

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Ferramenta para criaçã. ção o e execuçã

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

FURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR

Criação de Aplicações GUI. Java JFC / Swing

AULA 1 INTRODUÇÃO AO JAVA

PROGRAMAÇÃO I. Introdução

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

Proposta de Trabalho de Conclusão de Curso

Leia-me do monitor do Veritas System Recovery 16

Ferramenta para auxílio na análise de impacto e rastreabilidade de requisitos na gestão de mudanças

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SISTEMA DE PEDIDOS PARA REPRESENTANTES DE CONFECÇÕES

Instruções de Operação

Ferramenta para Manutenção, Interfaces. Rodrigo Zimmermann

Introdução ao Desenvolvimento de

Capítulo 1. Aspectos Preliminares

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

CENTRO DE SUPORTE À DECISÃO. Manual de Instalação

GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS

Estruturas de Sistemas Operacionais

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

UML Unified Modeling Language Linguagem de Modelagem Unificada

COBOL Query 1.0. Ferramenta para extração de dados em arquivos COBOL. Aluno: André Luiz Jacinto Orientador: Adilson Vahldick

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Introdução à Informática

3. Linguagem de Programação C

Atividade prática orientada: delimitação de bacias hidrográficas usando o QGIS

INFORMÁTICA. 04. Pode-se dizer que tanto o Windows, quanto o Linux possuem o kernel aberto, podendo ser facilmente customizados pelos usuários.

Elaboração de uma metodologia para o desenvolvimento de interfaces com o

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO SOFTWARE DE INVENTÁRIO DE SOFTWARE DE EQUIPAMENTOS DE REDE UTILIZANDO SESSION MESSAGE BLOCK

Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG

Professor Emiliano S. Monteiro

DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO

VisEdu-MAT: Visualizador de material educacional, módulo de matemática

Curso online de Fundamentos em Android. Plano de Estudo

ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO DE APLICATIVOS MÓVEIS MULTIPLATAFORMA

SIGERIS SISTEMA DE GESTÃO DE REDES DE INFRAESTRUTURAS PREDIAIS 1 SIGERIS - SYSTEM OF MANAGEMENT OF PREDIAL INFRASTRUCTURE NETWORKS

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO CONCEITO DE SOFTWARE PROFESSOR CARLOS MUNIZ

FERRAMENTA CONVERSORA DE INTERFACES GRÁFICAS DELPHI2JAVA-II

CP Introdução à Informática Prof. Msc. Carlos de Salles

Informática I. Aula 2. Ementa

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI

Mestrado em Engenharia Física Tecnológica

26 a 29 de novembro de 2013 Campus de Palmas

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

Delphi 2010 Plano de Aula 24 Aulas (Aulas de 1 Hora)

Fundamentos de Sistemas Operacionais

DESENVOLVIMENTO DE UM APLICATIVO WEB DE GERENCIAMENTO E AUTOMAÇÃO DE PEDIDOS PARA EMPRESAS PRESTADORAS DE SERVIÇO NO RAMO ALIMENTÍCIO

Transcrição:

TURNO: MATUTINO VERSÃO: 1 ANO / SEMESTRE: 2011.2 N o UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO COORDENAÇÃO DE TRABALHO DE CONCLUSÃO DE CURSO PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO TÍTULO: FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+ ÁREA: Linguagens de Programação Palavras-chave: Delphi. GTK+. GUI. Glade. 1 IDENTIFICAÇÃO 1.1 ALUNO Nome: Josimar Zimermann Código/matrícula: 91284 Endereço residencial: Rua: Centenário n : 400 Complemento: Bairro: Valparaíso CEP: 89023600 Cidade: Blumenau UF: SC Telefone fixo: 30372697 Celular: 91991905 Endereço comercial: Empresa: Uninformare Informática Ltda. Rua: Ângelo Dias n : 207 Bairro: Centro CEP: 89010912 Cidade: Blumenau UF: SC Telefone: 30414464 E-Mail FURB: josimar@inf.furb.br E-Mail alternativo: josimar@unimestre.com 1.2 ORIENTADOR Nome: Joyce Martins E-Mail FURB: joyce@furb.br E-Mail alternativo:

2 DECLARAÇÕES 2.1 DECLARAÇÃO DO ALUNO Declaro que estou ciente do Regulamento do Trabalho de Conclusão de Curso de Ciência da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada em todas as páginas. Ainda me comprometo pela obtenção de quaisquer recursos necessários para o desenvolvimento do trabalho, caso esses recursos não sejam disponibilizados pela Universidade Regional de Blumenau (FURB). Assinatura: Local/data: 2.2 DECLARAÇÃO DO ORIENTADOR Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de Ciência da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada em todas as páginas. Ainda me comprometo a orientar o aluno da melhor forma possível de acordo com o plano de trabalho explícito nessa proposta. Assinatura: Local/data:

3 AVALIAÇÃO DA PROPOSTA 3.1 AVALIAÇÃO DO(A) ORIENTADOR(A) Acadêmico(a): Orientador(a): Josimar Zimermann Joyce Martins ASPECTOS TÉCNICOS ASPECTOS METODOLÓGICOS ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. 3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? 4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? 5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? 6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? 7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? 8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? 9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? atende atende parcialmente A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO não atende Assinatura do(a) avaliador(a): Local/data:

CONSIDERAÇÕES DO(A) ORIENTADOR(A): Caso o(a) orientador(a) tenha assinalado em sua avaliação algum item como atende parcialmente, devem ser relatos os problemas/melhorias a serem efetuadas. Na segunda versão, caso as alterações sugeridas pelos avaliadores não sejam efetuadas, deve-se incluir uma justificativa. Assinatura do(a) avaliador(a): Local/data:

3.2 AVALIAÇÃO DO(A) COORDENADOR DE TCC Acadêmico(a): Avaliador(a): Josimar Zimermann José Roque Voltolini da Silva ASPECTOS TÉCNICOS ASPECTOS METODOLÓGICOS ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. 3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? 4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? 5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? 6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? 7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? 8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? 9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? atende atende parcialmente A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: não atende Assinatura do(a) avaliador(a): Local/data:

3.3 AVALIAÇÃO DO(A) PROFESSOR(A) DA DISCIPLINA DE TCCI Acadêmico(a): Avaliador(a): Josimar Zimermann Sérgio Stringari ASPECTOS TÉCNICOS ASPECTOS METODOLÓGICOS ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. 3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? 4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? 5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? 6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? 7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? 8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? 9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? PONTUALIDADE NA ENTREGA atende atende parcialmente não atende atraso de dias A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: Assinatura do(a) avaliador(a): Local/data:

3.4 AVALIAÇÃO DO(A) PROFESSOR(A) ESPECIALISTA NA ÁREA Acadêmico(a): Avaliador(a): Josimar Zimermann ASPECTOS TÉCNICOS ASPECTOS METODOLÓGICOS ASPECTOS AVALIADOS 1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. 3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? 4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? 5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? 6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? 7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? 8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? 9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? atende atende parcialmente A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: não atende Assinatura do(a) avaliador(a): Local/data:

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+ JOSIMAR ZIMERMANN BLUMENAU 2011

JOSIMAR ZIMERMANN FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+ Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Ciência da Computação Bacharelado. Profa. Joyce Martins - Orientadora BLUMENAU 2011

2 1 INTRODUÇÃO Em face do crescimento no uso do Linux, os desenvolvedores de software notaram a necessidade de adequar seu produto com o objetivo de atender os usuários de diferentes sistemas operacionais. Esta adequação pode ser realizada através do uso de linguagens de programação e bibliotecas portáveis. Contudo, ainda existe uma grande quantidade de software desenvolvido em ambientes de programação que geram código executável específico para um sistema operacional. Em especial, o ambiente de desenvolvimento integrado Delphi é amplamente utilizado na construção e manutenção de software (ANTUNES, 2008). Esta ferramenta é conhecida por oferecer ao construtor do software um ambiente para fácil e rápida criação de interfaces gráficas com o usuário. Porém, as interfaces gráficas desenhadas com o auxílio do Delphi são interpretadas apenas pelo sistema operacional Microsoft Windows. Por isso, muitas vezes opta-se pela migração de aplicativos escritos em Delphi para uma linguagem de programação portável como o Java. A etapa de migração inclui redesenhar as interfaces gráficas confeccionadas com o auxílio do Delphi, para uma equivalente na linguagem de programação para a qual se está migrando. Trata-se de um processo que exige um grande esforço e demanda tempo considerável no processo da migração. Ainda assim, o que se obtém é um software migrado para uma nova linguagem de programação e a interface gráfica do aplicativo continuará inerente à linguagem adotada. Tendo em vista os fatores supracitados, pretende-se através deste trabalho desenvolver uma ferramenta para auxílio na tradução de interfaces gráficas criadas no Delphi para o formato GladeXML (THE GLADE PROJECT, 2009), legível à biblioteca gráfica GTK+ 1 (GALE et al., 2010). Além da portabilidade oferecida pela GTK+, a interface gráfica especificada no formato GladeXML poderá ser utilizada por qualquer linguagem de programação que implementa a mesma. 1 GIMP Toolkit (GTK+).

3 1.1 OBJETIVOS DO TRABALHO O objetivo deste trabalho é desenvolver uma ferramenta para auxiliar na conversão de interfaces gráficas desenvolvidas no ambiente de desenvolvimento integrado Delphi, para um formato legível à biblioteca gráfica GTK+. Os objetivos específicos do trabalho são: a) identificar os componentes visuais mais comumente utilizados na construção de interfaces gráficas em Delphi e verificar os componentes similares oferecidos pela biblioteca GTK+; b) extrair informações dos componentes visuais que compõem uma interface gráfica desenvolvida em Delphi, através do uso de técnicas de análise léxica e sintática; c) gerar um arquivo GladeXML para criar a definição de uma interface gráfica para a GTK+ semelhante à desenvolvida no Delphi; d) traduzir a assinatura dos eventos dos componentes gráficos do Delphi para os componentes gráficos da biblioteca GTK+; e) exibir a interface gráfica convertida para a biblioteca GTK+. 1.2 RELEVÂNCIA DO TRABALHO Um dos objetos de estudo, a biblioteca gráfica GTK+, apresenta conceitos novos na criação de interfaces gráficas com o usuário, como por exemplo, a possibilidade de reutilização de uma mesma Graphical User Interface (GUI) em diferentes linguagens de programação ou sua alteração sem a necessidade de recompilar e redistribuir o software. Para apresentar este recurso da GTK+, o presente documento propõe o desenvolvimento de uma ferramenta para conversão de interfaces gráficas construídas no Delphi para um formato legível a esta biblioteca. Neste contexto serão abordados conceitos sobre a migração de software, mais especificamente migração de interfaces gráficas. Como já mencionado, o Delphi é um ambiente de desenvolvimento largamente utilizado para a construção de aplicativos que possuem uma interface gráfica com o usuário, mas o código fonte nele produzido não é portável a outros sistemas operacionais, resultando em aplicativos exclusivos ao Microsoft Windows. A GTK+, por sua vez, é uma biblioteca

4 multi-plataforma podendo ser compilado e executado nos diferentes sistemas operacionais que a suportam. Portanto, o desenvolvimento do trabalho engloba a utilização de técnicas da área de compiladores, como a análise léxica e sintática para leitura do recurso de entrada (o código fonte da interface Delphi). Ademais, o trabalho envolverá a manipulação de arquivos extensible Markup Language (XML) e técnicas de geração automática de código. 1.3 METODOLOGIA Abaixo são listados os passos que serão executados para a realização do trabalho, bem como o cronograma a ser respeitado: a) levantamento bibliográfico: estudar documentação sobre desenvolvimento de geradores de interfaces gráficas com o usuário, GUI e desenvolvimento de interfaces gráficas em Delphi, além de material relacionado à biblioteca gráfica GTK+; b) elicitação de requisitos: detalhar e reavaliar os requisitos, observando as necessidades levantadas durante o levantamento bibliográfico; c) definição de componentes gráficos e respectivos eventos a converter: estudar aplicações desenvolvidas em Delphi, observando quais componentes gráficos são mais comumente utilizados na criação de interfaces gráficas, bem como os eventos suportados por tais componentes; d) criação da tabela de equivalência: efetuar um estudo comparativo entre Delphi e GTK+, a fim de identificar as equivalências entre os componentes gráficos e os eventos disponibilizados pelos componentes. Ainda, verificar quais componentes gráficos do Delphi não possuem um similar na GTK+ e definir que estratégia será adotada para conversão de tais componentes; e) especificação: especificar a ferramenta com análise orientada a objeto utilizando a Unified Modeling Language (UML). Será utilizado o Enterprise Architecht para a elaboração dos diagramas de casos de uso, de classes e de estado; f) desenho da interface gráfica: projetar a interface gráfica da ferramenta com o Glade (THE GLADE PROJECT, 2009); g) especificação do analisador dos arquivos de entrada: especificar definições regulares e gramática para desenvolver os analisadores léxico e sintático,

5 quadro 1. responsáveis por efetuar a leitura dos arquivos de definição de interfaces gráficas do Delphi, os arquivos.dfm. Na especificação será utilizado o GALS 2 (GESSER, 2003); h) implementação: implementar e integrar os seguintes módulos da ferramenta: - interface gráfica: processar a interface desenhada na etapa (f) com a biblioteca GTK+ para Pascal, - analisador dos arquivos de entrada: gerar os analisadores léxico e sintático para efetuar a leitura dos arquivos.dfm a partir das especificações feitas na etapa (g). Para gerar o código dos analisadores léxico e sintático será utilizado o GALS e a linguagem de programação Pascal/Object Pascal para o compilador Free Pascal, - gerador do arquivo GladeXML: implementar o gerador do arquivo GladeXML levando em consideração as equivalências estabelecidas na etapa (d). Utilizarse-á a linguagem Pascal/Object Pascal em conjunto com o compilador Free Pascal, - exibição da interface gráfica gerada: processar o arquivo gerado na etapa anterior resultando na exibição da interface gráfica Delphi convertida para GTK+. Será utilizada a linguagem Pascal/Object Pascal em conjunto com o compilador Free Pascal, bem como a biblioteca gráfica GTK+; i) testes: desenvolver interfaces gráficas no Delphi e executar testes durante toda a etapa de implementação para validar o resultado. Os períodos adotados para a realização das etapas supracitadas estão relacionadas no 2011 jul. ago. set. out. nov. etapas / quinzenas 1 2 1 2 1 2 1 2 1 2 levantamento bibliográfico elicitação de requisitos definição de componentes gráficos e respectivos eventos a converter criação da tabela de equivalência especificação desenho da interface gráfica especificação do analisador dos arquivos de entrada implementação teste Quadro 1 Cronograma 2 Gerador de Analisadores Léxicos e Sintáticos (GALS).

6 2 REVISÃO BIBLIOGRÁFICA Neste capítulo são apresentados aspectos teóricos pertinentes ao trabalho, sendo que inicialmente são abordadas técnicas de geração de interfaces gráficas. A seção 2.2 apresenta um breve conceito sobre interfaces gráficas do usuário e sobre bibliotecas para criação dessas interfaces. A seção seguinte traz uma rápida explanação sobre criação de interfaces gráficas no ambiente de desenvolvimento Delphi. A seção 2.4 e suas subseções falam sobre o toolkit GTK+: origem, comportamento, aspectos e uma ferramenta auxiliar, o Glade. A seção posterior apresenta trabalhos correlatos, dentre os quais alguns serviram como fonte de inspiração para a elaboração do proposto. 2.1 GERADORES DE INTERFACES GRÁFICAS COM O USUÁRIO Segundo Herrington (2003, p. 3), geradores de código são programas criados para escrever outros programas. Geradores de interfaces gráficas são igualmente geradores de código. Contudo, o resultado não é necessariamente um programa ou aplicação, mas sim uma interface gráfica para o usuário final do produto, o software. Um gerador de interface gráfica do usuário recebe sua entrada de um arquivo de definição de interface gráfica e de uma definição de Application Programming Interface (API). Como apresentado em tópicos posteriores, alguns programas especialistas na criação de interfaces gráficas utilizam um arquivo com um formato distinto para construir interfaces gráficas, ao passo que outros utilizam formatos consagrados como o XML. A adoção desta abordagem no processo de desenvolvimento de software possibilita a criação de uma camada de abstração entre as regras de negócio para a interface e sua implementação (HERRINGTON, 2003, p. 100). Para Herrington (2003, p. 101-102), alguns benefícios chaves na utilização de geradores de interfaces gráficas são: a) consistência: geração em massa de formulários criam formulários consistentes e que apresentam padrões de usabilidade; b) flexibilidade: usando ferramentas para desenhar interfaces, pode-se rapidamente efetuar modificações requeridas para esta interface. Modificações nas regras de

7 segurança podem destacar esta flexibilidade; ao modificar e melhorar a API de segurança da aplicação pode-se alterar os modelos para recriar as interfaces que estarão em conformidade com as novas regras de segurança; c) portabilidade: tão bom quanto as ferramentas hoje disponíveis para criação de interfaces gráficas, esta técnica permite vincular a lógica de negócio da interface aos detalhes da implementação. Proporcionando um alto nível de representação dos requisitos de negócio da interface gráfica na aplicação, permite reproduzir código executável da aplicação para diferentes tecnologias de interface gráfica. 2.2 GUI Uma GUI é um tipo de interface do utilizador que permite a interação com dispositivos digitais através de elementos gráficos como ícones e outros indicadores visuais [...] (INTERFACE..., 2010). Segundo Preece, Rogers e Sharp (2005, p. 29), a necessidade do desenvolvimento de interfaces para interação com dispositivos digitais, em especial os computadores, passou a surgir no final dos anos 70 e início dos [anos] 80 [com o] advento dos monitores e estações de trabalho pessoais. A construção de interfaces gráfica é uma etapa comumente presente no processo de desenvolvimento de software aplicativo. Através do uso de componentes gráficos, os desenvolvedores de software procuram criar interfaces que tornam o uso do seu produto uma tarefa simples e intuitiva. Um exemplo claro é apresentado na figura abaixo, onde a GUI de um software reprodutor de mídia tenta imitar o painel de funções de um aparelho de som. Fonte: NullSoft (2010). Figura 1 Exemplo de software reprodutor de mídia com interface gráfica do usuário

8 Para auxiliar os desenvolvedores de software na confecção das interfaces dos seus produtos, têm-se as bibliotecas para criação de interfaces gráficas com o usuário. Estas bibliotecas costumam fornecer aos seus utilizadores um conjunto de componentes gráficos e funções para criação de interfaces gráficas. Um exemplo bastante conhecido é a Visual Component Library (VCL). Criada para ser disponibilizada junto ao Delphi, esta biblioteca oferece ao desenvolvedor uma camada de abstração para as funções gráficas do sistema operacional Microsoft Windows (VISUAL..., 2010). Outros exemplos são as bibliotecas Qt 3 e GTK+, ambas multi-plataforma. São utilizadas no desenvolvimento dos ambientes de desktop KDE 4 e GNOME 5, respectivamente. 2.3 DESENVOLVIMENTO DE INTERFACES GRÁFICAS EM DELPHI O Delphi é uma ferramenta Rapid Application Development (RAD) construída sobre a linguagem de programação Object Pascal e largamente utilizada para o desenvolvimento de aplicações com interface gráfica de usuário na plataforma Microsoft Windows (EMBARCADERO..., 2010). Esta ferramenta oferece um ambiente prático e de fácil utilização para a criação de interfaces gráficas. O desenho das interfaces gráficas no Delphi é baseado em formulários, ou janelas, nos quais o desenvolvedor utiliza o recurso drag-and-drop (arrastar-e-soltar) para adicionar os componentes que irão compor a interface. É possível ainda definir as propriedades e comportamentos destes componentes. O Delphi utiliza a VCL, que fornece uma grande quantidade de componentes visuais para auxiliar na criação de interfaces gráficas. Esta biblioteca foi escrita em Object Pascal e é utilizada para desenvolvimento de aplicações para o sistema operacional Microsoft Windows. Alguns dos componentes gráficos que integram a VCL são: botões, caixas de seleção, caixas de checagem, listas, janelas, painéis, barras de ferramentas, barras de status, barras de progresso, barras de rolagem, entre outros. As definições de um formulário ou janela desenvolvido no Delphi ficam armazenadas em um arquivo com a extensão dfm. Este arquivo possui uma formatação distinta para 3 Framework multiplataforma para desenvolvimento de aplicativos com interface gráfica (QT, 2010). 4 Ambiente gráfico de desktop e plataforma desenvolvimento para o sistema operacional Linux (KDE, 2010). 5 GNU Network Object Model Environment (GNOME, 2010).

9 identificar os componentes que compõem a interface, armazenando informações sobre o seu posicionamento no formulário, seu tamanho em pixels, comportamento e funções associadas a seus eventos. A figura 2 exibe uma interface gráfica simples produzida no Delphi e, na seqüência, o quadro 2 apresenta o arquivo DFM correspondente à interface. Figura 2 Uma interface simples produzida no ambiente Delphi object Form1: TForm1 Left = 0 Top = 0 Caption = 'Produzido no Delphi' ClientHeight = 172 ClientWidth = 314 Color = clbtnface Font.Charset = DEFAULT_CHARSET Font.Color = clwindowtext Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 104 Top = 56 Width = 105 Height = 41 Caption = 'Confirmar' Font.Charset = DEFAULT_CHARSET Font.Color = clwindowtext Font.Height = -13 Font.Name = 'Tahoma' Font.Style = [fsbold] ParentFont = False TabOrder = 0 end end Quadro 2 Um arquivo dfm correspondente à interface apresentada na Figura 2 Os componentes gráficos da VCL foram desenvolvidos com a capacidade de disparar eventos em resultado à ação do usuário. Por exemplo, ao clicar com o cursor do mouse sobre um botão, um evento é disparado e enviado para a aplicação. A aplicação, por sua vez, verificará se existe algum procedimento associado àquele evento e irá executá-lo. A VCL prédefine uma série de eventos para o seu conjunto de componentes. Alguns eventos são comuns a diferentes componentes, enquanto outros são eventos específicos (FONSECA, 2005, p. 15). 2.4 GTK+ A GTK+ foi originalmente desenvolvida para auxiliar na criação de um novo aplicativo para editoração de imagens chamado GNU Image Manipulator Program (GIMP).

10 O toolkit foi criado por Peter Mattis, Spencer Kimball e Josh MacDonald no ano de 1997, na Universidade da Califórnia (KRAUSE, 2007, p. 2). Harlow (1999, p. 3) afirma que a GTK+ é uma biblioteca para desenvolvimento de aplicações com interface gráfica do usuário, extensivamente utilizada na confecção de aplicações Linux com GUI, com destaque para os ambientes de desktop GNOME e Xfce 6. Apesar da sua origem no sistema operacional Linux, a biblioteca tem sido expandida para suportar outros sistemas operacionais, tais como: Microsoft Windows, BeOS, Solaris, Mac OS X e outros (KRAUSE, 2007, p. 2). A GTK+ é constituída por bibliotecas, cada uma fornecendo ao desenvolvedor uma classe de funcionalidades específicas. As seis bibliotecas da GTK+ são: a) GLib: constitui-se de estruturas e funções para manipulação de listas encadeadas, árvores, exceções, gerenciadores de memória e temporizadores, podendo ser usada sem a GTK+ para desenvolvimento de aplicações sem interface gráfica (HARLOW, 1999, p. 7). A GLib fornece uma interface multi-plataforma que permite que o código fonte produzido possa ser executado em qualquer sistema operacional por ela suportado (KRAUSE, 2007, p. 5); b) GLib Object System ou GObject: foi criada para permitir o fácil acesso aos objetos da GTK+ a partir de outras linguagens de programação. Esta habilidade facilitou a criação da larga variedade de bindings disponíveis para outras linguagens acessarem os objetos da GTK+ (KRAUSE, 2007, p. 6); c) GIMP Drawing Kit (GDK): é uma camada intermediária entre a GTK+ e o sistema gerenciador de janelas ou interfaces gráficas do sistema operacional, efetuando chamadas às funções de manipulação de janelas do sistema operacional (HARLOW, 1999, p. 209). É responsável por apresentar desenhos, gráficos, cursores e fontes de todas as aplicações GTK+ (KRAUSE, 2007, p. 7); d) GdkPixbuf: fornece funções para manipulação de imagens do lado cliente (GALE et al., 2010), oferecendo uma grande variedade de funções para manipulação e exibição de imagens (KRAUSE, 2007, p. 7-8); e) Pango: ao passo que a GDK manipula a apresentação de imagens e janelas, esta biblioteca controla a saída de texto e fonte internacionalizados (KRAUSE, 2007, p. 8); f) Accessibility Toolkit (ATK): fornece aos componentes gráficos da GTK+ construções integradas para criação de interfaces gráficas para usuários com 6 Ambiente gráfico de desktop para sistemas baseados em UNIX e similares (XFCE, 2010).

11 problemas de acessibilidade. Algumas funções que a ATK oferece são: leitor de tela, temas de alto contraste visual, modificador de comportamento de teclado, entre outros (KRAUSE, 2007, p. 9). A GTK+ é um sistema baseado em sinais e funções de callback. Um sinal é uma notificação para a aplicação na qual o usuário efetuou alguma ação. É possível executar uma função para responder a este sinal através da GTK+. Estas funções são conhecidas como funções de callback (KRAUSE, 2007, p. 27). Uma aplicação GTK+ é iniciada por uma chamada à função gtk_main(). A partir deste ponto o programa entra no laço principal e fica em estado de espera até receber um sinal, como o clique do mouse sobre um botão, por exemplo. Os sinais são emitidos pelo sistema gerenciador de janelas do sistema operacional, responsável pelo controle dos componentes gráficos da aplicação, e capturados pela GDK, que por sua vez repassa para a GTK+. A GTK+ procura uma função de callback associada ao sinal ou evento e efetua a sua chamada (LIRA, 2010). Embora o toolkit GTK+ ofereça ao desenvolvedor de software um conjunto completo de funcionalidades para criação de interfaces gráficas, realizar esta tarefa manualmente escrever as instruções para criação da interface gráfica com todos os seus componentes, incluindo seu comportamento e disposição na tela é um processo moroso e desgastante, e muitas vezes o resultado é longe do esperado. Ademais, caso seja necessário alterar qualquer aspecto da interface mover, alterar a dimensão ou comportamento de um componente; adicionar um novo componente; remover um componente o novo código precisará ser recompilado. O Glade surgiu da necessidade da criação de uma ferramenta para facilitar a criação de interfaces gráficas para a biblioteca GTK+. É uma ferramenta da espécie RAD, usada no desenvolvimento rápido e fácil de interfaces gráficas para o toolkit GTK+ e para o ambiente de desktop GNOME (THE GLADE PROJECT, 2009). As interfaces gráficas desenhadas com o Glade são salvas em arquivos no formato XML que descrevem a estrutura dos componentes que integram a interface, suas propriedades, comportamento e eventos associados. Esta abordagem permite ao desenvolvedor manter as definições da interface gráfica separadamente do código fonte da aplicação. Qualquer alteração na interface pode ser efetuada sem a necessidade de alterar o código fonte da aplicação (KRAUSE, 2007, p. 359). Os arquivos XML gerados pelo Glade recebem a extensão.glade. Estes arquivos podem ser carregados dinamicamente para aplicações GTK+ utilizando o objeto auxiliar GtkBuilder. Isto permite que uma mesma interface gráfica possa ser carregada para

12 aplicações GTK+ nas diferentes linguagens de programação que possuem binding para a GTK+ (THE GLADE PROJECT, 2010). Um exemplo de arquivo.glade é apresentado no quadro 3, ao passo que a figura 3 exibe a interface gráfica correspondente. <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> <!--Generated with glade3 3.4.5 on Tue Sep 7 21:21:47 2010 --> <glade-interface> <widget class="gtkwindow" id="window1"> <property name="width_request">300</property> <property name="height_request">300</property> <property name="visible">true</property> <property name="title" translatable="yes">desenvolvido para GTK+</property> <property name="resizable">false</property> <property name="window_position">gtk_win_pos_center</property> <child> <widget class="gtkvbuttonbox" id="vbuttonbox1"> <property name="visible">true</property> <child> <widget class="gtkbutton" id="button1"> <property name="visible">true</property> <property name="can_focus">true</property> <property name="receives_default">true</property> <property name="label" translatable="yes">confirmar</property> <property name="response_id">0</property> </widget> </child> </widget> </child> </widget> </glade-interface> Quadro 3 Arquivo GladeXML com as definições de uma interface gráfica construída no Glade Figura 3 Interface gráfica simples para GTK+ produzida pelas definições apresentadas no quadro 3 2.5 TRABALHOS CORRELATOS Durante a elaboração deste documento foram identificados alguns trabalhos correlatos que possuem características semelhantes ao trabalho proposto. Foram selecionados três projetos: DelphiToWeb (SOUZA, 2005), a extensão da ferramenta Delphi2Java-II

13 desenvolvida por Silveira (2006) e ScriptCase (NETMAKE, 2010), os quais são apresentados mais detalhadamente nas próximas seções. 2.5.1 DelphiToWeb Desenvolvida no ano de 2005, a ferramenta DelphiToWeb converte formulários desenhados no Delphi para páginas HyperText Markup Language (HTML) (SOUZA, 2005). A ferramenta consiste numa primeira etapa de interpretação do arquivo.dfm com as definições do formulário Delphi e depois na sua conversão para uma interface em outro formato, neste caso páginas HTML. A ferramenta converte uma grande quantidade de componentes gráficos Delphi, sendo que foram considerados os componentes mais utilizados e com equivalentes em HTML. Os componentes convertidos pela ferramenta são: TForm, TMainMenu, TMenuItem, TToolBar, TToolButton, TLabel, TEdit, TButton, TSpeedButton, TBitBtn, TComboBox, TMemo, TRichEdit, TListBox, TGroupBox, TRadioGroup, TRadioButton, TPanel, TCheckBox, TPopupMenu, TPageControl e TTabSheet (SOUZA, 2005, p. 35-36). Para o desenvolvimento foram utilizados analisadores léxico, sintático e semântico para efetuar a interpretação dos arquivos.dfm que contém as definições da interface gráfica desenhada no Delphi (SOUZA, 2005, p. 37). 2.5.2 Extensão da ferramenta Delphi2Java-II para suportar componentes de banco de dados Silveira (2006, p. 13) diz que a ferramenta Delphi2Java-II é utilizada para migração de aplicações desenvolvidas em Delphi para a plataforma Java, efetuando a leitura de formulários Delphi e gerando classes Java, preservando a estrutura originalmente desenhada. No entanto, uma limitação de Delphi2Java-II é a quantidade restrita de componentes que são convertidos. Sendo assim, Silveira (2006, p. 13) propôs a melhoria da ferramenta por permitir também a conversão de componentes visuais para acesso a banco de dados, além da conversão da forma de conexão ao banco utilizando a Java Data Base Connectivity (JDBC).

14 A extensão contempla a conversão dos seguintes componentes de visualização de dados: TDBCheckBox, TDBComboBox, TDBEdit, TDBGrid, TDBMemo, TDBRadioGroup e TDBText (SILVEIRA, 2006, p. 41-42). Além dos componentes de visualização de dados, responsáveis por apresentar os dados do banco de dados ao usuário, os seguintes componentes de acesso a dados também são convertidos pela ferramenta: TDatabase, TDataSource, TTable e TQuery (SILVEIRA, 2006, p. 43). O trabalho foi desenvolvido sobre o padrão de projeto MVC 7, a fim de dividir as camadas de saída geradas pela ferramenta, entre componentes de visualização, componentes de visualização de dados e componentes de acesso a banco de dados. A análise da entrada, arquivo.dfm, foi efetuada pela utilização de analisadores léxico, sintático e semântico. 2.5.3 ScriptCase O ScritpCase é um gerador de aplicações web baseadas em banco de dados Structured Query Language (SQL). As aplicações geradas pela ferramenta utilizam as linguagens de programação PHP e JavaScript, as mesmas linguagens utilizadas no desenvolvido do software (NETMAKE, 2010). As aplicações resultantes do ScriptCase rodam sobre qualquer servidor capaz de interpretar o PHP. Portanto, segundo NetMake (2010), os aplicativos gerados pelo ScriptCase podem ser executados em uma grande quantidade de sistemas operacionais, tais como: Linux, Windows, IBM I5 e outros sistemas UNIX. A construção de aplicações com o ScriptCase é efetuada através de um navegador com acesso ao servidor no qual a ferramenta está instalada. A criação é baseada em formulários web que efetuarão a manipulação dos dados no banco de dados. A ferramenta fornece recursos como (SCRIPTCASE, 2010): validação de campos (data, moeda, número, entre outros); validação de chaves (primárias, únicas, estrangeiras); possibilidade de geração de relatórios baseados em consultas SQL definidas pelo usuário; execução de consultas complexas com subselects, joins e stored procedures; suporte a vários bancos de dados conhecidos (Oracle, MS-SQL Server, DB2, MySQL, Informix, PostGreSQL, Access, Interbase, Firebird) e criação de aplicações que se interligam com o Delphi e o Visual Basic, através da instanciação do Component Object Model (COM). 7 Model-View-Controller (MVC).

15 O software é desenvolvido pela empresa brasileira NetMake e atualmente encontra-se na sua versão 5.1, sendo utilizada por diversos clientes no território nacional (NETMAKE, 2010).

16 3 REQUISITOS DO SISTEMA A SER DESENVOLVIDO Abaixo são relacionados os requisitos que o trabalho deverá atender, classificados em Requisitos Funcionais (RF) e Requisitos Não Funcionais (RNF): a) o sistema deverá permitir ao usuário selecionar os arquivos.dfm que deseja converter (RF); b) o sistema deverá efetuar a conversão dos arquivos.dfm selecionados pelo usuário para arquivos GladeXML correspondentes (RF); c) o sistema deverá permitir ao usuário selecionar o diretório de saída dos arquivos convertidos (RF); d) o sistema deverá permitir ao usuário solicitar a visualização da interface gráfica convertida para GTK+ (RF); e) o sistema deverá gerar código Pascal/Object Pascal para carregar as interfaces GTK+ (RNF); f) o sistema deverá traduzir os eventos dos componentes Delphi para GTK+ (RNF); g) o sistema deverá ser codificado em Pascal/Object Pascal para o compilador Free Pascal (RNF); h) a interface gráfica do sistema deverá ser desenvolvida para a biblioteca GTK+ utilizando o Glade (RNF); i) a leitura do arquivo de entrada (.DFM) deverá ser realizada utilizando técnicas de compiladores como análise léxica e sintática (RNF).

17 4 CONSIDERAÇÕES FINAIS Levando em consideração a crescente necessidade de ferramentas que auxiliem no desenvolvimento de software cujo código fonte possa ser portável entre diferentes plataformas e/ou sistemas operacionais, mas ciente da grande quantidade de aplicativos construídos para um sistema operacional específico, o presente trabalho propõe criar uma solução para conversão da interface gráfica de tais aplicativos para uma solução portável. Utilizando técnicas de geração de código, mais especificamente geração de interface gráfica com o usuário, pretende-se criar uma ferramenta capaz de traduzir as interfaces construídas em Delphi para um formato legível à biblioteca GTK+. Esta tradução engloba também a utilização de analisadores léxicos e sintáticos, a fim de interpretar a entrada ou código a ser traduzido. A biblioteca GTK+ será estudada em conjunto com o Delphi, a fim de detectar a semelhança entre os componentes gráficos fornecidos por ambas as ferramentas, bem como os eventos que se equivalem entre estes. O resultado desta análise será um mapa de componentes entre Delphi e GTK+. O toolkit GTK+ será utilizado para a leitura e apresentação da interface gráfica convertida e definida no formato XML no arquivo GladeXML. O uso deste formato permite que uma mesma interface gráfica seja interpretada por diferentes linguagens que implementam a biblioteca GTK+, além de possibilitar a sua utilização em diferentes sistemas operacionais, visto que esta biblioteca é multi-plataforma. Serão utilizados funções e objetos auxiliares desta biblioteca para ajudar na construção da ferramenta que apresentará o resultado final, ou seja, a interface gráfica já convertida para a biblioteca GTK+. As três ferramentas apresentadas como trabalhos correlatos são geradores de código. Mas, diferentemente das duas primeiras, o ScriptCase não efetua a análise de um arquivo de entrada, mas sim da estrutura de um banco de dados para gerar uma saída, neste caso um aplicativo para manipulação de dados. As ferramentas DelphiToWeb e Delphi2Java-II se assemelham ao trabalho proposto no que diz respeito à sua entrada: o arquivo de definição de interfaces.dfm, sendo a diferença a saída por elas geradas. Ao passo que as ferramentas ScriptCase e DelphiToWeb concentram-se na geração de código para a web, a ferramenta aprimorada por Silveira (2006) dá ênfase à conversão de código Delphi para uma tecnologia portável, o Java.

18 REFERÊNCIAS BIBLIOGRÁFICAS ANTUNES, Jonathan L. Conhecendo o Delphi. [S.l.], 2008. Disponível em: <http://www.oficinadanet.com.br/artigo/745/conhecendo_o_delphi>. Acesso em: 25 set. 2010. EMBARCADERO Delphi. In: WIKIPÉDIA, a enciclopédia livre. [S.l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/codegear_delphi>. Acesso em: 26 set. 2010. FONSECA, Fabricio. Ferramenta conversoras de interfaces gráficas: Delphi2Java-II. 2005. 59 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. GALE, Tony et al. GTK+ 2.0 tutorial. [S.l.], 2010. Disponível em: <http://library.gnome.org/devel/gtk-tutorial/stable/>. Acesso em: 02 set. 2010. GESSER, Carlos E. GALS: gerador de analisadores léxicos e sintáticos. 2003. 150 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) Centro Tecnológico, Universidade Federal de Santa Catarina, Florianópolis. Disponível em: <http://gals.sourceforge.net>. Acesso em: 26 set. 2010. GNOME. In: WIKIPÉDIA, a enciclopédia livre. [S. l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/gnome>. Acesso em: 25 set. 2010. HARLOW, Eric. Developing Linux applications with GTK+ and GDK. Indianapolis: New Riders, 1999. HERRINGTON, Jack. Code generation in action. Greenwich: Manning, 2003. INTERFACE gráfica do utilizador. In: WIKIPÉDIA, a enciclopédia livre. [S.1.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/interface_gr%c3%a1fica_do_utilizador>. Acesso em: 02 set. 2010. KDE. In: WIKIPÉDIA, a enciclopédia livre. [S.l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/kde>. Acesso em: 25 set. 2010. KRAUSE, Andrew. Foundations of GTK+ development. New York: Apress, 2007. LIRA, Marcelo. Mantendo a sanidade com o Glade. [Recife], 2010. Disponível em: <http://www.cin.ufpe.br/~cinlug/wiki/index.php?title=mantendo_a_sanidade_com_o_glad e#programa.c3.a7.c3.a3o_orientada_a_eventos>. Acesso em: 04 set. 2010.

19 NETMAKE. ScriptCase. [Recife], 2010. Disponível em: <http://www.scriptcase.com.br/site/home/home.php>. Acesso em: 20 set. 2010. NULLSOFT. Winamp. [S.l.], 2010. Disponível em: <http://www.winamp.com/>. Acesso em: 25 set. 2010. PREECE, Jennifer; ROGERS, Yvonne; SHARP, Helen. Design de interação: além da interação homem-computador. Porto Alegre: Bookman, 2005. QT. In: WIKIPÉDIA, a encyclopedia livre. [S.l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/qt>. Acesso em: 25 set. 2010. SCRIPTCASE. In: WIKIPÉDIA, the free encyclopedia. [S.l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/scriptcase>. Acesso em: 20 set. 2010. SILVEIRA, Janira. Extensão da ferramenta Delphi2Java-II para suportar componentes de banco de dados. 2006. 81 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. SOUZA, Ariana. Ferramenta para conversão de formulários Delphi em páginas HTML. 2005. 68 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. THE GLADE PROJECT. Glade: a user interface designer. [S.l.], 2009. Disponível em: <http://glade.gnome.org/>. Acesso em: 04 set. 2010. VISUAL component library. In: WIKIPÉDIA, the free encyclopedia. [S.1.]: Wikimedia Foundation, 2010. Disponível em: <http://en.wikipedia.org/wiki/visual_component_library>. Acesso em: 05 set. 2010. XFCE. In: WIKIPÉDIA, a encyclopedia livre. [S. l.]: Wikimedia Foundation, 2010. Disponível em: <http://pt.wikipedia.org/wiki/xfce>. Acesso em: 25 set. 2010.