Please use this identifier to cite or link to this item:
http://hdl.handle.net/1843/74892
Type: | Dissertação |
Title: | Assessing reusable web applications: the Django ecosystem case |
Other Titles: | Analisando aplicações web reutilizáveis: o caso do ecossistema Django |
Authors: | Rafael Torres Souza |
First Advisor: | André Cavalcante Hora |
First Referee: | Marco Túlio de Oliveira Valente |
Second Referee: | Eduardo Magno Lages Figueiredo |
Abstract: | Modern web applications are built on top of web frameworks, which offer benefits such as feature reuse and productivity improvement. By relying on web frameworks, developers can safely deal with many needs of real-world web applications, like authentication, session management, and URL routing. Despite the benefits of relying on web frameworks, they do not address all the needs to create web applications. It is expected that not all requirements are satisfied by the selected web framework, therefore, developers may need to implement their local solutions or rely on external libraries for reusability purposes. In particular, the Django web framework provides a rich software ecosystem of reusable packages that are available in the Django Packages platform. These reusable packages support developers with advanced development aspects, such as modern authentication, caching, and deployment. Due to the Django native structure, developers can reuse out-of-the-box applications (known as reusable apps). However, currently, it is not clear what solutions are available to be reused by developers, or how active and reliable this ecosystem really is. This information would be important to characterize the Django ecosystem, helping developers to better understand the positive and negative aspects of adopting this framework. To overcome this gap, in this research, we propose an empirical study to assess the Django ecosystem of reusable applications. We analyze 487 reusable applications to understand their target domain, level of activity, tests, and compatibility. We find that reusable applications are mostly concentrated in three categories: developer tools (27.8%), user interface (17.1%), and persistence (15.9%). We also detect that these categories have distinct characteristics. Developer tools have the highest concentration of young and inactive applications. In contrast, persistence applications are the oldest ones, while security ones are the most active. Moreover, performance applications have proportionally more tests. The most supported Python versions are 3.7 to 3.11, while the most supported Django versions are 3.2 and 4.0. Finally, based on our findings, we provide implications for both practitioners and researchers. |
Abstract: | Os aplicativos web modernos são construídos utilizando web frameworks, que oferecem benefícios como reutilização de recursos e melhoria de produtividade. Ao utilizar esses frameworks, os desenvolvedores podem contar com várias funcionalidades comumente requeridas por aplicações do mundo real, como autenticação, gerenciamento de sessão e roteamento de URL. Apesar dos benefícios de contar com frameworks web, eles não atendem a todas as necessidades de desenvolvimento. É esperado que nem todos os requisitos sejam satisfeitos pelo framework selecionado, portanto, os desenvolvedores podem precisar implementar suas soluções localmente ou contar com bibliotecas externas. O framework web Django em particular possui um rico ecossistema de pacotes disponíveis na plataforma Django Packages. Esses pacotes reutilizáveis oferecem diversas funcionalidades como autenticação moderna, armazenamento em cache, e integrações com sistemas externos. Devido à estrutura de aplicações construídas com o Django framework, os desenvolvedores podem reutilizar aplicativos prontos para uso. No entanto, atualmente, não está claro quais soluções estão disponíveis para serem reutilizadas pelos desenvolvedores, ou quão ativo e confiável esse ecossistema realmente é. Estas informações seriam importantes para caracterizar o ecossistema Django, ajudando os desenvolvedores a entender melhor os aspectos positivos e negativos da adoção deste framework. Para preencher essa lacuna, propomos um estudo empírico para avaliar o ecossistema Django de aplicações reutilizáveis. Analisamos 487 aplicativos reutilizáveis para entender seu domínio alvo, nível de atividade, testes e compatibilidade. Descobrimos que os aplicativos reutilizáveis estão concentrados principalmente em três categorias: ferramentas de desenvolvedor (27,8%), interfaces de usuário (17,1%) e persistência (15,9%). Detectamos também que essas categorias possuem características distintas. As ferramentas de desenvolvedor têm a maior concentração de aplicativos jovens e inativos. Em contrapartida, os aplicativos de persistência são os mais antigos, enquanto os de segurança são os mais ativos. Além disso, aplicações de desempenho possuem proporcionalmente mais testes. As versões do Python mais suportadas são 3.7 a 3.11, enquanto as versões do Django mais suportadas são 3.2 e 4.0. Finalmente, com base em nossas descobertas, apontamos implicações tanto para profissionais da área quanto para pesquisadores. |
Subject: | Computação – Teses Engenharia de software – Teses Website – Desenvolvimento - Teses Django (Recurso eletrônico) |
language: | eng |
metadata.dc.publisher.country: | Brasil |
Publisher: | Universidade Federal de Minas Gerais |
Publisher Initials: | UFMG |
metadata.dc.publisher.department: | ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO |
metadata.dc.publisher.program: | Programa de Pós-Graduação em Ciência da Computação |
Rights: | Acesso Aberto |
URI: | http://hdl.handle.net/1843/74892 |
Issue Date: | 14-Dec-2023 |
Appears in Collections: | Dissertações de Mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Assessing Reusable Web Applications - The Django Ecosystem Case.pdf | 1.01 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.