Use este identificador para citar ou linkar para este item: http://hdl.handle.net/1843/74892
Tipo: Dissertação
Título: Assessing reusable web applications: the Django ecosystem case
Título(s) alternativo(s): Analisando aplicações web reutilizáveis: o caso do ecossistema Django
Autor(es): Rafael Torres Souza
Primeiro Orientador: André Cavalcante Hora
Primeiro membro da banca : Marco Túlio de Oliveira Valente
Segundo membro da banca: Eduardo Magno Lages Figueiredo
Resumo: 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.
Assunto: Computação – Teses
Engenharia de software – Teses
Website – Desenvolvimento - Teses
Django (Recurso eletrônico)
Idioma: eng
País: Brasil
Editor: Universidade Federal de Minas Gerais
Sigla da Instituição: UFMG
Departamento: ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Curso: Programa de Pós-Graduação em Ciência da Computação
Tipo de Acesso: Acesso Aberto
URI: http://hdl.handle.net/1843/74892
Data do documento: 14-Dez-2023
Aparece nas coleções:Dissertações de Mestrado

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Assessing Reusable Web Applications - The Django Ecosystem Case.pdf1.01 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.