Assessing reusable web applications: the Django ecosystem case

dc.creatorRafael Torres Souza
dc.date.accessioned2024-08-24T00:14:06Z
dc.date.accessioned2025-09-08T22:51:44Z
dc.date.available2024-08-24T00:14:06Z
dc.date.issued2023-12-14
dc.description.abstractOs 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.
dc.identifier.urihttps://hdl.handle.net/1843/74892
dc.languageeng
dc.publisherUniversidade Federal de Minas Gerais
dc.rightsAcesso Aberto
dc.subjectComputação – Teses
dc.subjectEngenharia de software – Teses
dc.subjectWebsite – Desenvolvimento - Teses
dc.subjectDjango (Recurso eletrônico)
dc.subject.othersoftware ecosystem
dc.subject.otherweb development
dc.subject.othersoftware evolution
dc.subject.otherempirical study
dc.subject.otherDjango web framework
dc.titleAssessing reusable web applications: the Django ecosystem case
dc.title.alternativeAnalisando aplicações web reutilizáveis: o caso do ecossistema Django
dc.typeDissertação de mestrado
local.contributor.advisor1André Cavalcante Hora
local.contributor.advisor1Latteshttp://lattes.cnpq.br/4957418183504876
local.contributor.referee1Marco Túlio de Oliveira Valente
local.contributor.referee1Eduardo Magno Lages Figueiredo
local.creator.Latteshttp://lattes.cnpq.br/5886748104054648
local.description.resumoModern 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.
local.identifier.orcidhttps://orcid.org/0009-0005-9877-7057
local.publisher.countryBrasil
local.publisher.departmentICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
local.publisher.initialsUFMG
local.publisher.programPrograma de Pós-Graduação em Ciência da Computação

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Assessing Reusable Web Applications - The Django Ecosystem Case.pdf
Tamanho:
1011.7 KB
Formato:
Adobe Portable Document Format

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.07 KB
Formato:
Plain Text
Descrição: