Catálogo de refatorações para a evolução de programas em linguagem Fortran
Resumo
A evolução é uma característica natural no desenvolvimento de software. Durante o
ciclo de vida de um sistema, geralmente existe a necessidade de evolução, seja para a
adição de um novo requisito, para a alteração de funcionalidades existentes, ou para a
evolução da linguagem de programação usada. A linguagem Fortran (FORmula TRANslation),
apesar de possuir mais de cinquenta anos de existência, ainda é amplamente usada
em aplicações científicas. A maioria das aplicações Fortran existentes é composta de códigos
legados, que usam construções obsoletas ou de uso desencorajado da linguagem,
e normalmente precisam passar por uma evolução para melhorar seus atributos de qualidade.
Porém, muitas vezes, esse processo é conduzido manualmente, sem a existência de
regras bem definidas a serem seguidas, podendo ocorrer a introdução de anomalias nessas
aplicações. A evolução de software pode ser auxiliada através de refatoração, que oferece
mecanismos bem definidos a serem seguidos, ajudando a manter e melhorar a qualidade
dos sistemas existentes. Refatoração é uma técnica de engenharia de software que efetua
transformações em artefatos de software a fim de melhorá-los, sem comprometer suas
funcionalidades. Trata-se de uma tarefa permanentemente presente no ciclo de vida de
uma aplicação e está diretamente associada à requisitos não funcionais de software, tais
como modularização, legibilidade e desempenho. Essa técnica é amplamente difundida
para linguagens orientadas a objetos, mas é ainda pouco explorada em linguagens procedurais
como Fortran. Nesse contexto, este trabalho explora a carência de refatorações
para a linguagem Fortran, aliada à questão da evolução de código legado. Esse objetivo é
alcançado através da proposta de um catálogo de refatorações para a evolução de programas
Fortran, e da automação de algumas delas no framework Photran. As refatorações
propostas são avaliadas e validadas em aplicações escritas em Fortran.