Uma ferramenta de visualização de software para avaliação de uso de API no contexto de ecossistemas de software

Imagem de Miniatura
Data
2021-07-02
Autores
Avancini, Rodrigo [UNIFESP]
Orientadores
Silveira, Fábio Fagundes [UNIFESP]
Tipo
Dissertação de mestrado
Título da Revista
ISSN da Revista
Título de Volume
Resumo
Ecossistema de Software (SECO) é uma área de pesquisa consolidada da Engenharia de Software, emergindo como um paradigma para o entendimento da dinâmica e dos relacionamentos entre sistemas de software que colaboram entre si para atingir seus objetivos. Entender um ecossistema de software e como seus elementos interagem é essencial para a evolução dos sistemas envolvidos, principalmente para aqueles que fornecem funções e serviços para outros sistemas, como APIs. Uma vez que uma API está sendo utilizada por outras aplicações, futuras alterações precisam ser feitas de forma sistemática e adequada, considerando seu ecossistema. No entanto, ainda existe uma grande demanda de se desenvolver formas eficazes para avaliação do uso de APIs no contexto de SECO. Assim, neste trabalho, foi desenvolvido o Ecolyzer, uma ferramenta de visualização de software que visa a apoiar a análise e avaliação do uso de uma API, por meio de uma visualização interativa e métricas que consideram seu ecossistema. Para mostrar a viabilidade e exequibilidade da solução proposta, foi conduzido primeiramente uma prova de conceito (PoC) usando uma API de código livre escrita na linguagem de programação Lua. Em seguida, realizou-se uma avaliação do uso de uma API de código livre escrita em Java, amplamente utilizada por outras aplicações. Os resultados obtidos com o Ecolyzer foram satisfatórios e evidenciam que a ferramenta é útil e promissora, fornecendo insights importantes que auxiliam no planejamento estratégico para evolução de APIs, levando em consideração seus ecossistemas.
Software Ecosystem (SECO) is a consolidated research area of Software Engineering, emerging as a paradigm for understanding the dynamics and relationships among software systems that collaborate with each other to achieve their goals. Understanding a software ecosystem and how its elements interact is essential for the evolution of the systems involved, especially for those that provide functions and services for other systems, such as APIs. Since an API is being used by other applications, future changes need to be made in a systematic and appropriate manner, considering its ecosystem. However, there is still a great demand to develop effective ways to evaluate API usage in the context of SECO. Thus, in this work, Ecolyzer was developed, a software visualization tool that aims to support the analysis and evaluation of the use of an API, through an interactive visualization and metrics that consider its ecosystem. To show the feasibility and implementability of the proposed solution, a proof of concept (PoC) was first conducted using an open-source API written in the Lua programming language. Then, an evaluation was made of the use of an open-source API written in Java, widely used by other applications. The results obtained with Ecolyzer were satisfactory and show that the tool is useful and promising, providing important insights to assist in strategic planning for the evolution of APIs, taking into account their ecosystems.
Descrição
Citação