Use este identificador para citar ou linkar para este item: http://hdl.handle.net/1843/59120
Tipo: Tese
Título: Assisting JavaScript Front-End Developers in Maintaining and Evolving React-Based Applications: Code Smells and Refactoring Operations
Autor(es): Fábio da Silva Ferreira
Primeiro Orientador: Marco Túlio de Oliveira Valente
Primeiro membro da banca : Marcelo de Almeida Maia
Segundo membro da banca: Breno Bernard Nicolau de França
Terceiro membro da banca: André Cavalcante Hora
Quarto membro da banca: Eduardo Magno Lages Figueiredo
Resumo: JavaScript-based front-end frameworks, such as React and Vue, are key tools for implementing modern Web applications. However, due to the complexity of Web UIs, these applications can reach hundreds of components and source code files. Consequently, frontend developers are facing increasing challenges in designing and modularizing these applications. Surprisingly, only limited research has delved into the maintenance challenges associated with adopting such frameworks. Specifically, (1) we lack a deep understanding of the factors driving their adoption, (2) we lack a comprehensive catalog of common code smells that may arise in clients of these frameworks, and finally, (3) we lack information and documentation on the refactoring operations that developers perform when implementing Web-based systems using these frameworks. In this context, the main goal of this Ph.D. thesis is to assist JavaScript front-end developers in maintaining and evolving their systems. To achieve this goal, we introduce a catalog of code smells that are common in such systems, as well as a catalog of refactorings that can be applied to eliminate these smells and consequently improve the source code quality of front-end components. We organize the research into three major working units. We start by investigating the factors that motivate the adoption of JavaScript front-end frameworks. Notably, we survey developers of JavaScript projects about their motivation to adopt such frameworks. In the second study, we propose a catalog of 12 code smells associated with design problems developers face when using JavaScript front-end frameworks. We focus on React applications because it is currently the most popular JavaScript front-end framework. Moreover, to check whether the identified smells are prevalent in real software projects, we also implement a tool, called ReactSniffer, to detect the proposed smells. As a result, we detected 2,565 instances of the proposed code smells in the top-10 most popular GitHub projects that use React. Finally, in our last and third study, we investigate frequent refactoring operations developers perform when maintaining and evolving React applications. By manually inspecting 320 refactoring commits performed in open source projects, we catalog 69 distinct refactoring operations of which 25 are specific to React code, 17 are adaptations of traditional refactorings for the React context, 22 are traditional refactorings, and six are specific to JavaScript and CSS code.
Abstract: Frameworks front-end baseados em JavaScript, como React e Vue, são ferramentas chave para implementar aplicações Web modernas. No entanto, devido à complexidade das interfaces Web, essas aplicações podem atingir centenas de componentes e arquivos de cédigo fonte. Consequentemente, os desenvolvedores front-end estão enfrentando desafios crescentes ao projetar e modularizar essas aplicações. No entanto, pouca pesquisa tem se aprofundado nos desafios de manutenção associados à adoção de tais frameworks. Especificamente, (1) falta-nos uma compreensão dos fatores que motivam a adoção desses frameworks, (2) falta-nos um catálogo de “code smells” comuns que podem surgir nos clientes desses frameworks, e, por fim, (3) faltam-nos informações sobre as operações de refatoração que os desenvolvedores realizam ao implementar sistemas Web usando esses frameworks. Nesse contexto, o principal objetivo desta tese de doutorado é auxiliar os desenvolvedores front-end na manutenção e evolução de seus sistemas. Para alcançar esse objetivo, apresentamos um catálogo de “code smells” comuns a esses sistemas, bem como um catálogo de refatorações que podem ser aplicadas para eliminar esses “smells” e, consequentemente, melhorar a qualidade do código front-end. Organizamos esta pesquisa em três unidades de trabalho principais. Começamos investigando os fatores que motivam a adoção de frameworks front-end em JavaScript. Particularmente, realizamos uma pesquisa com desenvolvedores de projetos JavaScript sobre sua motivação para adotar tais frameworks. No segundo estudo, propomos um catálogo de 12 “code smells” associados a problemas de design enfrentados pelos desenvolvedores ao implementar aplicações React. Além disso, para verificar se os “smells” identificados são prevalentes em projetos de software reais, também implementamos uma ferramenta chamada ReactSniffer para detectar os “smells” propostos. Como resultado, detectamos 2.565 ocorrências dos ”code smells” propostos nos 10 projetos mais populares do GitHub que utilizam React. Finalmente, em nosso último e terceiro estudo, investigamos as operações de refatoração realizadas com frequência por desenvolvedores ao manter e evoluir aplicações React. Após inspecionar manualmente 320 commits de refatoração realizados em projetos de código aberto, catalogamos 69 operações de refatoração distintas, das quais 25 são específicas para código React, 17 são adaptações de refatorações tradicionais para o contexto de React, 22 são refatorações tradicionais e seis são específicas para código JavaScript e CSS.
Assunto: Computação – Teses
Engenharia de Software – Teses
JavaScript (Linguagem de programação de computador) – Teses
Mineração de repositórios de software – Teses.
Idioma: eng
País: Brasil
Editor: Universidade Federal de Minas Gerais
Sigla da Instituição: UFMG
Departamento: ICEX - INSTITUTO DE CIÊNCIAS EXATAS
Curso: Programa de Pós-Graduação em Ciência da Computação
Tipo de Acesso: Acesso Aberto
metadata.dc.rights.uri: http://creativecommons.org/licenses/by-nc-nd/3.0/pt/
URI: http://hdl.handle.net/1843/59120
Data do documento: 11-Ago-2023
Aparece nas coleções:Teses de Doutorado

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
PhD_Thesis_Fabio_Final.pdfTese de doutorado de Fábio da Silva Ferreira6.8 MBAdobe PDFVisualizar/Abrir


Este item está licenciada sob uma Licença Creative Commons Creative Commons