Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Free access
Just Accepted

Towards the Fractal Dimension of Classes

Online AM: 16 August 2024 Publication History

Abstract

The fractal property has been regarded as a fundamental property of complex networks, characterizing the self-similarity of a network. Such a property is usually numerically characterized by the fractal dimension metric, and it not only helps the understanding of the relationship between the structure and function of complex networks, but also finds a wide range of applications in complex systems. The existing literature shows that class-level software networks (i.e., class dependency networks) are complex networks with the fractal property. However, the fractal property at the feature (i.e., methods and fields) level has never been investigated, although it is useful for measuring class complexity and predicting bugs in classes. Furthermore, existing studies on the fractal property of software systems were all performed on un-weighted software networks and have not been used in any practical quality assurance tasks such as bug prediction. Generally, considering the weights on edges can give us more accurate representations of the software structure and thus help us obtain more accurate results. The illustration of an approach’s practical use can promote its adoption in practice. In this paper, we examine the fractal property of classes by proposing a new metric. Specifically, we build an FLSN (Feature Level Software Network) for each class to represent the methods/fields and their couplings (including coupling frequencies) within the class, and propose a new metric, (Fractal Dimension for Classes), to numerically describe the fractal property of classes using FLSNs, which captures class complexity. We evaluate theoretically against Weyuker’s nine properties, and the results show that adheres to eight of the nine properties. Empirical experiments performed on a set of twelve large open-source Java systems show that i) for most classes (larger than \(96\%\)), there exists the fractal property in their FLSNs, ii) is capable of capturing additional aspects of class complexity that have not been addressed by existing complexity metrics, iii) significantly correlates with both the existing class-level complexity metrics and the number of bugs in classes, and iv), when used together with existing class-level complexity metrics, can significantly improve bug prediction in classes in three scenarios (i.e., bug-count, bug-classification, and effort-aware) of the cross-project context, but in the within-project context, it cannot.

References

