Universidade regional de blumenau centro de ciências exatas e naturais curso de ciência da computaçÃO – bacharelado



Baixar 1.25 Mb.
Página1/7
Encontro07.10.2019
Tamanho1.25 Mb.
  1   2   3   4   5   6   7


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

2011/2-12

josimar zimermann

ferramenta para conversão de interfaces gráficas desenvolvidas em delphi para a biblioteca gtk+

Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciência da Computação — Bacharelado.

Profª. Joyce Martins - Orientadora


bLUMENAU

2011

2011/2-12

ferramenta para conversão de interfaces gráficas desenvolvidas em delphi para a biblioteca gtk+

Por


josimar zimermann

Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:



______________________________________________________

Presidente: Profª. Joyce Martins, Mestre – Orientadora, FURB



______________________________________________________

Membro: Prof. Aurélio Faustino Hope, Mestre – FURB



______________________________________________________

Membro: Prof. José Roque Voltolini da Silva – FURB



Blumenau, 14 de dezembro de 2011.

RESUMO

O presente trabalho descreve a especificação e implementação de uma ferramenta para conversão de interfaces gráficas construídas em Delphi para um formato legível à biblioteca gráfica GTK+. Utiliza analisadores léxico, sintático e semântico para a interpretação da entrada da ferramenta. O conteúdo lido do arquivo de entrada é carregado para a memória e convertido para o formato XML legível à Libglade, que define interfaces gráficas para a biblioteca GTK+.

Palavras-chave: Delphi. GTK+. GUI. Glade.

ABSTRACT

The current work describes the specification and implementation of a tool for conversion of graphical users interfaces built in Delphi to a readable format for the GTK+ library. Uses lexical, syntactic and semantic analyzers for interpretation the input of the tool. The content readed from the input file is loaded into memory and converted to XML format readable for the Libglade, wich defines user interface for the GTK+.

Key-words: Delphi. GTK+. GUI. Glade.

LISTA DE ilustrações


Figura 1 - Exemplo de software reprodutor de mídia com interface gráfica do usuário 15

Figura 1 - Exemplo de software reprodutor de mídia com interface gráfica do usuário 15

Figura 2 - Uma interface gráfica simples produzida no ambiente Delphi 17

Figura 2 - Uma interface gráfica simples produzida no ambiente Delphi 17

Quadro 1 - Conteúdo do arquivo .dfm correspondente à interface apresentada 17

Quadro 2 - Arquivo gerado pelo Glade com as definições da interface gráfica 22

Figura 3 - Interface gráfica simples para GTK+ produzida pelas definições apresentadas no Quadro 2 23

Figura 3 - Interface gráfica simples para GTK+ produzida pelas definições apresentadas no Quadro 2 23

Quadro 3 - Características dos trabalhos correlatos 26

Quadro 4 - Requisitos funcionais 29

Quadro 5 - Requisitos não funcionais 29

Quadro 6 - Equivalência dos componentes de tradução simples 30

Quadro 7 - Equivalência dos componentes de tradução condicionada às propriedades 31

Quadro 8 - Especificação de uma interface gráfica GTK+ 33

Figura 4 - Interface gráfica gerada como resultado das especificações do Quadro 8 34

Figura 4 - Interface gráfica gerada como resultado das especificações do Quadro 8 34

Figura 5 - Diagrama de classes dos analisadores léxico, sintático e semântico 35

Figura 5 - Diagrama de classes dos analisadores léxico, sintático e semântico 35

Figura 6 - Diagrama de casos de uso 36

Figura 6 - Diagrama de casos de uso 36

Quadro 9 - Caso de uso UC01 37

Quadro 10 - Caso de uso UC02 38

Quadro 11 - Caso de uso UC03 38

Quadro 12 - Caso de uso UC04 39

Quadro 13 - Caso de uso UC05 39

Figura 7 - Diagrama de pacotes 40

Figura 7 - Diagrama de pacotes 40

Figura 8 - Diagrama de classes do pacote VCL Abstract 41

Figura 8 - Diagrama de classes do pacote VCL Abstract 41

Quadro 14 - Classes para interpretação de valores de propriedades 42

