{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,5]],"date-time":"2026-04-05T05:31:22Z","timestamp":1775367082077,"version":"3.50.1"},"reference-count":32,"publisher":"MDPI AG","issue":"5","license":[{"start":{"date-parts":[[2022,5,6]],"date-time":"2022-05-06T00:00:00Z","timestamp":1651795200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["LY22F020007"],"award-info":[{"award-number":["LY22F020007"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["LY21F020002"],"award-info":[{"award-number":["LY21F020002"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["LY21F020011"],"award-info":[{"award-number":["LY21F020011"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["2022C01005"],"award-info":[{"award-number":["2022C01005"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["2022C01144"],"award-info":[{"award-number":["2022C01144"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["2019C01004"],"award-info":[{"award-number":["2019C01004"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004731","name":"Natural Science Foundation of Zhejiang Province","doi-asserted-by":"publisher","award":["2019C03123"],"award-info":[{"award-number":["2019C03123"]}],"id":[{"id":"10.13039\/501100004731","id-type":"DOI","asserted-by":"publisher"}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["LY22F020007"],"award-info":[{"award-number":["LY22F020007"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["LY21F020002"],"award-info":[{"award-number":["LY21F020002"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["LY21F020011"],"award-info":[{"award-number":["LY21F020011"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["2022C01005"],"award-info":[{"award-number":["2022C01005"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["2022C01144"],"award-info":[{"award-number":["2022C01144"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["2019C01004"],"award-info":[{"award-number":["2019C01004"]}]},{"name":"\u201cPioneer\u201d and \u201cLeading Goose\u201d R&amp;D Program of Zhejiang","award":["2019C03123"],"award-info":[{"award-number":["2019C03123"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["LY22F020007"],"award-info":[{"award-number":["LY22F020007"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["LY21F020002"],"award-info":[{"award-number":["LY21F020002"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["LY21F020011"],"award-info":[{"award-number":["LY21F020011"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["2022C01005"],"award-info":[{"award-number":["2022C01005"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["2022C01144"],"award-info":[{"award-number":["2022C01144"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["2019C01004"],"award-info":[{"award-number":["2019C01004"]}]},{"name":"Key R&amp;D Program of Zhejiang Province","award":["2019C03123"],"award-info":[{"award-number":["2019C03123"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Entropy"],"abstract":"<jats:p>Software maintenance is indispensable in the software development process. Developers need to spend a lot of time and energy to understand the software when maintaining the software, which increases the difficulty of software maintenance. It is a feasible method to understand the software through the key classes of the software. Identifying the key classes of the software can help developers understand the software more quickly. Existing techniques on key class identification mainly use static analysis techniques to extract software structure information. Such structure information may contain redundant relationships that may not exist when the software runs and ignores the actual interaction times between classes. In this paper, we propose an approach based on dynamic analysis and entropy-based metrics to identify key classes in the Java GUI software system, called KEADA (identifying KEy clAsses based on Dynamic Analysis and entropy-based metrics). First, KEADA extracts software structure information by recording the calling relationship between classes during the software running process; such structure information takes into account the actual interaction of classes. Second, KEADA represents the structure information as a weighted directed network and further calculates the importance of each node using an entropy-based metric OSE (One-order Structural Entropy). Third, KEADA ranks classes in descending order according to their OSE values and selects a small number of classes as the key class candidates. In order to verify the effectiveness of our approach, we conducted experiments on three Java GUI software systems and compared them with seven state-of-the-art approaches. We used the Friedman test to evaluate all approaches, and the results demonstrate that our approach performs best in all software systems.<\/jats:p>","DOI":"10.3390\/e24050652","type":"journal-article","created":{"date-parts":[[2022,5,6]],"date-time":"2022-05-06T14:49:38Z","timestamp":1651848578000},"page":"652","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics"],"prefix":"10.3390","volume":"24","author":[{"given":"Liuhai","family":"Wang","sequence":"first","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xin","family":"Du","sequence":"additional","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bo","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":"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":"Hua","family":"Ming","sequence":"additional","affiliation":[{"name":"School of Engineering and Computer Science, Oakland University, Rochester, MI 48309, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dongsheng","family":"Liu","sequence":"additional","affiliation":[{"name":"School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2022,5,6]]},"reference":[{"key":"ref_1","unstructured":"Du, X., Wang, T., Wang, L., Pan, W., Chai, C., Xu, X., Jiang, B., and Wang, J. Improving Effort-Aware Bug Prediction in Software Systems Using Generalized k-Core Decomposition in Class Dependency Networks. Axioms."},{"key":"ref_2","unstructured":"Spinellis, D. (2003). Code Reading: The Open Source Perspective, Addison-Wesley."},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"971","DOI":"10.1109\/TSE.2006.116","article-title":"An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks","volume":"32","author":"Ko","year":"2006","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"387","DOI":"10.1002\/smr.370","article-title":"Automatic identification of key classes in a software system using webmining techniques","volume":"20","author":"Zaidman","year":"2008","journal-title":"J. Softw. Maint. Evol. Res. Pract."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"3858637","DOI":"10.1155\/2016\/3858637","article-title":"An improved approach to identifying key classes in weighted software network","volume":"2016","author":"Ding","year":"2016","journal-title":"Math. Probl. Eng."},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Sora, I., and Todinca, D. (2016, January 12\u201314). Using fuzzy rules for identifying key classes in software systems. Proceedings of the 11th IEEE International Symposium on Applied Computational Intelligence and Informatics, SACI 2016, Timisoara, Romania.","DOI":"10.1109\/SACI.2016.7507393"},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"889","DOI":"10.1109\/TSE.2004.101","article-title":"How Effective Developers Investigate Source Code: An Exploratory Study","volume":"30","author":"Robillard","year":"2004","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"2272","DOI":"10.1109\/TSE.2019.2946357","article-title":"ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach","volume":"47","author":"Pan","year":"2021","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_9","first-page":"1071","article-title":"Identifying Key Classes Based on Weighted K-Core Analysis of Software Networks","volume":"46","author":"Pan","year":"2018","journal-title":"Acta Electonica Sin."},{"key":"ref_10","first-page":"748","article-title":"An Improved Weighted LeaderRank Algorithm for Identifying Influential Spreaders in Complex Networks","volume":"Volume 1","author":"Zhang","year":"2017","journal-title":"Proceedings of the 2017 IEEE International Conference on Computational Science and Engineering, CSE 2017, and IEEE International Conference on Embedded and Ubiquitous Computing, EUC 2017"},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"28076","DOI":"10.1109\/ACCESS.2021.3058450","article-title":"Mining Key Classes in Java Projects by Examining a Very Small Number of Classes: A Complex Network-Based Approach","volume":"9","author":"Li","year":"2021","journal-title":"IEEE Access"},{"key":"ref_12","doi-asserted-by":"crossref","first-page":"114767","DOI":"10.1109\/ACCESS.2021.3105475","article-title":"COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation","volume":"9","author":"Du","year":"2021","journal-title":"IEEE Access"},{"key":"ref_13","doi-asserted-by":"crossref","first-page":"431","DOI":"10.1016\/j.future.2017.09.039","article-title":"Analyzing the structure of Java software systems by weighted K-core decomposition","volume":"83","author":"Pan","year":"2018","journal-title":"Future Gener. Comput. Syst."},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"1950104","DOI":"10.1142\/S0217979219501042","article-title":"Investor immunization to Ponzi scheme diffusion in social networks and financial risk analysis","volume":"33","author":"Zhu","year":"2019","journal-title":"Int. J. Mod. Phys."},{"key":"ref_15","first-page":"348","article-title":"Comments on \u201cUsing k-core Decomposition on Class Dependency Networks to Improve Bug Prediction Model\u2019s Practical Performance\u201d","volume":"47","author":"Pan","year":"2022","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"9234042","DOI":"10.1155\/2020\/9234042","article-title":"Identifying key classes algorithm in directed weighted class interaction network based on the structure entropy weighted LeaderRank","volume":"2020","author":"Jiang","year":"2020","journal-title":"Math. Probl. Eng."},{"key":"ref_17","first-page":"3358","article-title":"Jacoco-Coverage Based Statistical Approach for Ranking and Selecting Key Classes in Object-Oriented Software","volume":"16","author":"Bilal","year":"2021","journal-title":"J. Eng. Sci. Technol."},{"key":"ref_18","first-page":"891","article-title":"Identifying Key Classes Using h-Index and its Variants","volume":"5","author":"Wang","year":"2011","journal-title":"J. Front. Comput. Sci. Technol."},{"key":"ref_19","doi-asserted-by":"crossref","unstructured":"Steidl, D., Hummel, B., and J\u00fcrgens, E. (2012, January 15\u201318). Using Network Analysis for Recommendation of Central Software Classes. Proceedings of the 19th Working Conference on Reverse Engineering, WCRE 2012, Kingston, ON, Canada.","DOI":"10.1109\/WCRE.2012.19"},{"key":"ref_20","first-page":"122","article-title":"Helping Program Comprehension of Large Software Systems by Identifying Their Most Important Classes","volume":"Volume 599","author":"Maciaszek","year":"2015","journal-title":"Proceedings of the Evaluation of Novel Approaches to Software Engineering\u201410th International Conference, ENASE 2015"},{"key":"ref_21","unstructured":"Roy, C.K., Begel, A., and Moonen, L. (2014, January 2\u20133). Condensing class diagrams by analyzing design and network metrics using optimistic classification. Proceedings of the 22nd International Conference on Program Comprehension, ICPC 2014, Hyderabad, India."},{"key":"ref_22","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_23","doi-asserted-by":"crossref","first-page":"16569","DOI":"10.1073\/pnas.0507655102","article-title":"An index to quantify an individual\u2019s scientific research output","volume":"102","author":"Hirsch","year":"2005","journal-title":"Proc. Natl. Acad. Sci. USA"},{"key":"ref_24","first-page":"107","article-title":"The Anatomy of a Large-Scale Hypertextual Web Search Engine","volume":"30","author":"Brin","year":"1998","journal-title":"Comput. Netw."},{"key":"ref_25","doi-asserted-by":"crossref","first-page":"1439","DOI":"10.1142\/S0218194019500451","article-title":"Key Classes in Object-Oriented Systems: Detection and Assessment","volume":"29","year":"2019","journal-title":"Int. J. Softw. Eng. Knowl. Eng."},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1007\/s10515-013-0128-9","article-title":"GUITAR: An innovative tool for automated testing of GUI-driven software","volume":"21","author":"Nguyen","year":"2014","journal-title":"Autom. Softw. Eng."},{"key":"ref_27","unstructured":"Soueidi, C., Monnier, M., Kassem, A., and Falcone, Y. (2021). Efficient and Expressive Bytecode-Level Instrumentation for Java Programs. arXiv."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"18","DOI":"10.4018\/IJWSR.2018070102","article-title":"Topology and topic-aware service clustering","volume":"15","author":"Pan","year":"2018","journal-title":"Int. J. Web Serv. Res. (IJWSR)"},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"267","DOI":"10.1016\/j.future.2018.04.052","article-title":"Structure-aware Mashup service Clustering for cloud-based Internet of Things using genetic algorithm based clustering algorithm","volume":"87","author":"Pan","year":"2018","journal-title":"Future Gener. Comput. Syst."},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"34","DOI":"10.4018\/IJWSR.2021010103","article-title":"Clustering mashups by integrating structural and semantic similarities using fuzzy AHP","volume":"18","author":"Pan","year":"2021","journal-title":"Int. J. Web Serv. Res. (IJWSR)"},{"key":"ref_31","doi-asserted-by":"crossref","unstructured":"Sora, I., and Chirila, C. (2019). Finding key classes in object-oriented software systems by techniques based on static analysis. Inf. Softw. Technol., 116.","DOI":"10.1016\/j.infsof.2019.106176"},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"1550004","DOI":"10.1142\/S0219525915500046","article-title":"Identifying Important Classes of Large Software Systems through k-Core Decomposition","volume":"17","author":"Meyer","year":"2014","journal-title":"Adv. Complex Syst."}],"container-title":["Entropy"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1099-4300\/24\/5\/652\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T23:07:17Z","timestamp":1760137637000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1099-4300\/24\/5\/652"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,5,6]]},"references-count":32,"journal-issue":{"issue":"5","published-online":{"date-parts":[[2022,5]]}},"alternative-id":["e24050652"],"URL":"https:\/\/doi.org\/10.3390\/e24050652","relation":{},"ISSN":["1099-4300"],"issn-type":[{"value":"1099-4300","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,5,6]]}}}