System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
Analyzing Error-Prone System Structure
IEEE Transactions on Software Engineering
Qualitative Methods in Empirical Studies of Software Engineering
IEEE Transactions on Software Engineering
Exploring the relationship between design measures and software quality in object-oriented systems
Journal of Systems and Software
Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
IEEE Transactions on Software Engineering
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Identification of Software Instabilities
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Object-Oriented Analysis and Design with Applications (3rd Edition)
Object-Oriented Analysis and Design with Applications (3rd Edition)
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Mining Version Histories to Guide Software Changes
IEEE Transactions on Software Engineering
Facilitating software evolution research with kenyon
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Mining eclipse for cross-cutting concerns
Proceedings of the 2006 international workshop on Mining software repositories
CSCW '06 Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work
Visualization for Software Evolution Based on Logical Coupling and Module Coupling
APSEC '07 Proceedings of the 14th Asia-Pacific Software Engineering Conference
Guidelines for conducting and reporting case study research in software engineering
Empirical Software Engineering
Visualizing Co-Change Information with the Evolution Radar
IEEE Transactions on Software Engineering
Software Dependencies, Work Dependencies, and Their Impact on Failures
IEEE Transactions on Software Engineering
Empirical Evaluation of Strategies to Detect Logical Change Dependencies
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Identifying crosscutting concerns using historical code changes
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Hidden dependencies in software systems
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
On the Interplay between Structural and Logical Dependencies in Open-Source Software
SBES '11 Proceedings of the 2011 25th Brazilian Symposium on Software Engineering
What can commit metadata tell us about design degradation?
Proceedings of the 2013 International Workshop on Principles of Software Evolution
Hi-index | 0.01 |
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.