@inbook {IOPORT.05942516, author = {Taube-Schock, Craig and Walker, Robert J. and Witten, Ian H.}, title = {Can we avoid high coupling?}, year = {2011}, booktitle = {ECOOP 2011 -- object-oriented programming. 25th European conference, Lancaster, UK, July 25--29, 2011. Proceedings}, isbn = {978-3-642-22654-0}, pages = {204-228}, publisher = {Berlin: Springer}, doi = {10.1007/978-3-642-22655-7_10}, abstract = {Summary: 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.}, identifier = {05942516}, }