Emily Hill 0001

dblp:64/5315-1 · also Emily Gibson · DBLP profile ↗
← Back
36ranked-venue papers
9as first author
2since 2021 · last 2026
0000-0001-9078-8839ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 33 · 9 first-author · 1 since 2021Databases, data management, data science and information retrieval · 4 · 1 first-authorHuman-computer interaction and ubiquitous computing · 2 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
12 papers
Software maintenance and evolution · 33% Software testing · 27% Empirical software engineering · 18%
Databases, data mining, and information retrieval
2 papers
Query processing and optimization · 57% Information retrieval · 43%

Topics — the 22 heaviest of 24, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Empirical software engineering
mining software repositories
0.642022
Degree-of-knowledge: Modeling a developer's knowledge of code · ACM Trans. Softw. Eng. Methodol. 2014
An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech Tags · IEEE Trans. Software Eng. 2022
1st international workshop on natural language analysis in software engineering (NaturaLiSE 2013) · ICSE 2013
Software maintenance and evolution › program comprehension
identifier analysis
0.612022
An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech Tags · IEEE Trans. Software Eng. 2022
Program analysis
source code analysis
0.612022
An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech Tags · IEEE Trans. Software Eng. 2022
Software testing
test maintenance
0.212016
Towards automatically generating descriptive names for unit tests · ASE 2016
Software maintenance and evolution
code search
0.222011
Improving source code search with natural language phrasal representations of method signatures · ASE 2011
Automatically capturing source code context of NL-queries for software maintenance and reuse · ICSE 2009
Software testing
specification-based testing
0.212015
Automatically Generating Test Templates from Test Names (N) · ASE 2015
Software testing
test generation
0.212015
Automatically Generating Test Templates from Test Names (N) · ASE 2015
Software maintenance and evolution
program comprehension
0.222010
Towards automatically generating summary comments for Java methods · ASE 2010
Exploring the neighborhood with dora to expedite software maintenance · ASE 2007
Query processing and optimization
query optimization
0.212013
Mobile interaction and query optimization in a protein-ligand data analysis system · SIGMOD Conference 2013
Software testing
web application testing
0.122007
Applying Concept Analysis to User-Session-Based Testing of Web Applications · IEEE Trans. Software Eng. 2007
Automated replay and failure detection for web applications · ASE 2005
Information retrieval
retrieval models
0.112011
Improving source code search with natural language phrasal representations of method signatures · ASE 2011
Program synthesis and code generation › code documentation generation
code comment generation
0.112010
Towards automatically generating summary comments for Java methods · ASE 2010
Compilers and program optimization
code generation
0.112010
Towards automatically generating summary comments for Java methods · ASE 2010
Software maintenance and evolution › code search
natural language code search
0.112009
Automatically capturing source code context of NL-queries for software maintenance and reuse · ICSE 2009
Software maintenance and evolution › program comprehension
code exploration
0.112007
Exploring the neighborhood with dora to expedite software maintenance · ASE 2007
Empirical software engineering
developer studies
0.112007
Does a programmer's activity indicate knowledge of code? · ESEC/SIGSOFT FSE 2007
Software testing › regression testing
test suite reduction
0.112007
Applying Concept Analysis to User-Session-Based Testing of Web Applications · IEEE Trans. Software Eng. 2007
Software maintenance and evolution
knowledge transfer
0.112014
Degree-of-knowledge: Modeling a developer's knowledge of code · ACM Trans. Softw. Eng. Methodol. 2014
Software testing
test oracle
0.112005
Automated replay and failure detection for web applications · ASE 2005
Program analysis
static analysis
0.012013
1st international workshop on natural language analysis in software engineering (NaturaLiSE 2013) · ICSE 2013
Software maintenance and evolution › program comprehension
code comprehension
0.012007
Does a programmer's activity indicate knowledge of code? · ESEC/SIGSOFT FSE 2007
Software testing
regression testing
0.012007
Applying Concept Analysis to User-Session-Based Testing of Web Applications · IEEE Trans. Software Eng. 2007

Methods — techniques the papers use, named apart from their topics

