Please use this identifier to cite or link to this item: http://riu.ufam.edu.br/handle/prefix/6647
metadata.dc.type: Trabalho de Conclusão de Curso
Title: Investigando as relações entre problemas de segurança de memória e desempenho em programas Kotlin
metadata.dc.creator: Moura, Daniel Yuri da Rocha
metadata.dc.contributor.advisor1: Cordeiro, Lucas Carvalho
metadata.dc.contributor.referee1: Rodrigues, Rosiane de Freitas
metadata.dc.contributor.referee2: Januário, Francisco de Assis Pereira
metadata.dc.description.resumo: O presente trabalho investiga de forma empírica as relações entre problemas de segurança de memória e desempenho em programas Kotlin. Para isso, foi feita uma pesquisa e descrição das principais fraquezas relacionadas à segurança de memória em sistemas de software. Em seguida, foi feito um levantamento e seleção de ferramentas de análise estática e dinâmica, que foram analisadas de acordo com suas capacidades para detecção de problemas de segurança de memória e análise de desempenho. Por último, são apresentados dois experimentos onde essas ferramentas são utilizadas para identificar problemas de segurança de memória em programas Kotlin e observar possíveis relações desses problemas com o desempenho desses programas. Os resultados mostram que a ferramenta ESBMC-Jimple pôde identificar estouros de pilha, estouros aritméticos e divisões por zero em programas Kotlin, mas em nenhum desses casos foi possível observar implicações no desempenho desses programas, pois a JVM interrompe a execução dos programas ao detectar esses problemas. Em outro experimento, foi possível observar problemas de desempenho em um programa Kotlin ocasionados por um problema de segurança de memória, mas só foi possível identificar tal problema através de revisão manual de código, pois a ferramenta ESBMC-Jimple não possui suporte para a identificação do relativo problema.
Abstract: The present work empirically investigates the relationship between memory safety issues and performance in Kotlin programs. For this, a research and description of the main weaknesses related to memory safety in software systems was carried out. Then, a survey and selection of static and dynamic analysis tools were carried out, which were analyzed according to their capabilities for detecting memory safety problems and performance analysis. Finally, two experiments are presented where these tools are used to identify memory safety problems in Kotlin programs and to observe possible relationships between these problems and the performance of these programs. The results show that the ESBMC-Jimple tool was able to identify stack overflows, arithmetic overflows and division by zero in Kotlin programs, but in none of these cases was it possible to observe implications for the performance of these programs, since the JVM interrupts the execution of the programs when detecting these problems. In another experiment, it was possible to observe performance problems in a Kotlin program caused by a memory safety problem, but it was only possible to identify such problem through manual code review, as the ESBMC-Jimple tool does not have support for identifying the relative problem.
Keywords: Kotlin
Segurança de memória
Desempenho de software
Análise estática
Análise dinâmica
metadata.dc.subject.cnpq: ENGENHARIAS: ENGENHARIA ELETRICA: TELECOMUNICACOES: SISTEMAS DE TELECOMUNICACOES
metadata.dc.language: por
metadata.dc.publisher.country: Brasil
metadata.dc.publisher.department: FT - Faculdade de Tecnologia
metadata.dc.publisher.course: Engenharia Elétrica – Telecomunicações - Bacharelado - Manaus
metadata.dc.rights: Acesso Aberto
URI: http://riu.ufam.edu.br/handle/prefix/6647
metadata.dc.subject.controlado: Kotlin (Linguagem de programação de computador)
Software - Desenvolvimento
Medição de software
Software - Avaliação
Appears in Collections:Trabalho de Conclusão de Curso - Graduação - Engenharias

Files in This Item:
File Description SizeFormat 
TCC_DanielMoura.pdf677,47 kBAdobe PDFView/Open


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