{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,4,1]],"date-time":"2022-04-01T09:06:08Z","timestamp":1648803968083},"reference-count":31,"publisher":"World Scientific Pub Co Pte Lt","issue":"09","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Int. J. Soft. Eng. Knowl. Eng."],"published-print":{"date-parts":[[2020,9]]},"abstract":"<jats:p> Move Method Refactoring (MMR) is used to place highly coupled methods in appropriate classes for making source code more cohesive. Like other refactoring techniques, it is mandatory that applying MMR will preserve applications\u2019 behaviors. However, traditional MMR techniques failed to meet this essential precondition for Action methods in web-based application and API methods in libraries projects. The reason is that applying MMR on these methods changes the behaviors of the projects by raising Application-breaking issues, for instance, failure of browser requests and compilation errors in client projects. To resolve this problem, developers are suggested to manually check Action and API methods while applying MMR. However, manually inspecting thousands of lines of code for these issues is a time-consuming and hectic task. In this paper, an advanced MMR technique is proposed which automatically identifies Application-breaking MMR suggestions. This technique first takes the initial move method suggestions from the existing prominent MMR techniques e.g. JDeodorant. For each of the suggestions, it parses the source code and construct Abstract Syntax Tree to examine two types of usage. One is whether a suggestion has not been used in any unit test and Regular Class, and another is whether the suggestion has been used in unit test classes only. If any MMR suggestion is found having one of these two types of usage or both, the respective suggestion is marked as Application-breaking. In order to evaluate the proposed technique, several experiments have been conducted on open source projects. The experimental results show that the proposed technique achieved 96.4% Precision, 90% Recall and 93.1% F-score in detecting Application-breaking MMR suggestions, because of considering external dependencies of the MMR suggestions. <\/jats:p>","DOI":"10.1142\/s0218194020500357","type":"journal-article","created":{"date-parts":[[2020,10,21]],"date-time":"2020-10-21T09:53:03Z","timestamp":1603273983000},"page":"1289-1307","source":"Crossref","is-referenced-by-count":0,"title":["ABMMRS Eradicator: Improving Accuracy in Recommending Move Methods for Web-based MVC Projects and Libraries Using Method\u2019s External Dependencies"],"prefix":"10.1142","volume":"30","author":[{"given":"Atish Kumar","family":"Dipongkor","sequence":"first","affiliation":[{"name":"Department of Computer Science and Engineering, Jashore University of Science and Technology, Jashore 7408, Bangladesh"}]},{"given":"Iftekhar","family":"Ahmed","sequence":"additional","affiliation":[{"name":"Institute of Information Technology, University of Dhaka, Dhaka 1000, Bangladesh"}]},{"given":"Rayhanul","family":"Islam","sequence":"additional","affiliation":[{"name":"Institute of Information Technology, University of Dhaka, Dhaka 1000, Bangladesh"}]},{"given":"Nadia","family":"Nahar","sequence":"additional","affiliation":[{"name":"Institute of Information Technology, University of Dhaka, Dhaka 1000, Bangladesh"}]},{"given":"Abdus","family":"Satter","sequence":"additional","affiliation":[{"name":"Institute of Information Technology, University of Dhaka, Dhaka 1000, Bangladesh"}]},{"given":"Md. Saeed","family":"Siddik","sequence":"additional","affiliation":[{"name":"Institute of Information Technology, University of Dhaka, Dhaka 1000, Bangladesh"}]}],"member":"219","published-online":{"date-parts":[[2020,10,20]]},"reference":[{"key":"S0218194020500357BIB001","first-page":"75","volume-title":"Proc. 16th Working Conf. Reverse Engineering","author":"Khomh F.","year":"2009"},{"key":"S0218194020500357BIB002","volume-title":"Object-Oriented Metrics in Practice \u2014 Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems","author":"Lanza M.","year":"2006"},{"key":"S0218194020500357BIB003","first-page":"306","volume-title":"Proc. 28th IEEE Int. Conf. Software Maintenance","author":"Yamashita A. F.","year":"2012"},{"key":"S0218194020500357BIB004","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler M.","year":"1999"},{"key":"S0218194020500357BIB005","first-page":"23","volume-title":"Proc. 10th Int. Conf. Quality Software","author":"D\u2019Ambros M.","year":"2010"},{"issue":"8","key":"S0218194020500357BIB006","doi-asserted-by":"crossref","first-page":"1144","DOI":"10.1109\/TSE.2012.89","volume":"39","author":"Sj\u00f8berg D. I.","year":"2013","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"10","key":"S0218194020500357BIB007","doi-asserted-by":"crossref","first-page":"751","DOI":"10.1109\/32.544352","volume":"22","author":"Basili V. R.","year":"1996","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194020500357BIB008","first-page":"345","volume-title":"Proc. Int. Conf. Software Engineering","author":"Briand L. C.","year":"1999"},{"issue":"8","key":"S0218194020500357BIB009","doi-asserted-by":"crossref","first-page":"629","DOI":"10.1109\/32.707698","volume":"24","author":"Chidamber S. R.","year":"1998","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194020500357BIB010","first-page":"475","volume-title":"Proc. Int. Conf. Software Maintenance","author":"Briand L. C.","year":"1999"},{"key":"S0218194020500357BIB011","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1109\/CSMR.2000.827305","volume-title":"Proc. 4th European Conf. Software Maintenance and Reengineering","author":"Chaumun M. A.","year":"2000"},{"key":"S0218194020500357BIB012","volume-title":"Professional ASP. NET MVC 4","author":"Galloway J.","year":"2012"},{"issue":"1","key":"S0218194020500357BIB013","doi-asserted-by":"crossref","first-page":"107","DOI":"10.1109\/MC.2005.22","volume":"38","author":"Johnson R.","year":"2005","journal-title":"Computer"},{"key":"S0218194020500357BIB014","first-page":"947","volume-title":"Proc. 14th Int. Conf. Computer Sciences and Convergence Information Technology","author":"Cui W.","year":"2009"},{"issue":"2","key":"S0218194020500357BIB016","doi-asserted-by":"crossref","first-page":"126","DOI":"10.1109\/TSE.2004.1265817","volume":"30","author":"Mens T.","year":"2004","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"3","key":"S0218194020500357BIB019","doi-asserted-by":"crossref","first-page":"347","DOI":"10.1109\/TSE.2009.1","volume":"35","author":"Tsantalis N.","year":"2009","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194020500357BIB020","doi-asserted-by":"crossref","first-page":"30","DOI":"10.1109\/CSMR.2001.914965","volume-title":"Proc. 5th Conf. Software Maintenance and Reengineering","author":"Simon F.","year":"2001"},{"key":"S0218194020500357BIB021","doi-asserted-by":"crossref","first-page":"105","DOI":"10.1016\/j.infsof.2017.07.013","volume":"92","author":"Dallal J. A.","year":"2017","journal-title":"Inform. Software Tech."},{"key":"S0218194020500357BIB022","first-page":"232","volume-title":"Proc. 20th Working Conf. Reverse Engineering","author":"Sales V.","year":"2013"},{"key":"S0218194020500357BIB023","first-page":"1","volume-title":"Proc. 24th IEEE Int. Conf. Program Comprehension","author":"Palomba F.","year":"2016"},{"key":"S0218194020500357BIB024","first-page":"268","volume-title":"Proc. 28th IEEE\/ACM Int. Conf. Automated Software Engineering","author":"Palomba F.","year":"2013"},{"issue":"7","key":"S0218194020500357BIB025","doi-asserted-by":"crossref","first-page":"671","DOI":"10.1109\/TSE.2013.60","volume":"40","author":"Bavota G.","year":"2014","journal-title":"IEEE Trans Softw. Eng."},{"issue":"1","key":"S0218194020500357BIB026","first-page":"1","volume":"1","author":"Majeed A.","year":"2018","journal-title":"Peer Rev. J. Solar Photoenergy Syst."},{"key":"S0218194020500357BIB027","volume-title":"Object-Oriented Design Heuristics","author":"Riel A. J.","year":"1996"},{"key":"S0218194020500357BIB029","volume-title":"Refactoring Object-Oriented Frameworks","author":"Opdyke W. F.","year":"1992"},{"key":"S0218194020500357BIB030","volume-title":"Principles of Numerical Taxonomy","author":"Sokal R.","year":"1963"},{"key":"S0218194020500357BIB031","volume-title":"Numerical Taxonomy. The Principles and Practice of Numerical Classification","author":"Sneath P. H.","year":"1973"},{"issue":"9","key":"S0218194020500357BIB032","first-page":"1","volume":"48","author":"Masudur R. M.","year":"2018","journal-title":"Softw. Pract. Exper."},{"key":"S0218194020500357BIB033","first-page":"81","volume-title":"Proc. 12th Int. Conf. Artificial Intelligence and Statistics","author":"Chang J.","year":"2009"},{"key":"S0218194020500357BIB034","volume-title":"Using Z: Specification, Refinement, and Proof","author":"Woodcock J.","year":"1996"},{"issue":"1","key":"S0218194020500357BIB037","doi-asserted-by":"crossref","first-page":"5","DOI":"10.1109\/TSE.2011.41","volume":"38","author":"Murphy-Hill E.","year":"2011","journal-title":"IEEE Trans. Softw. Eng."}],"container-title":["International Journal of Software Engineering and Knowledge Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.worldscientific.com\/doi\/pdf\/10.1142\/S0218194020500357","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,10,21]],"date-time":"2020-10-21T09:53:47Z","timestamp":1603274027000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.worldscientific.com\/doi\/abs\/10.1142\/S0218194020500357"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,9]]},"references-count":31,"journal-issue":{"issue":"09","published-print":{"date-parts":[[2020,9]]}},"alternative-id":["10.1142\/S0218194020500357"],"URL":"https:\/\/doi.org\/10.1142\/s0218194020500357","relation":{},"ISSN":["0218-1940","1793-6403"],"issn-type":[{"value":"0218-1940","type":"print"},{"value":"1793-6403","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,9]]}}}