TY - GEN
T1 - Towards a classification of logical dependencies origins
T2 - 2011 12th International Workshop on Principles on Software Evolution and 7th ERCIM Workshop on Software Evolution, IWPSE-EVOL'11
AU - Oliva, Gustavo A.
AU - Santana, Francisco W.S.
AU - Gerosa, Marco A.
AU - De Souza, Cleidson R.B.
PY - 2011
Y1 - 2011
N2 - 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.
AB - 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.
KW - case study
KW - change coupling
KW - empirical software engineering
KW - logical coupling
KW - logical dependencies
KW - mining software repositories
KW - software evolution
UR - http://www.scopus.com/inward/record.url?scp=80053176906&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=80053176906&partnerID=8YFLogxK
U2 - 10.1145/2024445.2024452
DO - 10.1145/2024445.2024452
M3 - Conference contribution
AN - SCOPUS:80053176906
SN - 9781450308489
T3 - IWPSE-EVOL'11 - Proceedings of the 12th International Workshop on Principles on Software Evolution
SP - 31
EP - 40
BT - IWPSE-EVOL'11 - Proceedings of the 12th International Workshop on Principles on Software Evolution
Y2 - 5 September 2011 through 6 September 2011
ER -