Catálogo de refatorações para a evolução de programas em linguagem Fortran

Detalhes bibliográficos
Ano de defesa: 2011
Autor(a) principal: Rissetti, Gustavo
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Santa Maria
BR
Ciência da Computação
UFSM
Programa de Pós-Graduação em Informática
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://repositorio.ufsm.br/handle/1/5377
Resumo: Evolution is a natural characteristic in software development. During the life cycle of a system, usually there is the need of evolution, mainly to add a new requirement, to change existing functionality, or to evolve the programming language used. The Fortran (FORmula TRANslation) language, despite having more than fifty years of existence, is still widely used in scientific applications. The majority of the existent Fortran applications is composed of legacy code, using obsolete or deprecated constructions of the language and, thus, need to evolve to improve their quality attributes. However, this process is often done manually, without the existence of well-defined rules to be followed, facilitating the introduction of anomalies in these applications. Software evolution can be benefited from refactoring, which provides well-defined mechanisms to be followed, helping to maintain and to improve the quality of existent systems. Refactoring is a software engineering technique that transforms software artefacts in order to improve them, without compromising their functionality. It is a permanent task in the life cycle of an application and is directly associated with the software non-functional requirements, such as modularization, legibility, and performance. This technique is widely used in objectoriented languages, but is still largely unexplored in procedural languages such as Fortran. In this context, this work explores the need for refactorings for the Fortran language, together with the issue of evolving legacy code. This goal is achieved through the proposal of a refactoring catalog to the evolution of Fortran programs, and the automation of some of them in the Photran framework. The proposed refactorings are evaluated and validated in applications written in Fortran.