Skip to main content
Erschienen in: Empirical Software Engineering 1/2022

01.01.2022

How do i refactor this? An empirical study on refactoring trends and topics in Stack Overflow

verfasst von: Anthony Peruma, Steven Simmons, Eman Abdullah AlOmar, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni

Erschienen in: Empirical Software Engineering | Ausgabe 1/2022

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

An essential part of software maintenance and evolution, refactoring is performed by developers, regardless of technology or domain, to improve the internal quality of the system, and reduce its technical debt. However, choosing the appropriate refactoring strategy is not always straightforward, resulting in developers seeking assistance. Although research in refactoring is well-established, with several studies altering between the detection of refactoring opportunities and the recommendation of appropriate code changes, little is known about their adoption in practice. Analyzing the perception of developers is critical to understand better what developers consider to be problematic in their code and how they handle it. Additionally, there is a need for bridging the gap between refactoring, as research, and its adoption in practice, by extracting common refactoring intents that are more suitable for what developers face in reality. In this study, we analyze refactoring discussions on Stack Overflow through a series of quantitative and qualitative experiments. Our results show that Stack Overflow is utilized by a diverse set of developers for refactoring assistance for a variety of technologies. Our observations show five areas that developers typically require help with refactoring– Code Optimization, Tools and IDEs, Architecture and Design Patterns, Unit Testing, and Database. We envision our findings better bridge the support between traditional (or academic) aspects of refactoring and their real-world applicability, including better tool support.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Abdellatif A, Costa D, Badran K, Abdalkareem R, Shihab E (2020) Challenges in chatbot development: A study of stack overflow posts. In: Proceedings of the 17th international conference on mining software repositories, MSR ’20. https://doi.org/10.1145/3379597.3387472. Association for Computing Machinery, New York, pp 174–185 Abdellatif A, Costa D, Badran K, Abdalkareem R, Shihab E (2020) Challenges in chatbot development: A study of stack overflow posts. In: Proceedings of the 17th international conference on mining software repositories, MSR ’20. https://​doi.​org/​10.​1145/​3379597.​3387472. Association for Computing Machinery, New York, pp 174–185
Zurück zum Zitat Ahmed S, Bagherzadeh M (2018) What do concurrency developers ask about? a large-scale study using stack overflow. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement, ESEM ’18. Association for Computing Machinery, New York. https://doi.org/10.1145/3239235.3239524 Ahmed S, Bagherzadeh M (2018) What do concurrency developers ask about? a large-scale study using stack overflow. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement, ESEM ’18. Association for Computing Machinery, New York. https://​doi.​org/​10.​1145/​3239235.​3239524
Zurück zum Zitat Aljedaani W, Peruma A, Aljohani A, Alotaibi M, Mkaouer M, Ouni A, Newman C, Ghallab A, Ludi S (2021) Test smell detection tools: A systematic mapping study. In: Evaluation and assessment in software engineering, EASE 2021. https://doi.org/10.1145/3463274.3463335. Association for Computing Machinery, New York, pp 170–180 Aljedaani W, Peruma A, Aljohani A, Alotaibi M, Mkaouer M, Ouni A, Newman C, Ghallab A, Ludi S (2021) Test smell detection tools: A systematic mapping study. In: Evaluation and assessment in software engineering, EASE 2021. https://​doi.​org/​10.​1145/​3463274.​3463335. Association for Computing Machinery, New York, pp 170–180
Zurück zum Zitat Allamanis M, Barr ET, Bird C, Sutton C (2014) Learning natural coding conventions. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. https://doi.org/10.1145/2635868.2635883. Association for Computing Machinery, New York, pp 281–293 Allamanis M, Barr ET, Bird C, Sutton C (2014) Learning natural coding conventions. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. https://​doi.​org/​10.​1145/​2635868.​2635883. Association for Computing Machinery, New York, pp 281–293
Zurück zum Zitat Allamanis M, Sutton C (2013) Why, when, and what: Analyzing stack overflow questions by topic, type, and code. In: Proceedings of the 10th working conference on mining software repositories, MSR ’13. IEEE Press, pp 53–56 Allamanis M, Sutton C (2013) Why, when, and what: Analyzing stack overflow questions by topic, type, and code. In: Proceedings of the 10th working conference on mining software repositories, MSR ’13. IEEE Press, pp 53–56
Zurück zum Zitat AlOmar E, Mkaouer MW, Ouni A (2019) Can refactoring be self-affirmed? an exploratory study on how developers document their refactoring activities in commit messages. In: 2019 IEEE/ACM 3rd international workshop on refactoring (IWoR). pp 51–58. https://doi.org/10.1109/IWoR.2019.00017 AlOmar E, Mkaouer MW, Ouni A (2019) Can refactoring be self-affirmed? an exploratory study on how developers document their refactoring activities in commit messages. In: 2019 IEEE/ACM 3rd international workshop on refactoring (IWoR). pp 51–58. https://​doi.​org/​10.​1109/​IWoR.​2019.​00017
Zurück zum Zitat AlOmar E, Mkaouer M, Ouni A (2020) Toward the automatic classification of self-affirmed refactoring. J Syst Softw :110821 AlOmar E, Mkaouer M, Ouni A (2020) Toward the automatic classification of self-affirmed refactoring. J Syst Softw :110821
Zurück zum Zitat AlOmar E, Mkaouer M, Ouni A, Kessentini M (2019) On the impact of refactoring on the relationship between quality attributes and design metrics. In: 2019 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). IEEE, pp 1–11 AlOmar E, Mkaouer M, Ouni A, Kessentini M (2019) On the impact of refactoring on the relationship between quality attributes and design metrics. In: 2019 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). IEEE, pp 1–11
Zurück zum Zitat AlOmar E, Peruma A, Mkaouer M, Newman C, Ouni A, Kessentini M (2020) How we refactor and how we document it? on the use of supervised machine learning algorithms to classify refactoring documentation. Expert Syst Appl :114176 AlOmar E, Peruma A, Mkaouer M, Newman C, Ouni A, Kessentini M (2020) How we refactor and how we document it? on the use of supervised machine learning algorithms to classify refactoring documentation. Expert Syst Appl :114176
Zurück zum Zitat AlOmar E, Rodriguez PT, Bowman J, Wang T, Adepoju B, Lopez K, Newman C, Ouni A, Mkaouer M (2020) How do developers refactor code to improve code reusability?. In: 19th International conference on software and software reuse. Springer, pp 261–276 AlOmar E, Rodriguez PT, Bowman J, Wang T, Adepoju B, Lopez K, Newman C, Ouni A, Mkaouer M (2020) How do developers refactor code to improve code reusability?. In: 19th International conference on software and software reuse. Springer, pp 261–276
Zurück zum Zitat Alrubaye H, Alshoaibi D, Alomar E, Mkaouer M, Ouni A (2020) How does library migration impact software quality and comprehension? an empirical study. In: International conference on software and software reuse. Springer, pp 245–260 Alrubaye H, Alshoaibi D, Alomar E, Mkaouer M, Ouni A (2020) How does library migration impact software quality and comprehension? an empirical study. In: International conference on software and software reuse. Springer, pp 245–260
Zurück zum Zitat Alshangiti M, Sapkota H, Murukannaiah PK, Liu X, Yu Q (2019) Why is developing machine learning applications challenging? a study on stack overflow posts. In: 2019 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). pp 1–11 Alshangiti M, Sapkota H, Murukannaiah PK, Liu X, Yu Q (2019) Why is developing machine learning applications challenging? a study on stack overflow posts. In: 2019 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). pp 1–11
Zurück zum Zitat Ambler S, Sadalage P (2006) Refactoring databases: evolutionary database design. Addison-Wesley Signature Series (Fowler). Pearson Education Ambler S, Sadalage P (2006) Refactoring databases: evolutionary database design. Addison-Wesley Signature Series (Fowler). Pearson Education
Zurück zum Zitat Arnaoudova V, Eshkevari LM, Penta MD, Oliveto R, Antoniol G, Guéhéneuc Y (2014) Repent: Analyzing the nature of identifier renamings. IEEE Trans Softw Eng 40(5):502–532CrossRef Arnaoudova V, Eshkevari LM, Penta MD, Oliveto R, Antoniol G, Guéhéneuc Y (2014) Repent: Analyzing the nature of identifier renamings. IEEE Trans Softw Eng 40(5):502–532CrossRef
Zurück zum Zitat Bagherzadeh M, Khatchadourian R (2019) Going big: A large-scale study on what big data developers ask. In: Proceedings of the 2019 27th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering, ESEC/FSE 2019. https://doi.org/10.1145/3338906.3338939. Association for Computing Machinery, New York, pp 432–442 Bagherzadeh M, Khatchadourian R (2019) Going big: A large-scale study on what big data developers ask. In: Proceedings of the 2019 27th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering, ESEC/FSE 2019. https://​doi.​org/​10.​1145/​3338906.​3338939. Association for Computing Machinery, New York, pp 432–442
Zurück zum Zitat Baltes S, Dumani L, Treude C, Diehl S (2018) Sotorrent: reconstructing and analyzing the evolution of stack overflow posts. In: Zaidman A, Kamei Y, Hill E (eds) Proceedings of the 15th international conference on mining software repositories, MSR 2018, Gothenburg, Sweden, May 28-29, 2018. ACM, pp 319–330. https://doi.org/10.1145/3196398.3196430 Baltes S, Dumani L, Treude C, Diehl S (2018) Sotorrent: reconstructing and analyzing the evolution of stack overflow posts. In: Zaidman A, Kamei Y, Hill E (eds) Proceedings of the 15th international conference on mining software repositories, MSR 2018, Gothenburg, Sweden, May 28-29, 2018. ACM, pp 319–330. https://​doi.​org/​10.​1145/​3196398.​3196430
Zurück zum Zitat Bandeira A, Medeiros CA, Paixao M, Maia PH (2019) We need to talk about microservices: An analysis from the discussions on stackoverflow. In: Proceedings of the 16th international conference on mining software repositories, MSR ’19. IEEE Press, pp 255–259. https://doi.org/10.1109/MSR.2019.00051 Bandeira A, Medeiros CA, Paixao M, Maia PH (2019) We need to talk about microservices: An analysis from the discussions on stackoverflow. In: Proceedings of the 16th international conference on mining software repositories, MSR ’19. IEEE Press, pp 255–259. https://​doi.​org/​10.​1109/​MSR.​2019.​00051
Zurück zum Zitat Bangash AA, Sahar H, Chowdhury S, Wong AW, Hindle A, Ali K (2019) What do developers know about machine learning: A study of ml discussions on stackoverflow. In: Proceedings of the 16th International conference on mining software repositories, MSR ’19. IEEE Press, pp 260–264. https://doi.org/10.1109/MSR.2019.00052 Bangash AA, Sahar H, Chowdhury S, Wong AW, Hindle A, Ali K (2019) What do developers know about machine learning: A study of ml discussions on stackoverflow. In: Proceedings of the 16th International conference on mining software repositories, MSR ’19. IEEE Press, pp 260–264. https://​doi.​org/​10.​1109/​MSR.​2019.​00052
Zurück zum Zitat Bavota G, De Lucia A, Di Penta M, Oliveto R, Palomba F (2015) An experimental investigation on the innate relationship between quality and refactoring. J Syst Softw 107:1–14CrossRef Bavota G, De Lucia A, Di Penta M, Oliveto R, Palomba F (2015) An experimental investigation on the innate relationship between quality and refactoring. J Syst Softw 107:1–14CrossRef
Zurück zum Zitat Bavota G, De Lucia A, Marcus A, Oliveto R (2014) Recommending refactoring operations in large software systems. In: Recommendation systems in software engineering. Springer, pp 387–419 Bavota G, De Lucia A, Marcus A, Oliveto R (2014) Recommending refactoring operations in large software systems. In: Recommendation systems in software engineering. Springer, pp 387–419
Zurück zum Zitat Bird S (2002) Nltk: The natural language toolkit. ArXiv cs.CL/0205028 Bird S (2002) Nltk: The natural language toolkit. ArXiv cs.CL/0205028
Zurück zum Zitat Blei DM, Ng AY, Jordan MI (2003) Latent dirichlet allocation. J Mach Learn Res 3(null):993–1022MATH Blei DM, Ng AY, Jordan MI (2003) Latent dirichlet allocation. J Mach Learn Res 3(null):993–1022MATH
Zurück zum Zitat Buse RP, Weimer WR (2009) Learning a metric for code readability. IEEE Trans Softw Eng 36(4):546–558CrossRef Buse RP, Weimer WR (2009) Learning a metric for code readability. IEEE Trans Softw Eng 36(4):546–558CrossRef
Zurück zum Zitat Cedrim D, Sousa L, Garcia A, Gheyi R (2016) Does refactoring improve software structural quality? a longitudinal study of 25 projects. In: Proceedings of the 30th Brazilian symposium on software engineering. ACM, pp 73–82 Cedrim D, Sousa L, Garcia A, Gheyi R (2016) Does refactoring improve software structural quality? a longitudinal study of 25 projects. In: Proceedings of the 30th Brazilian symposium on software engineering. ACM, pp 73–82
Zurück zum Zitat Chávez A., Ferreira I, Fernandes E, Cedrim D, Garcia A (2017) How does refactoring affect internal quality attributes? a multi-project study. In: Proceedings of the 31st Brazilian symposium on software engineering, SBES’17. https://doi.org/10.1145/3131151.3131171. Association for Computing Machinery, New York, pp 74–83 Chávez A., Ferreira I, Fernandes E, Cedrim D, Garcia A (2017) How does refactoring affect internal quality attributes? a multi-project study. In: Proceedings of the 31st Brazilian symposium on software engineering, SBES’17. https://​doi.​org/​10.​1145/​3131151.​3131171. Association for Computing Machinery, New York, pp 74–83
Zurück zum Zitat Choi E, Yoshida N, Kula RG, Inoue K (2015) What do practitioners ask about code clone? a preliminary investigation of stack overflow. In: 2015 IEEE 9th international workshop on software clones (IWSC), pp. 49–50 Choi E, Yoshida N, Kula RG, Inoue K (2015) What do practitioners ask about code clone? a preliminary investigation of stack overflow. In: 2015 IEEE 9th international workshop on software clones (IWSC), pp. 49–50
Zurück zum Zitat Fakhoury S, Roy D, Hassan SA, Arnaoudova V (2019) Improving source code readability: theory and practice. In: Proceedings of the 27th international conference on program comprehension.IEEE Press, pp 2–12 Fakhoury S, Roy D, Hassan SA, Arnaoudova V (2019) Improving source code readability: theory and practice. In: Proceedings of the 27th international conference on program comprehension.IEEE Press, pp 2–12
Zurück zum Zitat Fontana FA, Braione P, Zanoni M (2012) Automatic detection of bad smells in code: An experimental assessment. J Object Technol 11(2):5–1 Fontana FA, Braione P, Zanoni M (2012) Automatic detection of bad smells in code: An experimental assessment. J Object Technol 11(2):5–1
Zurück zum Zitat Fontana FA, Mangiacavalli M, Pochiero D, Zanoni M (2015) On experimenting refactoring tools to remove code smells. In: Scientific workshop proceedings of the XP2015, XP ’15 workshops. Association for Computing Machinery, New York. https://doi.org/10.1145/2764979.2764986 Fontana FA, Mangiacavalli M, Pochiero D, Zanoni M (2015) On experimenting refactoring tools to remove code smells. In: Scientific workshop proceedings of the XP2015, XP ’15 workshops. Association for Computing Machinery, New York. https://​doi.​org/​10.​1145/​2764979.​2764986
Zurück zum Zitat Fowler M (2018) Refactoring: improving the design of existing code, Addison-Wesley Professional, Reading Fowler M (2018) Refactoring: improving the design of existing code, Addison-Wesley Professional, Reading
Zurück zum Zitat Johnston B, Jones A, Kruger C (2019) Applied Unsupervised Learning with Python: Discover hidden patterns and relationships in unstructured data with Python. Packt Publishing Johnston B, Jones A, Kruger C (2019) Applied Unsupervised Learning with Python: Discover hidden patterns and relationships in unstructured data with Python. Packt Publishing
Zurück zum Zitat Jones A (2018) Probability, statistics and other frightening stuff. Working Guides to Estimating & Forecasting Taylor & Francis Jones A (2018) Probability, statistics and other frightening stuff. Working Guides to Estimating & Forecasting Taylor & Francis
Zurück zum Zitat Jurafsky D, Martin J (2009) Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition. Prentice Hall series in artificial intelligence. Pearson Prentice Hall, Prentince Jurafsky D, Martin J (2009) Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition. Prentice Hall series in artificial intelligence. Pearson Prentice Hall, Prentince
Zurück zum Zitat Kamiya T, Kusumoto S, Inoue K (2002) Ccfinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans Softw Eng 28(7):654–670CrossRef Kamiya T, Kusumoto S, Inoue K (2002) Ccfinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans Softw Eng 28(7):654–670CrossRef
Zurück zum Zitat Kim M, Gee M, Loh A, Rachatasumrit N (2010) Ref-finder: a refactoring reconstruction tool based on logic query templates. In: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering. ACM, pp 371–372 Kim M, Gee M, Loh A, Rachatasumrit N (2010) Ref-finder: a refactoring reconstruction tool based on logic query templates. In: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering. ACM, pp 371–372
Zurück zum Zitat Lambiase S, Cupito A, Pecorelli F, De Lucia A, Palomba F (2020) Just-in-time test smell detection and refactoring: The darts project. In: Proceedings of the 28th international conference on program comprehension, ICPC ’20. https://doi.org/10.1145/3387904.3389296. Association for Computing Machinery, New York, pp 441–445 Lambiase S, Cupito A, Pecorelli F, De Lucia A, Palomba F (2020) Just-in-time test smell detection and refactoring: The darts project. In: Proceedings of the 28th international conference on program comprehension, ICPC ’20. https://​doi.​org/​10.​1145/​3387904.​3389296. Association for Computing Machinery, New York, pp 441–445
Zurück zum Zitat Lane H, Hapke H, Howard C (2019) Natural language processing in action, understanding, analyzing, and generating text with python. Manning Publications Company Lane H, Hapke H, Howard C (2019) Natural language processing in action, understanding, analyzing, and generating text with python. Manning Publications Company
Zurück zum Zitat Liu H, Liu Q, Liu Y, Wang Z (2015) Identifying renaming opportunities by expanding conducted rename refactorings. IEEE Trans Softw Eng 41 (9):887–900CrossRef Liu H, Liu Q, Liu Y, Wang Z (2015) Identifying renaming opportunities by expanding conducted rename refactorings. IEEE Trans Softw Eng 41 (9):887–900CrossRef
Zurück zum Zitat Mazinanian D, Tsantalis N, Stein R, Valenta Z (2016) Jdeodorant: clone refactoring. In: Proceedings of the 38th international conference on software engineering companion. pp 613–616 Mazinanian D, Tsantalis N, Stein R, Valenta Z (2016) Jdeodorant: clone refactoring. In: Proceedings of the 38th international conference on software engineering companion. pp 613–616
Zurück zum Zitat Mkaouer W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A (2015) Many-objective software remodularization using nsga-iii. ACM Trans Softw Eng Methodol (TOSEM) 24(3):1–45CrossRef Mkaouer W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A (2015) Many-objective software remodularization using nsga-iii. ACM Trans Softw Eng Methodol (TOSEM) 24(3):1–45CrossRef
Zurück zum Zitat Moghadam IH, Cinnéide MÓ, Zarepour F, Jahanmir MA (2021) Refdetect: A multi-language refactoring detection tool based on string alignment. IEEE Access Moghadam IH, Cinnéide MÓ, Zarepour F, Jahanmir MA (2021) Refdetect: A multi-language refactoring detection tool based on string alignment. IEEE Access
Zurück zum Zitat Moser R, Sillitti A, Abrahamsson P, Succi G (2006) Does refactoring improve reusability?. In: International conference on software reuse. Springer, pp 287–297 Moser R, Sillitti A, Abrahamsson P, Succi G (2006) Does refactoring improve reusability?. In: International conference on software reuse. Springer, pp 287–297
Zurück zum Zitat Ouni A, Kessentini M, Sahraoui H, Inoue K, Deb K (2016) Multi-criteria code refactoring using search-based software engineering: An industrial case study. ACM Trans Softw Eng Methodol (TOSEM) 25(3):23CrossRef Ouni A, Kessentini M, Sahraoui H, Inoue K, Deb K (2016) Multi-criteria code refactoring using search-based software engineering: An industrial case study. ACM Trans Softw Eng Methodol (TOSEM) 25(3):23CrossRef
Zurück zum Zitat Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2013) Detecting bad smells in source code using change history information. In: 2013 28th IEEE/ACM international conference on automated software engineering (ASE). IEEE, pp 268–278 Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2013) Detecting bad smells in source code using change history information. In: 2013 28th IEEE/ACM international conference on automated software engineering (ASE). IEEE, pp 268–278
Zurück zum Zitat Pantiuchina J, Lanza M, Bavota G (2018) Improving code: The (mis) perception of quality metrics. In: 2018 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 80–91 Pantiuchina J, Lanza M, Bavota G (2018) Improving code: The (mis) perception of quality metrics. In: 2018 IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 80–91
Zurück zum Zitat Peruma A (2019) A preliminary study of android refactorings. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft). pp 148–149 Peruma A (2019) A preliminary study of android refactorings. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft). pp 148–149
Zurück zum Zitat Peruma A, Arnaoudova V, Newman C (2021) Ideal: An open-source identifier name appraisal tool. In: 2021 IEEE international conference on software maintenance and evolution (ICSME), ICSME ’21 Peruma A, Arnaoudova V, Newman C (2021) Ideal: An open-source identifier name appraisal tool. In: 2021 IEEE international conference on software maintenance and evolution (ICSME), ICSME ’21
Zurück zum Zitat Peruma A, Hu E, Chen J, AlOmar E, Mkaouer M, Newman C (2021) Using grammar patterns to interpret test method name evolution. In: 2021 2021 IEEE/ACM 29th international conference on program comprehension (ICPC) (ICPC). https://doi.org/10.1109/ICPC52881.2021.00039. IEEE Computer Society, Los Alamitos, pp 335–346 Peruma A, Hu E, Chen J, AlOmar E, Mkaouer M, Newman C (2021) Using grammar patterns to interpret test method name evolution. In: 2021 2021 IEEE/ACM 29th international conference on program comprehension (ICPC) (ICPC). https://​doi.​org/​10.​1109/​ICPC52881.​2021.​00039. IEEE Computer Society, Los Alamitos, pp 335–346
Zurück zum Zitat Peruma A, Mkaouer M, Decker MJ, Newman C (2018) An empirical investigation of how and why developers rename identifiers. In: Proceedings of the 2nd international workshop on refactoring, iWoR 2018. https://doi.org/10.1145/3242163.3242169. Association for Computing Machinery, New York, pp 26–33 Peruma A, Mkaouer M, Decker MJ, Newman C (2018) An empirical investigation of how and why developers rename identifiers. In: Proceedings of the 2nd international workshop on refactoring, iWoR 2018. https://​doi.​org/​10.​1145/​3242163.​3242169. Association for Computing Machinery, New York, pp 26–33
Zurück zum Zitat Pinto GH, Kamei F (2013) What programmers say about refactoring tools? an empirical investigation of stack overflow. In: Proceedings of the 2013 ACM workshop on workshop on refactoring tools, WRT ’13. https://doi.org/10.1145/2541348.2541357. Association for Computing Machinery, New York, pp 33–36 Pinto GH, Kamei F (2013) What programmers say about refactoring tools? an empirical investigation of stack overflow. In: Proceedings of the 2013 ACM workshop on workshop on refactoring tools, WRT ’13. https://​doi.​org/​10.​1145/​2541348.​2541357. Association for Computing Machinery, New York, pp 33–36
Zurück zum Zitat Posnett D, Hindle A, Devanbu P (2011) A simpler model of software readability. In: Proceedings of the 8th working conference on mining software repositories. pp 73–82 Posnett D, Hindle A, Devanbu P (2011) A simpler model of software readability. In: Proceedings of the 8th working conference on mining software repositories. pp 73–82
Zurück zum Zitat Roberts D, Brant J, Johnson R (1997) A refactoring tool for smalltalk. Theory Pract Object Syst 3(4):253–263CrossRef Roberts D, Brant J, Johnson R (1997) A refactoring tool for smalltalk. Theory Pract Object Syst 3(4):253–263CrossRef
Zurück zum Zitat Roy CK, Cordy JR, Koschke R (2009) Comparison and evaluation of code clone detection techniques and tools: A qualitative approach. Sci Comput Program 74(7):470–495MathSciNetCrossRef Roy CK, Cordy JR, Koschke R (2009) Comparison and evaluation of code clone detection techniques and tools: A qualitative approach. Sci Comput Program 74(7):470–495MathSciNetCrossRef
Zurück zum Zitat Samarthyam G, Suryanarayana G, Sharma T (2016) Refactoring for software architecture smells. In: Proceedings of the 1st international workshop on software refactoring, IWoR 2016. https://doi.org/10.1145/2975945.2975946. Association for Computing Machinery, New York, pp 1–4 Samarthyam G, Suryanarayana G, Sharma T (2016) Refactoring for software architecture smells. In: Proceedings of the 1st international workshop on software refactoring, IWoR 2016. https://​doi.​org/​10.​1145/​2975945.​2975946. Association for Computing Machinery, New York, pp 1–4
Zurück zum Zitat Scalabrino S, Linares-Vásquez M., Oliveto R, Poshyvanyk D (2018) A comprehensive model for code readability. J Softw Evol Process 30(6):e1958CrossRef Scalabrino S, Linares-Vásquez M., Oliveto R, Poshyvanyk D (2018) A comprehensive model for code readability. J Softw Evol Process 30(6):e1958CrossRef
Zurück zum Zitat Sievert C, Shirley K (2014) Ldavis: A method for visualizing and interpreting topics. In: Proceedings of the workshop on interactive language learning, visualization, and interfaces. pp 63–70 Sievert C, Shirley K (2014) Ldavis: A method for visualizing and interpreting topics. In: Proceedings of the workshop on interactive language learning, visualization, and interfaces. pp 63–70
Zurück zum Zitat Silva D, Silva J, Santos GJDS, Terra R, Valente MTO (2020) Refdiff 2.0: A multi-language refactoring detection tool. IEEE Trans on Softw Eng Silva D, Silva J, Santos GJDS, Terra R, Valente MTO (2020) Refdiff 2.0: A multi-language refactoring detection tool. IEEE Trans on Softw Eng
Zurück zum Zitat Silva D, Tsantalis N, Valente MT (2016) Why we refactor? confessions of github contributors. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering, FSE 2016. https://doi.org/10.1145/2950290.2950305. Association for Computing Machinery, New York, pp 858–870 Silva D, Tsantalis N, Valente MT (2016) Why we refactor? confessions of github contributors. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering, FSE 2016. https://​doi.​org/​10.​1145/​2950290.​2950305. Association for Computing Machinery, New York, pp 858–870
Zurück zum Zitat Taeger D, Kuhnt S (2014) Statistical Hypothesis Testing with SAS and R Wiley Taeger D, Kuhnt S (2014) Statistical Hypothesis Testing with SAS and R Wiley
Zurück zum Zitat Tahir A, Dietrich J, Counsell S, Licorish S, Yamashita A (2020) A large scale study on how developers discuss code smells and anti-pattern in stack exchange sites. Inform Softw Technol :106333 Tahir A, Dietrich J, Counsell S, Licorish S, Yamashita A (2020) A large scale study on how developers discuss code smells and anti-pattern in stack exchange sites. Inform Softw Technol :106333
Zurück zum Zitat Tahir A, Yamashita A, Licorish S, Dietrich J, Counsell S (2018) Can you tell me if it smells? a study on how developers discuss code smells and anti-patterns in stack overflow. In: Proceedings of the 22nd international conference on evaluation and assessment in software engineering 2018, EASE’18. https://doi.org/10.1145/3210459.3210466. Association for Computing Machinery, New York, pp 68–78 Tahir A, Yamashita A, Licorish S, Dietrich J, Counsell S (2018) Can you tell me if it smells? a study on how developers discuss code smells and anti-patterns in stack overflow. In: Proceedings of the 22nd international conference on evaluation and assessment in software engineering 2018, EASE’18. https://​doi.​org/​10.​1145/​3210459.​3210466. Association for Computing Machinery, New York, pp 68–78
Zurück zum Zitat Tang Y, Khatchadourian R, Bagherzadeh M, Ahmed S (2018) Towards safe refactoring for intelligent parallelization of java 8 streams. In: Proceedings of the 40th international conference on software engineering: companion proceeedings, ICSE ’18. https://doi.org/10.1145/3183440.3195098. Association for Computing Machinery, New York, pp 206–207 Tang Y, Khatchadourian R, Bagherzadeh M, Ahmed S (2018) Towards safe refactoring for intelligent parallelization of java 8 streams. In: Proceedings of the 40th international conference on software engineering: companion proceeedings, ICSE ’18. https://​doi.​org/​10.​1145/​3183440.​3195098. Association for Computing Machinery, New York, pp 206–207
Zurück zum Zitat Tashakkori A, Teddlie C, Teddlie C (1998) Mixed methodology: combining qualitative and quantitative approaches. Applied Social Research Methods. SAGE Publications, Philadelphia Tashakkori A, Teddlie C, Teddlie C (1998) Mixed methodology: combining qualitative and quantitative approaches. Applied Social Research Methods. SAGE Publications, Philadelphia
Zurück zum Zitat Tian F, Liang P, Babar MA (2019) How developers discuss architecture smells? an exploratory study on stack overflow. In: 2019 IEEE international conference on software architecture (ICSA). pp 91–100 Tian F, Liang P, Babar MA (2019) How developers discuss architecture smells? an exploratory study on stack overflow. In: 2019 IEEE international conference on software architecture (ICSA). pp 91–100
Zurück zum Zitat Tsantalis N, Mansouri M, Eshkevari LM, Mazinanian D, Dig D (2018) Accurate and efficient refactoring detection in commit history. In: Proceedings of the 40th international conference on software engineering. ACM Tsantalis N, Mansouri M, Eshkevari LM, Mazinanian D, Dig D (2018) Accurate and efficient refactoring detection in commit history. In: Proceedings of the 40th international conference on software engineering. ACM
Zurück zum Zitat Villanes IK, Ascate SM, Gomes J, Dias-Neto AC (2017) What are software engineers asking about android testing on stack overflow?. In: Proceedings of the 31st Brazilian symposium on software engineering, SBES’17. https://doi.org/10.1145/3131151.3131157. Association for Computing Machinery, New York, pp 104–113 Villanes IK, Ascate SM, Gomes J, Dias-Neto AC (2017) What are software engineers asking about android testing on stack overflow?. In: Proceedings of the 31st Brazilian symposium on software engineering, SBES’17. https://​doi.​org/​10.​1145/​3131151.​3131157. Association for Computing Machinery, New York, pp 104–113
Zurück zum Zitat Wang S, Lo D, Jiang L (2013) An empirical study on developer interactions in stackoverflow. In: Proceedings of the 28th annual ACM symposium on applied computing, SAC ’13. https://doi.org/10.1145/2480362.2480557. Association for Computing Machinery, New York, pp 1019–1024 Wang S, Lo D, Jiang L (2013) An empirical study on developer interactions in stackoverflow. In: Proceedings of the 28th annual ACM symposium on applied computing, SAC ’13. https://​doi.​org/​10.​1145/​2480362.​2480557. Association for Computing Machinery, New York, pp 1019–1024
Zurück zum Zitat Wilking D, Kahn UF, Kowalewski S (2007) An empirical evaluation of refactoring. e-Informatica 1(1):27–42 Wilking D, Kahn UF, Kowalewski S (2007) An empirical evaluation of refactoring. e-Informatica 1(1):27–42
Zurück zum Zitat Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer Science & Business Media, BerlinCrossRef Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer Science & Business Media, BerlinCrossRef
Metadaten
Titel
How do i refactor this? An empirical study on refactoring trends and topics in Stack Overflow
verfasst von
Anthony Peruma
Steven Simmons
Eman Abdullah AlOmar
Christian D. Newman
Mohamed Wiem Mkaouer
Ali Ouni
Publikationsdatum
01.01.2022
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 1/2022
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-021-10045-x

Weitere Artikel der Ausgabe 1/2022

Empirical Software Engineering 1/2022 Zur Ausgabe

Premium Partner