Esta tese apresenta a ferramenta SIM e as pesquisas necessárias à escolha de uma implementação adequada. Teve-se como objetivo definir um sistema para produção semi-automática da documentação de produtos de software, que respeitasse as ca- racterísticas de ambientes de desenvolvimento de software científico.
Para tanto, foi essencial identificar as características dos processos de desenvolvi- mento de software científico e estudar a produção da documentação dos produtos de software.
O
trabalho apresentado está inserido no Projeto de Colaboração Internacional da UFRJ com o CERN, em Genebra, Suíça. No CERN são realizadas as mais avançadas pesquisas na área de Física de Altas Energias e a computação é uma fer- ramenta indispensável. Muitos dos sistemas computacionais utilizados nesse centro são desenvolvidos pelos próprios físicos que, certamente, dominam a teoria de sua área mas carecem de conhecimento formal em ciência da computação.A
experiência de trabalho no CERN permitiu identificar diversas características do desenvolvimento de software científico, tais como: carência de documentação (principalmente nas fases de especificação e projeto), falta de um método específico de desenvolvimento, baixa qualidade da interface com o usuário e dos manuais de utilização do software, bem como a tendência dos produtos a sofrer diversas modi- ficações.O CERN comporta uma excelente infra-estrutura computacional tanto no que se refere a hardware
(IBM,
VAX, CRAY, APOLLO, SUN,etc), quanto a software (sistemas operacionais, ferramentas gráficas, aplica- editores e processadores de textos, compiladores, etc)
.
O
desenvolvimento da tese nesse centro portanto, acessar diferentes sistemas para docu- mentação disponíveis em diversas plataformas.A
integração de de ciência da computação com os cientistas que desenvolvem aplicações para apoio a suas pesquisas torna-se essencial dado que a quantidade de dados e a complexidade dos experimentos é cada vez maior. Uma das funções essenciais da participação de especialistas em computação, nesses ambi- entes, é possibilitar a introdução de métodos e técnicas atuais de desenvolvimento de software nessess contextos.A
principal característica da ferramenta SIM é o fato de ter sido desenvolvida considerando as especificidades dos ambientes onde se desenvolve software científico e dos próprios desenvolvedores.A
proposta apresentada por SIM procura levar o usuário a buscar a qualidade de seu produto, ou seja, que o próprio usuário se dê conta que, após seguir um método adequado à construção do software, seu produto se torna mais fácil de ser modificado, entendido e utilizado. Dessa forma, o desenvolvedor de aplicações científicas é encorajado a buscar novas ferramentas e métodos.Através dos roteiros, a atividade de produzir um manual torna-se simples e efi- ciente. Permite-se, dessa forma, a geração de documentos padronizados, facilitando seu entendimento e manipulação.
A
integração das ferramentas para produção do código (CMZ) e da documentação (SIM) permite ao desenvolvedor verificar que essas atividades devem ser realiza- das concomitantemente e a importância de considerar o usuário durante a imple- mentação de um sistema.As tags oferecidas por SIM permitem que os usuários aproveitem seus trabalhos anteriores sem ter que para utilizar a nova ferramenta (caso clássico da documentação do código).
A
produção de um documento com alta qualidade de tipografia (através do sem exigir do usuário um conhecimento prévio de comandos de formatação,facilita a existência de documentação pois, geralmente, se o esforço da geração é muito grande, essa tarefa é facilmente ignorada.
VI. 2
Futuras Pesquisas
O
ambiente integrando as ferramentas SIM e CMZ a fase de construção do software, a qual engloba as atividades de iinplementação do código e geração dos manuais. Esse ambiente considera as características do desenvolvimento de software científico, no que diz respeito tanto à produção dos programas (desenvolvimento incremental) quanto dos documentos (roteiros adaptados à área científica).O
desenvolvimento deSIM
baseia-se no método de versões sucessivas.A
primeira versão, objeto desta tese, foi construída e avaliada. Durante sua implement ação, idéias e sugestões foram cadastradas para serem introduzidas nas futuras versões. Algumas delas são apresentadas a seguir:- documentação de código em C; - inclusão de novos roteiros para:
documentação de sistemas compostos por diversos programas; de testes do programa;
interface com o usuário.
- geração das diferenças entre as informações do código e sua documentação (ao invés de sempre gerar a documentação);
- geração de documentos em SGML e outros formatadores de texto; - inclusão de comandos dentro do ambiente que permitam a
lização do documento
(XDVI,
por exemplo); - geração de arquivos para a interface com o usuário.Em acréscimo a esses ítens, SIM também pode ser estendido para apoiar testes do programa, verificar a integração de rotinas e fornecer um banco de da- dos para gerenciamento de suas entradas e resultados. Um sistema computacional na área científica corresponde, em geral, a um conjunto de procedimentos que são executados de acordo com os dados de entrada. Em outras palavras, um grupo de instruções do código ou um conjunto de rotinas é executado dependendo de determi- nada entrada. Faz-se, portanto, necessário manter todas as informações de entrada possíveis verificando-se, assim, se todos os procedimentos do código são corretos.
Para fases anteriores, tais como, as de especificação e de projeto, novos ambi- entes podem ser construídos, sempre considerando as características dos sistemas científicos. Um trabalho bastante útil será construir-se novas ferramentas cujas saídas sejam compatíveis com o sistema
Não deve-se desconsiderar que, em um ambiente de desenvolvimento de software científico, a construção do código é vista como a atividade principal e talvez, mesmo, a única relevante. Devido a esse fato, os métodos implementados em ferramentas para apoio às fases de especificação e projeto não devem ser complexos e nem muito detalhados.
A
utilização, mais uma vez, de roteiros auxiliaria os cientistas a orga- nizar suas idéias e definir a estrutura do produto a ser construído.Finalmente, pode-se considerar