Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Roger Anderson Schmidt
Título: Ferramenta de Auxílio ao Processo de Desenvolvimento de Software Integrando Tecnologias Otimizadoras
 
Introdução:
O ser humano possui uma forma natural de organizar o conhecimento sobre o mundo. Desde a infância, ele aprende a categorizar e a utilizar sensatamente uma enorme massa de conhecimento. Através do estudo das técnicas naturais do funcionamento humano originou-se um conjunto de técnicas aplicadas a construção de sistemas computacionais, denominadas técnicas orientadas a objetos (Martin, 1994, p. 4). O estabelecimento de padrões industriais para aspectos relacionados às técnicas orientadas a objetos é responsabilidade de uma associação comercial internacional, a OMG (Object Management Group). Segundo a OMG, a questão mais importante da revolução tecnológica baseada em objetos é a de reduzir a distância semântica que existe atualmente entre os modelos utilizados nas linguagens de programação e nos sistemas gerenciadores de bancos de dados e os modelos conceituais utilizados pelo homem quando pensa sobre o mundo real (Martin, 1994, p. 391). O termo revolução industrial do software tem sido utilizado para descrever o movimento em direção a uma era em que os softwares serão compilados de componentes reutilizáveis, os quais deverão tornar-se progressivamente mais complexos em seu interior, porém sua utilização cada vez mais simplificada. As técnicas orientadas a objetos fornecem benefícios substanciais ao desenvolvimento de software, contudo, quando utilizadas isoladamente não podem prover a magnitude da mudança necessária a chamada revolução industrial do software. Para tanto, estas técnicas tem que ser combinadas de forma sinérgica a outras tecnologias de automação de desenvolvimento de software, denominadas “tecnologias otimizadoras” (Martin, 1994, p. 6). O presente trabalho contempla um estudo sobre as tecnologias otimizadoras, visando identificar o contexto onde o produto de software originado pelo mesmo encontra-se inserido. A engenharia de software possibilita o controle do processo de desenvolvimento de software e oferece ao profissional uma base para a construção de software de alta qualidade, produtivamente. A Engenharia de Software Auxiliada por Computador, ou CASE (Computer Aided Software Engineering) consiste em uma denominação para as ferramentas de suporte ao desenvolvimento de software. Esta classe de ferramentas combina software, hardware e um banco de dados para criar um ambiente de engenharia de software, análogo ao projeto auxiliado por computador (CAD) para o hardware (Pressman, 1995, p. 31). Gane (1990) expõe que não é necessário ao software apresentar capacidade gráfica para ser considerado um produto CASE, pois a característica distintiva nesta classe de software reside no fato de construir um banco de dados do projeto, em um nível mais alto do que comandos de linguagem de programação, ou definição de elementos de dados. O banco de dados utilizado pelas ferramentas CASE é denominado repositório de dados e armazena todas as informações sobre os sistemas, os projetos e sobre o código, de forma não-redundante. A partir das informações contidas no repositório podem ser criadas novas informações que serão também colocadas neste repositório (Martin, 1994, p. 339). O repositório de dados CASE é de vital importância na integração das várias ferramentas. A partir de suas definições, são construídos objetos cada vez mais complexos, uma vez que objetos vão sendo construídos a partir de outros e assim por diante (Martin, 1994, p. 14). O presente trabalho constrói um repositório de dados complementar integrando-se com a ferramenta CASE de modelagem de dados CA Erwin. Segundo Pompilho (1994, p. 183), a modelagem de dados consiste em um método de análise de sistemas que busca especificar a perspectiva dos dados, permitindo organizá-los em estruturas bem definidas, estabelecer regras de dependência entre eles, produzindo um modelo expresso por uma representação, ao mesmo tempo, descritiva e diagramática. As definições obtidas a partir dos referidos repositórios de dados servem como base para a especificação de uma biblioteca de classes, as quais correspondem aos componentes primitivos da modelagem de dados, ou seja, entidades, atributos, relacionamentos e domínios. A persistência das classes é realizada através da utilização de um banco de dados relacional. A ferramenta CASE proposta pelo trabalho objetiva ainda a geração de código-fonte potencializado pelo acesso às instâncias das classes do repositório de dados. Para tanto, implementou-se um interpretador de uma linguagem de comandos, através da qual são codificados scripts para aplicações diversas. Aho (1995, p. 2) conceitua o interpretador como uma ferramenta de software que, em lugar de produzir um programa alvo como resultado da tradução, realiza as operações especificadas pelo programa fonte. Os scripts agregam flexibilidade ao processo, pois viabilizam a geração de código para diferentes linguagens. Na prática, esta geração resulta da utilização de comandos disponíveis na linguagem especificada que alimentam um arquivo do tipo texto. Dessa forma, através de scripts específicos podem ser obtidas outras aplicações, como a geração de relatórios de documentação, ou arquivos na linguagem HTML (Hyper Text Markup Language). O acesso aos objetos instanciados a partir do repositório da ferramenta proposta, é realizado através de outro conjunto de comandos disponível na linguagem. No intuito de fundamentar o desenvolvimento do interpretador e a concepção da linguagem, realizou-se um estudo de técnicas da área de compiladores. Para especificação da sintaxe da linguagem, utilizou-se a notação BNF (Backus-Naur Form) e para a semântica foi empregada a notação da gramática de atributos, ambas descritas no cap. 2.3. O presente trabalho caracteriza-se por um estágio supervisionado, cuja construção desenvolveu-se no ambiente interno de uma empresa produtora de software, a Mult Sistemas Ltda.