Investigating the Social Representations of the Identification of Code Smells by Practitioners and Students from Brazil
Resumo
Context: The identification of code smells is one of the most subjective tasks in software engineering. A key reason is the influence of collective aspects of communities working on this task, such as their beliefs regarding the relevance of certain smells. However, collective aspects are often neglected in the context of smell identification. For this purpose, we can use the social representations theory. Social representations comprise the set of values, behaviors, and practices of communities associated with a social object, such as the task of identifying smells. Aim: To characterize the social representations behind smell identification. Method: We conducted an empirical study on the social representations of smell identification by two communities. One community is composed of postgraduate students from different Brazilian universities. The other community is composed of practitioners located in Brazilian companies, having different levels of experience in code reviews. We analyzed the associations made by the study participants about smell identification, i.e., what immediately comes to their minds when they think about this task. Results: One of the key findings is that the community of students and practitioners have stronger associations with different types of code smells. Students share a strong belief that smell identification is a matter of measurement, while practitioners focus on the structure of the source code and its semantics. Besides, we found that only practitioners frequently associate the task with individual skills. This finding suggests research directions on code smells may be revisited. Conclusion: We found evidence that social representations theory allows identifying research gaps and opportunities by looking beyond the borders of formal knowledge and individual opinions. Therefore, this theory can be considered an important resource for conducting qualitative studies in software engineering.
Referências
Gabriele Bavota, Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, and Fabio Palomba. 2015. An experimental investigation on the innate relationship between quality and refactoring. J. Syst. Softw. (JSS) 107 (2015), 1--14.
Lionel Dany, Isabel Urdapilleta, and Grégory Lo Monaco. 2015. Free associations and social representations: some reflections on rank-frequency and importance-frequency methods. Quality & Quantity 49, 2 (2015), 489--507.
Rafael de Mello, Roberto Oliveira, Leonardo Sousa, and Alessandro Garcia. 2017. Towards effective teams for the identification of code smells. In 10th CHASE. 62--65.
Rafael de Mello, Anderson Uchôa, Roberto Oliveira, Daniel Oliveira, Baldoino Fonseca, Alessandro Garcia, and Fernanda de Mello. 2019. Investigating the social representations of code smell identification: a preliminary study. In Proceedings of the 12th International Workshop on Cooperative and Human Aspects of Software Engineering. IEEE Press, 53--60.
Rafael Maiani de Mello, Roberto Felicio Oliveira, and Alessandro Fabricio Garcia. 2017. On the Influence of Human Factors for Identifying Code Smells: A Multi-Trial Empirical Study. In 11th ESEM. 68--77.
Paulo Sergio Medeiros dos Santos and Guilherme Horta Travassos. 2009. Action research use in software engineering: An initial survey. In 3rd ESEM. 414--417.
Tore Dybå, Rafael Prikladnicki, Kari Rönkkö, Carolyn Seaman, and Jonathan Sillito. 2011. Qualitative research in software engineering. Empirical Software Engineering 16, 4 (2011), 425--429.
Eduardo Fernandes, Johnatan Oliveira, Gustavo Vale, Thanis Paiva, and Eduardo Figueiredo. 2016. A review-based comparative study of bad smell detection tools. In 20th EASE. 1--18.
Martin Fowler. 1999. Refactoring. Addison-Wesley Professional.
Caroline Howarth. 2006. A social representation is not a quiet thing: Exploring the critical potential of social representations theory. Br. J. Soc. Psychol. (BJSP) 45, 1 (2006), 65--86.
Mario Hozano, Nuno Antunes, Baldoino Fonseca, and Evandro Costa. 2017. Evaluating the Accuracy of Machine Learning Algorithms on Detecting Code Smells for Different Developers. In Proceedings of the 19th International Conference on Enterprise Information Systems. 474--482.
Hélène Joffe and Nadia Bettega. 2003. Social representation of AIDS among Zambian adolescents. J. Health Psychol. (JHP) 8, 5 (2003), 616--631.
Foutse Khomh, Massimiliano Di Penta, and Yann-Gael Gueheneuc. 2009. An exploratory study of the impact of code smells on software change-proneness. In 16th WCRE. 75--84.
Jyrki Kontio, Johanna Bragge, and Laura Lehtola. 2008. The focus group method as an empirical tool in software engineering. Guide to advanced empirical software engineering (2008), 93--116.
Michele Lanza and Radu Marinescu. 2006. Object-oriented metrics in practice. Springer Science & Business Media.
Mika V Mäntylä, Jari Vanhanen, and Casper Lassenius. 2004. Bad smells-humans as code critics. In 20th ICSM. 399--408.
Naouel Moha, Yann-Gael Gueheneuc, Laurence Duchien, and Anne-Francoise Le Meur. 2010. Decor: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. (TSE) 36, 1 (2010), 20--36.
David S Moore and Stephane Kirkland. 2007. The basic practice of statistics. Vol. 2. WH Freeman New York.
Nicola Morant. 2006. Social representations and professional knowledge: The representation of mental illness among mental health practitioners. Br. J. Soc. Psychol. (BJSP) 45, 4 (2006), 817--838.
Geraldo Eustáquio Moreira and Ana Lúcia Manrique. 2014. Challenges in Inclusive Mathematics Education: Representations by Professionals Who Teach Mathematics to Students with Disabilities. Creative Education 5, 7 (2014), 470--483.
Serge Moscovici. 1988. Notes towards a description of social representations. Eur. J. Soc. Psychol. (EJSP) 18, 3 (1988), 211--250.
Emerson Murphy-Hill and Andrew P Black. 2010. An interactive ambient visualization for code smells. In 5th SOFTVIS. 5--14.
Michael Murray. 2002. Connecting narrative and social representation theory in health research. Social Science Information 41, 4 (2002), 653--673.
Adrian Nistor, Tian Jiang, and Lin Tan. 2013. Discovering, reporting, and fixing performance bugs. In 10th MSR. 237--246.
Masao Ohira, Yutaro Kashiwa, Yosuke Yamatani, Hayato Yoshiyuki, Yoshiya Maeda, Nachai Limsettho, Keisuke Fujino, Hideaki Hata, Akinori Ihara, and Kenichi Matsumoto. 2015. A dataset of high impact bugs: Manually-classified issue reports. In 12th MSR. 518--521.
Roberto Oliveira, Leonardo Sousa, Rafael de Mello, Natasha Valentim, Adriana Lopes, Tayana Conte, Alessandro Garcia, Edson Oliveira, and Carlos Lucena. 2017. Collaborative identification of code smells: A multi-case study. In 39th ICSE, SEIP Track. 33--42.
Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, and Andrea De Lucia. 2014. Do they really smell bad?. In 30th ICSME. 101--110.
Hannu Räty, Katri Komulainen, and Laura Hirva. 2012. Social representations of educability in Finland: 20 years of continuity and change. Social Psychology of Education 15, 3 (2012), 395--409.
Dener Carlos dos Reis, Andréa Gazzinelli, Carolina Angélica de Brito Silva, and Maria Flávia Gazzinelli. 2006. Health education and social representation: an experience with the control of tegumentary leishmaniasis in an endemic area in Minas Gerais, Brazil. Cadernos de saude publica 22, 11 (2006), 2301--2310.
Per Runeson and Martin Höst. 2009. Guidelines for conducting and reporting case study research in software engineering. Emp. Softw. Eng. (ESE) 14, 2 (2009), 131.
Carolyn B. Seaman. 1999. Qualitative methods in empirical studies of software engineering. IEEE Trans. Softw. Eng. (TSE) 25, 4 (1999), 557--572.
Marco Torchiano, Daniel Méndez Fernández, Guilherme Horta Travassos, and Rafael Maiani de Mello. 2017. Lessons learnt in conducting survey research. In 5th CESI. 33--39.
Nikolaos Tsantalis, Theodoros Chaikalis, and Alexander Chatzigeorgiou. 2008. JDeodorant: Identification and removal of type-checking bad smells. In 12th CSMR. 329--331.
Michele Tufano, Fabio Palomba, Gabriele Bavota, Rocco Oliveto, Massimiliano Di Penta, Andrea De Lucia, and Denys Poshyvanyk. 2015. When and why your code starts to smell bad. In 37th ICSE. 403--414.
Santiago A Vidal, Claudia Marcos, and J Andrés Díaz-Pace. 2016. An approach to prioritize code smells for refactoring. Automated Software Engineering (ASE) 23, 3 (2016), 501--532.
Aiko Yamashita and Leon Moonen. 2013. Do developers care about code smells?. In 20th WCRE. 242--251.
Shahed Zaman, Bram Adams, and Ahmed E Hassan. 2011. Security versus performance bugs: a case study on firefox. In 8th MSR. 93--102.