Logical dependencies are implicit relationships established between software artifacts that have evolved together. Software engineering researchers have investigated this kind of dependency to assess fault-proneness, detect design issues, infer code decay, and predict likely changes in code. Despite the acknowledged relation between logical dependencies and software quality, the nature of the logical dependencies is unknown in the literature.Most authors hypothesize about their origins, but no empirical study has been conducted to investigate the real nature of these dependencies. In this paper, we investigated the origins of logical dependencies by means of a case study involving a Java FLOSS project. We mined the project repository, filtered out irrelevant data based on statistical analyses, and performed a manual inspection of the logical dependencies to identify their origins using information from the revision comments, code diffs, and informal interviews held with the developers of the analyzed project. Preliminary results showed that logical dependencies involved files that changed together for a series of different reasons, which ranged from changing software license to refactoring classes that belonged to the same semantic class.
Resumo -Devido ao sucesso de muitos projetos de software livre, a indústria e a comunidade acadêmica estão interessadas em entender como tal software é produzido. Existe um interesse especial em compreender como estas comunidades se organizam, se mantém e como os participantes destas comunidades ingressam nas mesmas e modificam sua participação nestes projetos. Entretanto, poucos estudos têm sido conduzidos considerando a evolução dos desenvolvedores nestas comunidades, ou seja, como eles alcançam papéis mais importantes. Este artigo descreve a ferramenta TransFlow, uma ferramenta destinada ao apoio do estudo integrado da evolução de ambos: do software e da participação dos desenvolvedores em projetos de software livre. Este estudo integrado é necessário, já que a arquitetura do software pode facilitar ou impor obstáculos à participação dos desenvolvedores nos projetos. A ferramenta TransFlow é descrita assim como a sua avaliação através da análise de três projetos de software livre.Palavaras-chave: software livre, evolução, arquitetura de software, evolução de desenvolvedores, desenvolvimento colaborativo de software .Abstract -Due to the success of many Open Source Software projects, both the industry and the academic community are interested in understanding how such software is produced. Particularly, there is interest in understanding how these communities are organized and maintained, and also how the contributors join and evolve their roles in these projects. However, few studies have been conducted around the evolution of the developers in the communities, i.e., how they reach roles of greater importance, and how the software changes over time through this evolution. This paper describes TransFlow a tool aimed to support the integrated study of the evolution of both: the software itself and the developers' participation in open source projects. This integrated study is a requirement since the software architecture may support or hinder developers' participation in the project. Transflow's main features and architecture are described, as well as its evaluation with three open-source projects. I. INTRODUÇÃOAo longo dos anos, o interesse por projetos de software livre tem crescido, devido à qualidade e confiabilidade deste tipo de software [1]. O servidor web Apache, por exemplo, é o mais usado no mundo, sendo atualmente utilizado por mais de 40% dos domínios web [2]. À medida que vários outros projetos de código livre se tornam mais relevantes, tanto a indústria como a comunidade acadêmica se interessam em entender como tal software é produzido. Por exemplo, algumas pesquisas têm sido conduzidas com foco na evolução de software livre [3] [4]. Os resultados indicam que o software livre não evolui de acordo com as "leis de evolução de software" de Lehman [3].Tão importante quanto entender a evolução do software, seja ele livre ou não, é compreender como os desenvolvedores evoluem nos projetos, ou seja, como eles mudam de papéis se tornando mais ou menos integrados à comunidade. Esta compreensão permite identi...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.