Can we avoid high coupling?
Main text, 494.1Kb
Data: Degree distribution plots for system-wide and between-module dependencies for examined software systems, 5.042Mb
Taube-Schock, C., Walker, R.J. & Witten I.H. (2011). Can we avoid high coupling? In ECOOP'11 Proceedings of the 25th European conference on Object-oriented programming (25 - 29 July, 2011, Lancaster, UK). Lecture Notes in Computer Science, 2011, Volume 6813/2011, 204-228.
Permanent Research Commons link: https://hdl.handle.net/10289/5307
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.
This is an authors' accepted version. The original publication is available at www.springerlink.com. Springer-Verlag Berlin, Heidelberg ©2011