Use este identificador para citar ou linkar para este item: http://riu.ufam.edu.br/handle/prefix/6647
Tipo de documento: Trabalho de Conclusão de Curso
Título: Investigando as relações entre problemas de segurança de memória e desempenho em programas Kotlin
Autor(a): Moura, Daniel Yuri da Rocha
Orientador(a): Cordeiro, Lucas Carvalho
metadata.dc.contributor.referee1: Rodrigues, Rosiane de Freitas
metadata.dc.contributor.referee2: Januário, Francisco de Assis Pereira
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.
Resumo em outro idioma: 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.
Palavras-chave: Kotlin
Segurança de memória
Desempenho de software
Análise estática
Análise dinâmica
Área de conhecimento - CNPQ: ENGENHARIAS: ENGENHARIA ELETRICA: TELECOMUNICACOES: SISTEMAS DE TELECOMUNICACOES
Idioma: por
País de publicação: Brasil
Faculdade, Instituto ou Departamento: FT - Faculdade de Tecnologia
metadata.dc.publisher.course: Engenharia Elétrica – Telecomunicações - Bacharelado - Manaus
Tipo de acesso: Acesso Aberto
URI: http://riu.ufam.edu.br/handle/prefix/6647
Vocabulário controlado: Kotlin (Linguagem de programação de computador)
Software - Desenvolvimento
Medição de software
Software - Avaliação
Aparece nas coleções:Trabalho de Conclusão de Curso - Graduação - Engenharias

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
TCC_DanielMoura.pdf677,47 kBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.