{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,20]],"date-time":"2025-09-20T18:59:27Z","timestamp":1758394767412},"reference-count":29,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2020,8,18]],"date-time":"2020-08-18T00:00:00Z","timestamp":1597708800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,8,18]],"date-time":"2020-08-18T00:00:00Z","timestamp":1597708800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Appl Netw Sci"],"published-print":{"date-parts":[[2020,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Software structure is the backbone for software systems. During the long time of software evolution, it is gradually weakened by continuous code modification and expansion driven by new requirements. Therefore, measuring software and refactoring codes are necessary to keep software structure stable and clean. In this paper, we propose two metrics of cohesion and coupling to characterize package structure. We consider not only the dependencies of intra-package and inter-package, but also the backward dependencies of inter-package. The two metrics are proved theoretically that they are satisfied with Briand\u2019s four properties. Based on these metrics, a refactoring algorithm is presented to improve the quality of package structure. Through tests on ten open source software systems, the experiment result shows our metrics can measure software structure correctly and improve codes to fit for the rule of high cohesion and low coupling.<\/jats:p>","DOI":"10.1007\/s41109-020-00298-8","type":"journal-article","created":{"date-parts":[[2020,8,18]],"date-time":"2020-08-18T12:03:12Z","timestamp":1597752192000},"update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Measurement and refactoring for package structure based on complex network"],"prefix":"10.1007","volume":"5","author":[{"given":"Yangxi","family":"Zhou","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yanran","family":"Mi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yan","family":"Zhu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Liangyu","family":"Chen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,8,18]]},"reference":[{"key":"298_CR1","doi-asserted-by":"publisher","first-page":"103","DOI":"10.1109\/WCRE.2009.13","volume-title":"2009 16th Working Conference on Reverse Engineering","author":"H Abdeen","year":"2009","unstructured":"Abdeen, H, Ducasse S, Sahraoui H, Alloui I (2009) Automatic package coupling and cycle minimization In: 2009 16th Working Conference on Reverse Engineering, 103\u2013112.. IEEE, Lille."},{"issue":"SI","key":"298_CR2","doi-asserted-by":"publisher","first-page":"259","DOI":"10.1145\/223427.211856","volume":"20","author":"JM Bieman","year":"1995","unstructured":"Bieman, JM, Kang B-K (1995) Cohesion and reuse in an object-oriented system. ACM SIGSOFT Softw Eng Notes 20(SI):259\u2013262.","journal-title":"ACM SIGSOFT Softw Eng Notes"},{"issue":"1","key":"298_CR3","doi-asserted-by":"publisher","first-page":"68","DOI":"10.1109\/32.481535","volume":"22","author":"LC Briand","year":"1996","unstructured":"Briand, LC, Morasca S, Basili VR (1996) Property-based software engineering measurement. IEEE Trans Softw Eng 22(1):68\u201386.","journal-title":"IEEE Trans Softw Eng"},{"issue":"6","key":"298_CR4","doi-asserted-by":"publisher","first-page":"476","DOI":"10.1109\/32.295895","volume":"20","author":"SR Chidamber","year":"1994","unstructured":"Chidamber, SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476\u2013493.","journal-title":"IEEE Trans Softw Eng"},{"issue":"10","key":"298_CR5","doi-asserted-by":"publisher","first-page":"687","DOI":"10.1109\/TSE.2007.1019","volume":"33","author":"G Concas","year":"2007","unstructured":"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\u2013708.","journal-title":"IEEE Trans Softw Eng"},{"issue":"3-5","key":"298_CR6","doi-asserted-by":"publisher","first-page":"75","DOI":"10.1016\/j.physrep.2009.11.002","volume":"486","author":"S Fortunato","year":"2010","unstructured":"Fortunato, S (2010) Community detection in graphs. Phys Rep 486(3-5):75\u2013174.","journal-title":"Phys Rep"},{"key":"298_CR7","volume-title":"Extreme Programming and Agile Methods - XP\/Agile Universe 2002. XP\/Agile Universe 2002. Lecture Notes in Computer Science, vol 2418","author":"M Fowler","year":"1997","unstructured":"Fowler, M (1997) Refactoring: Improving the Design of Existing Code. In: Wells D Williams L (eds)Extreme Programming and Agile Methods - XP\/Agile Universe 2002. XP\/Agile Universe 2002. Lecture Notes in Computer Science, vol 2418.. Springer, Berlin."},{"issue":"12","key":"298_CR8","doi-asserted-by":"publisher","first-page":"7821","DOI":"10.1073\/pnas.122653799","volume":"99","author":"M Girvan","year":"2002","unstructured":"Girvan, M, Newman ME (2002) Community structure in social and biological networks. Proc Natl Acad Sci 99(12):7821\u20137826.","journal-title":"Proc Natl Acad Sci"},{"key":"298_CR9","doi-asserted-by":"publisher","first-page":"18","DOI":"10.1145\/1137983.1137989","volume-title":"Proceedings of the 2006 International Workshop on Mining Software Repositories","author":"G Gui","year":"2006","unstructured":"Gui, G, Scott PD (2006) Coupling and cohesion measures for evaluation of component reusability In: Proceedings of the 2006 International Workshop on Mining Software Repositories, 18\u201321.. Association for Computing Machinery, New York."},{"issue":"6","key":"298_CR10","doi-asserted-by":"publisher","first-page":"491","DOI":"10.1109\/32.689404","volume":"24","author":"R Harrison","year":"1998","unstructured":"Harrison, R, Counsell SJ, Nithi RV (1998) An evaluation of the mood set of object-oriented software metrics. IEEE Trans Softw Eng 24(6):491\u2013496.","journal-title":"IEEE Trans Softw Eng"},{"issue":"2","key":"298_CR11","doi-asserted-by":"publisher","first-page":"157","DOI":"10.1007\/s11424-006-0157-6","volume":"19","author":"K He","year":"2006","unstructured":"He, K, Peng R, Liu J, He F, Liang P, Li B (2006) Design methodology of networked software evolution growth based on software patterns. J Syst Sci Complex 19(2):157\u2013181.","journal-title":"J Syst Sci Complex"},{"key":"298_CR12","first-page":"222","volume-title":"2004 10th IEEE International Workshop on Future Trends of Distributed Computing Systems","author":"D Kang","year":"2004","unstructured":"Kang, D, Xu B, Lu J, Chu WC (2004) A complexity measure for ontology based on uml In: 2004 10th IEEE International Workshop on Future Trends of Distributed Computing Systems, 222\u2013228.. IEEE, Suzhou."},{"key":"298_CR13","unstructured":"Lee, Y (1995) Measuring the coupling and cohesion of an object-oriented program based on information flow In: Proc. Int\u2019l Conf. Software Quality, 1995, Austin."},{"issue":"12","key":"298_CR14","first-page":"2371","volume":"34","author":"B Li","year":"2006","unstructured":"Li, B, Wang H, Li Z-Y, He K-Q, Yu D-H (2006) Software complexity metrics based on complex networks. Dianzi Xuebao (Acta Electron Sin) 34(12):2371\u20132375.","journal-title":"Dianzi Xuebao (Acta Electron Sin)"},{"issue":"9","key":"298_CR15","doi-asserted-by":"publisher","first-page":"2025","DOI":"10.1016\/j.physa.2013.01.035","volume":"392","author":"H Li","year":"2013","unstructured":"Li, H, Zhao H, Cai W, Xu J-Q, Ai J (2013) A modular attachment mechanism for software network evolution. Phys A Stat Mech Appl 392(9):2025\u20132037.","journal-title":"Phys A Stat Mech Appl"},{"key":"298_CR16","volume-title":"Agile Software Development: Principles, Patterns, and Practices","author":"RC Martin","year":"2002","unstructured":"Martin, RC (2002) Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River."},{"key":"298_CR17","unstructured":"Misic, VB (2001) Cohesion is structural, coherence is functional: Different views, different measures In: Proceedings Seventh International Software Metrics Symposium, 135\u2013144.. IEEE."},{"key":"298_CR18","first-page":"238","volume-title":"International Conference on Complex Networks and Their Applications","author":"Y Mi","year":"2019","unstructured":"Mi, Y, Zhou Y, Chen L (2019) A new metric for package cohesion measurement based on complex network In: International Conference on Complex Networks and Their Applications, 238\u2013249.. Springer, Lisbon."},{"issue":"4","key":"298_CR19","doi-asserted-by":"publisher","first-page":"046116","DOI":"10.1103\/PhysRevE.68.046116","volume":"68","author":"CR Myers","year":"2003","unstructured":"Myers, CR (2003) Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Phys Rev E 68(4):046116.","journal-title":"Phys Rev E"},{"issue":"23","key":"298_CR20","doi-asserted-by":"publisher","first-page":"8577","DOI":"10.1073\/pnas.0601602103","volume":"103","author":"ME Newman","year":"2006","unstructured":"Newman, ME (2006) Modularity and community structure in networks. Proc Natl Acad Sci 103(23):8577\u20138582.","journal-title":"Proc Natl Acad Sci"},{"issue":"07n08","key":"298_CR21","doi-asserted-by":"publisher","first-page":"1450006","DOI":"10.1142\/S0219525914500064","volume":"17","author":"W Pan","year":"2014","unstructured":"Pan, W, Li B, Jiang B, Liu K (2014) Recode: software package refactoring via community detection in bipartite software networks. Adv Complex Syst 17(07n08):1450006.","journal-title":"Adv Complex Syst"},{"issue":"6","key":"298_CR22","doi-asserted-by":"publisher","first-page":"1068","DOI":"10.1007\/s11424-011-0319-z","volume":"24","author":"W Pan","year":"2011","unstructured":"Pan, W, Li B, Ma Y, Liu J (2011) Multi-granularity evolution analysis of software using complex network theory. J Syst Sci Complex 24(6):1068\u20131082.","journal-title":"J Syst Sci Complex"},{"issue":"6","key":"298_CR23","doi-asserted-by":"publisher","first-page":"1202","DOI":"10.1007\/s11390-010-9399-9","volume":"25","author":"W-F Pan","year":"2010","unstructured":"Pan, W-F, Li B, Ma Y-T, Qin Y-Y, Zhou X-Y (2010) Measuring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks. J Comput Sci Technol 25(6):1202\u20131213.","journal-title":"J Comput Sci Technol"},{"issue":"1","key":"298_CR24","first-page":"38","volume":"2017","author":"S Ping-ting","year":"2017","unstructured":"Ping-ting, S, Liang-yu C (2017) Complex network analysis in java application systems. J East China Normal Univ (Nat Sci) 2017(1):38.","journal-title":"J East China Normal Univ (Nat Sci)"},{"issue":"5","key":"298_CR25","doi-asserted-by":"publisher","first-page":"99","DOI":"10.1145\/1060710.1060716","volume":"48","author":"A Potanin","year":"2005","unstructured":"Potanin, A, Noble J, Frean M, Biddle R (2005) Scale-free geometry in oo programs. Commun ACM 48(5):99\u2013103.","journal-title":"Commun ACM"},{"issue":"5","key":"298_CR26","doi-asserted-by":"publisher","first-page":"700","DOI":"10.1109\/TSE.2008.43","volume":"34","author":"S Sarkar","year":"2008","unstructured":"Sarkar, S, Kak AC, Rama GM (2008) Metrics for measuring the quality of modularization of large-scale object-oriented software. IEEE Trans Softw Eng 34(5):700\u2013720.","journal-title":"IEEE Trans Softw Eng"},{"issue":"6","key":"298_CR27","doi-asserted-by":"publisher","first-page":"1498","DOI":"10.1016\/j.jss.2012.12.052","volume":"86","author":"E Tom","year":"2013","unstructured":"Tom, E, Aurum A, Vidgen R (2013) An exploration of technical debt. J Syst Softw 86(6):1498\u20131516.","journal-title":"J Syst Softw"},{"issue":"2","key":"298_CR28","doi-asserted-by":"publisher","first-page":"026107","DOI":"10.1103\/PhysRevE.72.026107","volume":"72","author":"S Valverde","year":"2005","unstructured":"Valverde, S, Sol\u00e9 RV (2005) Network motifs in computational graphs: A case study in software architecture. Phys Rev E 72(2):026107.","journal-title":"Phys Rev E"},{"issue":"24","key":"298_CR29","doi-asserted-by":"publisher","first-page":"6190","DOI":"10.1016\/j.physa.2008.06.050","volume":"387","author":"X Zheng","year":"2008","unstructured":"Zheng, X, Zeng D, Li H, Wang F (2008) Analyzing open-source software systems as complex networks. Phys A Stat Mech Appl 387(24):6190\u20136200.","journal-title":"Phys A Stat Mech Appl"}],"container-title":["Applied Network Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s41109-020-00298-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s41109-020-00298-8\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s41109-020-00298-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,8,18]],"date-time":"2021-08-18T00:07:46Z","timestamp":1629245266000},"score":1,"resource":{"primary":{"URL":"https:\/\/appliednetsci.springeropen.com\/articles\/10.1007\/s41109-020-00298-8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,8,18]]},"references-count":29,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,12]]}},"alternative-id":["298"],"URL":"https:\/\/doi.org\/10.1007\/s41109-020-00298-8","relation":{},"ISSN":["2364-8228"],"issn-type":[{"value":"2364-8228","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,8,18]]},"assertion":[{"value":"13 March 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"31 July 2020","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"18 August 2020","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"The authors declare that they have no competing interests.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interests"}}],"article-number":"50"}}