{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,17]],"date-time":"2025-10-17T13:45:29Z","timestamp":1760708729816},"reference-count":61,"publisher":"Elsevier","license":[{"start":{"date-parts":[[2014,1,1]],"date-time":"2014-01-01T00:00:00Z","timestamp":1388534400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"DOI":"10.1016\/b978-0-12-800160-8.00004-8","type":"book-chapter","created":{"date-parts":[[2014,8,26]],"date-time":"2014-08-26T05:18:21Z","timestamp":1409030301000},"page":"201-238","source":"Crossref","is-referenced-by-count":25,"title":["Anti-Pattern Detection"],"prefix":"10.1016","author":[{"given":"Fabio","family":"Palomba","sequence":"first","affiliation":[]},{"given":"Andrea","family":"De Lucia","sequence":"additional","affiliation":[]},{"given":"Gabriele","family":"Bavota","sequence":"additional","affiliation":[]},{"given":"Rocco","family":"Oliveto","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0005","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1016\/0164-1212(79)90022-0","article-title":"On understanding laws, evolution, and conservation in the large-program life cycle","volume":"1","author":"Lehman","year":"1980","journal-title":"J. Syst. Softw."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0010","series-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler","year":"1999"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0015","series-title":"Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis","author":"Brown","year":"1998"},{"issue":"3","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0020","doi-asserted-by":"crossref","first-page":"243","DOI":"10.1007\/s10664-011-9171-y","article-title":"An exploratory study of the impact of antipatterns on class change- and fault-proneness","volume":"17","author":"Khomh","year":"2012","journal-title":"Emp. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0025","doi-asserted-by":"crossref","first-page":"1120","DOI":"10.1016\/j.jss.2006.10.018","article-title":"An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution","author":"Li","year":"2007","journal-title":"J. Syst. Softw."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0030","first-page":"181","article-title":"An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension","author":"Abbes","year":"2011"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0035","first-page":"682","article-title":"Exploring the impact of inter-smell relations on software maintainability: an empirical study","author":"Yamashita","year":"2013"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0040","first-page":"33","article-title":"Understanding the longevity of code smells: preliminary results of an explanatory survey","author":"Arcoverde","year":"2011"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0045","doi-asserted-by":"crossref","DOI":"10.1109\/QUATIC.2010.16","article-title":"Investigating the evolution of bad smells in object-oriented code","author":"Chatzigeorgiou","year":"2010"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0050","series-title":"Recommendation Systems in Software Engineering","author":"Robillard","year":"2014"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0055","doi-asserted-by":"crossref","DOI":"10.1109\/QSIC.2009.47","article-title":"A Bayesian approach for the detection of code and design smells","author":"Khomh","year":"2009"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0060","first-page":"350","article-title":"Detection strategies: metrics-based rules for detecting design flaws","author":"Marinescu","year":"2004"},{"issue":"1","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0065","doi-asserted-by":"crossref","first-page":"20","DOI":"10.1109\/TSE.2009.50","article-title":"DECOR: a method for the specification and detection of code and design smells","volume":"36","author":"Moha","year":"2010","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0070","doi-asserted-by":"crossref","DOI":"10.1109\/CSMR.2010.47","article-title":"Numerical signatures of antipatterns: an approach based on b-splines","author":"Oliveto","year":"2010"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0075","doi-asserted-by":"crossref","DOI":"10.1109\/ASE.2013.6693086","article-title":"Detecting bad smells in source code using change history information","author":"Palomba","year":"2013"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0080","first-page":"663","article-title":"Lightweight detection of program refactorings","author":"Atkinson","year":"2005"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0085","doi-asserted-by":"crossref","DOI":"10.1109\/TSE.2013.60","article-title":"Methodbook: recommending move method refactorings via relational topic models","author":"Bavota","year":"2014","journal-title":"Trans. Softw. Eng."},{"issue":"3","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0090","doi-asserted-by":"crossref","first-page":"347","DOI":"10.1109\/TSE.2009.1","article-title":"Identification of move method refactoring opportunities","volume":"35","author":"Tsantalis","year":"2009","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0095","first-page":"625","article-title":"Program transformations for practical scalable software evolution","author":"Baxter","year":"2004"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0100","first-page":"368","article-title":"Clone detection using abstract syntax trees","author":"Baxter","year":"1998"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0105","article-title":"DECKARD: scalable and accurate tree-based detection of code clones","author":"Jiang","year":"2010"},{"issue":"7","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0110","doi-asserted-by":"crossref","first-page":"654","DOI":"10.1109\/TSE.2002.1019480","article-title":"CCfinder: a multilinguistic token-based code clone detection system for large scale source code","volume":"28","author":"Kamiya","year":"2002","journal-title":"Trans. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0115","first-page":"128","article-title":"Clone detection in source code by frequent itemset techniques","author":"Wahler","year":"2004"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0120","doi-asserted-by":"crossref","DOI":"10.1109\/ICSM.2013.55","article-title":"Identification of refused bequest code smells","author":"Ligu","year":"2013"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0125","article-title":"Detecting bad smells in object oriented design using design change propagation probability matrix","author":"Rao","year":"2008"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0130","article-title":"Software design versioning using propagation probability matrix","author":"Rao","year":"2005"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0135","article-title":"JDeodorant: identification and removal of type-checking bad smell","author":"Tsantalis","year":"2007"},{"issue":"6","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0140","doi-asserted-by":"crossref","first-page":"476","DOI":"10.1109\/32.295895","article-title":"A metrics suite for object oriented design","volume":"20","author":"Chidamber","year":"1994","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"10","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0145","doi-asserted-by":"crossref","first-page":"2241","DOI":"10.1016\/j.jss.2012.04.013","article-title":"Identification and application of extract class refactorings in object oriented systems","volume":"85","author":"Fokaefs","year":"2012","journal-title":"J. Syst. Softw."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0150","first-page":"485","article-title":"Do code clones matter?","author":"Juergens","year":"2009"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0155","series-title":"Object-Oriented Reengineering Patterns","author":"Demeyer","year":"2002"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0160","first-page":"97","article-title":"Restructuring program identifier names","author":"Caprile","year":"2000"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0165","doi-asserted-by":"crossref","DOI":"10.1109\/WPC.2005.14","article-title":"Concise and consistent naming","author":"Deissenbock","year":"2005"},{"issue":"4","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0170","doi-asserted-by":"crossref","first-page":"303","DOI":"10.1007\/s11334-007-0031-2","article-title":"Effective identifier names for comprehension and memory","volume":"3","author":"Lawrie","year":"2007","journal-title":"Innov. Syst. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0175","first-page":"3","article-title":"What's in a name? A study of identifiers","author":"Lawrie","year":"2006"},{"issue":"4","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0180","doi-asserted-by":"crossref","first-page":"205","DOI":"10.1002\/smr.274","article-title":"Feed-forward and re-current neural networks for source code informal information analysis","volume":"15","author":"Merlo","year":"2003","journal-title":"J. Softw. Maintenance"},{"issue":"3","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0185","first-page":"143","article-title":"The effects of comments and identifier names on program comprehensibility: an experiential study","volume":"4","author":"Takang","year":"1996","journal-title":"J. Program Lang."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0190","first-page":"187","article-title":"A new family of software anti-patterns: linguistic anti-patterns","author":"Arnaoudova","year":"2013"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0195","doi-asserted-by":"crossref","first-page":"397","DOI":"10.1016\/j.jss.2010.11.918","article-title":"Identifying extract class refactoring opportunities using structural and semantic cohesion measures","volume":"84","author":"Bavota","year":"2011","journal-title":"J. Syst. Softw."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0200","first-page":"81","article-title":"Measuring the coupling and cohesion of an object-oriented program based on information flow","author":"Lee","year":"1995"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0205","first-page":"52","article-title":"Maintenance metrics for the object oriented paradigm","author":"Li","year":"1993"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0210","first-page":"18","article-title":"Coupling and cohesion measures for evaluation of component reusability","author":"Gui","year":"2006"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0215","series-title":"Modern Information Retrieval","author":"Baeza-Yates","year":"1999"},{"issue":"2","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0220","doi-asserted-by":"crossref","first-page":"287","DOI":"10.1109\/TSE.2007.70768","article-title":"Using the conceptual cohesion of classes for fault prediction in object-oriented systems","volume":"34","author":"Marcus","year":"2008","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"1","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0225","doi-asserted-by":"crossref","first-page":"5","DOI":"10.1007\/s10664-008-9088-2","article-title":"Using information retrieval based coupling measures for impact analysis","volume":"14","author":"Poshyvanyk","year":"2009","journal-title":"Emp. Softw. Eng."},{"issue":"6","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0230","doi-asserted-by":"crossref","first-page":"391","DOI":"10.1002\/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO;2-9","article-title":"Indexing by latent semantic analysis","volume":"41","author":"Deerwester","year":"1990","journal-title":"J. Am. Soc. Inf. Sci."},{"issue":"11","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0235","doi-asserted-by":"crossref","first-page":"39","DOI":"10.1145\/219717.219748","article-title":"WordNet: a lexical data base for English","volume":"38","author":"Miller","year":"1995","journal-title":"Commun. ACM"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0240","first-page":"111","article-title":"Mining search topics from a code search engine usage log","author":"Bajracharya","year":"2009"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0245","first-page":"14","article-title":"Identifying changed source code lines from version repositories","author":"Canfora","year":"2007"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0250","first-page":"20","article-title":"Impact analysis by mining software and change request repositories","author":"Canfora","year":"2005"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0255","article-title":"Explaining software defects using topic models","author":"Chen","year":"2012"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0260","first-page":"13","article-title":"CVS release history data for detecting logical couplings","author":"Gall","year":"2003"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0265","first-page":"1","article-title":"Toward mining concept keywords from identifiers in large software projects","author":"Ohba","year":"2005"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0270","first-page":"173","article-title":"Modeling the evolution of topics in source code histories","author":"Thomas","year":"2011"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0275","first-page":"1","article-title":"How long will it take to fix this bug?","author":"Weiss","year":"2007"},{"issue":"9","key":"10.1016\/B978-0-12-800160-8.00004-8_bb0280","doi-asserted-by":"crossref","first-page":"574","DOI":"10.1109\/TSE.2004.52","article-title":"Predicting source code changes by mining change history","volume":"30","author":"Ying","year":"2004","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0285","first-page":"207","article-title":"Mining association rules between sets of items in large databases","author":"Agrawal","year":"1993"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0290","first-page":"563","article-title":"Mining version histories to guide software changes","author":"Zimmermann","year":"2004"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0295","first-page":"83","article-title":"High-MCC functions in the linux kernel","author":"Jbara","year":"2012"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0300","first-page":"223","article-title":"Using history information to improve design flaws detection","author":"Ratiu","year":"2004"},{"key":"10.1016\/B978-0-12-800160-8.00004-8_bb0305","first-page":"1","article-title":"Are all code smells harmful? A study of God classes and brain classes in the evolution of three open source systems","author":"Olbrich","year":"2010"}],"container-title":["Advances in Computers"],"original-title":[],"link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:B9780128001608000048?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:B9780128001608000048?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2019,8,14]],"date-time":"2019-08-14T05:16:43Z","timestamp":1565759803000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/B9780128001608000048"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"references-count":61,"URL":"https:\/\/doi.org\/10.1016\/b978-0-12-800160-8.00004-8","relation":{},"ISSN":["0065-2458"],"issn-type":[{"value":"0065-2458","type":"print"}],"subject":[],"published":{"date-parts":[[2014]]}}}