A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Coupling measures and change ripples in C++ application software
Journal of Systems and Software - Special issue on Evaluation and assessment in software engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Laws of Software Evolution Revisited
EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology
Scale-free geometry in OO programs
Communications of the ACM - Adaptive complex enterprises
The Structure and Dynamics of Networks: (Princeton Studies in Complexity)
The Structure and Dynamics of Networks: (Princeton Studies in Complexity)
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Scale Free in Software Metrics
COMPSAC '06 Proceedings of the 30th Annual International Computer Software and Applications Conference - Volume 01
Information Sciences: an International Journal
On the Design and Development of Program Families
IEEE Transactions on Software Engineering
Power-Laws in a Large Object-Oriented Software System
IEEE Transactions on Software Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
An Exploration of Power-Law in Use-Relation of Java Software Systems
ASWEC '08 Proceedings of the 19th Australian Conference on Software Engineering
Complex Network Thinking in Software Engineering
CSSE '08 Proceedings of the 2008 International Conference on Computer Science and Software Engineering - Volume 01
Power-Law Distributions of Component Size in General Software Systems
IEEE Transactions on Software Engineering
Power-Law Distributions in Empirical Data
SIAM Review
IBM Systems Journal
The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies
APSEC '10 Proceedings of the 2010 Asia Pacific Software Engineering Conference
Predicting performance via automated feature-interaction detection
Proceedings of the 34th International Conference on Software Engineering
Do crosscutting concerns cause modularity problems?
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Test-based SPL extraction: an exploratory study
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Using citation influence to predict software defects
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.01 |
It is considered good software design practice to organize source code into modules and to favour within-module connections (cohesion) over between-module connections (coupling), leading to the oft-repeated maxim "low coupling/high cohesion". Prior research into network theory and its application to software systems has found evidence that many important properties in real software systems exhibit approximately scale-free structure, including coupling; researchers have claimed that such scale-free structures are ubiquitous. This implies that high coupling must be unavoidable, statistically speaking, apparently contradicting standard ideas about software structure. We present a model that leads to the simple predictions that approximately scale-free structures ought to arise both for between-module connectivity and overall connectivity, and not as the result of poor design or optimization shortcuts. These predictions are borne out by our large-scale empirical study. Hence we conclude that high coupling is not avoidable--and that this is in fact quite reasonable.