Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/733
Full metadata record
DC FieldValueLanguage
dc.creator.IDCARVALHO JUNIOR, N. G.pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/3913710112648736pt_BR
dc.contributor.advisor1MASSONI, Tiago Lima.-
dc.contributor.advisor1IDMASSONI, T. L.pt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/3563923906851611pt_BR
dc.description.resumoCompreender 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.countryBrasilpt_BR
dc.publisher.departmentCentro de Engenharia Elétrica e Informática - CEEIpt_BR
dc.publisher.programPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOpt_BR
dc.publisher.initialsUFCGpt_BR
dc.subject.cnpqCiênciaspt_BR
dc.subject.cnpqCiência da Computaçãopt_BR
dc.titleCompreendendo programas por meio de Design by Contract: um estudo com desenvolvedores.pt_BR
dc.date.issued2017-
dc.description.abstractProgram 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.urihttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/733-
dc.date.accessioned2018-05-18T11:37:53Z-
dc.date.available2018-05-18-
dc.date.available2018-05-18T11:37:53Z-
dc.typeDissertaçãopt_BR
dc.subjectCompreensão de Programaspt_BR
dc.subjectDesign by Contractpt_BR
dc.subjectContratospt_BR
dc.rightsAcesso Abertopt_BR
dc.creatorCARVALHO JÚNIOR, Normando Gomes de.-
dc.publisherUniversidade Federal de Campina Grandept_BR
dc.languageporpt_BR
dc.description.sponsorshipCNPqpt_BR
dc.identifier.citationCARVALHO 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/733pt_BR
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
NORMANDO GOMES DE CARVALHO JÚNIOR - DISSERTAÇÃO (PPGCC) 2017.pdfNormando Gomes de Carvalho Junior - Dissertação PPGCC 2017628.97 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.