Can We Avoid High Coupling? [chapter]

Craig Taube-Schock, Robert J. Walker, Ian H. Witten
2011 Lecture Notes in Computer Science  
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 oftrepeated 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
more » ... e 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.
doi:10.1007/978-3-642-22655-7_10 fatcat:vxr3hkeb2jasnav4vw7ws56qve