skip to main content


Title: IDEAL: An Open-Source Identifier Name Appraisal Tool
Developers must comprehend the code they will maintain, meaning that the code must be legible and reasonably self-descriptive. Unfortunately, there is still a lack of research and tooling that supports developers in understanding their naming practices; whether the names they choose make sense, whether they are consistent, and whether they convey the information required of them. In this paper, we present IDEAL, a tool that will provide feedback to developers about their identifier naming practices. Among its planned features, it will support linguistic anti-pattern detection, which is what will be discussed in this paper. IDEAL is designed to, and will, be extended to cover further anti-patterns, naming structures, and practices in the near future. IDEAL is open-source and publicly available, with a demo video available at: https://youtu.be/fVoOYGe50zg  more » « less
Award ID(s):
1850412
NSF-PAR ID:
10313024
Author(s) / Creator(s):
; ;
Date Published:
Journal Name:
IEEE International Conference on Software Maintenance and Evolution (ICSME)
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Schickore, Jutta (Ed.)
    Ethnobotanical research provides ample justification for comparing diverse biological nomenclatures and exploring ways that retain alternative naming practices. However, how (and whether) comparison of nomenclatures is possible remains a subject of discussion. The comparison of diverse nomenclatural practices introduces a suite of epistemic and ontological difficulties and considerations. Different nomenclatures may depend on whether the communities using them rely on formalized naming conventions; cultural or spiritual valuations; or worldviews. Because of this, some argue that the different naming practices may not be comparable if the ontological commitments employed differ. Comparisons between different nomenclatures cannot assume that either the naming practices or the object to which these names are intended to apply identifies some universally agreed upon object of interest. Investigating this suite of philosophical problems, I explore the role grey nomenclatures play in classification. ‘Grey nomenclatures’ are defined as those that employ names that are either intentionally or accidently non-Linnaean. The classification of the lichen thallus (a symbiont) has been classified outside the Linnaean system by botanists relying on the International Code of Nomenclature for algae, fungi, and plants (ICN). But, I argue, the use of grey names is not isolated and does not occur exclusively within institutionalized naming practices. I suggest, ‘grey names’ also aptly describe nomenclatures employed by indigenous communities such as the Sámi of Northern Finmark, the Sherpa of Nepal, and the Okanagan First Nations. I pay particular attention to how naming practices are employed in these communities; what ontological commitments they hold; for what purposes are these names used; and what anchors the community's nomenclatural practices. Exploring the history of lichen naming and early ethnolichenological research, I then investigate the stakes that must be considered for any attempt to preserve, retain, integrate, or compare the knowledge contained in both academically formalized grey names and indigenous nomenclatures in a way that preserves their source-specific informational content. 
    more » « less
  2. It is good practice to name test methods such that they are comprehensible to developers; they must be written in such a way that their purpose and functionality are clear to those who will maintain them. Unfortunately, there is little automated support for writing or maintaining the names of test methods. This can lead to inconsistent and low-quality test names and increase the maintenance cost of supporting these methods. Due to this risk, it is essential to help developers in maintaining their test method names over time. In this paper, we use grammar patterns, and how they relate to test method behavior, to understand test naming practices. This data will be used to support an automated tool for maintaining test names. 
    more » « less
  3. Currently, there is an increasing interest in the use of RFID systems with passive or battery-less tags with sensors incorporated, also known as computational RFID (CRFID) systems. These passive tags use the reader signal to power up their microcontroller and an attached sensor. Following the current standard EPC C1G2, the reader must identify the tag (receive the tag's identification code) prior to receive data from its sensor. In a typical RFID scenario, several sensor tags share the reader interrogation zone, and during their identification process, their responses often collide, increasing their identification time. Therefore, RFID application developers must be mindful of tag anti-collision protocols when dealing with CRFID tags in dense RFID sensor networks. So far, significant effort has been invested in simulation-based analysis of the performance of anti-collision protocols regarding the tags identification time. However, no one has explored the experimental performance of anti-collision protocols in an RFID sensor network using CRFID. This paper: (i) demonstrates that the impact of one tag identification time over the total time required to read one sensor data from that same tag is very significant, and (ii) presents an UHF-SDR RFID system which validates the improvement of FuzzyQ, a fast anticollision protocol, in relation to the protocol used in the current RFID standard. 
    more » « less
  4. This paper describes the results of a large (+ 1100 responses) survey of professional software developers concerning standards for naming source code methods. The various standards for source code method names are derived from and supported in the software engineering literature. The goal of the survey is to determine if there is a general consensus among developers that the standards are accepted and used in practice. Additionally, the paper examines factors such as years of experience and programming language knowledge in the context of survey responses. The survey results show that participants very much agree about the importance of various standards and how they apply to names and that years of experience and the programming language has almost no effect on their responses. The results imply that the given standards are both valid and to a large degree complete. The work provides a foundation for automated method name assessment during development and code reviews. 
    more » « less
  5. Developers in open source projects must make decisions on contributions from other community members, such as whether or not to accept a pull request. However, secondary factors—beyond the code itself—can influence those decisions. For example, signals from GitHub profiles, such as a number of followers, activity, names, or gender can also be considered when developers make decisions. In this paper, we examine how developers use these signals (or not) when making decisions about code contributions. To evaluate this question, we evaluate how signals related to perceived gender identity and code quality influenced decisions on accepting pull requests. Unlike previous work, we analyze this decision process with data collected from an eye-tracker. We analyzed differences in what signals developers said are important for themselves versus what signals they actually used to make decisions about others. We found that after the code snippet (x=57%), the second place programmers spent their time fixating on supplemental technical signals(x=32%), such as previous contributions and popular repositories. Diverging from what participants reported themselves, we also found that programmers fixated on social signals more than recalled. 
    more » « less