July 2024
·
5 Reads
This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.
July 2024
·
5 Reads
June 2024
·
2 Reads
June 2024
·
4 Reads
June 2023
·
12 Reads
·
4 Citations
Journal of Systems and Software
May 2023
·
3 Reads
·
2 Citations
April 2023
·
18 Reads
·
5 Citations
Communications of the ACM
February 2023
·
18 Reads
·
1 Citation
ACM Transactions on Applied Perception
Eye tracking studies have shown that reading code, in contradistinction to reading text, includes many vertical jumps. As different lines of code may have very different functions (e.g. variable definition, flow control, or computation) it is important to accurately identify the lines being read. We design experiments that require a specific line of text to be scrutinized. Using the distribution of gazes around this line, we then calculate how the precision with which we can identify the line being read depends on the font size and spacing. The results indicate that, even after correcting for systematic bias, unnaturally large fonts and spacing may be required for reliable line identification. Interestingly, during the experiments the participants also repeatedly re-checked their task and that they are looking at the correct line, leading to vertical jumps similar to those observed when reading code. This suggests that observed reading patterns may be “inefficient”, in the sense that participants feel the need to repeat actions beyond the minimal number apparently required for the task. This may have implications regarding the interpretation of reading patterns. In particular, reading does not reflect only the extraction of information from the text or code. Rather, reading patterns may also reflect other types of activities, such as getting a general orientation, and searching for specific locations in the context of performing a particular task.
December 2022
·
13 Reads
·
2 Citations
October 2022
·
12 Reads
·
4 Citations
September 2022
·
48 Reads
Program code contains functions, variables, and data structures that are represented by names. To promote human understanding, these names should describe the role and use of the code elements they represent. But the names given by developers show high variability, reflecting the tastes of each developer, with different words used for the same meaning or the same words used for different meanings. This makes comparing names hard. A precise comparison should be based on matching identical words, but also take into account possible variations on the words (including spelling and typing errors), reordering of the words, matching between synonyms, and so on. To facilitate this we developed a library of comparison functions specifically targeted to comparing names in code. The different functions calculate the similarity between names in different ways, so a researcher can choose the one appropriate for his specific needs. All of them share an attempt to reflect human perceptions of similarity, at the possible expense of lexical matching.
... Additionally, they observed that over 40% of field and variable names were not initialized at declaration time. Feitelson et al. [19] examined the distribution of the name length and scope of variable identifiers of Java projects. Their analysis of data from approximately 1,000 Java projects revealed that the wider the scope, the more words incorporated into identifiers, and words comprising six or more letters were often abbreviated. ...
May 2023
... Knowing there could be community trust issues, we looked to prior work in analogous contexts to guide us on ethical best practices when working with administrators and engaging with instances as research subjects. We followed the principles outlined in Feitelson [27]'s postincident survey of open source developers; these principles align with previously-published recommendations for research on Reddit, which evoke community-based participatory research [75,99]. ...
June 2023
Journal of Systems and Software
... We consider this a benefit for our comparison, since scientific writing uses clear and explicit language, where each paragraph follows logically from the one before (Lindsay 2020;Gustavii 2017), and the goal of scientific writing is to inform the reader, so it should avoid using "flowery, ornate or obscure prose" (Lindsay 2020). Similarly, programming naturally requires that information and the goals are explicitly expressed such that a computer can process it as well as a human reader can understand it, which is relevant, for example, when choosing identifier names Schankin et al. 2018;Beniamini et al. 2017). Thus, there are some parallels between programming and scientific writing, making scientific writing a good base to relate it to programming, even if one might think of prose first when the keyword 'writing' comes up. ...
May 2017
... And renaming, where a maintainer changes a previously given name, is a common form of refactoring [7,24]. Additional research has considered how easy it is to remember names [12,15], and whether similar names may cause confusion [28,5]. In all these contexts it is important to be able to compare names to each other. ...
October 2022
... As discussed elsewhere [26], this is a scenario that hints at practical relevance, especially considering the very low p-value (< 0.003). Further studies investigating these code patterns, potentially using different response variables [30,31], are left for future work. ...
June 2022
Empirical Software Engineering
... During the evolution of any OSS project, including Blockchain, developers typically change their role in the project (De Filippi & Loveluck, 2016). This phenomenon led to two categories of developers: (a) peripheral developers, whose role is to contribute code but cannot commit to the project directly, and (b) committers, who have permission to not only contribute but also commit code to the project directly (Amit & Feitelson, 2021). Therefore, committers conduct most of the maintenance tasks and constitute important key actors in the evolution of Blockchain software projects (Barraood et al., 2022). ...
August 2021
Software Quality Journal
... For example, Wyrich et al. found 95 studies that measured bottom-up code comprehension using human participants [43]. However such experiments must be performed with care as they are difficult to do well [11,35,36]. ...
May 2021
... In Feitelson's experience, the selected names were strongly influenced by the words used in the scenario descriptions. Regev et al. (Regev et al. 2021) extended the previous research: instead of using languages such as Hebrew and English, they used emojis and graphs in the scenario descriptions. The motivation was to reduce the accessibility bias by not introducing any intermediate words, considering that emojis represent a universal mode of communication. ...
May 2021
... Many researchers have examined a wide variety of factors that could potentially affect readability. Some research has shown that the impact of a name on readability depends not only on how good or bad it is, but other factors such as the role it plays within the code, where it appears, its length, and its type can also play a role (Avidan and Feitelson 2017;Schankin et al. 2018;Cates et al. 2021). Apart from naming, many other coding practices have been analyzed. ...
May 2021
... The open-source software may differ in system comprehension, and further research is required to understand the open-source software. This study is essential because open-source development is more evolutionary, less planned, and less documented than large-scale software [7]. This paper will discuss a new technique to facilitate opensource software understanding. ...
May 2021
Empirical Software Engineering