Use este identificador para citar o ir al link de este elemento: 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
primer Tutor: Marco Túlio de Oliveira Valente
primer miembro del tribunal : Marcelo de Almeida Maia
Segundo miembro del tribunal: Breno Bernard Nicolau de França
Tercer miembro del tribunal: André Cavalcante Hora
Cuarto miembro del tribunal: Eduardo Magno Lages Figueiredo
Resumen: 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.
Asunto: 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 Institución: UFMG
Departamento: ICEX - INSTITUTO DE CIÊNCIAS EXATAS
Curso: Programa de Pós-Graduação em Ciência da Computação
Tipo de acceso: Acesso Aberto
metadata.dc.rights.uri: http://creativecommons.org/licenses/by-nc-nd/3.0/pt/
URI: http://hdl.handle.net/1843/59120
Fecha del documento: 11-ago-2023
Aparece en las colecciones:Teses de Doutorado

archivos asociados a este elemento:
archivo Descripción TamañoFormato 
PhD_Thesis_Fabio_Final.pdfTese de doutorado de Fábio da Silva Ferreira6.8 MBAdobe PDFVisualizar/Abrir


Este elemento está licenciado bajo una Licencia Creative Commons Creative Commons