Quadro 15 - Elementos declarados na enumeração TVCLValueKind 42

Figura 9 - Diagrama de classes do pacote Glade 43

Figura 9 - Diagrama de classes do pacote Glade 43

Quadro 16 - Classes que implementam a interface IPropertyValue 44

Figura 10 - Diagrama de classes do pacote Component Mapping 45

Figura 10 - Diagrama de classes do pacote Component Mapping 45

Figura 11 - Diagrama de classes do pacote Property Translation 47

Figura 11 - Diagrama de classes do pacote Property Translation 47

Figura 12 - Diagrama de classes do pacote Event Mapping 48

Figura 12 - Diagrama de classes do pacote Event Mapping 48

Figura 13 - Diagrama de classes do pacote Glade Transform 49

Figura 13 - Diagrama de classes do pacote Glade Transform 49

Quadro 17 - Classes transformadoras e seus respectivos transformados 50

Figura 14 - Diagrama de classes do pacote Project 51

Figura 14 - Diagrama de classes do pacote Project 51

Quadro 18 - Definição de mapeamento de um componente de tradução simples 52

Quadro 19 - Mapeamento de um componente de tradução condicionada à propriedade 53

Quadro 20 - Valores válidos para o atributo type da tag property 53

Quadro 21 - Exemplo de mapeamento da categoria especial 54

Quadro 22 - Exemplo de mapeamento que contém atributos requeridos 54

Quadro 23 - Exemplo de mapeamento de propriedades 55

Quadro 24 - Exemplo de mapeamento de eventos de um componente 56

Quadro 25 - Trecho do código do método NextToken da classe TLexicon 58

Figura 15 - Erro disparado em decorrência de falha na chamada recursiva a NextToken 58

Figura 15 - Erro disparado em decorrência de falha na chamada recursiva a NextToken 58

Quadro 26 - Código do método Load da classe TComponentMapLoader 62

Quadro 27 - Código fonte do método Translate da classe TDFMTranslator 63

Quadro 28 - Conteúdo do método Translate da classe TComponentTranslator 64

Quadro 29 - Código fonte do método TranslateSimple da classe TComponentTranslator 64

Quadro 30 - Trecho inicial do código do método TranslatePropertied 65

Quadro 31 - Trecho de código responsável por avaliar as condições para tradução 66

Quadro 32 - Código fonte do método TranslateSpecial da classe TComponentTranslator 66

Quadro 33 - Código fonte do método TranslateProperties da classe TDFMTranslator 68

Quadro 34 - Trecho do código do método PerformTranslate responsável atribuir as propriedades traduzidas 68

Quadro 35 - Código fonte do método TranslateEvents da classe TDFMTranslator 69

Quadro 36 - Trecho de código do método PerformTranslation que atribui os sinais traduzidos 70

Quadro 37 - Possibilidades de alinhamento de componentes VCL 70

Quadro 38 - Propriedades do componente VCL que condicionam seu posicionamento 70

Quadro 39 - Trecho do método PerformTranslation responsável pela verificação do alinhamento vertical 71

Quadro 40 - Código responsável pela verificação dos componentes alinhados horizontalmente 72

Quadro 41 - Código do método PerformTranslation que verifica componentes sem alinhamento 73

Quadro 42 - Código que percorre os componentes contidos e realiza sua tradução 73

Quadro 43 - Código fonte do método AsDOMNode da classe TTransformerProperty 75

Figura 16 - Janela principal da ferramenta DelphiToGTK+ 75

Figura 16 - Janela principal da ferramenta DelphiToGTK+ 75

Figura 17 - Seleção do diretório de localização dos mapas 76

Figura 17 - Seleção do diretório de localização dos mapas 76

Figura 18 - Seleção do diretório de entrada 77

Figura 18 - Seleção do diretório de entrada 77

Figura 19 - Seleção do diretório de saída 77

Figura 19 - Seleção do diretório de saída 77

Figura 20 - Botão para executar a tradução 78

Figura 20 - Botão para executar a tradução 78

Figura 21 - Interface gráfica - primeiro caso de teste 79

