×

Analysis of high structural class coupling in object-oriented software systems. (English) Zbl 1382.68052

Summary: Understanding coupling between classes in object-oriented (OO) software systems is useful for a variety of software development and maintenance activities. In this paper we propose a novel, network-based methodology to analyze high structural class coupling in OO software systems. The proposed methodology is based on statistically robust structural analysis of class collaboration networks whose nodes are enriched with both software metrics and domain-independent metrics used in analysis of complex networks. To demonstrate the usefulness of the methodology we analyze five open-source, large-scale software systems written in Java. Contrary to frequently reported findings, the obtained results indicate that high structural class coupling in real software systems cannot be accurately modeled by power-law distributions. Our analysis also shows that highly-coupled classes tend to be significantly more voluminous and functionally important compared to loosely coupled classes, and do not tend to be localized in class inheritance hierarchies. Finally, in four out of five analyzed systems highly coupled classes tend to have drastically higher afferent than efferent coupling. This implies that the existence of high class coupling in an OO software system would rather indicate negative aspects of extensive internal class reuse than negative aspects of extensive internal class aggregation.

MSC:

68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
05C82 Small world graphs, complex networks (graph-theoretic aspects)

Software:

plfit
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Albert R, Barabási AL (2002) Statistical mechanics of complex networks. Rev Mod Phys 74(1):47-97. doi:10.1103/RevModPhys.74.47 · Zbl 1205.82086 · doi:10.1103/RevModPhys.74.47
[2] Barabasi AL, Albert R (1999) Emergence of scaling in random networks. Science 286(5439):509-512. doi:10.1126/science.286.5439.509 · Zbl 1226.05223 · doi:10.1126/science.286.5439.509
[3] Baxter G, Frean M, Noble J, Rickerby M, Smith H, Visser M, Melton H, Tempero E (2006) Understanding the shape of Java software. In: Proceedings of the 21st annual ACM SIGPLAN conference on object-oriented programming systems, languages, and applications, OOPSLA ’06, pp 397-412. ACM, New York, NY, USA . doi:10.1145/1167473.1167507
[4] Boccaletti S, Latora V, Moreno Y, Chavez M, Hwang D (2006) Complex networks: structure and dynamics. Phys Rep 424(45):175-308. doi:10.1016/j.physrep.2005.10.009 · Zbl 1371.82002 · doi:10.1016/j.physrep.2005.10.009
[5] Briand LC, Daly JW, Wüst JK (1999) A unified framework for coupling measurement in object-oriented systems. IEEE Trans Softw Eng 25(1):91-121 · doi:10.1109/32.748920
[6] Brin S, Page L (1998) The anatomy of a large-scale hypertextual web search engine. Comput Netw ISDN Syst 30(1-7):107-117 · doi:10.1016/S0169-7552(98)00110-X
[7] Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476-493. doi:10.1109/32.295895 · doi:10.1109/32.295895
[8] Clauset A, Shalizi C, Newman M (2009) Power-law distributions in empirical data. SIAM Rev 51(4):661-703. doi:10.1137/070710111 · Zbl 1176.62001 · doi:10.1137/070710111
[9] Concas G, Marchesi M, Pinna S, Serra N (2007) Power-laws in a large object-oriented software system. IEEE Trans Softw Eng 33(10):687-708 · doi:10.1109/TSE.2007.1019
[10] de Moura APS, Lai YC, Motter AE (2003) Signatures of small-world and scale-free properties in large computer programs. Phys Rev E 68(1):017,102. doi:10.1103/PhysRevE.68.017102 · doi:10.1103/PhysRevE.68.017102
[11] Erceg-Hurn DM, Mirosevich VM (2008) Modern robust statistical methods: an easy way to maximize the accuracy and power of your research. Am Psychol 63(7):591-601. doi:10.1037/0003-066X.63.7.591 · doi:10.1037/0003-066X.63.7.591
[12] Erdös P, Rényi A (1959) On random graphs, I. Publ Math Debr 6:290-297 · Zbl 0092.15705
[13] Freeman LC (1977) A set of measures of centrality based on betweenness. Sociometry 40:35-41 · doi:10.2307/3033543
[14] Hylland-Wood D, Carrington D, Kaplan S (2006) Scale-free nature of Java software package, class and method collaboration graphs. Technical report, TR-MS1286, MIND Laboratory, University of Maryland, College Park, USA
[15] Jenkins S, Kirk SR (2007) Software architecture graphs as complex networks: a novel partitioning scheme to measure stability and evolution. Inf Sci 177:2587-2601. doi:10.1016/j.ins.2007.01.021 · doi:10.1016/j.ins.2007.01.021
[16] Kósa B, Balassi M, Englert P, Kiss A (2015) Betweenness versus linerank. Comput Sci Inf Syst 12(1):33-48. doi:10.2298/CSIS141101092K · doi:10.2298/CSIS141101092K
[17] Louridas P, Spinellis D, Vlachos V (2008) Power laws in software. ACM Trans Softw Eng Methodol 18(1):2:1-2:26 · doi:10.1145/1391984.1391986
[18] Mann HB, Whitney DR (1947) On a test of whether one of two random variables is stochastically larger than the other. Ann Math Stat 18(1):50-60. doi:10.2307/2236101 · Zbl 0041.26103 · doi:10.2307/2236101
[19] McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng 2(4):308-320. doi:10.1109/TSE.1976.233837 · Zbl 0352.68066 · doi:10.1109/TSE.1976.233837
[20] Myers CR (2003) Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. Phys Rev E 68(4):046,116. doi:10.1103/PhysRevE.68.046116 · doi:10.1103/PhysRevE.68.046116
[21] Newman MEJ (2003) The structure and function of complex networks. SIAM Rev 45:167-256. doi:10.1137/S003614450342480 · Zbl 1029.68010 · doi:10.1137/S003614450342480
[22] Rakić G, Budimac Z (2011) Introducing enriched concrete syntax trees. In: Proceedings of the 14th international multiconference on information society (IS), collaboration, software and services in information society (CSS), pp 211-214
[23] Redner S (2005) Citation statistics from 110 years of Physical Review. Phys Today 58(6):49-54. doi:10.1063/1.1996475 · doi:10.1063/1.1996475
[24] Savić M, Rakić G, Budimac Z, Ivanović M (2014) A language-independent approach to the extraction of dependencies between source code entities. Inf Softw Technol 56(10):1268-1288. doi:10.1016/j.infsof.2014.04.011 · doi:10.1016/j.infsof.2014.04.011
[25] Šubelj L, Bajec M (2012) Software systems through complex networks science: review, analysis and applications. In: Proceedings of the first international workshop on software mining, SoftwareMining ’12, pp 9-16. ACM, New York, NY, USA. doi:10.1145/2384416.2384418 · Zbl 0092.15705
[26] Taube-Schock C, Walker R, Witten I (2011) Can we avoid high coupling? In: Mezini M (ed) ECOOP 2011 object-oriented programming. Lecture notes in computer science, vol 6813. Springer, Berlin, pp 204-228. doi:10.1007/978-3-642-22655-7_10 · Zbl 1226.05223
[27] Valverde S, Cancho RF, Solé RV (2002) Scale-free networks from optimal design. EPL 60(4):512-517. doi:10.1209/epl/i2002-00248-2 · doi:10.1209/epl/i2002-00248-2
[28] Wen, H.; DSouza, RM; Saul, ZM; Filkov, V.; Ganguly, N. (ed.); Deutsch, A. (ed.); Mukherjee, A. (ed.), Evolution of Apache open source software, 199-215 (2009), Boston · doi:10.1007/978-0-8176-4751-3_12
[29] Wheeldon R, Counsell S (2003) Power law distributions in class relationships. In: Proceedings of the third IEEE international workshop on source code analysis and manipulation, pp 45-54. doi:10.1109/SCAM.2003.1238030
[30] Yourdon E, Constantine LL (1979) Structured design: fundamentals of a discipline of computer program and systems design, 1st edn. Prentice-Hall Inc., Upper Saddle River · Zbl 0466.68003
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.