natural language processing · 0.6ensemble machine learning · 0.6Stanford POS tagger · 0.6SWUM · 0.6POSSE · 0.6phylogenetic analysis · 0.3text generation · 0.2natural language program analysis · 0.2interaction data analysis · 0.2authorship analysis · 0.2natural language generation · 0.1
YearPublicationVenuePosition
2026 Beyond the Sprint: Teaching Project Management as a Human Skill
abstract
Project management is rarely taught as a human discipline in computer science. Students learn tools and frameworks, but not how to manage conflict, coach peers, or lead through ambiguity. This lightning talk introduces a new project leadership curriculum, deployed within the TechJoy Internship Program—a bridge between coursework and industry that blends simulation, mentorship, and reflection.
Kristen R. Walcott, Emily Hill 0001
SIGCSE (2)2
2022 An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech Tags
abstract
This paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble’s annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to promote the future amelioration of these problems through further research. Our results show that the ensemble achieves 75 percent accuracy at the identifier level and 84-86 percent accuracy at the word level. This is an increase of +17% points at the identifier level from the closest independent part-of-speech tagger.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy J. Sheldon, Emily Hill 0001
IEEE Trans. Software Eng.10
2020 On the generation, structure, and semantics of grammar patterns in source code identifiers
Christian D. Newman, Reem S. Alsuhaibani, Michael John Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill 0001
J. Syst. Softw.7
2019 An Empirical Study of Abbreviations and Expansions in Software Artifacts
abstract
Expanding abbreviations is an important text normalization technique used for the purpose of either increasing developer comprehension or supporting the application of natural-language-based tools for source code identifiers. This paper closely studies abbreviations and where their expansions occur in different software artifacts. Without abbreviation expansion, developers will spend more time in comprehending the code they need to update, and tools analyzing software may obtain weak or non-generalizable results. There are numerous techniques for expanding abbreviations, most of which struggle to reach an average expansion accuracy of 59-62% on general source code identifiers. In this paper, we reveal some characteristics of abbreviations and their expansions through an empirical study of 861 abbreviation-expansion pairs extracted from 5 open-source systems in addition to analyzing previous literature. We use these characteristics to identify how current approaches may be complementary and how their results should be reported in the future to help maximize both our understanding of how they compare with other expansion techniques and their reproducibility.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Dishant Kaushik, Emily Hill 0001
ICSME6
2019 An Open Dataset of Abbreviations and Expansions
abstract
We present a data set of abbreviations and expansions, derived from a set of five open source systems, for use by the research and development communities.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Dishant Kaushik, Emily Hill 0001
ICSME6
2018 Toward Automatic Summarization of Arbitrary Java Statements for Novice Programmers
abstract
Novice programmers sometimes need to understand code written by others. Unfortunately, most software projects lack comments suitable for novices. The lack of comments have been addressed through automated techniques of generating comments based on program statements. However, these techniques lacked the context of how these statements function since they were aimed toward experienced programmers. In this paper, we present a novel technique towards automatically generating comments for Java statements suitable for novice programmers. Our technique not only goes beyond existing approaches to method summarization to meet the needs of novices, it also leverages API documentation when available. In an experimental study of 30 computer science undergraduate students, we observed explanations based on our technique to be preferred over an existing approach.
Mohammed Hassan, Emily Hill 0001
ICSME2
2018 Guest Editorial: Special section on mining software repositories
Romain Robbes, Emily Hill 0001, Christian Bird
Empir. Softw. Eng.2
2016 An Athletic Approach to Software Engineering Education
abstract
We present our findings after two years of experience involving three instructors using an "athletic" approach to software engineering education (AthSE). Co-author Johnson developed AthSE in 2013 to address issues he experienced teaching graduate and undergraduate software engineering. Co-authors Port and Hill subsequently adapted the original approach to their own software courses. AthSE is a pedagogy in which the course is organized into a series of skills to be mastered. For each skill, students are given practice "Workouts" along with videos showing the instructor performing the Workout both correctly and quickly. Unlike traditional home-work assignments, students are advised to repeat the Workout not only until they can complete it correctly, but also as quickly as the instructor. In this experience report we investigate the following question: how can software engineering education be redesigned as an athletic endeavor, and will this provide more efficient and effective learning among students and more rapidly lead them to greater competency and confidence?
Philip M. Johnson, Daniel Port, Emily Hill 0001
CSEE&T3
2016 Part of Speech Tagging Java Method Names
abstract
Numerous software engineering tools for evolution and comprehension, including code search, comment generation, and analyzing bug reports, make use of part-of-speech (POS) information. However, many POS taggers are developed for, and trained on, natural language. In this paper, we investigate the accuracy of 9 POS taggers on over 200 source code identifiers taken from method names in open source Java programs. The set of taggers includes traditional POS taggers for English as well as some tuned to source code identifiers. Our results indicate that taggers tailored for source code are significantly more effective.
Wyatt Olney, Emily Hill 0001, Chris Thurber, Bezalem Lemma
ICSME2
2016 Towards automatically generating descriptive names for unit tests
abstract
During maintenance, developers often need to understand the purpose of a test. One of the most potentially useful sources of information for understanding a test is its name. Ideally, test names are descriptive in that they accurately summarize both the scenario and the expected outcome of the test. Despite the benefits of being descriptive, test names often fall short of this goal. In this paper we present a new approach for automatically generating descriptive names for existing test bodies. Using a combination of natural-language program analysis and text generation, the technique creates names that summarize the test's scenario and the expected outcome. The results of our evaluation show that, (1) compared to alternative approaches, the names generated by our technique are significantly more similar to human-generated names and are nearly always preferred by developers, (2) the names generated by our technique are preferred over or are equivalent to the original test names in 83% of cases, and (3) our technique is several orders of magnitude faster than manually writing test names.
Benwen Zhang, Emily Hill 0001, James Clause
ASE2
2015 Exploring the use of concern element role information in feature location evaluation
abstract
Before making changes, programmers need to locate and understand source code that corresponds to specific functionality, i.e., Perform concern or feature location. Numerous concern and feature location techniques have been proposed, but to the best of our knowledge, no existing techniques or evaluations report information on what role a code element plays in the larger concern. In this paper, we report on two case studies that investigate two hypotheses on how evaluation studies of concern location techniques can be strengthened by utilizing concern role information: (1) by increasing agreement among human annotators for gold set establishment and (2) by providing richer information about the elements ranked as relevant by concern location techniques, which could help further improve the tools. We conducted a case study of 6 Java developers annotating 3 concerns with role information. When the developers understood the task description, pair wise agreement increased by 20%, 25%, and 135% for the 3 concerns over a prior concern location study without role information. Our findings also suggest that there may be core element roles that need to be annotated by humans, but that the remaining roles may be automatically derived, which could facilitate more reliable concern location benchmarks in the future. We also conducted an exploratory study of the element roles represented in results returned by a state of the art feature location tool. The results of these two studies suggest that integrating concern element role information into evaluations can help to strengthen both the gold set establishment and the analysis of results returned by various tools.
Emily Hill 0001, David C. Shepherd, Lori L. Pollock
ICPC1
2015 Automatically Generating Test Templates from Test Names (N)
abstract
Existing specification-based testing techniques require specifications that either do not exist or are too difficult to create. As a result, they often fall short of their goal of helping developers test expected behaviors. In this paper we present a novel, natural language-based approach that exploits the descriptive nature of test names to generate test templates. Similar to how modern IDEs simplify development by providing templates for common constructs such as loops, test templates can save time and lower the cognitive barrier for writing tests. The results of our evaluation show that the approach is feasible: despite the difficulty of the task, when test names contain a sufficient amount of information, the approach's accuracy is over 80% when parsing the relevant information from the test name and generating the template.
Benwen Zhang, Emily Hill 0001, James Clause
ASE2
2014 An empirical study of identifier splitting techniques
Emily Hill 0001, Dave W. Binkley, Dawn J. Lawrie, Lori L. Pollock, K. Vijay-Shanker
Empir. Softw. Eng.1
2014 Degree-of-knowledge: Modeling a developer's knowledge of code
abstract
As a software system evolves, the system's codebase constantly changes, making it difficult for developers to answer such questions as who is knowledgeable about particular parts of the code or who needs to know about changes made. In this article, we show that an externalized model of a developer's individual knowledge of code can make it easier for developers to answer such questions. We introduce a degree-of-knowledge model that computes automatically, for each source-code element in a codebase, a real value that represents a developer's knowledge of that element based on a developer's authorship and interaction data. We present evidence that shows that both authorship and interaction data of the code are important in characterizing a developer's knowledge of code. We report on the usage of our model in case studies on expert finding, knowledge transfer, and identifying changes of interest. We show that our model improves upon an existing expertise-finding approach and can accurately identify changes for which a developer should likely be aware. We discuss how our model may provide a starting point for knowledge transfer but that more refinement is needed. Finally, we discuss the robustness of the model across multiple development sites.
Thomas Fritz 0001, Gail C. Murphy, Emerson R. Murphy-Hill, Jingwen Ou, Emily Hill 0001
ACM Trans. Softw. Eng. Methodol.5
2013 1st international workshop on natural language analysis in software engineering (NaturaLiSE 2013)
abstract
Software engineers produce code that has formal syntax and semantics, which establishes its formal meaning. However, the code also includes significant natural language found primarily in identifier names and comments. Furthermore, the code is surrounded by non-source artifacts, predominantly written in natural language. The NaturaLiSE workshop focuses on natural language analysis of software. The workshop brings together researchers and practitioners interested in exploiting natural language information to create improved software engineering tools. Participants will explore natural language analysis applied to software artifacts, combining natural language and traditional program analysis, integration of natural language analyses into client tools, mining natural language data, and empirical studies focused on evaluating the usefulness of natural language analysis.
Lori L. Pollock, Dave W. Binkley, Dawn J. Lawrie, Emily Hill 0001, Rocco Oliveto, Gabriele Bavota, Alberto Bacchelli
ICSE4
2013 Task-Driven Software Summarization
abstract
There is a growing interest in software summarization and tools for automatically producing summaries. Discussions of relevant papers at recent conferences led to the observation that software summarization needs to consider migrating away from ``is this a good summary?" and towards ``is this a useful summary?" As a result, it has been suggested that to judge usefulness, one needs to view the summary through the lens of a particular task. A preliminary investigation of this suggestion was undertaken at the 2013 ICSE workshop NaturaLiSE. Initial results and lessons learned from this investigation support the notion that task plays a significant role and thus should be considered by researchers building and accessing automatic software summarization tools.
Dave W. Binkley, Dawn J. Lawrie, Emily Hill 0001, Janet E. Burge, Ian G. Harris, Regina Hebig, Oliver Keszöcze, Karl Reed, John Slankas
ICSM3
2013 Which Feature Location Technique is Better?
abstract
Feature location is a fundamental step in software evolution tasks such as debugging, understanding, and reuse. Numerous automated and semi-automated feature location techniques (FLTs) have been proposed, but the question remains: How do we objectively determine which FLT is most effective? Existing evaluations frequently use bug fix data, which includes the location of the fix, but not what other code needs to be understood to make the fix. Existing evaluation measures such as precision, recall, effectiveness, mean average precision (MAP), and mean reciprocal rank (MRR) will not differentiate between a FLT that ranks higher these related elements over completely irrelevant ones. We propose an alternative measure of relevance based on the likelihood of a developer finding the bug fix locations from a ranked list of results. Our initial evaluation shows that by modeling user behavior, our proposed evaluation methodology can compare and evaluate FLTs fairly.
Emily Hill 0001, Alberto Bacchelli, Dave W. Binkley, Bogdan Dit, Dawn J. Lawrie, Rocco Oliveto
ICSM1
2013 Differentiating Roles of Program Elements in Action-Oriented Concerns
abstract
Many techniques have been developed to help programmers locate source code that corresponds to specific functionality, i.e., concern or feature location, as it is a frequent software maintenance activity. This paper proposes operational definitions for differentiating the roles that each program element of a concern plays with respect to the concern's implementation. By identifying the respective roles, we enable evaluations that provide more insight into comparative performance of concern location techniques. To provide definitions that are specific enough to be useful in practice, we focus on the subset of concerns that are action-oriented. We also conducted a case study that compares concern mappings derived from our role definitions with three developers' mappings across three concerns. The results suggest that our definitions capture the majority of developer-identified elements and that control-flow islands (i.e., groups of elements with little to no control flow connections) can cause developers to omit relevant elements.
Emily Hill 0001, David C. Shepherd, Lori L. Pollock, K. Vijay-Shanker
ICSM1
2013 CONQUER: A Tool for NL-Based Query Refinement and Contextualizing Code Search Results
abstract
Identifying relevant code to perform maintenance or reuse tasks is becoming increasingly difficult. Software systems continue to grow and evolve, and developers often find themselves searching within thousands to even millions of lines of code to identify code relevant to a particular maintenance task. Automated solutions are vital to help developers become more efficient at locating code to be modified when performing maintenance tasks. In order to address this need and help developers reduce the time spent finding and searching for relevant code, we have built an Eclipse-plug in, CONQUER, that helps developers identify relevant results by providing critical insight and context of how query words are used in the code. CONQUER leverages advanced natural language (NL) information in the source code to group, sort and display the results in a meaningful way. In addition, CONQUER analyzes the frequency and co-occurrence of words in the method result set to provide alternative phrases that can help further refine the query. This rich contextual hierarchy helps the developer quickly determine if the query is correct and hone in on relevant results. The NL-based organization of results reduces the number of relevance judgments the developers need to make, and thus can reduce the overall time for a maintenance task.
Manuel Roldan-Vega, Greg Mallet, Emily Hill 0001, Jerry Alan Fails
ICSM3
2013 A dataset for evaluating identifier splitters
abstract
Software engineering and evolution techniques have recently started to exploit the natural language information in source code. A key step in doing so is splitting identifiers into their constituent words. While simple in concept, identifier splitting raises several challenging issues, leading to a range of splitting techniques. Consequently, the research community would benefit from a dataset (i.e., a gold set) that facilitates comparative studies of identifier splitting techniques. A gold set of 2,663 split identifiers was constructed from 8,522 individual human splitting judgements and can be obtained from www.cs.loyola.edu/~binkley/ludiso. This set's construction and observations aimed at its effective use are described.
Dave W. Binkley, Dawn J. Lawrie, Lori L. Pollock, Emily Hill 0001, K. Vijay-Shanker
MSR4
2013 Mobile interaction and query optimization in a protein-ligand data analysis system
abstract
With current trends in integrating phylogenetic analysis into pharma-research, computing systems that integrate the two areas can help the drug discovery field. DrugTree is a tool that overlays ligand data on a protein-motivated phylogenetic tree. While initial tests of DrugTree are successful, it has been noticed that there are a number of lags concerning querying the tree. Due to the interleaving nature of the data, query optimization can become problematic since the data is being obtained from multiple sources, integrated and then presented to the user with the phylogenetic imposed upon the phylogenetic analysis layer. This poster presents our initial methodologies for addressing the query optimization issues. Our approach applies standards as well as uses novel mechanisms to help improve performance time.
Marvin Lapeine, Katherine G. Herbert-Berger, Emily Hill 0001, Nina M. Goodey
SIGMOD Conference3
2012 On the Use of Stemming for Concern Location and Bug Localization in Java
abstract
As the popularity of text-based source code search and analysis grows, the use of stemmers to strip suffixes has increased. Although widely investigated in the information retrieval community, the comparative effectiveness of stemmers in the domain of software is relatively unknown. In this paper, we investigate which of the well-known stemmers perform best in the domain of Java software for concern location and bug localization. For these two problems, we evaluate the use of stemming on over 500 search tasks for six different Java applications. Using MAP and Rank Measure, we conducted an overall qualitative study and a query-by-query quantitative study of the impact of stemming on retrieval effectiveness. As one might expect, our contribution demonstrates that how stemming affects retrieval performance is mediated by other factors, such as the use of tf-idf to filter commonly occurring terms and the precise nature of the queries. Specifically, we find that the extent to which stemming improves the retrieval performance relates to the degree of natural language content in a query.
Emily Hill 0001, Shivani Rao, Avinash C. Kak
SCAM1
2011 A comparison of stemmers on source code identifiers for software search
abstract
As the popularity of text-based source code analysis grows, the use of stemmers to strip suffixes has increased. Stemmers have been used to more accurately determine relevance between a keyword query and methods in source code for search, exploration, and bug localization. In this paper, we investigate which traditional stemmers perform best on the domain of software, specifically, Java source code. We compare the stemmers using two case studies: a comparative analysis of the unified word classes in terms of accuracy and completeness, as well as an investigation into the effectiveness of stemming for software search. Our results indicate that relative stemmer effectiveness varies with a software engineering tool such as search, justifying further research into this area.
Andrew Wiese, Valerie Ho, Emily Hill 0001
ICSM3
2011 Improving source code search with natural language phrasal representations of method signatures
abstract
As software continues to grow, locating code for maintenance tasks becomes increasingly difficult. Software search tools help developers find source code relevant to their maintenance tasks. One major challenge to successful search tools is locating relevant code when the user's query contains words with multiple meanings or words that occur frequently throughout the program. Traditional search techniques, which treat each word individually, are unable to distinguish relevant and irrelevant methods under these conditions. In this paper, we present a novel search technique that uses information such as the position of the query word and its semantic role to calculate relevance. Our evaluation shows that this approach is more consistently effective than three other state of the art search techniques.
Emily Hill 0001, Lori L. Pollock, K. Vijay-Shanker
ASE1
2010 Towards automatically generating summary comments for Java methods
abstract
Studies have shown that good comments can help programmers quickly understand what a method does, aiding program comprehension and software maintenance. Unfortunately, few software projects adequately comment the code. One way to overcome the lack of human-written summary comments, and guard against obsolete comments, is to automatically generate them. In this paper, we present a novel technique to automatically generate descriptive summary comments for Java methods. Given the signature and body of a method, our automatic comment generator identifies the content for the summary and generates natural language text that summarizes the method's overall actions. According to programmers who judged our generated comments, the summaries are accurate, do not miss important content, and are reasonably concise.
Giriprasad Sridhara, Emily Hill 0001, Divya Muppaneni, Lori L. Pollock, K. Vijay-Shanker
ASE2
2009 Automatically capturing source code context of NL-queries for software maintenance and reuse
abstract
As software systems continue to grow and evolve, locating code for maintenance and reuse tasks becomes increasingly difficult. Existing static code search techniques using natural language queries provide little support to help developers determine whether search results are relevant, and few recommend alternative words to help developers reformulate poor queries. In this paper, we present a novel approach that automatically extracts natural language phrases from source code identifiers and categorizes the phrases and search results in a hierarchy. Our contextual search approach allows developers to explore the word usage in a piece of software, helping them to quickly identify relevant program elements for investigation or to quickly recognize alternative words for query reformulation. An empirical evaluation of 22 developers reveals that our contextual search approach significantly outperforms the most closely related technique in terms of effort and effectiveness.
Emily Hill 0001, Lori L. Pollock, K. Vijay-Shanker
ICSE1
2009 Mining source code to automatically split identifiers for software analysis
abstract
Automated software engineering tools (e.g., program search, concern location, code reuse, quality assessment, etc.) increasingly rely on natural language information from comments and identifiers in code. The first step in analyzing words from identifiers requires splitting identifiers into their constituent words. Unlike natural languages, where space and punctuation are used to delineate words, identifiers cannot contain spaces. One common way to split identifiers is to follow programming language naming conventions. For example, Java programmers often use camel case, where words are delineated by uppercase letters or non-alphabetic characters. However, programmers also create identifiers by concatenating sequences of words together with no discernible delineation, which poses challenges to automatic identifier splitting. In this paper, we present an algorithm to automatically split identifiers into sequences of words by mining word frequencies in source code. With these word frequencies, our identifier splitter uses a scoring technique to automatically select the most appropriate partitioning for an identifier. In an evaluation of over 8000 identifiers from open source Java programs, our Samurai approach outperforms the existing state of the art techniques.
Eric Enslen, Emily Hill 0001, Lori L. Pollock, K. Vijay-Shanker
MSR2
2008 Identifying Word Relations in Software: A Comparative Study of Semantic Similarity Tools
abstract
Modern software systems are typically large and complex, making comprehension of these systems extremely difficult. Experienced programmers comprehend code by seamlessly processing synonyms and other word relations. Thus, we believe that automated comprehension and software tools can be significantly improved by leveraging word relations in software. In this paper, we perform a comparative study of six state of the art, English-based semantic similarity techniques and evaluate their effectiveness on words from the comments and identifiers in software. Our results suggest that applying English-based semantic similarity techniques to software without any customization could be detrimental to the performance of the client software tools. We propose strategies to customize the existing semantic similarity techniques to software, and describe how various program comprehension tools can benefit from word relation information.
Giriprasad Sridhara, Emily Hill 0001, Lori L. Pollock, K. Vijay-Shanker
ICPC2
2008 AMAP: automatically mining abbreviation expansions in programs to enhance software maintenance tools
abstract
When writing software, developers often employ abbreviations in identifier names. In fact, some abbreviations may never occur with the expanded word, or occur more often in the code. However, most existing program comprehension and search tools do little to address the problem of abbreviations, and therefore may miss meaningful pieces of code or relationships between software artifacts. In this paper, we present an automated approach to mining abbreviation expansions from source code to enhance software maintenance tools that utilize natural language information. Our scoped approach uses contextual information at the method, program, and general software level to automatically select the most appropriate expansion for a given abbreviation. We evaluated our approach on a set of 250 potential abbreviations and found that our scoped approach provides a 57% improvement in accuracy over the current state of the art.
Emily Hill 0001, Zachary P. Fry, Haley Boyd, Giriprasad Sridhara, Yana Novikova, Lori L. Pollock, K. Vijay-Shanker
MSR1
2007 Exploring the neighborhood with dora to expedite software maintenance
abstract
Completing software maintenance and evolution tasks for today's large, complex software systems can be difficult, often requiring considerable time to understand the system well enough to make correct changes. Despite evidence that successful programmers use program structure as well as identifier names to explore software, most existing program exploration techniques use either structural or lexical identifier information. By using only one type of information, automated tools ignore valuable clues about a developer's intentions - clues critical to the human program comprehension process. In this paper, we present and evaluate a technique that exploits both program structure and lexical information to help programmers more effectively explore programs. Our approach uses structural information to focus automated program exploration and lexical information to prune irrelevant structure edges from consideration. For the important program exploration step of expanding from a seed, our experimental results demonstrate that an integrated lexical-and structural-based approach is significantly more effective than a state-of-the-art structural program exploration technique
Emily Hill 0001, Lori L. Pollock, K. Vijay-Shanker
ASE1
2007 Introducing natural language program analysis
abstract
This research group presentation focuses on our work in extracting and utilizing natural language clues from source code to improve software maintenance tools. We demonstrate the valuable information that can be gained from a software system's identifiers, literals, and comments. We then present an overview of our extraction process, program representation, and a set of tools we have developedusing this natural language program analysis.
Lori L. Pollock, K. Vijay-Shanker, David C. Shepherd, Emily Hill 0001, Zachary P. Fry, Kishen Maloor
PASTE4
2007 Does a programmer's activity indicate knowledge of code?
abstract
The practice of software development can likely be improved if an externalized model of each programmer's knowledge of a particular code base is available. Some tools already assume a useful form of such a model can be created from data collected during development, such as expertise recommenders that use information about who has changed each file to suggest who might answer questions about particular parts of a system. In this paper, we report on an empirical study that investigates whether a programmer's activity can be used to build a model of what a programmer knows about a code base. In this study, nineteen professional Java programmers completed a series of questionnaires about the code on which they were working. These questionnaires were generated automatically and asked about program elements a programmer had worked with frequently and recently and ones that he had not. We found that a degree of interest model based on this frequency and recency of interaction can often indicate the parts of the code base for which the programmer has knowledge. We also determined a number of factors that may be used to improve the model, such as authorship of program elements, the role of elements, and the task being performed.
Thomas Fritz 0001, Gail C. Murphy, Emily Hill 0001
ESEC/SIGSOFT FSE3
2007 Applying Concept Analysis to User-Session-Based Testing of Web Applications
abstract
The continuous use of the web for daily operations by businesses, consumers, and the government has created a great demand for reliable web applications. One promising approach to testing the functionality of web applications leverages user-session data collected by web servers. User-session-based testing automatically generates test cases based on real user profiles. The key contribution of this paper is the application of concept analysis for clustering user sessions and a set of heuristics for test case selection. Existing incremental concept analysis algorithms are exploited to avoid collecting and maintaining large user-session data sets and thus to provide scalability. We have completely automated the process from user session collection and test suite reduction through test case replay. Our incremental test suite update algorithm coupled with our experimental study indicate that concept analysis provides a promising means for incrementally updating reduced test suites in response to newly captured user sessions with little loss in fault detection capability and program coverage.
Sreedevi Sampath, Sara Sprenkle, Emily Hill 0001, Lori L. Pollock, Amie Souter Greenwald
IEEE Trans. Software Eng.3
2006 Web Application Testing with Customized Test Requirements - An Experimental Comparison Study
abstract
Test suite reduction uses test requirement coverage to determine if the reduced test suite maintains the original suite's requirement coverage. Based on observations from our previous experimental studies on test suite reduction, we believe there is a need for customized test requirements for Web applications. In this paper, we examine usage-based customized test requirements for the test suite reduction problem in Web application testing. We conduct an extensive experimental study to evaluate the tradeoffs between five classes of customized requirements with respect to reduced test suite size, program coverage and fault detection effectiveness. Our results show that the reduced suites' program coverage and fault detection effectiveness increases with the context or data associated with the reduction requirement. Based on our experimental results, we provide guidance to testers on the most useful test requirement for Web applications in general and provide intuition on factors testers need to consider when selecting test requirements
Sreedevi Sampath, Sara Sprenkle, Emily Hill 0001, Lori L. Pollock
ISSRE3
2005 An Empirical Comparison of Test Suite Reduction Techniques for User-Session-Based Testing of Web Applications
abstract
Automated cost-effective test strategies are needed to provide reliable, secure, and usable Web applications. As a software maintainer updates an application, test cases must accurately reflect usage to expose faults that users are most likely to encounter. User-session-based testing is an automated approach to enhancing an initial test suite with real user data, enabling additional testing during maintenance as well as adding test data that represents usage as operational profiles evolve. Test suite reduction techniques are critical to the cost effectiveness of user-session-based testing because a key issue is the cost of collecting, analyzing, and replaying the large number of test cases generated from user-session data. We performed an empirical study comparing the test suite size, program coverage, fault detection capability, and costs of three requirements-based reduction techniques and three variations of concept analysis reduction applied to two Web applications. The statistical analysis of our results indicates that concept analysis-based reduction is a cost-effective alternative to requirements-based approaches.
Sara Sprenkle, Sreedevi Sampath, Emily Hill 0001, Lori L. Pollock, Amie L. Souter
ICSM3
2005 Automated replay and failure detection for web applications
abstract
User-session-based testing of web applications gathers user sessions to create and continually update test suites based on real user input in the field. To support this approach during maintenance and beta testing phases, we have built an automated framework for testing web-based software that focuses on scalability and evolving the test suite automatically as the application's operational profile changes. This paper reports on the automation of the replay and oracle components for web applications, which pose issues beyond those in the equivalent testing steps for traditional, stand-alone applications. Concurrency, nondeterminism, dependence on persistent state and previous user sessions, a complex application infrastructure, and a large number of output formats necessitate developing different replay and oracle comparator operators, which have tradeoffs in fault detection effectiveness, precision of analysis, and efficiency. We have designed, implemented, and evaluated a set of automated replay techniques and oracle comparators for user-session-based testing of web applications. This paper describes the issues, algorithms, heuristics, and an experimental case study with user sessions for two web applications. From our results, we conclude that testers performing user-session-based testing should consider their expectations for program coverage and fault detection when choosing a replay and oracle technique.
Sara Sprenkle, Emily Hill 0001, Sreedevi Sampath, Lori L. Pollock
ASE2