{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,2]],"date-time":"2025-06-02T22:24:20Z","timestamp":1748903060411,"version":"3.40.3"},"publisher-location":"Cham","reference-count":14,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031727801"},{"type":"electronic","value":"9783031727818"}],"license":[{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T00:00:00Z","timestamp":1736553600000},"content-version":"vor","delay-in-days":10,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>General-purpose AI-assisted tools, such as ChatGPT, have recently gained much attention from the media and the general public. That raised questions about in which tasks we can apply such a tool. A good code design is essential for agile software development to keep it ready for change. In this context, identifying which design pattern can be appropriate for a given scenario can be considered an advanced skill that requires a high degree of abstraction and a good knowledge of object orientation. This paper aims to perform an exploratory study investigating the effectiveness of an AI-assisted tool in assisting developers in choosing a design pattern to solve design scenarios. To reach this goal, we gathered 56 existing questions used by teachers and public tenders that provide a concrete context and ask which design pattern would be suitable. We submitted these questions to ChatGPT and analyzed the answers. We found that 93% of the questions were answered correctly with a good level of detail, demonstrating the potential of such a tool as a valuable resource to help developers to apply design patterns and make design decisions.<\/jats:p>","DOI":"10.1007\/978-3-031-72781-8_14","type":"book-chapter","created":{"date-parts":[[2025,1,10]],"date-time":"2025-01-10T18:02:29Z","timestamp":1736532149000},"page":"130-138","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Can ChatGPT Suggest Patterns? An Exploratory Study About Answers Given by\u00a0AI-Assisted Tools to\u00a0Design Problems"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0009-0001-0049-4907","authenticated-orcid":false,"given":"Jo\u00e3o Jos\u00e9","family":"Maranh\u00e3o Junior","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9581-3973","authenticated-orcid":false,"given":"Filipe F.","family":"Correia","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5555-3487","authenticated-orcid":false,"given":"Eduardo Martins","family":"Guerra","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,1,11]]},"reference":[{"key":"14_CR1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E Gamma","year":"1994","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Boston (1994)"},{"key":"14_CR2","unstructured":"Joshua, K.: Refactoring to Patterns. Addison-Wesley Professional, Boston (2004)"},{"key":"14_CR3","unstructured":"Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River (2002)"},{"key":"14_CR4","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4302-0725-2","volume-title":"Holub on Patterns: Learning Design Patterns by Looking at Code","author":"A Holub","year":"2004","unstructured":"Holub, A.: Holub on Patterns: Learning Design Patterns by Looking at Code. Apress, New York (2004)"},{"key":"14_CR5","doi-asserted-by":"publisher","first-page":"23","DOI":"10.1016\/j.csi.2017.12.001","volume":"58","author":"JL Barros-Justo","year":"2018","unstructured":"Barros-Justo, J.L., Benitti, F.B.V., Cravero-Leal, A.L.: Software patterns and requirements engineering activities in real-world settings: a systematic mapping study. Comput. Standards Interfaces 58, 23\u201342 (2018)","journal-title":"Comput. Standards Interfaces"},{"key":"14_CR6","unstructured":"Shalloway, A., Trott, J.: Design patterns explained: a new perspective on object-oriented design. Addison-Wesley Professional, Boston (2004)"},{"key":"14_CR7","unstructured":"Warren, I.: Teaching patterns and software design. Conferences in Research and Practice in Information Technology Series, vol. 42 (2005)"},{"key":"14_CR8","doi-asserted-by":"crossref","unstructured":"Chatzigeorgiou, A., Tsantalis, N., Deligiannis, I.: An empirical study on students ability to comprehend design patterns. Comput. Educ. 51(3), 1007\u20131016 (2008)","DOI":"10.1016\/j.compedu.2007.10.003"},{"key":"14_CR9","doi-asserted-by":"crossref","unstructured":"Biswas, S.S.: Role of chat GPT in public health. Ann. Biomed. Eng. 1\u20132 (2023)","DOI":"10.1007\/s10439-023-03172-7"},{"key":"14_CR10","doi-asserted-by":"crossref","unstructured":"Lund, B.D., Wang, T.: Chatting about chatgpt: how may AI and GPT impact academia and libraries? Library Hi Tech News (2023)","DOI":"10.2139\/ssrn.4333415"},{"issue":"01","key":"14_CR11","first-page":"17","volume":"3","author":"NMS Surameery","year":"2023","unstructured":"Surameery, N.M.S., Shakor, M.Y.: Use chat GPT to solve programming bugs. Int. J. Inf. Technol. Comput. Eng. (IJITC) 3(01), 17\u201322 (2023). ISSN: 2455-5290","journal-title":"Int. J. Inf. Technol. Comput. Eng. (IJITC)"},{"key":"14_CR12","doi-asserted-by":"crossref","unstructured":"White, J., Hays, S., Fu, Q., Spencer-Smith, J., Schmidt, D.C.: Chatgpt prompt patterns for improving code quality, refactoring, requirements elicitation, and software design. arXiv preprint arXiv:2303.07839 (2023)","DOI":"10.1007\/978-3-031-55642-5_4"},{"key":"14_CR13","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1016\/j.asoc.2018.10.049","volume":"75","author":"S Hussain","year":"2019","unstructured":"Hussain, S., Keung, J., Sohail, M.K., Khan, A.A., Ilahi, M.: Automated framework for classification and selection of software design patterns. Appl. Soft Comput. 75, 1\u201320 (2019)","journal-title":"Appl. Soft Comput."},{"key":"14_CR14","doi-asserted-by":"crossref","unstructured":"Hasheminejad, S.M.H., Jalili, S.: Design patterns selection: an automatic two-phase method. J. Syst. Softw. 85(2), 408\u2013424 (2012). Special issue with selected papers from the 23rd Brazilian Symposium on Software Engineering","DOI":"10.1016\/j.jss.2011.08.031"}],"container-title":["Lecture Notes in Business Information Processing","Agile Processes in Software Engineering and Extreme Programming \u2013 Workshops"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-72781-8_14","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,10]],"date-time":"2025-01-10T19:03:00Z","timestamp":1736535780000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-72781-8_14"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025]]},"ISBN":["9783031727801","9783031727818"],"references-count":14,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-72781-8_14","relation":{},"ISSN":["1865-1348","1865-1356"],"issn-type":[{"type":"print","value":"1865-1348"},{"type":"electronic","value":"1865-1356"}],"subject":[],"published":{"date-parts":[[2025]]},"assertion":[{"value":"11 January 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"XP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Agile Software Development","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Bozen-Bolzano","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Italy","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"4 June 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"7 June 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"25","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"xpu2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.agilealliance.org\/xp2024\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}