Dror G. Feitelson’s research while affiliated with Hebrew University of Jerusalem and other places

What is this page?


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.

Publications (285)


Why Is Recursion Hard to Comprehend? An Experiment with Experienced Programmers in Python
  • Conference Paper

July 2024

·

5 Reads

Aviad Baron

·

Dror G. Feitelson





From Code Complexity Metrics to Program Comprehension

April 2023

·

18 Reads

·

5 Citations

Communications of the ACM

Understanding code depends not only on the code but also on the brain.


Identifying Lines and Interpreting Vertical Jumps in Eye Tracking Studies of Reading Text and Code

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.




When Are Names Similar Or the Same? Introducing the Code Names Matcher Library
  • Preprint
  • File available

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.

Download

Citations (68)


... 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. ...

Reference:

RENAS: Prioritizing Co-Renaming Opportunities of Identifiers
Reanalysis of Empirical Data on Java Local Variables with Narrow and Broad Scope
  • Citing Conference Paper
  • 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]. ...

“We do not appreciate being experimented on”: Developer and researcher views on the ethics of experiments on open-source projects
  • Citing Article
  • 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. ...

Meaningful Identifier Names: The Case of Single-Letter Variables
  • Citing Conference Paper
  • 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. ...

The effect of information content and length on name recollection
  • Citing Conference Paper
  • 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. ...

Considerations and Pitfalls for Reducing Threats to the Validity of Controlled Experiments on Code Comprehension

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). ...

Corrective commit probability: a measure of the effort invested in bug fixing

Software Quality Journal

... 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. ...

Using Non-Verbal Expressions as a Tool in Naming Research
  • Citing Conference Paper
  • 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. ...

Does Code Structure Affect Comprehension? On Using and Naming Intermediate Variables
  • Citing Conference Paper
  • 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. ...

Understanding large-scale software systems – structure and flows

Empirical Software Engineering