Proposta





Introdução

Esta proposta contém os objetivos, atividades já realizadas, cronograma para o segundo semestre e estrutura geral do trabalho de formatura, trabalho este baseado em um estágio no Instituto de Pesquisas Tecnológicas (IPT) iniciado no dia 10/05. O IPT é uma empresa pública sem fins lucrativos vinculada à Secretaria da Ciência, Tecnologia e Desenvolvimento Econômico do Estado de São Paulo.
 

Projeto

Reprogramação e Aperfeiçoamento da Ferramenta ProSpec para Desenvolvimento de Aplicações Cliente/Servidor
 

Interessados

IPT e ITAUTEC
 

Descrição do Projeto

Este projeto tem por objetivo a reprogramação e o aperfeiçoamento de uma ferramenta CASE para desenvolvimento de aplicações cliente/servidor, capaz de gerar código em C++. Atualmente existe uma ferramenta desenvolvida pela Itautec, o VRC, que não foi desenvolvido usando técnicas de compilação. Ele tem sido empregado com sucesso pela Itautec desde 1987 e em parceria entre Itautec e IPT desde 1996, na geração de aplicações de grande porte.

As aplicações são descritas atualmente por meio das chamadas "planilhas", onde os algoritmos são colocados usando um paradigma particular de estruturação [citar bibliogr]. A planilhas descrevem processos e subprocessos, cada um dividido em três fases consecutivas:
    1) Descrição da seleção dos dados
    2) Descrição das condições a serem testadas sobre os dados selecionados, o que é feito por meio de Tabelas de Decisão [1 Satoshi]
    3) Descrição das transformações a serem feitas sobre os dados selecionados
 
Estão previstas as seguintes etapas para o projeto total:
    - Reprogramação do gerador de código a partir das planilhas atuais.
    - Desenvolvimento de um interpretador de descrições de processo, possibilitando o teste de descrições sem a necessidade dos passos de geração de código em C++, sua compilação e execução.
    - Geração de código para depuração em tempo de execução, referenciando as descrições dos processos.
    - Expansão dos comandos de acesso aos banco de dados, com referência às ligações entre tabelas em lugar das equações de junção ("join"), eliminando a necessidade de uso de SQL.
    - Expansão de comandos com sintaxe limitada.
    - Criação de interface gráfica para descrição de processos a partir de padrões gráficos para cada comando da linguagem e uso das variáveis e estruturas dos bancos de dados graficamente a partir do dicionário de dados.
    - Elevação dos processos a nível de classes e orientação a objetos, com herança e polimorfismos, possibilitando a criação de bibliotecas reutilizáveis de descrições de processos.
    - Expansão dos comandos de acesso ao banco de dados a fim de permitir que comandos de acesso referenciem tabelas explicitamente, sem necessidade de criação e compilação prévias de visões de usuários.
    - Introdução de especificações de paralelismo decorrentes do novo paradigma de especificação de processos.
    - Substituição da interface atual de manipulação dos itens do dicionário de dados de tipo texto para interface padrão Windows.
    - Desenvolvimento de interface gráfica para projeto do banco de dados a nível do Modelo de Entidades e Relacionamentos, possibilitando a visão do banco de dados nesse nível.
    - Alteração do gerador de código para otimizar o código gerado pelas Tabelas de Decisão; adicionar otimizações locais e globais. Estas alterações têm por finalidade tornar a utilização do VRC mais simples, aumentando ao mesmo tempo seu poder de expressão, além de otimizar o código gerado, resultando menor tempo para desenvolvimento de sistemas e programas mais eficientes.
[Proposta de Formatura de Rosana Mayumi Morigaki]
 
Meu Trabalho
 
O projeto desenvolvido pelo Prof. Setzer consiste em um analisador Sintático chamado de ANASIN, parte de um projeto de modificação e expansão de um gerador de aplicações denominado VRC (veja acima), cujo original foi desenvolvido pela ITAUTEC. O ANASIN permitirá a descrição formal das melhorias a serem introduzidas no VRC, e a construção rápida de gerador de código para essas melhorias. Ele interpreta um grafo sintático que representa uma gramática, cujo tipo foi definido pelo Prof. Setzer em um de seus livros e é expresso em forma de vetor, com um elemento para cada nó do grafo.
Meu trabalho é desenvolver um programa gráfico em C++ para Windows intitulado de Sintax Graph Desiner (SGD) que gera um arquivo contendo um grafo sintático, onde cada nó deve armazenar seu nome, o tipo de nó, seu sucessor e sua alternativa, cada linha do arquivo contendo um nó. O arquivo será utilizado para gerar o vetor que é interpretado pelo ANASIN. O usuário deve poder criar nós na tela, nomeá-los e ligá-los entre si, criando um ou mais sub-grafos de um grafo sintático. Cada nó pode ser do tipo Cabeça, Terminal, Não-Terminal e nó Vazio. Os nós do tipo Cabeça são os que começam os sub-grafos que compõem cada grafo. Os nós Não-Terminais são os nós Cabeça quando se encontram dentro de outro sub-grafo, eles representam os sub-grafos que já foram ou serão definidos. Os nós Terminais representam nós contendo um símbolo terminal da gramática, com as devidas informações sobre seu conteúdo. E por último, os nós "Vazios" que são nós terminais especiais. Todas essas informações devem ser disponibilizadas graficamente, e podem ser alteradas também.
 
Atividades Realizadas
 
    1. Desenvolvimento do projeto em UML (Unified Modeling Language).
    2. Estudo do ambiente Windows, funcionalidades e mensagens.
    3. Criação de uma janela, com funcionalidades básicas, como um menubar.
    4. Criação da classe de nós, e respectiva saída.
    5. Introdução de novas funcionalidades (toolbar e scroolbar).
    6. Revisão e aprimoramento do código.
    7. Inserção de outras funcionalidades para o usuário (alteração de posição, nome e tamanho dos nós)
 
Cronograma para o Segundo semestre
 
    1. Contínua inserção de funcionalidades para o usuário.
    2. Criação da classe de apontadores, e respectiva saída.
    3. Geração código de saída.
    4. Fase de testes e correção de erros.
    5. Criação de documentação.
 
Após a conclusão do SGD (Sintax Graph Desiner) serei realocado para ajudar no desenvolvimento do ProSpec.

 

Equipe participante

Supervisão: Geraldo Cecílio(IPT) e Prof. V. W. Setzer(Supervisor)

Analisador sintático: Prof. V.W.Setzer e Joaquim Campo Salles
Analisador léxico e gerador de código: Rosana Mayumi Morigaki
Interface gráfica para o analisador sintático: Giuliano Luz Pigatti Caliari

 
 
 





 

Voltar para a página inicial