Using Non-Verbal Expressions as a Tool in Naming Research

Variable and function names are extremely important for program comprehension. It is therefore also important to study how developers select names. But controlled experiments on naming are hindered by the need to describe to experimental subjects what it is they need to name. Words appearing in these descriptions may then find their way into the names, leading to a bias in the results. We suggest that this problem can be alleviated by using emojis or other small graphics in lieu of key words in the descriptions. A replication of previous work on naming, this time including such emojis and graphics, indeed led to a more diverse and less biased choice of words in the names than when using English descriptions.

[1]  David W. Binkley,et al.  Identifier length and limited programmer memory , 2009, Sci. Comput. Program..

[2]  David W. Binkley,et al.  Quantifying identifier quality: an analysis of trends , 2006, Empirical Software Engineering.

[3]  Janet Siegmund,et al.  Shorter identifier names take longer to comprehend , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[4]  Olusola Adesope,et al.  Measuring the impact of lexical and structural inconsistencies on developers’ cognitive load during bug localization , 2019, Empirical Software Engineering.

[5]  Sousuke Amasaki,et al.  Empirical Analysis of Change-Proneness in Methods Having Local Variables with Long Names and Comments , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[6]  Gerard J. Holzmann Code Clarity , 2016, IEEE Software.

[7]  Yijun Yu,et al.  Exploring the Influence of Identifier Names on Code Quality: An Empirical Study , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[8]  David W. Binkley,et al.  Improving identifier informativeness using part of speech information , 2011, MSR '11.

[9]  Claes Wohlin,et al.  Empirical software engineering experts on the use of students and professionals in experiments , 2017, Empirical Software Engineering.

[10]  Dror Feitelson,et al.  How Developers Choose Names , 2021, IEEE Transactions on Software Engineering.

[11]  Charles A. Sutton,et al.  Learning natural coding conventions , 2014, SIGSOFT FSE.

[12]  Giuliano Antoniol,et al.  Linguistic antipatterns: what they are and how developers perceive them , 2015, Empirical Software Engineering.

[13]  Paolo Tonella,et al.  Restructuring program identifier names , 2000, Proceedings 2000 International Conference on Software Maintenance.

[14]  Robert D. Macredie,et al.  The effects of comments and identifier names on program comprehensibility: an experimental investigation , 1996, J. Program. Lang..

[15]  Michael Beigl,et al.  Descriptive Compound Identifier Names Improve Source Code Comprehension , 2018, 2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC).

[16]  Yijun Yu,et al.  Investigating naming convention adherence in Java references , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[17]  Yves Le Traon,et al.  Learning to Spot and Refactor Inconsistent Method Names , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[18]  Otávio Augusto Lazzarini Lemos,et al.  Comparing identifiers and comments in engineered and non-engineered code: a large-scale empirical study , 2020, SAC.

[19]  David W. Binkley,et al.  To camelcase or under_score , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[20]  Dawn J. Lawrie,et al.  The impact of identifier style on effort and comprehension , 2012, Empirical Software Engineering.

[21]  Dror G. Feitelson,et al.  Effects of Variable Names on Comprehension: An Empirical Study , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[22]  David W. Binkley,et al.  The impact of vocabulary normalization , 2015, J. Softw. Evol. Process..

[23]  Venera Arnaoudova,et al.  The Effect of Poor Source Code Lexicon and Readability on Developers' Cognitive Load , 2018, 2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC).

[24]  Andreas Krause,et al.  Predicting Program Properties from "Big Code" , 2015, POPL.

[25]  Anthony Peruma,et al.  An Empirical Study of Abbreviations and Expansions in Software Artifacts , 2019, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[26]  Markus Pizka,et al.  Concise and consistent naming , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[27]  Giuseppe Scanniello,et al.  Dealing with identifiers and comments in source code comprehension and maintenance: results from an ethnographically-informed study with students and professionals , 2014, EASE '14.

[28]  Yann-Gaël Guéhéneuc,et al.  REPENT: Analyzing the Nature of Identifier Renamings , 2014, IEEE Transactions on Software Engineering.

[29]  Andrew Begel,et al.  Cognitive Perspectives on the Role of Naming in Computer Programs , 2006, PPIG.

[30]  Dror G. Feitelson,et al.  Meaningful Identifier Names: The Case of Single-Letter Variables , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[31]  Elias Pimenidis,et al.  Clean Code: A Handbook of Agile Software Craftmanship , 2009 .