DSpace/Manakin Repository

Compreendendo programas por meio de Design by Contract: um estudo com desenvolvedores.

Mostrar registro simples

dc.creator.ID CARVALHO JUNIOR, N. G. pt_BR
dc.creator.Lattes http://lattes.cnpq.br/3913710112648736 pt_BR
dc.contributor.advisor1 MASSONI, Tiago Lima.
dc.contributor.advisor1ID MASSONI, T. L. pt_BR
dc.contributor.advisor1Lattes http://lattes.cnpq.br/3563923906851611 pt_BR
dc.description.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õe um estudo para compreender programas apoiada por 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. pt_BR
dc.publisher.country Brasil pt_BR
dc.publisher.department Centro de Engenharia Elétrica e Informática - CEEI pt_BR
dc.publisher.program PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO pt_BR
dc.publisher.initials UFCG pt_BR
dc.subject.cnpq Ciências pt_BR
dc.subject.cnpq Ciência da Computação pt_BR
dc.title Compreendendo programas por meio de Design by Contract: um estudo com desenvolvedores. pt_BR
dc.date.issued 2017
dc.description.abstract Program comprehension is generally a difficult task, since each part of code meets specific requirements. In some cases, factors - such as comprehend programs that were written by others, limited scope of existing tools, and lack of documentation - add complexity. There fore, developers need an effective program comprehension approach that reduces maintenance costs and the risk of errors whether the program comprehension is incomplete. In order to mitigate that problem, systematic approaches are used, supported by tools, to verify comprehension using static (source code analysis) or dynamic (data on execution). Dynamic approaches are used because of their effectiveness, since they simply run a test to see the result, however, they fail to use high-level behavioral information that can be verified. Still, this information can be captured while defining contracts, for example in the Design by Contract methodology. Nevertheless, for the best of our knowledge, there is no systematic approach to program comprehension that uses contracts. In this work, we propose a study to program comprehension supported by a systematized approach, in order to prioritize the writing of contracts in C# programs using the principles of Design by Contract through the Code Contracts library. It can still be used in any programming language that supports Design by Contract. We evaluated it in software development environments with 12 developers of a research and development center in computer science, considering the approach application to three methods (routines) of an open-source project. The results of our study indicate better comprehension of methods using contracts, and, on the other hand, favoring the writing of contracts in methods, initially unknown to developers. pt_BR
dc.identifier.uri http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/733
dc.date.accessioned 2018-05-18T11:37:53Z
dc.date.available 2018-05-18
dc.date.available 2018-05-18T11:37:53Z
dc.type Dissertação pt_BR
dc.subject Compreensão de Programas pt_BR
dc.subject Design by Contract pt_BR
dc.subject Contratos pt_BR
dc.rights Acesso Aberto pt_BR
dc.creator CARVALHO JÚNIOR, Normando Gomes de.
dc.publisher Universidade Federal de Campina Grande pt_BR
dc.language por pt_BR
dc.description.sponsorship CNPq pt_BR
dc.identifier.citation CARVALHO JÚNIOR, N. G. de. Compreendendo programas por meio de Design by Contract : um estudo com desenvolvedores. 2017. 94 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2017. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/733 pt_BR


Arquivos deste item

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Buscar DSpace


Busca avançada

Navegar

Minha conta