Skip to main content

Can We Avoid High Coupling?

  • Conference paper
ECOOP 2011 – Object-Oriented Programming (ECOOP 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6813))

Included in the following conference series:

Abstract

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 a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albert, R., Jeong, H., Barabási, A.-L.: Diameter of the World Wide Web. Nature 401, 130–131 (1999)

    Article  Google Scholar 

  2. Alexander, C.: Notes on the Synthesis of Form. Harvard University Press, Cambridge (1964)

    Google Scholar 

  3. Barabási, A.-L., Albert, R.: Emergence of scaling in random networks. Science 286(5439), 509–512 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  4. Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., Tempero, E.: Understanding the shape of Java software. In: Proc. ACM Conf. Obj.-Oriented Progr. Syst. Lang. Appl., pp. 397–412 (2006)

    Google Scholar 

  5. Briand, L.C., Daly, J.W., Wüst, J.K.: A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Sofw. Eng. 25(1), 91–121 (1999)

    Article  Google Scholar 

  6. Chen, T., Gu, Q., Wang, S., Chen, X., Chen, D.: Module-based large-scale software evolution based on complex networks. In: Proc. IEEE Int. Conf. Comp. Info. Technol., pp. 798–803 (2008)

    Google Scholar 

  7. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)

    Article  Google Scholar 

  8. Clauset, A., Shalizi, C.R., Newman, M.E.J.: Power-law distributions in empirical data. SIAM Rev. 51(4), 661–703 (2009)

    Article  MATH  MathSciNet  Google Scholar 

  9. Concas, G., Marchesi, M., Pinna, S., Serra, N.: Power-laws in a large object-oriented software system. IEEE Trans. Softw. Eng. 33(10), 687–708 (2007)

    Article  Google Scholar 

  10. Dijkstra, E.W.: Structured programming. In: Buxton, J.N., Randell, B. (eds.) Software Engineering Techniques, pp. 84–87. NATO Scientific Affairs Division, Brussels (1970)

    Google Scholar 

  11. Erdős, P., Rényi, A.: On the evolution of random graphs. Publ. Math. Inst. Hung. Acad. Sci. 5, 17–61 (1960)

    MATH  MathSciNet  Google Scholar 

  12. Gao, Y., Xu, G., Yang, Y., Niu, X., Guo, S.: Empirical analysis of software coupling networks in object-oriented software systems. In: Proc. IEEE Int. Conf. Softw. Eng. Service Sci, pp. 178–181 (2010)

    Google Scholar 

  13. Goh, K.-I., Oh, E., Jeong, H., Kahng, B., Kim, D.: Classification of scale-free networks. Proc. Nat. Acad. Sci. 99(20), 12583–12588 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  14. Hatton, L.: Power-law distributions of component size in general software systems. IEEE Trans. Softw. Eng. 35(4), 566–572 (2009)

    Article  Google Scholar 

  15. Hyland-Wood, D., Carrington, D., Kaplan, S.: Scale-free nature of Java software package, class and method collaboration graphs. Technical Report TR-MS1286, University of Maryland, College Park (2006)

    Google Scholar 

  16. Ichii, M., Matsushita, M., Inoue, K.: An exploration of power-law in use-relation of Java software systems. In: Proc. Australian Conf. Softw. Eng., pp. 422–431 (2008)

    Google Scholar 

  17. Jenkins, S., Kirk, S.R.: Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution. Info. Sci. 177, 2587–2601 (2007)

    Article  Google Scholar 

  18. Jing, L., Keqing, H., Yutao, M., Rong, P.: Scale free in software metrics. In: Proc. Int. Comp. Softw. Appl. Conf. (2006)

    Google Scholar 

  19. Keller, E.F.: Revisiting “scale-free” networks. BioEssays 27(10), 1060–1068 (2005)

    Article  Google Scholar 

  20. Koenig, A.: Patterns and antipatterns. J. Obj.-Oriented Progr. 8(1), 46–48 (1995)

    Google Scholar 

  21. Lehman, M.M.: Laws of software evolution revisited. In: Montangero, C. (ed.) EWSPT 1996. LNCS, vol. 1149, Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  22. Li, D., Han, Y., Hu, J.: Complex network thinking in software engineering. In: Proc. Int. Conf. Comp. Sci. Softw. Eng., pp. 264–268 (2008)

    Google Scholar 

  23. Louridas, P., Spinellis, D., Vlachos, V.: Power laws in software. ACM Trans. Softw. Eng. Methodol. 18(1), 2/1–2/26 (2008)

    Google Scholar 

  24. Marchesi, M., Pinna, S., Serra, N., Tuveri, S.: Power laws in Smalltalk. In: Proc. Europ. Smalltalk User Group Joint Event (2004)

    Google Scholar 

  25. Mens, T., Lanza, M.: A graph-based metamodel for object-oriented software metrics. Electr. Notes Theoret. Comp. Sci. 72(2) (2002)

    Google Scholar 

  26. Myers, C.R.: Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Phys. Rev. E 68, 046116 (2003)

    Article  Google Scholar 

  27. Newman, M., Barabási, A.-L., Watts, D.J.: The Structure and Dynamics of Networks. Princeton University Press, Princeton (2006)

    MATH  Google Scholar 

  28. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  29. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 2(1), 1–9 (1976)

    Article  MATH  Google Scholar 

  30. Potanin, A., Noble, J., Frean, M., Biddle, R.: Scale-free geometry in object-oriented programs. Commun. ACM 48(5), 99–103 (2005)

    Article  Google Scholar 

  31. Simon, H.A.: The architecture of complexity. Proc. Amer. Phil. Soc. 106(6), 467–482 (1962)

    Google Scholar 

  32. Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 231–256 (1974)

    Article  Google Scholar 

  33. Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J.: The Qualitas Corpus: A curated collection of Java code for empirical studies. In: Proc. Asia-Pacific Softw. Eng. Conf. (2010)

    Google Scholar 

  34. Valverde, S., Ferrer Cancho, R., Solé, R.V.: Scale-free networks from optimal design. Europhys. Lett. 60(4), 512–517 (2002)

    Article  Google Scholar 

  35. Valverde, S., Solé, R.V.: Logarithmic growth dynamics in software networks. Europhys. Lett. 72(5), 858–864 (2005)

    Article  Google Scholar 

  36. Vasa, R., Lumpe, M., Branch, P., Nierstrasz, O.: Comparative analysis of evolving software systems using the Gini coefficient. In: Proc. IEEE Int. Conf. Softw. Maint., pp. 179–188 (2009)

    Google Scholar 

  37. Wheeldon, R., Counsell, S.: Power law distributions in class relationships. In: Proc. IEEE Int. Wkshp. Source Code Analys. Manipul, pp. 45–54 (2001)

    Google Scholar 

  38. Wilkie, F.G., Kitchenham, B.A.: Coupling measures and change ripples in C++ application software. J. Syst. Softw. 52(2–3), 157–164 (2000)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Taube-Schock, C., Walker, R.J., Witten, I.H. (2011). Can We Avoid High Coupling?. In: Mezini, M. (eds) ECOOP 2011 – Object-Oriented Programming. ECOOP 2011. Lecture Notes in Computer Science, vol 6813. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22655-7_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-22655-7_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-22654-0

  • Online ISBN: 978-3-642-22655-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics