{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,15]],"date-time":"2026-01-15T02:26:06Z","timestamp":1768443966558,"version":"3.49.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"6","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2025,7,31]]},"abstract":"<jats:p>As software systems evolve to meet the changing needs of users, understanding the source code becomes a critical step in the process. Clustering techniques, also known as modularization techniques, offer a solution to breaking down complex source code into smaller, more manageable parts. This facilitates improved analysis and understanding of the software\u2019s structure. However, the effectiveness of clustering algorithms in code understanding heavily relies on the chosen criteria. While existing methods typically consider cohesion, coupling, and balance between clusters, we argue that these criteria alone may not fully satisfy one of the primary objectives of clustering, which is to enhance understanding. This is because spaghetti-like structures can be created even when these criteria are satisfied. To address this issue, we introduce two new criteria incorporating program control flow to regulate cluster dependencies. By controlling the uniformity of input and output directions, as well as the distribution of inputs and outputs, clustering algorithms can generate clusters that are more developer-friendly and easier to comprehend. We provide intuitive explanations and real-world projects to demonstrate the effectiveness of our approach and also incorporate feedback from academics and expert programmers. This article reveals that integrating these new criteria into existing clustering algorithms enables developers to gain deeper insights into the structure of software systems. This, in turn, leads to better design decisions and improved developer understanding of the source code.<\/jats:p>","DOI":"10.1145\/3707452","type":"journal-article","created":{"date-parts":[[2024,12,6]],"date-time":"2024-12-06T14:48:36Z","timestamp":1733496516000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Beyond Cohesion and Coupling: Integrating Control Flow in Software Modularization Process for Better Code Comprehensibility"],"prefix":"10.1145","volume":"34","author":[{"ORCID":"https:\/\/orcid.org\/0009-0004-3684-275X","authenticated-orcid":false,"given":"Babak","family":"Pourasghar","sequence":"first","affiliation":[{"name":"Department of Computer Science, University of Tabriz, Tabriz, The Islamic Republic of Iran"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7595-8350","authenticated-orcid":false,"given":"Habib","family":"Izadkhah","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University of Tabriz, Tabriz, The Islamic Republic of Iran"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-3897-378X","authenticated-orcid":false,"given":"Maryam","family":"Akhtari","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University of Tabriz, Tabriz, The Islamic Republic of Iran"}]}],"member":"320","published-online":{"date-parts":[[2025,7,2]]},"reference":[{"issue":"4","key":"e_1_3_2_2_2","doi-asserted-by":"crossref","first-page":"1451","DOI":"10.1109\/TSE.2020.3022212","article-title":"A fast clustering algorithm for modularization of large-scale software systems","volume":"48","author":"Teymourian Navid","year":"2022","unstructured":"Navid Teymourian, Habib Izadkhah, and Ayaz Isazadeh. 2022. A fast clustering algorithm for modularization of large-scale software systems. IEEE Transactions on Software Engineering 48, 4 (April 2022), 1451\u20131462.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.5555\/3172926"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2671865"},{"issue":"6","key":"e_1_3_2_5_2","first-page":"1905","article-title":"Software module clustering: An in-depth literature analysis","volume":"48","author":"Alsarhan Qusay","year":"2020","unstructured":"Qusay Alsarhan, Bestoun S. Ahmed, Miroslav Bures, and Kamal Zuhairi Zamli. 2020. Software module clustering: An in-depth literature analysis. IEEE Transactions on Software Engineering 48, 6 (2020), 1905\u20131928.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2018.09.001"},{"key":"e_1_3_2_7_2","doi-asserted-by":"crossref","first-page":"106469","DOI":"10.1016\/j.infsof.2020.106469","article-title":"A graph-based clustering algorithm for software systems modularization","volume":"133","author":"Pourasghar Babak","year":"2021","unstructured":"Babak Pourasghar, Habib Izadkhah, Ayaz Isazadeh, and Shahriar Lotfi. 2021. A graph-based clustering algorithm for software systems modularization. Information and Software Technology 133 (2021), 106469.","journal-title":"Information and Software Technology"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2006.31"},{"key":"e_1_3_2_9_2","doi-asserted-by":"crossref","first-page":"258","DOI":"10.1109\/WCRE.2000.891477","volume-title":"Proceedings of 7th Working Conference on Reverse Engineering","author":"Tzerpos Vassilios","year":"2000","unstructured":"Vassilios Tzerpos and Richard C. Holt. 2000. Acdc: An algorithm for comprehension-driven clustering. In Proceedings of 7th Working Conference on Reverse Engineering. IEEE, 258\u2013267."},{"key":"e_1_3_2_10_2","doi-asserted-by":"crossref","first-page":"552","DOI":"10.1109\/ASE.2011.6100123","volume-title":"Proceedings of 2011 26th IEEE\/ACM International Conference on Automated Software Engineering (ASE \u201911)","author":"Garcia Joshua","year":"2011","unstructured":"Joshua Garcia, Daniel Popescu, Chris Mattmann, Nenad Medvidovic, and Yuanfang Cai. 2011. Enhancing architectural recovery using concerns. In Proceedings of 2011 26th IEEE\/ACM International Conference on Automated Software Engineering (ASE \u201911). IEEE, 552\u2013555."},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2007.70732"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2011.9"},{"issue":"3","key":"e_1_3_2_13_2","doi-asserted-by":"crossref","first-page":"7287","DOI":"10.1007\/s10586-017-1408-0","article-title":"Euclidean space based hierarchical clusterers combinations: An application to software clustering","volume":"22","author":"Naseem Rashid","year":"2019","unstructured":"Rashid Naseem, Mustafa Mat Deris, Onaiza Maqbool, and Sara Shahzad. 2019. Euclidean space based hierarchical clusterers combinations: An application to software clustering. Cluster Computing 22, 3 (2019), 7287\u20137311.","journal-title":"Cluster Computing"},{"key":"e_1_3_2_14_2","first-page":"301","volume-title":"Proceedings of 7th European Conference on Software Maintenance and Reengineering","author":"Saeed Mehreen","unstructured":"Mehreen Saeed, Onaiza Maqbool, Haroon Atique Babri, Syed Zahoor Hassan, and S. Mansoor Sarwar. Software clustering techniques and the use of combined algorithm. In Proceedings of 7th European Conference on Software Maintenance and Reengineering. IEEE, 301\u2013306."},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2006.10.017"},{"key":"e_1_3_2_16_2","doi-asserted-by":"crossref","first-page":"2013","DOI":"10.1007\/s41870-021-00846-0","article-title":"Ensemble clustering based approach for software architecture recovery","volume":"14","author":"Puchala Shiva Prasad Reddy","year":"2022","unstructured":"Shiva Prasad Reddy Puchala, Jitender Kumar Chhabra, and Amit Rathee. 2022. Ensemble clustering based approach for software architecture recovery. International Journal of Information Technology 14 (2022), 2013\u20132019.","journal-title":"International Journal of Information Technology"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1155\/2020\/1794947"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-023-05852-6"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1007\/s00500-018-3666-z"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1007\/s42044-024-00178-9"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.26"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2021.111162"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.compeleceng.2019.106500"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-019-02995-3"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1007\/s00500-015-2018-5"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.ins.2016.01.030"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2021.106818"},{"key":"e_1_3_2_28_2","doi-asserted-by":"crossref","first-page":"92","DOI":"10.1016\/j.cor.2017.10.004","article-title":"Large neighborhood search applied to the software module clustering problem","volume":"91","author":"Mon\u00e7ores Marlon C.","year":"2018","unstructured":"Marlon C. Mon\u00e7ores, Adriana C. F. Alvim, and M\u00e1rcio O. Barros. 2018. Large neighborhood search applied to the software module clustering problem. Computers & Operations Research 91 (2018), 92\u2013111.","journal-title":"Computers & Operations Research"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2022.111349"},{"key":"e_1_3_2_30_2","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/j.cl.2017.08.001","article-title":"FP-ABC: Fuzzy-Pareto dominance driven artificial bee colony algorithm for many-objective software module clustering","volume":"51","year":"2018","unstructured":"Amarjeet and Jitender Kumar Chhabra. 2018. FP-ABC: Fuzzy-Pareto dominance driven artificial bee colony algorithm for many-objective software module clustering. Computer Languages, Systems & Structures 51 (2018), 1\u201321.","journal-title":"Computer Languages, Systems & Structures"},{"key":"e_1_3_2_31_2","doi-asserted-by":"crossref","first-page":"251","DOI":"10.1108\/DTA-08-2019-0138","article-title":"B\u00f6len: Software module clustering method using the combination of shuffled frog leaping and genetic algorithm","volume":"55","author":"Arasteh Bahman","year":"2021","unstructured":"Bahman Arasteh, Razieh Sadegi, and Keyvan Arasteh. 2021. B\u00f6len: Software module clustering method using the combination of shuffled frog leaping and genetic algorithm. DTA 55 (2021), 251\u2013279.","journal-title":"DTA"},{"key":"e_1_3_2_32_2","first-page":"219","volume-title":"IEEE Energy Conversion Congress and Exposition (ECCE \u201919)","author":"Zainal Nurul Asyikin","year":"2020","unstructured":"Nurul Asyikin Zainal, Kamal Z. Zamli, and Fakhrud Din. 2020. A modified symbiotic organism search algorithm with l\u00e9vy flight for software module clustering problem. In IEEE Energy Conversion Congress and Exposition (ECCE \u201919). Springer, Singapore, 219\u2013229."},{"key":"e_1_3_2_33_2","doi-asserted-by":"crossref","first-page":"565","DOI":"10.1109\/KBEI.2019.8734939","volume-title":"Proceedings of 2019 5th Conference on Knowledge Based Engineering and Innovation (KBEI)","author":"Akbari Mehdi","year":"2019","unstructured":"Mehdi Akbari and Habib Izadkhah. 2019. Hybrid of genetic algorithm and krill herd for software clustering problem. In Proceedings of 2019 5th Conference on Knowledge Based Engineering and Innovation (KBEI). IEEE, 565\u2013570."},{"key":"e_1_3_2_34_2","doi-asserted-by":"crossref","first-page":"113","DOI":"10.1109\/WCRE.2012.21","volume-title":"Proceedings of 2012 19th Working Conference on Reverse Engineering","author":"Misra Janardan","year":"2012","unstructured":"Janardan Misra, K. M. Annervaz, Vikrant Kaulgud, Shubhashis Sengupta, and Gary Titus. 2012. Software clustering: Unifying syntactic and semantic features. In Proceedings of 2012 19th Working Conference on Reverse Engineering. IEEE, 113\u2013122."},{"issue":"4","key":"e_1_3_2_35_2","doi-asserted-by":"crossref","first-page":"449","DOI":"10.3233\/IDT-200070","article-title":"ARAZ: A software modules clustering method using the combination of particle swarm optimization and genetic algorithms","volume":"14","author":"Arasteh Bahman","year":"2020","unstructured":"Bahman Arasteh, Razieh Sadegi, and Keyvan Arasteh. 2020. ARAZ: A software modules clustering method using the combination of particle swarm optimization and genetic algorithms. IDT 14, 4 (2020), 449\u2013462.","journal-title":"IDT"},{"key":"e_1_3_2_36_2","first-page":"3","volume-title":"Proceedings of International Conference on Advanced Information Systems Engineering","author":"De Alwis Adambarage Anuruddha Chathuranga","year":"2020","unstructured":"Adambarage Anuruddha Chathuranga De Alwis, Alistair Barros, Colin Fidge, and Artem Polyvyanyy. 2020. Remodularization analysis for microservice discovery using syntactic and semantic clustering. In Proceedings of International Conference on Advanced Information Systems Engineering. Springer, Cham, 3\u201319."},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1007\/s13369-017-2989-x"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/s00500-017-2687-3"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1109\/tse.2005.25"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-019-03112-0"},{"issue":"1","key":"e_1_3_2_41_2","first-page":"e2408","article-title":"Savalan: Multi objective and homogeneous method for software modules clustering","volume":"34","author":"Arasteh Bahman","year":"2022","unstructured":"Bahman Arasteh, Ahmad Fatolahzadeh, and Farzad Kiani. 2022. Savalan: Multi objective and homogeneous method for software modules clustering. Journal of Software: Evolution and Process 34, 1 (2022), e2408.","journal-title":"Journal of Software: Evolution and Process"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.3390\/sym15020401"},{"issue":"4","key":"e_1_3_2_43_2","doi-asserted-by":"crossref","first-page":"402","DOI":"10.1049\/iet-sen.2019.0138","article-title":"New internal metric for software clustering algorithms validity","volume":"14","author":"Kargar Masoud","year":"2020","unstructured":"Masoud Kargar, Ayaz Isazadeh, and Habib Izadkhah. 2020. New internal metric for software clustering algorithms validity. IET Software 14, 4 (2020), 402\u2013410.","journal-title":"IET Software"},{"key":"e_1_3_2_44_2","first-page":"171","article-title":"Critical values and probability levels for the Wilcoxon rank sum test and the Wilcoxon signed rank test","volume":"1","author":"Wilcoxon Frank","year":"1970","unstructured":"Frank Wilcoxon, S. Katti, and Roberta A. Wilcox. 1970. Critical values and probability levels for the Wilcoxon rank sum test and the Wilcoxon signed rank test. Selected Tables in Mathematical Statistics 1 (1970), 171\u2013259.","journal-title":"Selected Tables in Mathematical Statistics"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1007\/s42044-024-00194-9"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3707452","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,3]],"date-time":"2025-07-03T03:18:53Z","timestamp":1751512733000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3707452"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,7,2]]},"references-count":44,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2025,7,31]]}},"alternative-id":["10.1145\/3707452"],"URL":"https:\/\/doi.org\/10.1145\/3707452","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,7,2]]},"assertion":[{"value":"2024-02-19","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-11-07","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-07-02","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}