Towards a classification of logical dependencies origins: a case study

  • Authors:
  • Gustavo A. Oliva;Francisco W.S. Santana;Marco A. Gerosa;Cleidson R.B. de Souza

  • Affiliations:
  • University of São Paulo (USP), São Paulo, Brazil;Federal University of Pará (UFPA), Belém, Brazil;University of São Paulo (USP), São Paulo, Brazil;IBM Research, São Paulo, Brazil

  • Venue:
  • Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
  • Year:
  • 2011

Quantified Score

Hi-index 0.01

Visualization

Abstract

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.