Defesa de Dissertação de Mestrado de Normando Gomes de Carvalho Júnior

postado em 14 de fev de 2017 15:08 por Coordenação da Pós-graduação em Computação da UFCG

Candidato(a): Normando Gomes de Carvalho Júnior

Título do Trabalho: Compreendendo Programas por meio de Design By Contract: um estudo com desenvolvedores

Orientador(es): 

Tiago Lima Massoni

 

Data: 07/03/2017

Horário: 14:00:00

Local: Auditório do CEEI (ver disponibilidade)

 

Resumo: Compreender programas é difícil porque cada trecho de código atende requisitos específicos. Em alguns casos, fatores como compreender programas que foram escritos por outras pessoas, o escopo limitado das ferramentas existentes, e a falta de documentação adicionam complexidade. Sendo assim, os desenvolvedores necessitam de uma abordagem de compreensão efetiva que diminua os custos na manutenção e que reduzam os riscos de erros, caso o entendimento do programa seja incompleto. Existem abordagens sistemáticas, apoiadas por ferramentas, para compreensão que utilizam verificações estáticas (análise do código fonte) ou dinâmicas (dados sobre a execução). As abordagens dinâmicas são utilizadas por sua efetividade, pois basta executar um teste para ver o resultado, no entanto, falham por não utilizar informações de alto nível sobre o comportamento que possam ser verificadas. Todavia, estas informações podem ser capturadas ao definir contratos, como por exemplo, na metodologia Design by Contract. Contudo, não existe uma abordagem sistemática de compreensão que utilize contratos. Este trabalho, propõem uma abordagem sistematizada a fim de priorizar a escrita de contratos em programas C# utilizando os princípios de Design by Contract por meio da biblioteca Code Contracts. Podendo, mesmo assim, ser utilizada em qualquer linguagem de programação que dê suporte a Design by Contract. A avaliação foi feita em ambientes de desenvolvimento de software com 12 desenvolvedores de um centro de pesquisa e desenvolvimento em ciência da computação, considerando a aplicação da abordagem a três métodos (rotinas) de um projeto open-source. Os resultados do estudo apontam indícios de melhor compreensão dos métodos usando contratos, e por outro lado, de favorecimento da própria escrita dos contratos em métodos, a princípio desconhecidos pelos desenvolvedores.

 

Banca Examinadora:

(Membros Internos)

João Arthur Brunet

(Membros Externos)

Márcio Lopes Cornélio, Universidade Federal de Pernambuco

Comments