Detalhes bibliográficos
Ano de defesa: |
2021 |
Autor(a) principal: |
Sofiato, Bruno |
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: |
Biblioteca Digitais de Teses e Dissertações da USP
|
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: |
https://www.teses.usp.br/teses/disponiveis/3/3141/tde-01092021-111751/
|
Resumo: |
Igualdade e ordem são conceitos relacionados que são usados diariamente. Como eles dependem do domínio, o programador tem que eventualmente codificá-los. Essa codificação, porém, não é fácil. Estudos apontam para ela como sendo uma conhecida fonte de defeitos em programas escritos em linguagens orientadas a objetos. Uma das causas é que tal implementação requer múltiplos métodos que devem ser consistentes entre si. Outra causa é mais insidiosa e é devida à como essas linguagens lidam com a passagem de mensagens. Diversas propostas almejam mitigar essas questões. Elas, porém, impõem restrições severas e não lidam com todos os casos. Não obstante, nenhuma lida com a ordem. Este trabalho propõe um método para comparação de objetos que é agnóstico à linguagem e trata os três aspectos distintos da comparação - igualdade, ordem e hash. A proposta é descrita utilizando-se semântica operacional estruturada no estilo de Plotkin. A sua corretude é provada formalmente. Também é descrito um protótipo que é avaliado baseado em três características de qualidade do modelo de qualidade de software da ISO/IEC 25010 - adequação funcional, eficiência de desempenho e manutenibilidade. Resultados sugerem que a qualidade geral dos programas melhorou, apesar da queda de desempenho. |