Assessing reusable web applications: the Django ecosystem case

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 a...

Descripción completa

Detalles Bibliográficos
Autor: Rafael Torres Souza
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2023
País:Brasil
Institución:Universidade Federal de Minas Gerais (UFMG)
Repositorio:Repositório Institucional da UFMG
Idioma:inglés
OAI Identifier:oai:repositorio.ufmg.br:1843/74892
Acceso en línea:http://hdl.handle.net/1843/74892
https://orcid.org/0009-0005-9877-7057
Access Level:acceso abierto
Palabra clave:software ecosystem
web development
software evolution
empirical study
Django web framework
Computação – Teses
Engenharia de software – Teses
Website – Desenvolvimento - Teses
Django (Recurso eletrônico)
Descripción
Sumario: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.