Figura 21 - Interface gráfica - primeiro caso de teste 79

Figura 22 - Interface gráfica traduzida - primeiro caso de teste 79

Figura 22 - Interface gráfica traduzida - primeiro caso de teste 79

Figura 23 - Interface gráfica - segundo caso de teste 79

Figura 23 - Interface gráfica - segundo caso de teste 79

Figura 24 - Interface gráfica traduzida - segundo caso de teste 79

Figura 24 - Interface gráfica traduzida - segundo caso de teste 79

Figura 25 - Interface gráfica - terceiro caso de teste 80

Figura 25 - Interface gráfica - terceiro caso de teste 80

Figura 26 - Interface gráfica traduzida - terceiro caso de teste 81

Figura 26 - Interface gráfica traduzida - terceiro caso de teste 81

Figura 27 - Interface gráfica - quarto caso de teste 81

Figura 27 - Interface gráfica - quarto caso de teste 81

Figura 28 - Interface gráfica traduzida - quarto caso de teste 81

Quadro 44 - Quadro comparativo entre as ferramentas 82

Quadro 45 - Sugestões de melhorias e extensões para a ferramenta 85

Quadro 46 - Modelo de código para carregamento da interface 88

Quadro 47 - Gramática do .dfm 89





LISTA DE SIGLAS

API – Application Programming Interface

BNF – Backus Naur Form

GALS – Gerador de Analisadores Léxicos e Sintáticos

GDK – Gimp Drawing Kit

GTK+ - Gimp Toolkit

GUI – Graphical User Interface

RF – Requisito Funcional

RNF – Requisito Não Funcional

UML – Unified Modeling Language

XML - eXtensible Markup Language

SUMÁRIO


1 Introdução 15

1.1 OBJETIVOS DO TRABALHO 15

1.2 estrutura do trabalho 16

2 FUNDAMENTAÇÃO TEÓRICA 17

2.1 definição de padrões e comportamento com xml 17

2.2 geradores de interfaces gráficas com o usuário 18

2.3 gui 19

Fonte: NullSoft (2010). 19

Figura 1 - Exemplo de software reprodutor de mídia com interface gráfica do usuário 19

2.4 desenvolvimento de interfaces gráficas no delphi 20

Figura 2 - Uma interface gráfica simples produzida no ambiente Delphi 21

Quadro 1 - Conteúdo do arquivo .dfm correspondente à interface apresentada 21

2.5 gtk+ 21

2.5.1 GLib 22

2.5.2 GLib Object System ou GObject 23

2.5.3 GIMP Drawing Kit (GDK) 23

2.5.4 GdkPixbuf 24

2.5.5 Pango 24

2.5.6 Accessibility Toolkit (ATK) 24

2.6 Glade 25

Quadro 2 - Arquivo gerado pelo Glade com as definições da interface gráfica 26

Figura 3 - Interface gráfica simples para GTK+ produzida pelas definições apresentadas no Quadro 2 27

2.7 trabalhos correlatos 28

2.7.1 DelphiToWeb 28

2.7.2 Extensão da ferramenta Delphi2Java-II para suportar componentes de banco de dados 28

2.7.3 ScriptCase 29

2.7.4 Funcionalidades dos trabalhos correlatos 30

Quadro 3 - Características dos trabalhos correlatos 30

3 desenvolvimento da ferramenta 32

3.1 requisitos principais do problema a ser trabalhado 33

Quadro 4 - Requisitos funcionais 33

Quadro 5 - Requisitos não funcionais 33

3.2 componentes convertidos 33

3.2.1 Componentes de tradução simples 34

Quadro 6 - Equivalência dos componentes de tradução simples 34

3.2.2 Componentes de tradução condicionada 35

Quadro 7 - Equivalência dos componentes de tradução condicionada às propriedades 35

3.2.3 Componentes de tradução especial 35

3.3 especificação da saída 36

Quadro 8 - Especificação de uma interface gráfica GTK+ 37



38

Figura 4 - Interface gráfica gerada como resultado das especificações do Quadro 8 38

3.4 análise da entrada da ferramenta 38

Figura 5 - Diagrama de classes dos analisadores léxico, sintático e semântico 39

3.5 especificação da ferramenta 39

3.5.1 Casos de uso 40

Figura 6 - Diagrama de casos de uso 40

Quadro 9 - Caso de uso UC01 41

Quadro 10 - Caso de uso UC02 42

Quadro 11 - Caso de uso UC03 42

Quadro 12 - Caso de uso UC04 43

Quadro 13 - Caso de uso UC05 43

3.5.2 Diagramas de classes 44

44

Figura 7 - Diagrama de pacotes 44

3.5.2.1 Pacote VCL Abstract 45

Figura 8 - Diagrama de classes do pacote VCL Abstract 45

Quadro 14 - Classes para interpretação de valores de propriedades 46

Quadro 15 - Elementos declarados na enumeração TVCLValueKind 46

3.5.2.2 Pacote Glade 47

47

Figura 9 - Diagrama de classes do pacote Glade 47

Quadro 16 - Classes que implementam a interface IPropertyValue 48

3.5.2.3 Pacote Component Mapping 48

Figura 10 - Diagrama de classes do pacote Component Mapping 49

3.5.2.4 Pacote Property Translation 50

Figura 11 - Diagrama de classes do pacote Property Translation 51

3.5.2.5 Pacote Event Mapping 52

Figura 12 - Diagrama de classes do pacote Event Mapping 52

3.5.2.6 Pacote Glade Transform 53



53

Figura 13 - Diagrama de classes do pacote Glade Transform 53

Quadro 17 - Classes transformadoras e seus respectivos transformados 54

3.5.2.7 Pacote Project 54

Figura 14 - Diagrama de classes do pacote Project 55

3.5.3 Mapas de tradução 55

3.5.3.1 Mapa de componentes 56

Quadro 18 - Definição de mapeamento de um componente de tradução simples 56

Quadro 19 - Mapeamento de um componente de tradução condicionada à propriedade 57

Quadro 20 - Valores válidos para o atributo type da tag property 57

Quadro 21 - Exemplo de mapeamento da categoria especial 58

Quadro 22 - Exemplo de mapeamento que contém atributos requeridos 58

3.5.3.2 Mapa de propriedades 58

Quadro 23 - Exemplo de mapeamento de propriedades 59

3.5.3.3 Mapa de eventos 60

Quadro 24 - Exemplo de mapeamento de eventos de um componente 60

3.6 IMPLEMENTAÇÃO 60

3.6.1 Técnicas e ferramentas utilizadas 61

3.6.2 Implementação da ferramenta 61

3.6.2.1 Customização das classes geradas pelo GALS 61

Quadro 25 - Trecho do código do método NextToken da classe TLexicon 62

Figura 15 - Erro disparado em decorrência de falha na chamada recursiva a NextToken 62

3.6.2.2 Inicialização dos mapas de tradução 65

Quadro 26 - Código do método Load da classe TComponentMapLoader 66

3.6.2.3 Inicialização do tradutor de interfaces 66

Quadro 27 - Código fonte do método Translate da classe TDFMTranslator 67

3.6.2.4 Tradução do componente 67

Quadro 28 - Conteúdo do método Translate da classe TComponentTranslator 68

Quadro 29 - Código fonte do método TranslateSimple da classe TComponentTranslator 68

Quadro 30 - Trecho inicial do código do método TranslatePropertied 69

Quadro 31 - Trecho de código responsável por avaliar as condições para tradução 70

Quadro 32 - Código fonte do método TranslateSpecial da classe TComponentTranslator 70

3.6.2.5 Tradução das propriedades 71

Quadro 33 - Código fonte do método TranslateProperties da classe TDFMTranslator 72

Quadro 34 - Trecho do código do método PerformTranslate responsável atribuir as propriedades traduzidas 72

3.6.2.6 Tradução dos eventos 72

Quadro 35 - Código fonte do método TranslateEvents da classe TDFMTranslator 73

Quadro 36 - Trecho de código do método PerformTranslation que atribui os sinais traduzidos 74

3.6.2.7 Posicionamento dos elementos gráficos 74

Quadro 37 - Possibilidades de alinhamento de componentes VCL 74

