Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/31866
Título: Um estudo exploratório sobre a adoção de bibliotecas de interface gráfica de usuário em projetos de software livre
Título(s) alternativo(s): An exploratory study on the adoption of graphical user interface libraries in open source projects
Autor(es): Ribeiro, Lucas Vinicius
Orientador(es): Wiese, Igor Scaliante
Palavras-chave: Software livre
Interfaces de usuário (Sistemas de computação)
Componente de software
Free computer software
User interfaces (Computer systems)
Component software
Data do documento: 10-Nov-2021
Editor: Universidade Tecnológica Federal do Paraná
Câmpus: Campo Mourao
Citação: RIBEIRO, Lucas Vinicius. Um estudo exploratório sobre a adoção de bibliotecas de interface gráfica de usuário em projetos de software livre. 2021. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) - Universidade Tecnológica Federal do Paraná, Campo Mourão, 2021.
Resumo: Bibliotecas são componentes de software reutilizáveis desenvolvidos para serem utilizados por qualquer pessoa ou projeto além do desenvolvedor original da biblioteca. Seu uso é importante por contribuir com economia de tempo e esforço durante o processo de desenvolvimento de software. Pesquisas exploram diferentes aspectos relacionados ao uso de bibliotecas de software, tais como, popularidade, riscos envolvidos, processo evolutivo e atualizações, critérios para desenvolvimento de boas bibliotecas, recomendação de experts, entre outros. No contexto das interfaces gráficas de usuário, um estudo constatou que 34% das interfaces desenvolvidas são apoiadas por bibliotecas de componentes de interface gráfica de usuário. No entanto, apesar da importância e relevância que bibliotecas e interfaces gráficas de usuário têm nos processos de desenvolvimento de software, não existem estudos, até o presente momento, que exploram este cenário. Portanto, o objetivo desta pesquisa consiste em compreender como ocorre a adoção de bibliotecas de interface gráfica de usuário em projetos de software livre. Para alcançar este objetivo, foram selecionadas as principais bibliotecas de interface de usuário de 6 linguagens de programação, sendo elas C, C++, C#, Java, JavaScript e Python. Assim, foram definidas expressões de busca para tais bibliotecas afim de identificar seu uso em projetos de software livre do GitHub. Além disso, foram minerados os commits de tais projetos afim de explorar a relação das bibliotecas mais populares com outras partes do código-fonte dos projetos. Os resultados foram analisados estatisticamente, tendo identificado que as bibliotecas mais populares de suas respectivas linguagens foram Win32 (C), Qt (C++), WindowsForms (C#), AWT (Java), React (JavaScript) e PyQt (Python). Constatou-se ainda que boa parte dos commits que possuem alterações em arquivos de interface utilizando as bibliotecas mais populares, também possuem alterações em arquivos de outras partes do código-fonte dos projetos. Ainda assim, a maioria dos commits observados compreendem alterações somente na interface gráfica de usuário do projeto. Se tratando do uso da biblioteca Win32 nos projetos C, não foi possível verificar se as alterações analisadas compreendem o uso de elementos de interface gráfica de usuário da biblioteca. Dentre os projetos C++, que utilizam a biblioteca Qt, observou-se que a maioria das alterações compreendem mudanças somente na interface gráfica de usuário do projeto. Para os projetos C#, que utilizam a biblioteca WindowsForms, descobriu-se que há baixa relação da biblioteca com outras partes do projeto. Sobre os projetos Java, que utilizam a biblioteca AWT, observou-se que alterações envolvendo a interface de usuário também demandam alterações em outras funcionalidades do projeto. Já se tratando dos projetos JavaScript, utilizando a biblioteca React, os resultados apontam para uma relação entre interfaces de usuário e uso de casos de teste. Por fim, em relação aos projetos Python, que utilizam a biblioteca PyQt, descobriu-se que existe pouca relação entre a biblioteca e arquivos de testes e do back-end dos projetos.
Abstract: Libraries are reusable software components designed to be used by anyone or any project other than the original developer of the library. Its use is important as it contributes to saving time and effort during the software development process. Research explores different aspects related to the use of software libraries, such as popularity, risks involved, evolutionary process and updates, criteria for developing good libraries, experts recommendation, among others. In the context of graphical user interfaces, a study found that 34% of the developed interfaces are supported by graphical user interface component libraries. However, despite the importance and relevance that libraries and graphical user interfaces have in software development processes, there are no studies, so far, that explore this scenario. Therefore, the objective of this research is to understand how occurs the adoption of graphical user interface libraries in open source software projects. To achieve this goal, the main user interface libraries of 6 programming languages were selected, namely C, C++, C#, Java, JavaScript and Python. Thus, regular expressions were defined for such libraries in order to identify their use in GitHub’s open source projects. Furthermore, the commits of such projects were mined in order to explore the relationship of the most popular libraries with other parts of the project’s source code. The results were statistically analyzed, having identified that the most popular libraries of their respective languages were Win32 (C), Qt (C++), WindowsForms (C#), AWT (Java), React (JavaScript) and PyQt (Python). It was also found that most of the commits that have changes in interface files using the most popular libraries, also have changes in les from other parts of the source code of the projects. Still, most of the commits observed have changes only to the project’s graphical user interface. Regarding the use of the Win32 library in C projects, it was not possible to verify whether the analyzed changes comprise the use of the library’s graphical user interface elements. Among the C++ projects that use the Qt library, it was observed that most of the changes comprise changes only in the project’s graphical user interface. For C# projects, which use the WindowsForms library, it was found that there is a low relationship between the library and other parts of the project. About Java projects, which use the AWT library, it was observed that changes involving the user interface also demand changes in other project features. As for JavaScript projects, using the React library, the results point to a relationship between user interfaces and the use of test cases. Finally, regarding Python projects, which use the PyQt library, it was found that there is a low relationship between the test library and files and the back-end of the projects.
URI: http://repositorio.utfpr.edu.br/jspui/handle/1/31866
Aparece nas coleções:CM - Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
estudobibliotecasusuarioprojetos.pdf765,06 kBAdobe PDFThumbnail
Visualizar/Abrir


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