Publicação científica
Selecting third-party libraries: The practitioners' perspective
A seleção de bibliotecas de terceiros é um elemento essencial de praticamente qualquer projeto de desenvolvimento de software. No entanto, decidir quais bibliotecas escolher é um problema prático desafiador. Selecionar a biblioteca errada pode impactar gravemente um projeto de software em termos de custo, tempo e esforço de desenvolvimento, com a gravidade do impacto dependendo da função da biblioteca na arquitetura de software, entre outros. Apesar da importância de seguir um processo cuidadoso de seleção de bibliotecas, na prática, a seleção de bibliotecas de terceiros ainda é conduzida de forma ad hoc, onde dezenas de fatores desempenham um papel influente na decisão. Neste artigo, estudamos os fatores que influenciam o processo de seleção de bibliotecas, conforme percebidos pelos desenvolvedores da indústria. Para tanto, realizamos um estudo transversal de entrevistas com 16 desenvolvedores de 11 negócios diferentes e entrevistamos 115 desenvolvedores que estão envolvidos na seleção de bibliotecas. Desenvolvemos sistematicamente um conjunto abrangente de 26 fatores técnicos, humanos e econômicos que os desenvolvedores levam em consideração ao selecionar uma biblioteca de software. Oito desses fatores são novos na literatura. Explicamos cada um desses fatores e como eles desempenham um papel na decisão. Finalmente, discutimos as implicações do nosso trabalho para mantenedores de bibliotecas, usuários potenciais de bibliotecas, desenvolvedores de gerenciadores de pacotes e pesquisadores empíricos de engenharia de software.
BibTeX:
@inproceedings{aniche-selecting-apis-practitioners-perspective,
author = "Enrique Larios Vargas and Maurício Aniche and Christoph Treude and Magiel Bruntink and Georgios Gousios",
title = "Selecting third-party libraries: The practitioners' perspective",
booktitle = "Proceedings of the ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)",
year = 2020,
doi = "10.1145/3368089.3409711"
}