Quadro 38 - Propriedades do componente VCL que condicionam seu posicionamento 74

Quadro 39 - Trecho do método PerformTranslation responsável pela verificação do alinhamento vertical 75

Quadro 40 - Código responsável pela verificação dos componentes alinhados horizontalmente 76

Quadro 41 - Código do método PerformTranslation que verifica componentes sem alinhamento 77

Quadro 42 - Código que percorre os componentes contidos e realiza sua tradução 77

3.6.2.8 Geração do arquivo .glade 78

Quadro 43 - Código fonte do método AsDOMNode da classe TTransformerProperty 79

3.6.3 Operacionalidade da implementação 79

Figura 16 - Janela principal da ferramenta DelphiToGTK+ 79

Figura 17 - Seleção do diretório de localização dos mapas 80

Figura 18 - Seleção do diretório de entrada 81

Figura 19 - Seleção do diretório de saída 81

Figura 20 - Botão para executar a tradução 82

3.7 RESULTADOS E DISCUSSÃO 82

Figura 21 - Interface gráfica - primeiro caso de teste 83

Figura 22 - Interface gráfica traduzida - primeiro caso de teste 83

Figura 23 - Interface gráfica - segundo caso de teste 83

Figura 24 - Interface gráfica traduzida - segundo caso de teste 83

Figura 25 - Interface gráfica - terceiro caso de teste 84

Figura 26 - Interface gráfica traduzida - terceiro caso de teste 85

Figura 27 - Interface gráfica - quarto caso de teste 85

Figura 28 - Interface gráfica traduzida - quarto caso de teste 85

Quadro 44 - Quadro comparativo entre as ferramentas 86

4 CONCLUSÕES 87

4.1 problemas e limitações 87

4.2 EXTENSÕES 88

Quadro 45 - Sugestões de melhorias e extensões para a ferramenta 89

Referências bibliográficas 90

APÊNDICE A – Modelo de código para carregamento da interface 92

Quadro 46 - Modelo de código para carregamento da interface 92

ANEXO A – Gramática do .dfm 93

Fonte: adaptado de Souza (2005, p. 36). 93

