Listas usadas como conjuntos: um estudo através de ferramenta de reescrita.

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: CAVALCANTE, Filipe Neves.
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 Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
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://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/718
Resumo: Java Collections Framework (JCF) oferece um conjunto de Tipos Abstratos de Dados (TADs) na linguagem Java, sendo um framework bastante utilizado. Entretanto, as particularidades de uso de cada coleção são negligenciadas em favor da praticidade, sendo muito comum, por exemplo, o uso de listas sem permitir repetições de elementos, como se fossem um TAD conjunto. Há abordagens semiautomáticas de correção desse tipo de problema, mas elas introduzem classes adaptadores ao código original, o que nem sempre é desejável. Já a Substituição Direta apenas troca uma chamada de método por outra(s) correspondente(s), realizando o mínimo de mudanças possíveis, parecendo ser uma opção melhor. Entretanto, ela é mais complexa, o que leva este trabalho a estudar as condições e consequências para que ela seja possível. Foram desenvolvidas transformações implementadas num ambiente de reescrita de programas, sendo estas testadas e analisadas por meio de um estudo de caso, a fim de verificar sua aplicabilidade, e também através de questionário destinado a programadores Java, que analisou a aceitabilidade das transformações em dois trechos de código. Como resultados do estudo de caso,tem-se a ocorrência de14% de projetos fazendo uso de listas atuando como conjuntos. E a ArrayList apresentou maior incidência (90%) já List ocorreu nos demais casos (10%). Em se tratando das avaliações realizadas pelos desenvolvedores Java no questionário, cerca de 45% dos participantes propuseram sugestões consideradas adequadas, de acordo com a API e JCF [1], para um trecho de código que utilizava o método add(E e) de List, e 25% deles para outro trecho que realizava uma chamada do método set(int index, E e). Com isso, percebe-se a relevância do problema, sendo necessário continuar desenvolvendo novas técnicas e ferramentas que façam um programa utilizar coleções de forma adequada, tornando-o mais legível e eficiente.