[1]
TK Abdel-Galil, M Kamel, AM Youssef, EF El-Saadany, and MMA Salama. 2004. Power quality disturbance classification using the inductive inference approach. IEEE Trans. Power Deliv. 19, 4 (2004), 1812–1818.
[2]
F Brito Abreu, Miguel Goulão, and Rita Esteves. 1995. Toward the design quality evaluation of object-oriented software systems. In Proceedings of the 5th International Conference on Software Quality. 44–57.
[3]
Jehad Al Dallal and Lionel C. Briand. 2012. A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Trans. Softw. Eng. Methodol. 21, 2 (2012), 8:1–8:34.
[4]
Maurício Aniche. 2015. Java code metrics calculator (CK). Available at https://github.com/mauricioaniche/ck/.
[5]
Ömer Faruk Arar and Kürsat Ayan. 2017. A feature dependent Naive Bayes approach and its application to the software defect prediction problem. Appl. Soft Comput. 59 (2017), 197–209.
[6]
Erik Arisholm, Lionel C. Briand, and Eivind B. Johannessen. 2010. A systematic and comprehensive investigation of methods to build and evaluate fault prediction models. J. Syst. Softw. 83, 1 (2010), 2–17.
[7]
Ricardo Baeza-Yates and Berthier Ribeiro-Neto. 1999. Modern Information Retrieval. ACM.
[8]
Pierre Baldi, Søren Brunak, Yves Chauvin, Claus AF Andersen, and Henrik Nielsen. 2000. Assessing the accuracy of prediction algorithms for classification: An overview. Bioinformatics 16, 5 (2000), 412–424.
[9]
Rajiv D. Banker, Srikant M. Datar, Chris F. Kemerer, and Dani Zweig. 1993. Software Complexity and Maintenance Costs. Commun. ACM 36, 11 (1993), 81–94.
[10]
Jagdish Bansiya and Carl G. Davis. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Trans. Software Eng. 28, 1 (2002), 4–17.
[11]
Albert-László Barabási. 2009. Scale-free Networks: A decade and beyond. Science 325, 5939 (2009), 412–413.
[12]
Victor R. Basili and H. Dieter Rombach. 1988. The TAME project: Towards improvement-oriented software environments. IEEE Trans. Software Eng. 14, 6 (1988), 758–773.
[13]
Nicolas Bettenburg and Ahmed E Hassan. 2010. Studying the impact of social structures on software quality. In Proceedings of the 18th IEEE International Conference on Program Comprehension (ICPC’10). IEEE, 124–133.
[14]
Lionel C. Briand, John W. Daly, and Jürgen Wüst. 1999. A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Software Eng. 25, 1 (1999), 91–121.
[15]
Lionel C. Briand and Jürgen Wüst. 2001. Modeling development effort in object-oriented systems using design properties. IEEE Trans. Software Eng. 27, 11 (2001), 963–986.
[16]
Lionel C. Briand, Jürgen Wüst, John W. Daly, and D. Victor Porter. 2000. Exploring the relationships between design measures and software quality in object-oriented systems. J. Syst. Softw. 51, 3 (2000), 245–273.
[17]
Glenn W Brier. 1950. Verification of forecasts expressed in terms of probability. Mon. Wea. Rev. 78, 1 (1950), 1–3.
[18]
Raymond P. L. Buse and Westley Weimer. 2010. Learning a metric for code readability. IEEE Trans. Software Eng. 36, 4 (2010), 546–558.
[19]
Yuanfang Cai, Rick Kazman, Carlos V. A. Silva, Lu Xiao, and Hong-Mei Chen. 2013. A Decision-Support System Approach to Economics-Driven Modularity Evaluation. In Economics-Driven Software Architecture. Morgan Kaufmann / Academic Press / Elsevier, 105–128.
[20]
Richard H. Carver, Steve Counsell, and Reuben V. Nithi. 1998. An evaluation of the MOOD set of object-oriented software metrics. IEEE Trans. Software Eng. 24, 6 (1998), 491–496.
[21]
Tianfeng Chai and Roland R Draxler. 2014. Root mean square error (RMSE) or mean absolute error (MAE)?–Arguments against avoiding RMSE in the literature. Geosci. Model Dev. 7, 3 (2014), 1247–1250.
[22]
John C. Cherniavsky and Carl H. Smith. 1991. On Weyuker’s axioms for software complexity measures. IEEE Trans. Software Eng. 17, 6 (1991), 636–638.
[23]
Shyam R. Chidamber and Chris F. Kemerer. 1994. A metrics suite for object oriented design. IEEE Trans. Software Eng. 20, 6 (1994), 476–493.
[24]
Ram Chillarege, Inderpal S. Bhandari, Jarir K. Chaar, Michael J. Halliday, Diane S. Moebus, Bonnie K. Ray, and Man-Yuen Wong. 1992. Orthogonal defect classification - A concept for in-process measurements. IEEE Trans. Software Eng. 18, 11 (1992), 943–956.
[25]
Chun Yong Chong and Sai Peck Lee. 2017. Automatic clustering constraints derivation from object-oriented software using weighted complex network with graph theory analysis. J. Syst. Softw. 133 (2017), 28–53.
[26]
G Concas, M. F Locci, M Marchesi, S Pinna, and I Turnu. 2006. Fractal dimension in software networks. Europhys. Lett. 76, 6 (2006), 1221–1227.
[27]
Giulio Concas, Michele Marchesi, Sandro Pinna, and Nicola Serra. 2007. Power-laws in a large object-oriented software system. IEEE Trans. Software Eng. 33, 10 (2007), 687–708.
[28]
Ana Erika Camargo Cruz and Koichiro Ochimizu. 2009. Towards logistic regression models for predicting fault-prone code across software projects. In Proceedings of the 3rd International Symposium on Empirical Software Engineering and Measurement (ESEM’09). IEEE, 460–463.
[29]
Marco D’Ambros, Michele Lanza, and Harald Gall. 2005. Fractal figures: Visualizing development effort for cvs entities. In Proceedings of the 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT’05). IEEE, 1–6.
[30]
Alessandro P. S. de Moura, Ying-Cheng Lai, and Adilson E. Motter. 2003. Signatures of small-world and scale-free properties in large computer programs. Phys. Rev. E 68 (2003), 017102. Issue 1.
[31]
F Brito e Abreu. 1995. The MOOD metrics set. In Proceedings of the ECOOP’95 Workshop on Metrics, Vol. 95. 267.
[32]
Bradley Efron and Robert J Tibshirani. 1994. An Introduction to the Bootstrap. CRC Press, Inc.
[33]
Mahmoud O. Elish, Ali H. Al-Yafei, and Muhammed Al-Mulhem. 2011. Empirical comparison of three metrics suites for fault prediction in packages of object-oriented systems: A case study of Eclipse. Adv. Eng. Softw. 42, 10 (2011), 852–859.
[34]
Michael English, Jim Buckley, and J.J. Collins. 2016. Chapter 8 - Investigating software modularity using class and module level metrics. In Software Quality Assurance. Morgan Kaufmann, 177–200.
[35]
Norman Fenton and James Bieman. 2014. Software Metrics: A Rigorous and Practical Approach, Third Edition (3rd ed.). CRC Press, Inc., USA.
[36]
Norman E. Fenton. 1991. Software complexity: Measures and methods, by Horst Zuse, Published by Walter de Gruyter, 1990 (Book Review). Softw. Test. Verification Reliab. 1, 3 (1991), 41–42.
[37]
Salvador García, Alberto Fernández, Julián Luengo, and Francisco Herrera. 2010. Advanced nonparametric tests for multiple comparisons in the design of experiments in computational intelligence and data mining: Experimental analysis of power. Inf. Sci. 180, 10 (2010), 2044–2064.
[38]
Salvador García and Francisco Herrera. 2008. An extension on “statistical comparisons of classifiers over multiple data sets” for all pairwise comparisons. J. Mach. Learn. Res. 9 (2008), 2677–2694.
[39]
Baljinder Ghotra, Shane McIntosh, and Ahmed E. Hassan. 2015. Revisiting the impact of classification techniques on the performance of defect prediction models. In Proceedings of the 37th IEEE/ACM International Conference on Software Engineering (ICSE’15). IEEE, 789–800.
[40]
Daniel Greenfield and Simon W Moore. 2008. Fractal communication in software data dependency graphs. In Proceedings of the 20th Annual Symposium on Parallelism in Algorithms and Architectures (SPAA’07). 116–118.
[41]
Gursaran and Gurdev Roy. 2001. On the applicability of Weyuker property 9 to object-oriented structural inheritance complexity metrics. IEEE Trans. Software Eng. 27, 4 (2001), 381–384.
[42]
Maurice H Halstead. 1977. Elements of Software Science (Operating and Programming Systems Series). Elsevier Science Inc.
[43]
James A Hanley and Barbara J McNeil. 1982. The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology 143, 1 (1982), 29–36.
[44]
Frank E Harrell. 2001. Regression Modeling Strategies: With Applications to Linear Models, Logistic Regression, and Survival Analysis. Springer.
[45]
Sallie M. Henry and Dennis G. Kafura. 1981. Software structure metrics based on information flow. IEEE Trans. Software Eng. 7, 5 (1981), 510–518.
[46]
Sallie M. Henry, Dennis G. Kafura, and Kathy Harris. 1981. On the relationships among three software metrics. SIGMETRICS Perform. Evaluation Rev. 10, 1 (1981), 81–88.
[47]
Steffen Herbold, Alexander Trautsch, and Jens Grabowski. 2018. A comparative study to benchmark cross-project defect prediction approaches. IEEE Trans. Software Eng. 44, 9 (2018), 811–833.
[48]
Abram Hindle, Michael W Godfrey, and Richard C Holt. 2011. Multifractal aspects of software development: NIER track. In Proceedings of the 33rd International Conference on Software Engineering (ICSE’11). IEEE, 968–971.
[49]
Will G Hopkins. 1997. A New View of Statistics. Will G. Hopkins.
[50]
Seyedrebvar Hosseini, Burak Turhan, and Dimuthu Gunarathna. 2019. A systematic literature review and meta-analysis on cross project defect prediction. IEEE Trans. Software Eng. 45, 2 (2019), 111–147.
[51]
Sun-Jen Huang and R. Lai. 2003. Measuring the maintainability of a communication protocol based on its formal specification. IEEE Trans. Software Eng. 29, 4 (2003), 327–344.
[52]
I. Turnu, G. Concas, M. Marchesi, and R. Tonelli. 2013. The fractal dimension of software networks as a global quality metric. Inf. Sci. 245 (2013), 290–303.
[53]
Martina Iammarino, Fiorella Zampetti, Lerina Aversano, and Massimiliano Di Penta. 2021. An empirical study on the co-occurrence between refactoring actions and self-admitted technical debt removal. J. Syst. Softw. 178 (2021), 110976.
[54]
Ronald Jabangwe, Jürgen Börstler, Darja Smite, and Claes Wohlin. 2015. Empirical evidence on the link between object-oriented measures and external quality attributes: A systematic literature review. Empir. Softw. Eng. 20, 3 (2015), 640–693.
[55]
Samantha Jenkins and Steven R. Kirk. 2007. Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution. Inf. Sci. 177, 12 (2007), 2587–2601.
[56]
Jirayus Jiarpakdee, Chakkrit Tantithamthavorn, and Christoph Treude. 2018. Autospearman: Automatically mitigating correlated software metrics for interpreting defect models. In Proceedings of the 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME’18). IEEE, 92–103.
[57]
Magne Jørgensen and Martin J. Shepperd. 2007. A systematic review of software development cost estimation studies. IEEE Trans. Software Eng. 33, 1 (2007), 33–53.
[58]
Ritu Kapur and Balwinder Sodhi. 2020. A defect estimator for source code: Linking defect reports with programming constructs usage metrics. ACM Trans. Softw. Eng. Methodol. 29, 2 (2020), 12:1–12:35.
[59]
Ritu Kapur and Balwinder Sodhi. 2022. OSS effort estimation using software features similarity and developer activity-based metrics. ACM Trans. Softw. Eng. Methodol. 31, 2 (2022), 33:1–33:35.
[60]
Taghi M Khoshgoftaar, John C Munson, and S Ravichandran. 1992. Comparative aspects of software complexity metrics and program modules—a multidimensional scaling approach. Softw. Qual. J. 1, 3 (1992), 159–173.
[61]
Eriks Klotins, Michael Unterkalmsteiner, and Tony Gorschek. 2019. Software engineering in start-up companies: An analysis of 88 experience reports. Empir. Softw. Eng. 24, 1 (2019), 68–102.
[62]
Kiran Lakhotia, Mark Harman, and Hamilton Gross. 2013. AUSTIN: An open source tool for search based software testing of C programs. Inf. Softw. Technol. 55, 1 (2013), 112–125.
[63]
Kenneth S. Law, Chi-Sum Wong, and William H. Mobley. 1998. Toward a taxonomy of multidimensional constructs. Acad. Manag. Rev. 23, 4 (1998), 741–755.
[64]
Wei Li and Sallie M. Henry. 1993. Object-oriented metrics that predict maintainability. J. Syst. Softw. 23, 2 (1993), 111–122.
[65]
Jing Liu, Keqing He, Yutao Ma, and Rong Peng. 2006. Scale free in software metrics. In Proceedings of the 30th Annual International Computer Software and Applications Conference (COMPSAC’06). IEEE, 229–235.
[66]
Jing Liu, Jinhu Lu, Keqing He, Bing Li, and Chi Kong Tse. 2008. Characterizing the structural quality of general complex software networks. Int. J. Bifurc. Chaos 18, 2 (2008), 605–613.
[67]
Yixun Liu, Denys Poshyvanyk, Rudolf Ferenc, Tibor Gyimóthy, and Nikos Chrisochoides. 2009. Modeling class cohesion as mixtures of latent topics. In Proceedings of the 25th IEEE International Conference on Software Maintenance (ICSM’09). IEEE Computer Society, 233–242.
[68]
GUO Long and XU Cai. 2009. The fractal dimensions of complex networks. Chinese Phys. Lett. 26, 8 (2009), 088901.
[69]
Mark Lorenz and Jeff Kidd. 1994. Object-Oriented Software Metrics: A Practical Guide. Prentice Hall.
[70]
Wanwangying Ma, Lin Chen, Yibiao Yang, Yuming Zhou, and Baowen Xu. 2016. Empirical analysis of network measures for effort-aware fault-proneness prediction. Inf. Softw. Technol. 69 (2016), 50–70.
[71]
Yutao Ma, Keqing He, and Dehui Du. 2005. A qualitative method for measuring the structural complexity of software systems based on complex networks. In Proceedings of the 12th Asia-Pacific Software Engineering Conference (APSEC’05). IEEE, 257–263.
[72]
Yutao Ma, Keqing He, Bing Li, Jing Liu, and Xiaoyan Zhou. 2010. A hybrid set of complexity metrics for large-scale object-oriented software systems. J. Comput. Sci. Technol. 25, 6 (2010), 1184–1201.
[73]
Zhiyi Ma. 2016. Analyzing large-scale OO software by joining fractal and entropy measures. In Proceedings of the 2016 International Conference on Computational Science and Computational Intelligence (CSCI’16). ACM, 1310–1314.
[74]
Pratyusa K. Manadhata and Jeannette M. Wing. 2011. An attack surface metric. IEEE Trans. Software Eng. 37, 3 (2011), 371–386.
[75]
Benoit B Mandelbrot and Benoit B Mandelbrot. 1982. The Fractal Geometry of Nature. WH freeman New York.
[76]
Andrian Marcus, Denys Poshyvanyk, and Rudolf Ferenc. 2008. Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Trans. Software Eng. 34, 2 (2008), 287–300.
[77]
Thomas J. McCabe. 1976. A complexity measure. IEEE Trans. Software Eng. 2, 4 (1976), 308–320.
[78]
Carma L. McClure. 1978. A Model for Program Complexity Analysis. In Proceedings of the 3rd International Conference on Software Engineering (ICSE’78), Maurice V. Wilkes, Laszlo A. Belady, Y. H. Su, Harry Hayman, and Philip H. Enslow Jr. (Eds.). IEEE, 149–157.
[79]
Nadia Patricia Da Silva Medeiros, Naghmeh Ramezani Ivaki, Pedro Costa, and Marco Vieira. 2020. Vulnerable code detection using software metrics and machine learning. IEEE Access 8 (2020), 219174–219198.
[80]
Bilal Mehboob, Chun Yong Chong, Sai Peck Lee, and Joanne Mun-Yee Lim. 2021. Reusability affecting factors and software metrics for reusability: A systematic literature review. Softw. Pract. Exp. 51, 6 (2021), 1416–1458.
[81]
David S Moore, William I Notz, and William Notz. 2006. Statistics: Concepts and controversies. Macmillan.
[82]
Alan Mycroft. 2007. Programming language design and analysis motivated by hardware evolution. In Proceedings of the 14th International Symposium on Static Analysis (SAS’07). Springer, 18–33.
[83]
Nachiappan Nagappan, Andreas Zeller, Thomas Zimmermann, Kim Herzig, and Brendan Murphy. 2010. Change bursts as defect predictors. In Proceedings of 21st IEEE International Symposium on Software Reliability Engineering (ISSRE’10). IEEE, 309–318.
[84]
Neelofar Neelofar, Kate Smith-Miles, Mario Andrés Muñoz, and Aldeida Aleti. 2023. Instance space analysis of search-based software testing. IEEE Trans. Software Eng. 49, 4 (2023), 2642–2660.
[85]
Thanh H. D. Nguyen, Bram Adams, and Ahmed E. Hassan. 2010. Studying the impact of dependency network measures on software quality. In Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM’10), Radu Marinescu, Michele Lanza, and Andrian Marcus (Eds.). IEEE, 1–10.
[86]
Nikolaos Nikolaidis, Nikolaos Mittas, Apostolos Ampatzoglou, Elvira-Maria Arvanitou, and Alexander Chatzigeorgiou. 2023. Assessing TD macro-management: A nested modeling statistical approach. IEEE Trans. Software Eng. 49, 4 (2023), 2996–3007.
[87]
Hector M. Olague, Letha H. Etzkorn, Sampson Gholston, and Stephen Quattlebaum. 2007. Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly iterative or agile software development processes. IEEE Trans. Software Eng. 33, 6 (2007), 402–419.
[88]
Fabio Palomba, Marco Zanoni, Francesca Arcelli Fontana, Andrea De Lucia, and Rocco Oliveto. 2019. Toward a smell-aware bug prediction model. IEEE Trans. Software Eng. 45, 2 (2019), 194–218.
[89]
Weifeng Pan, Bing Li, Jing Liu, Yutao Ma, and Bo Hu. 2018. Analyzing the structure of Java software systems by weighted k-core decomposition. Future Gener. Comput. Syst. 83 (2018), 431–444.
[90]
Weifeng Pan, Bing Li, Yutao Ma, and Jing Liu. 2011. Multi-granularity evolution analysis of software using complex network theory. J. Syst. Sci. Complex. 24, 6 (2011), 1068–1082.
[91]
Weifeng Pan, Bing Li, Yutao Ma, Yeyi Qin, and Xiao-Yan Zhou. 2010. Measuring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks. J. Comput. Sci. Technol. 25, 6 (2010), 1202–1213.
[92]
Weifeng Pan, Hua Ming, Carl K. Chang, Zijiang Yang, and Dae-Kyoo Kim. 2021. ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach. IEEE Trans. Software Eng. 47, 10 (2021), 2272–2295.
[93]
Weifeng Pan, Hua Ming, Dae-Kyoo Kim, and Zijiang Yang. 2022. PRIDE: Prioritizing documentation effort based on a PageRank-like algorithm and simple filtering rules. IEEE Trans. Software Eng. 49, 3 (2022), 1118–1151.
[94]
Weifeng Pan, Hua Ming, Zijiang Yang, and Tian Wang. 2022. Comments on “Using k-core decomposition on class dependency networks to improve bug prediction model’s practical performance”. IEEE Trans. Software Eng. 48, 12 (2022), 5176–5187.
[95]
Karl Pearson. 1901. LIII. On lines and planes of closest fit to systems of points in space. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science 2, 11 (1901), 559–572.
[96]
Alex Potanin, James Noble, Marcus R. Frean, and Robert Biddle. 2005. Scale-free geometry in OO programs. Commun. ACM 48, 5 (2005), 99–103.
[97]
Yu Qu, Xiaohong Guan, Qinghua Zheng, Ting Liu, Lidan Wang, Yuqiao Hou, and Zijiang Yang. 2015. Exploring community structure of software call graph and its applications in class cohesion measurement. J. Syst. Softw. 108 (2015), 193–210.
[98]
Yu Qu, Qinghua Zheng, Jianlei Chi, Yangxu Jin, Ancheng He, Di Cui, Hengshan Zhang, and Ting Liu. 2021. Using k-core decomposition on class dependency networks to improve bug prediction model’s practical performance. IEEE Trans. Software Eng. 47, 2 (2021), 348–366.
[99]
Danijel Radjenovic, Marjan Hericko, Richard Torkar, and Ales Zivkovic. 2013. Software fault prediction metrics: A systematic literature review. Inf. Softw. Technol. 55, 8 (2013), 1397–1418.
[100]
Uzma Raja and Marietta J. Tretter. 2012. Defining and evaluating a measure of open source project survivability. IEEE Trans. Software Eng. 38, 1 (2012), 163–174.
[101]
Kaspar Rufibach. 2010. Use of Brier score to assess binary predictions. J. Clin. Epidemiol. 63, 8 (2010), 938–939.
[102]
Simone Scalabrino, Gabriele Bavota, Christopher Vendome, Mario Linares-Vásquez, Denys Poshyvanyk, and Rocco Oliveto. 2021. Automatically assessing code understandability. IEEE Trans. Software Eng. 47, 3 (2021), 595–613.
[103]
Norman F. Schneidewind. 2002. Body of knowledge for software quality measurement. Computer 35, 2 (2002), 77–83.
[104]
Ying Shi, Ming Li, Steven Arndt, and Carol S. Smidts. 2017. Metric-based software reliability prediction approach and its application. Empir. Softw. Eng. 22, 4 (2017), 1579–1633.
[105]
Yonghee Shin, Andrew Meneely, Laurie A. Williams, and Jason A. Osborne. 2011. Evaluating complexity, code churn, and developer activity metrics as indicators of software vulnerabilities. IEEE Trans. Software Eng. 37, 6 (2011), 772–787.
[106]
Chaoming Song, Shlomo Havlin, and Hernan A Makse. 2005. Self-similarity of complex networks. Nature 433, 7024 (2005), 392–395.
[107]
Qinbao Song, Zihan Jia, Martin Shepperd, Shi Ying, and Jin Liu. 2010. A general software defect-proneness prediction framework. IEEE Trans. Software Eng. 37, 3 (2010), 356–370.
[108]
Ioana Sora and Ciprian-Bogdan Chirila. 2019. Finding key classes in object-oriented software systems by techniques based on static analysis. Inf. Softw. Technol. 116 (2019).
[109]
Bruno L. Sousa, Mariza A. S. Bigonha, and Kecia A. M. Ferreira. 2019. An exploratory study on cooccurrence of design patterns and bad smells using software metrics. Softw. Pract. Exp. 49, 7 (2019), 1079–1113.
[110]
C. Spearman. 1904. The proof and measurement of association between two things. Am. J. Psychol. 15, 1 (1904), 72–101.
[111]
Ramanath Subramanyam and Mayuram S. Krishnan. 2003. Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects. IEEE Trans. Software Eng. 29, 4 (2003), 297–310.
[112]
Andrew M. Sugden. 2021. The evolution of ecological networks. Science 372, 6543 (2021), 698–700.
[113]
Kazi Zakia Sultana, Vaibhav K. Anu, and Tai-Yin Chong. 2021. Using software metrics for predicting vulnerable classes and methods in Java projects: A machine learning approach. J. Softw. Evol. Process. 33, 3 (2021), e2303.
[114]
Kuo-Chung Tai. 1984. A program complexity metric based on data flow information in control graphs. In Proceedings of the 7th International Conference on Software Engineering (ICSE’84), Terry A. Straeter, William E. Howden, and Jean-Claude Rault (Eds.). IEEE Computer Society, 239–249.
[115]
Chakkrit Tantithamthavorn. 2016. Towards a better understanding of the impact of experimental components on defect prediction modelling. In Proceedings of the 38th International Conference on Software Engineering Companion (ICSE-C’16). 867–870.
[116]
Chakkrit Tantithamthavorn, Shane McIntosh, Ahmed E. Hassan, Akinori Ihara, and Kenichi Matsumoto. 2015. The impact of mislabelling on the performance and interpretation of defect prediction models. In Proceedings of the 37th IEEE/ACM International Conference on Software Engineering (ICSE’15). IEEE, 812–823.
[117]
Chakkrit Tantithamthavorn, Shane McIntosh, Ahmed E Hassan, and Kenichi Matsumoto. 2016. An empirical comparison of model validation techniques for defect prediction models. IEEE Trans. Software Eng. 43, 1 (2016), 1–18.
[118]
Ferdian Thung, David Lo, Mohd Hafeez Osman, and Michel R. V. Chaudron. 2014. Condensing class diagrams by analyzing design and network metrics using optimistic classification. In Proceedings of the 22nd International Conference on Program Comprehension (ICPC’14). ACM, 110–121.
[119]
Zoltán Tóth, Péter Gyimesi, and Rudolf Ferenc. 2016. A public bug database of GitHub projects and its application in bug prediction. In Proceedings of the 16th International Conference on Computational Science and Its Applications (ICCSA’16). Springer, 625–638.
[120]
Ivana Turnu, Giulio Concas, Michele Marchesi, and Roberto Tonelli. 2011. The fractal dimension metric and its use to assess object-oriented software quality. In Proceedings of the 2nd International Workshop on Emerging Trends in Software Metrics (WETSoM’11). ACM, 69–74.
[121]
Hao Wang, Weiyuan Zhuang, and Xiaofang Zhang. 2021. Software defect prediction based on gated hierarchical LSTMs. IEEE Trans. Rel. 70, 2 (2021), 711–727.
[122]
Song Wang, Taiyue Liu, Jaechang Nam, and Lin Tan. 2020. Deep semantic feature learning for software defect prediction. IEEE Trans. Software Eng. 46, 12 (2020), 1267–1293.
[123]
Song Wang, Taiyue Liu, and Lin Tan. 2016. Automatically learning semantic features for defect prediction. In Proceedings of the 38th International Conference on Software Engineering (ICSE’16), Laura K. Dillon, Willem Visser, and Laurie A. Williams (Eds.). ACM, 297–308.
[124]
Dai-Jun Wei, Qi Liu, Hai-Xin Zhang, Yong Hu, Yong Deng, and Sankaran Mahadevan. 2013. Box-covering algorithm for fractal dimension of weighted networks. Sci. Rep. 3, 1 (2013), 1–8.
[125]
Lian Wen, R. Geoff Dromey, and Diana Kirk. 2009. Software engineering and scale-free networks. IEEE Trans. Syst. Man Cybern. Part B 39, 3 (2009), 648–657.
[126]
Tao Wen and Kang Hao Cheong. 2021. The fractal dimension of complex networks: A review. Information Fusion 73 (2021), 87–102.
[127]
Martin West. 1996. Object-oriented metrics: Measures of complexity, by Brian Henderson-Sellers, Prentice Hall, 1996 (Book Review). Softw. Test. Verification Reliab. 6, 3/4 (1996), 255–256.
[128]
Elaine J. Weyuker. 1988. Evaluating software complexity measures. IEEE Trans. Software Eng. 14, 9 (1988), 1357–1365.
[129]
Ian H. Witten and Eibe Frank. 2005. Data Mining: Practical Machine Learning Tools and Techniques, Second Edition. Morgan Kaufmann.
[130]
Ray W. Wolverton. 1974. The cost of developing large-scale software. IEEE Trans. Computers 23, 6 (1974), 615–636.
[131]
Jingwei Wu and Richard Holt. 2006. Seeking empirical evidence for self-organized criticality in open source software evolution.
[132]
Jingwei Wu, Richard C Holt, and Ahmed E Hassan. 2007. Empirical evidence for SOC dynamics in software evolution. In Proceedings of the 2007 IEEE International Conference on Software Maintenance (ICSM’07). IEEE, 244–254.
[133]
Xinli Yang, David Lo, Xin Xia, and Jianling Sun. 2017. TLEL: A two-layer ensemble learning approach for just-in-time defect prediction. Inf. Softw. Technol. 87 (2017), 206–220.
[134]
Yang Yang, Takashi Nishikawa, and Adilson E. Motter. 2017. Small vulnerable sets determine large network cascades in power grids. Science 358, 6365 (2017), eaan3184.
[135]
Suraj Yatish, Jirayus Jiarpakdee, Patanamon Thongtanunam, and Chakkrit Tantithamthavorn. 2019. Mining software defects: should we consider affected releases?. In Proceedings of the 41st IEEE/ACM International Conference on Software Engineering (ICSE’19). IEEE/ACM, 654–665.
[136]
Hongyu Zhang, Yuan-Fang Li, and Hee Beng Kuan Tan. 2010. Measuring design complexity of semantic web ontologies. J. Syst. Softw. 83, 5 (2010), 803–814.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology Just Accepted
EISSN:1557-7392
Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Online AM: 16 August 2024
Accepted: 29 July 2024
Revised: 08 July 2024
Received: 24 February 2024

Check for updates

Author Tags

  1. key classes
  2. network metrics
  3. complex networks
  4. static analysis
  5. program comprehension

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 219
    Total Downloads
  • Downloads (Last 12 months)219
  • Downloads (Last 6 weeks)79
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media