{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,5]],"date-time":"2026-04-05T05:31:23Z","timestamp":1775367083415,"version":"3.50.1"},"reference-count":38,"publisher":"MDPI AG","issue":"4","license":[{"start":{"date-parts":[[2019,3,28]],"date-time":"2019-03-28T00:00:00Z","timestamp":1553731200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["61702378 and 61603163"],"award-info":[{"award-number":["61702378 and 61603163"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Commonweal Project of Science and Technology Department of Zhejiang Province","award":["LGF19F020007"],"award-info":[{"award-number":["LGF19F020007"]}]}],"content-domain":{"domain":["www.mdpi.com"],"crossmark-restriction":true},"short-container-title":["Entropy"],"abstract":"<jats:p>Modularity has been regarded as one of the most important properties of a successful software design. It has significant impact on many external quality attributes such as reusability, maintainability, and understandability. Thus, proposing metrics to measure the software modularity can be very useful. Although several metrics have been proposed to characterize some modularity-related attributes, they fail to characterize software modularity as a whole. A complex network uses network models to abstract the internal structure of complex systems, providing a general way to analyze complex systems as a whole. In this paper, we introduce the complex network theory into software engineering and employ modularity, a metric widely used in the field of community detection in complex network research, to measure software modularity as a whole. First, a specific piece of software is represented by a software network, feature coupling network (FCN), where methods and attributes are nodes, couplings between methods and attributes are edges, and the weight on the edges denotes the coupling strength. Then, modularity is applied to the FCN to measure software modularity. We apply the Weyuker\u2019s criteria which is widely used in the field of software metrics, to validate the modularity as a software metric theoretically, and also perform an empirical evaluation using open-source Java software systems to show its effectiveness as a software metric to measure software modularity.<\/jats:p>","DOI":"10.3390\/e21040344","type":"journal-article","created":{"date-parts":[[2019,3,29]],"date-time":"2019-03-29T03:50:21Z","timestamp":1553831421000},"page":"344","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":18,"title":["Measuring Software Modularity Based on Software Networks"],"prefix":"10.3390","volume":"21","author":[{"given":"Yiming","family":"Xiang","sequence":"first","affiliation":[{"name":"School of Management and E-Business, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6355-1385","authenticated-orcid":false,"given":"Weifeng","family":"Pan","sequence":"additional","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Haibo","family":"Jiang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yunfang","family":"Zhu","sequence":"additional","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hao","family":"Li","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Western Michigan University, Kalamazoo, MI 49008, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2019,3,28]]},"reference":[{"key":"ref_1","unstructured":"Pressman, R.S. (1992). Software Engineering: A Practitioner\u2019s Approach, McGraw-Hill."},{"key":"ref_2","doi-asserted-by":"crossref","unstructured":"Sullivan, K.J., Griswold, W.G., Cai, Y.F., and Hallen, B. (2001, January 10\u201314). The structure and value of modularity in software design. Proceedings of the 8th European Software Engineering Conference and 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC\/FSE-9), Vienna, Austria.","DOI":"10.1145\/503222.503224"},{"key":"ref_3","unstructured":"Fenton, N.E., and Pfleeger, S.L. (1996). Software Metrics: A Rigorous and Practical Approach, International Thomson Computer Press. [2nd ed.]."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"700","DOI":"10.1109\/TSE.2008.43","article-title":"Metrics for measuring the quality of modularization of large-scale object-oriented software","volume":"34","author":"Sarkar","year":"2008","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"046116","DOI":"10.1103\/PhysRevE.68.046116","article-title":"Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs","volume":"68","author":"Myers","year":"2003","journal-title":"Phys. Rev. E"},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1145\/1060710.1060716","article-title":"Scale-free geometry in OO programs","volume":"48","author":"Potanin","year":"2005","journal-title":"Commun. ACM"},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"687","DOI":"10.1109\/TSE.2007.1019","article-title":"Power-laws in a large object-oriented software system","volume":"33","author":"Concas","year":"2007","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_8","unstructured":"Pan, W.F., Ming, H., Chang, C.K, Yang, Z.J., and Kim, D.-K. (2019). ElementRank: Ranking Java Software Classes and Packages using Multilayer Complex Network-Based Approach. IEEE Trans. Softw. Eng."},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1007\/s10664-012-9214-z","article-title":"How changes affect software entropy: An empirical study","volume":"19","author":"Canfora","year":"2014","journal-title":"Empir. Softw. Eng."},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Li, H., Hao, L.Y., and Chen, R. (2016). Multi-level formation of complex software systems. Entropy, 18.","DOI":"10.3390\/e18050178"},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"396","DOI":"10.1007\/s11704-009-0054-y","article-title":"Class structure refactoring of object-oriented softwares using community detection in dependency networks","volume":"3","author":"Pan","year":"2009","journal-title":"Front. Comput. Sci."},{"key":"ref_12","doi-asserted-by":"crossref","first-page":"188","DOI":"10.1016\/j.future.2017.10.006","article-title":"Identifying key classes in object-oriented software using generalized k-core decomposition","volume":"81","author":"Pan","year":"2018","journal-title":"Future Gener. Comput. Syst."},{"key":"ref_13","first-page":"2456","article-title":"Test case prioritization based on complex software networks","volume":"40","author":"Pan","year":"2012","journal-title":"Acta Electron. Sin."},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"1357","DOI":"10.1109\/32.6178","article-title":"Evaluating software complexity measures","volume":"14","author":"Weyuker","year":"1988","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_15","unstructured":"(2019, March 23). Apple Inc.. Available online: https:\/\/www.icloud.com\/iclouddrive\/0zRViWdWuiQkYTueyNbCIB49A#2018modularity."},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"476","DOI":"10.1109\/32.295895","article-title":"A metrics suite for object-oriented design","volume":"20","author":"Chidamber","year":"1994","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_17","unstructured":"Eder, J., Kappel, G., and Schre, M. (1992). Coupling and cohesion in object-oriented systems. Proceedings of the Conference on Information and Knowledge, ACM Press."},{"key":"ref_18","doi-asserted-by":"crossref","first-page":"691","DOI":"10.1016\/S0950-5849(98)00092-5","article-title":"Program slices as an abstraction for cohesion measurement","volume":"40","author":"Ott","year":"1998","journal-title":"Inf. Softw. Technol."},{"key":"ref_19","doi-asserted-by":"crossref","unstructured":"Bieman, J.M., and Kang, B.K. (1995, January 29\u201330). Cohesion and reuse in an objectoriented system. Proceedings of the Symposium on Software Reusability (SSR 1995), Seattle, WA, USA.","DOI":"10.1145\/211782.211856"},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1109\/32.979986","article-title":"A hierarchical model for objectoriented design quality assessment","volume":"28","author":"Bansiya","year":"2002","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_21","doi-asserted-by":"crossref","first-page":"722","DOI":"10.1109\/32.815329","article-title":"Defining and validating measures for object-based high-level design","volume":"25","author":"Briand","year":"1999","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_22","unstructured":"Morris, K. (1989). Metrics for Object-Oriented Software Development Environments. [Master\u2019s Thesis, Sloan School of Management, MIT]."},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"Patel, S., Chu, W.C., and Baxter, R. (1992, January 11\u201315). A measure for composite module cohesion. Proceedings of the 14th International Conference on Software Engineering, Melbourne, Australia.","DOI":"10.1145\/143062.143086"},{"key":"ref_24","unstructured":"Martin, R. (2002). Agile Software Development, Principles, Patterns, and Practices, Prentice-Hall."},{"key":"ref_25","unstructured":"Lee, Y.S., and Liang, B.S. (1995, January 6\u20138). Measuring the coupling and cohesion of an object-oriented program based on information flow. Proceedings of the International Conference on Software Quality, Maribor, Slovenia."},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"2587","DOI":"10.1016\/j.ins.2007.01.021","article-title":"Software architecture graphs as complex networks: A novel parttion scheme to measure stability and evolution","volume":"177","author":"Jenkins","year":"2007","journal-title":"Inf. Sci."},{"key":"ref_27","doi-asserted-by":"crossref","first-page":"193","DOI":"10.1016\/j.jss.2015.06.015","article-title":"Exploring community structure of software call graph and its applications in class cohesion measurement","volume":"108","author":"Qu","year":"2015","journal-title":"J. Syst. Softw."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"3551","DOI":"10.1007\/s13369-017-2588-x","article-title":"Measuring Object-Oriented Class Cohesion Based on Complex Networks","volume":"42","author":"Gu","year":"2017","journal-title":"Arab. J. Sci. Eng."},{"key":"ref_29","doi-asserted-by":"crossref","unstructured":"Zhang, J., Wu, J.J., Xia, Y.X., and Ye, F.H. (2018, January 27\u201330). Measuring cohesion of software systems using weighted directed complex networks. Proceedings of the 2018 IEEE International Symposium on Circuits and Systems (ISCAS 2018), Florence, Italy.","DOI":"10.1109\/ISCAS.2018.8351747"},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"1450006","DOI":"10.1142\/S0219525914500064","article-title":"RECODE: Software package refactoring via community detection in bipartite software networks","volume":"17","author":"Pan","year":"2014","journal-title":"Adv. Complex Syst."},{"key":"ref_31","unstructured":"Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., and Gansner, E.R. (1998, January 26). Using automatic clustering to produce high-level system organizations of source code. Proceedings of the Sixth International Workshop on Program Comprehension (IWPC 1998), Ischia, Italy."},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"235","DOI":"10.1109\/3477.915346","article-title":"Variable grouping multivariate time series via correlation","volume":"31","author":"Tucker","year":"2001","journal-title":"IEEE Trans. Syst. Man Cybern. Part B Cybern."},{"key":"ref_33","first-page":"066133","article-title":"Fast algorithm for detecting community structure in networks","volume":"69","author":"Newman","year":"2004","journal-title":"Phys. Rev."},{"key":"ref_34","doi-asserted-by":"crossref","first-page":"636","DOI":"10.1109\/32.87287","article-title":"On Weyuker\u2019s axioms for software complexity measures","volume":"17","author":"Cherniavsky","year":"1991","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"381","DOI":"10.1109\/32.917526","article-title":"On the applicability of Weyuker Property 9 to object-oriented structural inheritance complexity metrics","volume":"27","author":"Gursaran","year":"2001","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_36","doi-asserted-by":"crossref","first-page":"1025","DOI":"10.1109\/32.177371","article-title":"An entropy-based measure of software complexity","volume":"18","author":"Harrison","year":"1992","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"896","DOI":"10.1109\/TSE.2006.112","article-title":"Design pattern detection using similarity scoring","volume":"32","author":"Tsantalis","year":"2006","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_38","doi-asserted-by":"crossref","first-page":"1519","DOI":"10.1002\/spe.2154","article-title":"Implementing design patterns in Object Teams","volume":"43","author":"Monteiro","year":"2013","journal-title":"Softw. Pract. Exp."}],"updated-by":[{"DOI":"10.3390\/e22080878","type":"correction","label":"Correction","source":"publisher","updated":{"date-parts":[[2019,3,28]],"date-time":"2019-03-28T00:00:00Z","timestamp":1553731200000}}],"container-title":["Entropy"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1099-4300\/21\/4\/344\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,8,3]],"date-time":"2025-08-03T22:11:19Z","timestamp":1754259079000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1099-4300\/21\/4\/344"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,3,28]]},"references-count":38,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2019,4]]}},"alternative-id":["e21040344"],"URL":"https:\/\/doi.org\/10.3390\/e21040344","relation":{"has-review":[{"id-type":"doi","id":"10.14322\/publons.r8024226","asserted-by":"object"}]},"ISSN":["1099-4300"],"issn-type":[{"value":"1099-4300","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,3,28]]}}}