Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Hubs, authorities, and communities
ACM Computing Surveys (CSUR)
An Empirical Study of Software Reuse vs. Defect-Density and Stability
Proceedings of the 26th International Conference on Software Engineering
Deriving an approximation algorithm for automatic computation of ripple effect measures
Information and Software Technology
Capturing the long-term impact of changes
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Seeking the ground truth: a retroactive study on the evolution and migration of software libraries
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Measuring software library stability through historical version analysis
ICSM '12 Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)
The maven repository dataset of metrics, changes, and dependencies
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.00 |
Best practices in software development state that code that is likely to change should be encapsulated to localize possible modifications. In this paper, we investigate the appli- cation and effects of this design principle. We investigate the relationship between the stability, encapsulation and popularity of libraries on a dataset of 148,253 Java libraries. We find that bigger systems with more rework in existing methods have less stable interfaces and that bigger systems tend to encapsulate dependencies better. Additionally, there are a number of factors that are associated with change in library interfaces, such as rework in existing methods, system size, encapsulation of dependencies and the number of dependencies. We find that current encapsulation practices are not targeted at libraries that change the most. We also investigate the strength of ripple effects caused by instability of dependencies and we find that libraries cause ripple effects in systems using them and that these effects can be mitigated by encapsulation.