{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,8,16]],"date-time":"2024-08-16T16:29:22Z","timestamp":1723825762317},"reference-count":43,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2019,5,3]],"date-time":"2019-05-03T00:00:00Z","timestamp":1556841600000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"funder":[{"DOI":"10.13039\/501100002322","name":"Coordena\u00e7\u00e3o de Aperfei\u00e7oamento de Pessoal de N\u00edvel Superior","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100002322","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["onlinelibrary.wiley.com"],"crossmark-restriction":true},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[2019,7]]},"abstract":"Summary<\/jats:title>A design pattern is a general reusable solution to commonly recurring problems in software projects. Bad smells are symptoms existing in the source code that possibly indicate the presence of a structural problem that requires code refactoring. Although design pattern and bad smells be different concepts, literature has shown that they may be related and cooccur during the evolution of a software system. This paper presents an empirical study that investigates cooccurrences of design patterns and bad smells as well as identifies the main factors that contribute to the emergence of the relationship between them. We carried out a case study with five Java systems to: (1) investigate if the use of design pattern reduces bad smell occurrence, (2) identify cooccurrences of design patterns and bad smells, and (3) identify situations that contribute for the cooccurrence emergence. As the main result, we found that the application of design pattern not necessarily avoid bad smell occurrences. The results also show that some design patterns such as composite, factory method, and singleton, are intrinsically modular and might be useful in creating high\u2010quality systems. However, other design patterns such as adapter\u2010command, proxy, and state\u2010strategy, have presented high cooccurrence frequency with bad smells; therefore, they require attention in their implementation. Finally, via manual inspection in the components with cooccurrence, we found that the identified cooccurrences appeared due to poor planning and inadequate application of design patterns.<\/jats:p>","DOI":"10.1002\/spe.2697","type":"journal-article","created":{"date-parts":[[2019,5,3]],"date-time":"2019-05-03T08:05:01Z","timestamp":1556870701000},"page":"1079-1113","update-policy":"http:\/\/dx.doi.org\/10.1002\/crossmark_policy","source":"Crossref","is-referenced-by-count":11,"title":["An exploratory study on cooccurrence of design patterns and bad smells using software metrics"],"prefix":"10.1002","volume":"49","author":[{"ORCID":"http:\/\/orcid.org\/0000-0002-8217-3524","authenticated-orcid":false,"given":"Bruno L.","family":"Sousa","sequence":"first","affiliation":[{"name":"Department of Computer Science Universidade Federal de Minas Gerais Belo Horizonte Brazil"}]},{"given":"Mariza A. S.","family":"Bigonha","sequence":"additional","affiliation":[{"name":"Department of Computer Science Universidade Federal de Minas Gerais Belo Horizonte Brazil"}]},{"given":"Kecia A. M.","family":"Ferreira","sequence":"additional","affiliation":[{"name":"Department of Computing Federal Center for Technological Education of Minas Gerais (CEFET\u2010MG) Belo Horizonte Brazil"}]}],"member":"311","published-online":{"date-parts":[[2019,5,3]]},"reference":[{"key":"e_1_2_10_2_1","volume-title":"Design Patterns: Elements of Reusable Object\u2010Oriented Software","author":"Gamma E","year":"1995"},{"key":"e_1_2_10_3_1","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler M","year":"1999"},{"key":"e_1_2_10_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37186-8_22"},{"key":"e_1_2_10_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-27777-4_54"},{"key":"e_1_2_10_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2012.05.004"},{"key":"e_1_2_10_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11771-014-2140-z"},{"key":"e_1_2_10_8_1","unstructured":"NaharN SakibK.Automatic recommendation of software design patterns using anti\u2010patterns in the design phase: a case study on abstract factory. Paper presented at: 3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ);2015;New Delhi India."},{"key":"e_1_2_10_9_1","doi-asserted-by":"crossref","unstructured":"NaharN SakibK.ACDPR: a recommendation system for the creational design patterns using anti\u2010patterns. Paper presented at: 2016 IEEE 23rd International Conference on Software Analysis Evolution and Reengineering (SANER);2016;Suita Japan.","DOI":"10.1109\/SANER.2016.44"},{"key":"e_1_2_10_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2016.09.008"},{"key":"e_1_2_10_11_1","article-title":"Analysing anti\u2010patterns static relationships with design patterns","volume":"59","author":"Jaafar F","year":"2013","journal-title":"Electron Commun EASST"},{"key":"e_1_2_10_12_1","doi-asserted-by":"crossref","unstructured":"CardosoB FigueiredoE.Co\u2010occurrence of design patterns and bad smells in software systems: an exploratory study. In: Proceedings of the Annual Conference on Brazilian Symposium on Information Systems (SBSI);2015;Goi\u00e2nia Brazil.","DOI":"10.5753\/sbsi.2015.5836"},{"key":"e_1_2_10_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9361-0"},{"key":"e_1_2_10_14_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2016.02.003"},{"key":"e_1_2_10_15_1","doi-asserted-by":"crossref","unstructured":"SousaBL BigonhaMAS FerreiraKAM.Evaluating co\u2010occurrence of GOF design patterns with god class and long method bad smells. In: Proceedings of the XIII Brazilian Symposium on Information Systems;2017;Lavras Brazil.","DOI":"10.5753\/sbsi.2017.6068"},{"key":"e_1_2_10_16_1","doi-asserted-by":"crossref","unstructured":"SousaBL BigonhaMAS FerreiraKAM.A systematic literature mapping on the relationship between design patterns and bad smells. In: Proceedings of 33rd Annual ACM Symposium on Applied (SAC);2018;Pau France.","DOI":"10.1145\/3167132.3167295"},{"key":"e_1_2_10_17_1","volume-title":"The Use of Metrics Threshold on the Evaluation of Oriented\u2010Object Software Quality","author":"Souza P","year":"2016"},{"key":"e_1_2_10_18_1","volume-title":"Em Measurement and Quality in Object\u2010Oriented Design","author":"Marinescu R","year":"2002"},{"key":"e_1_2_10_19_1","unstructured":"Fil\u00f3TG BigonhaM FerreiraK.A catalogue of thresholds for object\u2010oriented software metrics. In: Proceedings of the First International Conference on Advances and Trends in Software Engineering (SOFTENG);2015;Barcelona Spain."},{"key":"e_1_2_10_20_1","volume-title":"Identification of Thresholds for Metrics of Oriented\u2010Object Software","author":"Fil\u00f3 TGS","year":"2014"},{"key":"e_1_2_10_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.50"},{"key":"e_1_2_10_22_1","doi-asserted-by":"crossref","unstructured":"TsantalisN ChaikalisT ChatzigeorgiouA.JDeodorant: identification and removal of type\u2010checking bad smells. Paper presented at: 2008 12th European Conference on Software Maintenance and Reengineering (CSMR);2008;Athens Greece.","DOI":"10.1109\/CSMR.2008.4493342"},{"key":"e_1_2_10_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-014-0175-x"},{"key":"e_1_2_10_24_1","doi-asserted-by":"crossref","unstructured":"FernandesE OliveiraJ ValeG PaivaT FigueiredoE.A review\u2010based comparative study of bad smell detection tools. In: Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering (EASE);2016;Limerick Ireland.","DOI":"10.1145\/2915970.2915984"},{"key":"e_1_2_10_25_1","unstructured":"Fil\u00f3TGS BigonhaMAS FerreiraKAM.Raftool \u2010 filtering tool of methods classes and packages with uncommon measures of software metrics[in Portuguese]. In: Proceedings of the X Workshop Anual do MPS (WAMPS);2014;Campinas Brazil."},{"key":"e_1_2_10_26_1","doi-asserted-by":"crossref","unstructured":"YamashitaA MoonenL.Exploring the impact of inter\u2010smell relations on software maintainability: an empirical study. In: Proceedings of the 2013 International Conference on Software Engineering (ICSE);2013;San Francisco CA.","DOI":"10.1109\/ICSE.2013.6606614"},{"key":"e_1_2_10_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-017-9535-z"},{"key":"e_1_2_10_28_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2011.05.044"},{"key":"e_1_2_10_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2507288.2507314"},{"key":"e_1_2_10_30_1","doi-asserted-by":"crossref","unstructured":"TemperoE AnslowC DietrichJ et al.The qualitas corpus: a curated collection of java code for empirical studies. Paper presented at: 2010 Asia Pacific Software Engineering Conference;2010;Sydney Australia.","DOI":"10.1109\/APSEC.2010.46"},{"key":"e_1_2_10_31_1","unstructured":"Eclipse.Eclipse 4.2 Juno.2016.http:\/\/www.eclipse.org\/downloads\/packages\/release\/Juno\/SR2. Accessed June 2016."},{"key":"e_1_2_10_32_1","unstructured":"Metrics.Metrics.2016.http:\/\/metrics.sourceforge.net. Accessed June 2016."},{"key":"e_1_2_10_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2006.112"},{"key":"e_1_2_10_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/170036.170072"},{"key":"e_1_2_10_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/253262.253325"},{"key":"e_1_2_10_36_1","unstructured":"SousaB BigonhaM FerreiraK.Design pattern smell.2017.http:\/\/llp.dcc.ufmg.br\/Products\/indexProducts.html. Accessed September 25 2018."},{"key":"e_1_2_10_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.99"},{"key":"e_1_2_10_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-29044-2"},{"key":"e_1_2_10_39_1","volume-title":"A Tool for Detection of Co\u2010Occurrences Between Design Patterns and Bad Smells","author":"Sousa BL","year":"2017"},{"key":"e_1_2_10_40_1","unstructured":"WendorffP.Assessment of design patterns during software reengineering: lessons learned from a large commercial project. In: Proceedings Fifth European Conference on Software Maintenance and Reengineering (CSMR);2001;Lisbon Portugal."},{"key":"e_1_2_10_41_1","unstructured":"McNattWB BiemanJM.Coupling of design patterns: common practices and their benefits. In: Proceedings of the 25th Annual International Computer Software and Applications Conference (COMPSAC);2001;Chicago IL."},{"key":"e_1_2_10_42_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11219-012-9175-x"},{"key":"e_1_2_10_43_1","doi-asserted-by":"crossref","unstructured":"KhomhF GueheneuceY\u2010G.Do design patterns impact software quality positively?In: Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering (CSMR);2008;Athens Greece.","DOI":"10.1109\/CSMR.2008.4493325"},{"key":"e_1_2_10_44_1","doi-asserted-by":"crossref","unstructured":"WageyBC HendradjayaB MardiyantoMS.A proposal of software maintainability model using code smell measurement. Paper presented at: 2015 International Conference on Data and Software Engineering (ICoDSE);2015;Yogyakarta Indonesia.","DOI":"10.1109\/ICODSE.2015.7436966"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.2697","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.2697","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/full-xml\/10.1002\/spe.2697","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.2697","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,10]],"date-time":"2023-09-10T09:03:40Z","timestamp":1694336620000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.2697"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,5,3]]},"references-count":43,"journal-issue":{"issue":"7","published-print":{"date-parts":[[2019,7]]}},"alternative-id":["10.1002\/spe.2697"],"URL":"https:\/\/doi.org\/10.1002\/spe.2697","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,5,3]]},"assertion":[{"value":"2018-05-24","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-03-25","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-05-03","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}