Quadro 47 - Gramática do .dfm 93





  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, propôs-se o desenvolvimento de uma ferramenta para auxiliar na tradução de interfaces gráficas criadas no Delphi para o formato da Libglade (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 da Libglade poderá ser utilizada por qualquer linguagem de programação que implementa a mesma.


    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:



  1. 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+;

  2. 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;

  3. gerar um arquivo Libglade para criar a definição de uma interface gráfica para a GTK+ semelhante à desenvolvida no Delphi;

  4. traduzir a assinatura dos eventos dos componentes gráficos do Delphi para os componentes gráficos da biblioteca GTK+;

  5. exibir a interface gráfica convertida para a biblioteca GTK+.
    1. estrutura do trabalho


O trabalho está estruturado em quatro capítulos. O segundo capítulo apresenta o embasamento teórico para desenvolvimento do trabalho. Esse capítulo faz uma breve abordagem da notação XML e sua utilização na criação de padrões e comportamentos, fala sobre o desenvolvimento de interface gráfica do usuário com enfoque na ferramenta Delphi e finaliza apresentando a biblioteca gráfica GTK+ e os recursos que a compõem, além dos trabalhos correlatos à ferramenta desenvolvida.

O terceiro capítulo apresenta os detalhes envolvidos no desenvolvimento do trabalho. Inicialmente é relatado o estudo realizado nas ferramentas Delphi e Glade e o resultado obtido. Segue com a especificação dos requisitos, casos de uso e diagramas de classes que constituíram a base para desenvolvimento da ferramenta DelphiToGTK+. O capítulo finaliza apresentando detalhes técnicos relevantes da concepção do software.

Por fim, o quarto capítulo apresenta as conclusões alcançadas com o desenvolvimento do trabalho, incluindo problemas e limitações, bem como sugestões para extensão da ferramenta e trabalhos futuros.

  1. FUNDAMENTAÇÃO TEÓRICA


Neste capítulo são apresentados aspectos teóricos, conceitos, técnicas e ferramentas que formam a base para desenvolvimento do trabalho proposto. Primeiramente é abordada brevemente a eXtensible Markup Language (XML), linguagem de marcação utilizada no desenvolvimento do trabalho e presente nos recursos explorados. Na sequência fala-se sobre geradores de interfaces gráficas do usuário, seguido pelo tópico sobre Graphical User Interface (GUI). Depois, é apresentado um exemplo de uma interface gráfica do usuário construída com auxílio do Delphi, bem como a estrutura do arquivo que contém a definição da interface construída, o .dfm, entrada da ferramenta desenvolvida. O presente capítulo também fala sobre o desenvolvimento de aplicativos portáveis, mais especificamente sobre a criação de interfaces gráficas legíveis a diferentes linguagens de programação, aprofundando no tema GTK+, biblioteca para desenvolvimento de interfaces gráficas portáveis. A ferramenta Glade, utilizada no desenvolvimento da interface do trabalho proposto, também é mencionada, bem como a biblioteca Libglade, usada para processamento das interfaces criadas no Glade. Por fim, são apresentados os trabalhos correlatos similares ao trabalho proposto.
    1. definição de padrões e comportamento com xml


XML é um padrão para documentos de marcação que define uma sintaxe genérica usada para marcação de dados com tags, de forma simples e legível. É um formato flexível e pode ser customizado para atender diferentes domínios como sites da web, dados eletrônicos para integração, vetores gráficos, genealogia, serialização de objetos, chamadas a procedimentos remotos, sistemas de correio por voz, entre outros (HAROLD; MEANS, 2002, p. 3).

Uma das vantagens na utilização de documentos XML é a sua portabilidade entre as diferentes linguagens de programação e sistemas operacionais. Segundo Harold e Means (2002, p. 3), há uma grande variedade de bibliotecas livres para diferentes linguagens de programação que são capazes de ler e escrever documentos XML. Existem ferramentas desenvolvidas exclusivamente para leitura e escrita de documentos XML, enquanto outras são customizadas para processar um documento XML com um formato específico a um domínio de aplicação. Contudo, em todos os casos a mesma sintaxe é usada, evitando que o formato fique restrito a um domínio, impedindo-o de ser processado por outras ferramentas (HAROLD; MEANS, 2002, p. 3).

A ferramenta Glade, usada para criação de interfaces gráficas de aplicações GTK+, utiliza o padrão XML para definição das interfaces gráficas. A adoção desta técnica possibilita a criação de um mecanismo de carregamento de interfaces gráficas de forma dinâmica na aplicação, fornecendo a possibilidade de modificações na interface definida no documento XML sem a necessidade de reconstrução do código fonte da aplicação.

    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). 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:

  1. consistência: geração em massa de formulários criam formulários consistentes e que apresentam padrões de usabilidade;

  2. flexibilidade: usando ferramentas para desenhar interfaces, pode-se rapidamente efetuar modificações requeridas para esta interface. Modificações nas regras de segurança podem destacar esta flexibilidade, pois 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;

  3. portabilidade: tão boa 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.



    1. Compartilhe com seus amigos:
  1   2   3   4   5   6   7


©aneste.org 2020
enviar mensagem

    Página principal
Universidade federal
Prefeitura municipal
santa catarina
universidade federal
terapia intensiva
Excelentíssimo senhor
minas gerais
Universidade estadual
união acórdãos
prefeitura municipal
pregão presencial
reunião ordinária
educaçÃo universidade
público federal
outras providências
ensino superior
ensino fundamental
federal rural
Palavras chave
Colégio pedro
ministério público
senhor doutor
Dispõe sobre
Serviço público
Ministério público
língua portuguesa
Relatório técnico
conselho nacional
técnico científico
Concurso público
educaçÃo física
pregão eletrônico
consentimento informado
recursos humanos
ensino médio
concurso público
Curriculum vitae
Atividade física
sujeito passivo
ciências biológicas
científico período
Sociedade brasileira
desenvolvimento rural
catarina centro
física adaptada
Conselho nacional
espírito santo
direitos humanos
Memorial descritivo
conselho municipal
campina grande