{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T06:43:25Z","timestamp":1740120205286,"version":"3.37.3"},"reference-count":28,"publisher":"World Scientific Pub Co Pte Ltd","issue":"11n12","funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["62172202"],"award-info":[{"award-number":["62172202"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["61772263"],"award-info":[{"award-number":["61772263"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Int. J. Soft. Eng. Knowl. Eng."],"published-print":{"date-parts":[[2022,11]]},"abstract":"<jats:p> Code smell is an indicator of potential problems in a software design that have a negative impact on readability and maintainability. Hence, detecting code smells in a timely and effective manner can provide guides for developers in refactoring. Fortunately, many approaches like metric-based, heuristic-based, machine-learning-based and deep-learning-based have been proposed to detect code smells. However, existing methods, using the simple code representation to describe different code smells unilaterally, cannot efficiently extract enough rich information from source code. In addition, one code snippet often has several code smells at the same time and there is a lack of multi-label code smell detection based on deep learning. In this paper, we present a large-scale dataset for the multi-label code smell detection task since there is still no publicly sufficient dataset for this task. The release of this dataset would push forward the research in this field. Based on it, we propose a hybrid model with multi-level code representation to further optimize the code smell detection. First, we parse the code into the abstract syntax tree (AST) with control and data flow edges and the graph convolution network is applied to get the prediction at the syntactic and semantic level. Then we use the bidirectional long-short term memory network with attention mechanism to analyze the code tokens at the token-level in the meanwhile. Finally, we get the fusion prediction result of the models. Experimental results illustrate that our proposed model outperforms the state-of-the-art methods not only in single code smell detection but also in multi-label code smell detection. <\/jats:p>","DOI":"10.1142\/s0218194022500723","type":"journal-article","created":{"date-parts":[[2022,12,7]],"date-time":"2022-12-07T08:38:38Z","timestamp":1670402318000},"page":"1643-1666","source":"Crossref","is-referenced-by-count":0,"title":["Hybrid Model with Multi-Level Code Representation for Multi-Label Code Smell Detection (077)"],"prefix":"10.1142","volume":"32","author":[{"given":"Yichen","family":"Li","sequence":"first","affiliation":[{"name":"School of Computer Science and Technology, Soochow University, Suzhou, P. R. China"}]},{"given":"An","family":"Liu","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Soochow University, Suzhou, P. R. China"}]},{"given":"Lei","family":"Zhao","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Soochow University, Suzhou, P. R. China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8667-0456","authenticated-orcid":false,"given":"Xiaofang","family":"Zhang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Soochow University, Suzhou, P. R. China"},{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, P. R. China"}]}],"member":"219","published-online":{"date-parts":[[2022,12,7]]},"reference":[{"key":"S0218194022500723BIB001","series-title":"Addison Wesley Object Technology Series","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler M.","year":"1999"},{"key":"S0218194022500723BIB002","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2017.12.034"},{"key":"S0218194022500723BIB003","first-page":"159","volume-title":"14th IEEE Int. Conf. Program Comprehension","author":"Salehie M.","year":"2006"},{"key":"S0218194022500723BIB004","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.50"},{"key":"S0218194022500723BIB005","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9378-4"},{"key":"S0218194022500723BIB006","first-page":"612","volume-title":"2018 IEEE 25th Int. Conf. Software Analysis, Evolution and Reengineering","author":"Di Nucci D.","year":"2018"},{"key":"S0218194022500723BIB007","first-page":"1811","volume":"57","author":"Liu H.","year":"2019","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194022500723BIB008","first-page":"503","volume-title":"Proc. 33rd Int. Conf. Software Engineering and Knowledge Engineering","author":"Xu W.","year":"2021"},{"issue":"3","key":"S0218194022500723BIB009","doi-asserted-by":"crossref","first-page":"1063","DOI":"10.1007\/s11219-020-09498-y","volume":"28","author":"Guggulothu T.","year":"2020","journal-title":"Softw. Qual. J."},{"key":"S0218194022500723BIB010","doi-asserted-by":"publisher","DOI":"10.1109\/SANER48275.2020.9054857"},{"volume-title":"Refactoring for Software Design Smells: Managing Technical Debt","year":"2014","author":"Suryanarayana G.","key":"S0218194022500723BIB012"},{"key":"S0218194022500723BIB013","doi-asserted-by":"crossref","first-page":"255","DOI":"10.1109\/CSMR.2009.59","volume-title":"2009 13th Eur. Conf. Software Maintenance and Reengineering","author":"Garcia J.","year":"2009"},{"key":"S0218194022500723BIB014","doi-asserted-by":"crossref","first-page":"110936","DOI":"10.1016\/j.jss.2021.110936","volume":"176","author":"Sharma T.","year":"2021","journal-title":"J. Syst. Softw."},{"key":"S0218194022500723BIB015","first-page":"516","volume-title":"Proc. 29th ACM SIGSOFT Int. Symp. Software Testing and Analysis","author":"Fang C.","year":"2020"},{"key":"S0218194022500723BIB016","first-page":"1","volume-title":"Proc. ACM on Programming Languages","volume":"3","author":"Alon U.","year":"2019"},{"key":"S0218194022500723BIB017","doi-asserted-by":"crossref","first-page":"1800","DOI":"10.1109\/TSE.2020.3038681","volume":"48","author":"Liu S.","year":"2020","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"7","key":"S0218194022500723BIB019","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/390013.808479","volume":"5","author":"Allen F. E.","year":"1970","journal-title":"ACM Sigplan Not."},{"key":"S0218194022500723BIB021","first-page":"213","volume-title":"2021 28th Asia-Pacific Software Engineering Conference","author":"Yang G.","year":"2021"},{"key":"S0218194022500723BIB022","doi-asserted-by":"publisher","DOI":"10.1162\/neco.1997.9.8.1735"},{"key":"S0218194022500723BIB023","first-page":"1","volume-title":"Proc. 1st Int. Workshop on Bringing Architectural Design Thinking into Developers\u2019 Daily Activities","author":"Sharma T.","year":"2016"},{"issue":"6","key":"S0218194022500723BIB024","doi-asserted-by":"crossref","first-page":"3219","DOI":"10.1007\/s10664-017-9512-6","volume":"22","author":"Munaiah N.","year":"2017","journal-title":"Empir. Softw. Eng."},{"key":"S0218194022500723BIB025","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00086"},{"key":"S0218194022500723BIB028","doi-asserted-by":"crossref","first-page":"350","DOI":"10.1109\/ICSM.2004.1357820","volume-title":"20th IEEE Int. Conf. Software Maintenance, 2004. Proc.","author":"Marinescu R.","year":"2004"},{"key":"S0218194022500723BIB029","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-019-09730-9"},{"key":"S0218194022500723BIB030","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2020.106309"},{"key":"S0218194022500723BIB031","first-page":"150","volume-title":"2021 IEEE\/ACM 43rd Int. Conf. Software Engineering","author":"Kim S.","year":"2021"},{"issue":"3","key":"S0218194022500723BIB032","doi-asserted-by":"crossref","first-page":"199","DOI":"10.1049\/sfw2.12017","volume":"15","author":"Hussain Y.","year":"2021","journal-title":"IET Softw."},{"key":"S0218194022500723BIB033","doi-asserted-by":"crossref","first-page":"329","DOI":"10.1109\/MSR52588.2021.00045","volume-title":"2021 IEEE\/ACM 18th Int. Conf. Mining Software Repositories","author":"Svyatkovskiy A.","year":"2021"}],"container-title":["International Journal of Software Engineering and Knowledge Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.worldscientific.com\/doi\/pdf\/10.1142\/S0218194022500723","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,2,7]],"date-time":"2023-02-07T02:46:26Z","timestamp":1675737986000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.worldscientific.com\/doi\/10.1142\/S0218194022500723"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,11]]},"references-count":28,"journal-issue":{"issue":"11n12","published-print":{"date-parts":[[2022,11]]}},"alternative-id":["10.1142\/S0218194022500723"],"URL":"https:\/\/doi.org\/10.1142\/s0218194022500723","relation":{},"ISSN":["0218-1940","1793-6403"],"issn-type":[{"type":"print","value":"0218-1940"},{"type":"electronic","value":"1793-6403"}],"subject":[],"published":{"date-parts":[[2022,11]]}}}