{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,2,8]],"date-time":"2024-02-08T17:27:04Z","timestamp":1707413224487},"reference-count":33,"publisher":"World Scientific Pub Co Pte Ltd","issue":"09","funder":[{"DOI":"10.13039\/501100001809","name":"National Nature Science Foundation of China","doi-asserted-by":"crossref","award":["61672355"],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Int. J. Soft. Eng. Knowl. Eng."],"published-print":{"date-parts":[[2021,9]]},"abstract":" Code smell is a software quality problem caused by software design flaws. Refactoring code smells can improve software maintainability. While prior works mostly focused on Java code smells, only a few prior researches detect and refactor code smells of Python. Therefore, we intend to outline a route (i.e. sequential refactoring operation) for refactoring Python code smells, including LC, LM, LMC, LPL, LSC, LBCL, LLF, MNC, CCC and LTCE. The route could instruct developers to save effort by refactoring the smell strongly correlated with other smells in advance. As a result, more smells could be resolved by a single refactoring. First, we reveal the co-occurrence and the inter-causation between smells. Then, we evaluate the smells\u2019 correlation. Results highlight seven groups of smells with high co-occurrence. Meanwhile, 10 groups of smells correlate with each other in a significant level of Spearman\u2019s correlation coefficient at 0.01. Finally, we generate the refactoring route based on the association rules, we exploit an empirical verification with 10 developers involved. The results of Kendall\u2019s Tau show that the proposed refactoring route has a high inter-agreement with the developer\u2019s perception. In conclusion, we propose four refactoring routes to provide guidance for practitioners, i.e. {LPL [Formula: see text] LLF}, {LPL [Formula: see text] LBCL}, {LPL [Formula: see text] LMC} and {LPL [Formula: see text] LM [Formula: see text] LC [Formula: see text] CCC [Formula: see text] MNC}. <\/jats:p>","DOI":"10.1142\/s0218194021500431","type":"journal-article","created":{"date-parts":[[2021,10,3]],"date-time":"2021-10-03T11:39:21Z","timestamp":1633261161000},"page":"1329-1347","source":"Crossref","is-referenced-by-count":2,"title":["Python Code Smell Refactoring Route Generation Based on Association Rule and Correlation"],"prefix":"10.1142","volume":"31","author":[{"given":"Guanglei","family":"Wang","sequence":"first","affiliation":[{"name":"Department of Computer Science and Technology, Shanghai Normal University, Shanghai 200234, P. R. China"}]},{"given":"Junhua","family":"Chen","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Technology, Shanghai Normal University, Shanghai 200234, P. R. China"}]},{"given":"Jianhua","family":"Gao","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Technology, Shanghai Normal University, Shanghai 200234, P. R. China"}]},{"given":"Zijie","family":"Huang","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, East China University of Science and Technology, Shanghai 200237, P. R. China"}]}],"member":"219","published-online":{"date-parts":[[2021,10,3]]},"reference":[{"key":"S0218194021500431BIB001","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler M.","year":"1999"},{"issue":"2","key":"S0218194021500431BIB002","doi-asserted-by":"crossref","first-page":"1","DOI":"10.22152\/programming-journal.org\/2017\/1\/11","volume":"1","author":"Vavrov\u00e1 N.","year":"2017","journal-title":"Art Sci. Eng. Program."},{"key":"S0218194021500431BIB003","doi-asserted-by":"crossref","first-page":"14","DOI":"10.1016\/j.infsof.2017.09.011","volume":"94","author":"Chen Z.-F.","year":"2018","journal-title":"Inf. Softw. Technol."},{"key":"S0218194021500431BIB004","first-page":"34","volume-title":"Proc. 2018 IEEE 18th Int. Working Conf. Source Code Analysis and Manipulation","author":"Khatchadourian R.","year":"2018"},{"key":"S0218194021500431BIB005","doi-asserted-by":"crossref","first-page":"506","DOI":"10.1145\/3377811.3380434","volume-title":"Proc. ACM\/IEEE 42nd Int. Conf. Software Engineering","author":"Zhou W.-J.","year":"2020"},{"key":"S0218194021500431BIB006","first-page":"672","volume-title":"Proc. 2013 Int. Conf. Software Engineering","author":"Johnson B.","year":"2013"},{"key":"S0218194021500431BIB007","first-page":"1","volume-title":"Proc. 2016 IEEE 24th Int. Conf. Program Comprehension","author":"Sae-Lim N.","year":"2016"},{"issue":"7","key":"S0218194021500431BIB008","first-page":"1079","volume":"49","author":"Bruno L.-S.","year":"2019","journal-title":"Softw.: Pract. Exp."},{"key":"S0218194021500431BIB009","doi-asserted-by":"publisher","DOI":"10.1145\/170035.170072"},{"issue":"3","key":"S0218194021500431BIB010","first-page":"91","volume":"18","author":"Akoglu H.","year":"2018","journal-title":"J. Emerg. Med."},{"key":"S0218194021500431BIB011","first-page":"93","volume-title":"Proc. 2019 IEEE\/ACM 27th Int. Conf. Program Comprehension","author":"Pecorelli F.","year":"2019"},{"key":"S0218194021500431BIB012","doi-asserted-by":"crossref","first-page":"1188","DOI":"10.1007\/s10664-017-9535-z","volume":"23","author":"Palomba F.","year":"2018","journal-title":"Empir. Softw. Eng."},{"issue":"11","key":"S0218194021500431BIB013","doi-asserted-by":"crossref","first-page":"1063","DOI":"10.1109\/TSE.2017.2653105","volume":"43","author":"Tufano M.","year":"2017","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194021500431BIB014","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2331057"},{"key":"S0218194021500431BIB015","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2372760"},{"key":"S0218194021500431BIB016","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.50"},{"key":"S0218194021500431BIB017","doi-asserted-by":"publisher","DOI":"10.1145\/1879211.1879216"},{"key":"S0218194021500431BIB018","doi-asserted-by":"publisher","DOI":"10.1007\/s00165-009-0115-x"},{"key":"S0218194021500431BIB019","first-page":"47","volume-title":"Proc. 14th ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications","author":"Travassos G. H.","year":"1999"},{"issue":"6","key":"S0218194021500431BIB020","first-page":"e1886","volume":"30","author":"Sae-Lim N.","year":"2018","journal-title":"J. Softw.: Evol. Process"},{"key":"S0218194021500431BIB021","doi-asserted-by":"crossref","first-page":"79","DOI":"10.1016\/j.infsof.2019.08.005","volume":"115","author":"Bigonha M.-A.-S.","year":"2019","journal-title":"Inf. Softw. Technol."},{"key":"S0218194021500431BIB022","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-07881-6_44"},{"key":"S0218194021500431BIB023","doi-asserted-by":"crossref","first-page":"385","DOI":"10.1145\/3238147.3238166","volume-title":"Proc. 2018 33rd ACM\/IEEE Int. Conf. Automated Software Engineering","author":"Liu H.","year":"2018"},{"issue":"5","key":"S0218194021500431BIB024","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/2507288.2507314","volume":"38","author":"Terra R.","year":"2013","journal-title":"ACM SIGSOFT Softw. Eng. Notes"},{"key":"S0218194021500431BIB025","doi-asserted-by":"publisher","DOI":"10.1371\/journal.pone.0231731"},{"key":"S0218194021500431BIB026","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/j.infsof.2018.02.004","volume":"99","author":"Palomba F.","year":"2018","journal-title":"Inf. Softw. Technol."},{"issue":"3","key":"S0218194021500431BIB027","first-page":"e2255","volume":"32","author":"Mayvan B.-B.","year":"2020","journal-title":"J. Softw.: Evol. Process"},{"key":"S0218194021500431BIB028","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2013.6648192"},{"key":"S0218194021500431BIB029","first-page":"274","volume-title":"Proc. 2017 IEEE Int. Conf. Software Quality, Reliability and Security","author":"Jaafar F.","year":"2017"},{"key":"S0218194021500431BIB030","first-page":"1","volume-title":"Proc. 2015 IEEE\/ACM 2nd Int. Workshop Software Architecture and Metrics","author":"Fontana F.-A.","year":"2015"},{"key":"S0218194021500431BIB031","doi-asserted-by":"crossref","first-page":"336","DOI":"10.1109\/APSEC.2010.46","volume-title":"Proc. 2010 Asia Pacific Software Engineering Conf.","author":"Tempero E.","year":"2010"},{"issue":"2","key":"S0218194021500431BIB032","doi-asserted-by":"crossref","first-page":"194","DOI":"10.1109\/TSE.2017.2770122","volume":"45","author":"Palomba F.","year":"2017","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"5","key":"S0218194021500431BIB033","doi-asserted-by":"crossref","first-page":"673","DOI":"10.1007\/s11135-006-9018-6","volume":"41","author":"O\u2019brien R.-M.","year":"2017","journal-title":"Qual. Quant."}],"container-title":["International Journal of Software Engineering and Knowledge Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.worldscientific.com\/doi\/pdf\/10.1142\/S0218194021500431","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,10,3]],"date-time":"2021-10-03T11:39:47Z","timestamp":1633261187000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.worldscientific.com\/doi\/abs\/10.1142\/S0218194021500431"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,9]]},"references-count":33,"journal-issue":{"issue":"09","published-print":{"date-parts":[[2021,9]]}},"alternative-id":["10.1142\/S0218194021500431"],"URL":"https:\/\/doi.org\/10.1142\/s0218194021500431","relation":{},"ISSN":["0218-1940","1793-6403"],"issn-type":[{"value":"0218-1940","type":"print"},{"value":"1793-6403","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,9]]}}}