Abstract
The optimal modularization and the right level of coupling between components are important for the overall quality of software systems. Although the generic suggestion is to minimize the coupling between modules, earlier research on object-oriented programming showed that there is a natural limit to eliminating dependencies between classes. In our research we extend these findings for non-OOP systems and show that this limitation seems to be paradigm-independent. For this purpose we define paradigm-agnostic metrics for coupling and evaluate them. Our results, measuring Scala and Erlang sources, prove that the coupling behavior shows scale-free properties. Our contribution could be useful to avoid unnecessary or harmful code refactors to chase overall low coupling in systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
ACG stands for Aggregated Coupling to avoid the acronym ACM.
References
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974)
Porkoláb, Z., Zsók, V.: Teaching multiparadigm programming based on object-oriented experiences. Teach. Math. Comput. Sci. 5(1), 171–182 (2006)
Odersky, M., Spoon, L., Venners, B.: Scala (2011). http://blog.typesafe.com/why-scala. Accessed 28 Aug 2012
Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, Raleigh (2007)
Newman, M.E.J., Barabási, A., Watts, D.J.: The Structure and Dynamics of Networks. Princeton University Press, Princeton (2006)
Barabási, A.: Emergence of scaling in random networks. Science 286(5439), 509–512 (1999)
Erdős, P., Rényi, A.: On the evolution of random graphs. Publ. Math. Inst. Hung. Acad. Sci. 5, 17–61 (1960)
de Moura, A.P.S., Lai, Y.-C., Motter, A.E.: Signatures of small-world and scale-free properties in large computer programs. Phys. Rev. E 68, 017102 (2003)
Yao, Y., Huang, S., Liu, X., Ren, Z.: Scale-free property in large scale object-oriented software and its significance on software engineering. In: Information and Computing Science, ICIC 2009 (2009)
Bokor, A., Burcsi, P., Kátai-Pál, G., Kovács, A., Nagy, P., Tátrai, A.: Complexity of the AXD301 software. ELTE eScience Regional Knowledge Center, ELTE CNL, Internal Research Report (personal communication) (2004)
Szabados, K.: Structural analysis of large TTCN-3 projects. In: Núñez, M., Baker, P., Merayo, M.G. (eds.) FATES/TestCom 2009. LNCS, vol. 5826, pp. 241–246. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-05031-2_19
Onnela, J.-P., et al.: Structure and tie strengths in mobile communication networks. Proc. Natl. Acad. Sci. 104(18), 7332–7336 (2007)
Cohen, R., Erez, K., ben Avraham, D., Havlin, S.: Resilience of the internet to random breakdowns. Phys. Rev. Lett. 85, 4626–4628 (2000)
Cohen, R., Erez, K., ben Avraham, D., Havlin, S.: Breakdown of the internet under intentional attack. Phys. Rev. Lett. 86, 3682–3685 (2001)
Callaway, D.S., Newman, M.E.J., Strogatz, S.H., Watts, D.J.: Network robustness and fragility: percolation on random graphs. Phys. Rev. Lett. 85, 5468–5471 (2000)
Taube-Schock, C., Walker, R.J., Witten, I.H.: Can we avoid high coupling? In: Mezini, M. (ed.) ECOOP 2011. LNCS, vol. 6813, pp. 204–228. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22655-7_10
Clauset, A., Shalizi, C.R., Newman, M.E.J.: Power-law distributions in empirical data. SIAM Rev. 51(4), 661–703 (2009)
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 2(4), 308–320 (1976)
Weyuker, E.J.: Evaluating software complexity measures. IEEE Trans. Softw. Eng. 14(9), 1357–1365 (1988)
Briand, L.C., Morasca, S., Basili, V.R.: Property-based software engineering measurement. IEEE Trans. Softw. Eng. 22(1), 68–86 (1996). https://doi.org/10.1109/32.481535
RefactorErl webpage (2015). http://plc.inf.elte.hu/erlang/
Erlang OTP homepage (2015). http://www.erlang.org/download.html
Horpácsi, D., Kőszegi, J.: Static analysis of function calls in Erlang. Refining the static function call graph with dynamic call information by using data-flow analysis. e-Informatica Softw. Eng. J. 7(1), 65–76 (2013)
Scala repository on GitHub (2015). https://github.com/scala/scala
Fehér, G., Békés, A.G.: ECT: an object-oriented extension to Erlang. In: Proceedings of the 8th ACM SIGPLAN Workshop on ERLANG, ERLANG 2009, pp. 51–62. ACM, New York (2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Oláh, G., Nagy, G., Porkoláb, Z. (2019). Analyzing Scale-Free Properties in Erlang and Scala. In: Zsók, V., Porkoláb, Z., Horváth, Z. (eds) Central European Functional Programming School. CEFP 2015. Lecture Notes in Computer Science(), vol 10094. Springer, Cham. https://doi.org/10.1007/978-3-030-28346-9_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-28346-9_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-28345-2
Online ISBN: 978-3-030-28346-9
eBook Packages: Computer ScienceComputer Science (R0)