• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Automatic generation of suggestions for program investigation. (2005)

by M P Robillard
Venue:In ESEC/SIGSOFT FSE,
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 86
Next 10 →

Using task context to improve programmer productivity

by Mik Kersten, Gail C. Murphy - 14th International Symposium on Foundations of Software Engineering , 2006
"... {beatmik, murphy} at cs.ubc.ca When working on a large software system, a programmer typically spends an inordinate amount of time sifting through thousands of artifacts to find just the subset of information needed to complete an assigned task. All too often, before completing the task the programm ..."
Abstract - Cited by 129 (10 self) - Add to MetaCart
{beatmik, murphy} at cs.ubc.ca When working on a large software system, a programmer typically spends an inordinate amount of time sifting through thousands of artifacts to find just the subset of information needed to complete an assigned task. All too often, before completing the task the programmer must switch to working on a different task. These task switches waste time as the programmer must repeatedly find and identify the information relevant to the task-at-hand. In this paper, we present a mechanism that captures, models, and persists the elements and relations relevant to a task. We show how our task context model reduces information overload and focuses a programmer’s work by filtering and ranking the information presented by the development environment. A task context is created by monitoring a programmer’s activity and extracting the structural relationships of program artifacts. Operations on task contexts integrate with development environment features, such as structure display, search, and change management. We have validated our approach with a longitudinal field study of Mylar, our implementation of task context for the Eclipse development environment. We report a statistically significant improvement in the productivity of 16 industry programmers who voluntarily used Mylar for their daily work.
(Show Context)

Citation Context

... some form of module, say one Java package, a programmer often needs to know how this module works within the system, requiring them to access many other modules and understand their interconnections =-=[24]-=-. The result is that a programmer must spend an inordinate amount of time navigating around the modularity-based views in an IDE to access the information needed to complete a particular task. If a pr...

Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval

by Denys Poshyvanyk, Yann-gaël Guéhéneuc, Andrian Marcus - IEEE Trans. Software Eng , 2007
"... Abstract—This paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The solution to the problem is formulated as a combination of the opinions of different experts. The experts in this work are two existing techniques for feature lo ..."
Abstract - Cited by 115 (48 self) - Add to MetaCart
Abstract—This paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The solution to the problem is formulated as a combination of the opinions of different experts. The experts in this work are two existing techniques for feature location: a scenario-based probabilistic ranking of events and an information retrieval-based technique that uses latent semantic indexing. The combination of these two experts is empirically evaluated through several case studies, which use the source code of the Mozilla Web browser and the Eclipse integrated development environment. The results show that the combination of experts significantly improves the effectiveness of feature location when compared to each of the experts used independently. Index Terms—program understanding, feature identification, concept location, dynamic and static analyses, information retrieval, Latent Semantic Indexing, scenario-based probabilistic ranking, open source software.
(Show Context)

Citation Context

... ranked results to the developer’s queries. Chen and Rajlich [25] proposed a technique for feature location based on searching the Abstract System Dependence Graph (ASDG). This process is improved in =-=[26]-=-, where the search of the dependency graph is guided based on the analysis of the topology of the structural dependencies. Some methods combine different kinds of static information (that is, lexical ...

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks

by Andrew J. Ko, Brad A. Myers, Michael J. Coblenz, Htet Htet Aung - IEEE TRANSACTIONS ON SOFTWARE ENGINEERING , 2006
"... Much of software developers’ time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debug ..."
Abstract - Cited by 107 (14 self) - Add to MetaCart
Much of software developers’ time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes. The study found that developers interleaved three activities. They began by searching for relevant code both manually and using search tools; however, they based their searches on limited and misrepresentative cues in the code, environment, and executing program, often leading to failed searches. When developers found relevant code, they followed its incoming and outgoing dependencies, often returning to it and navigating its other dependencies; while doing so, however, Eclipse’s navigational tools caused significant overhead. Developers collected code and other information that they believed would be necessary to edit, duplicate, or otherwise refer to later by encoding it in the interactive state of Eclipse’s package explorer, file tabs, and scroll bars. However, developers lost track of relevant code as these interfaces were used for other tasks, and developers were forced to find it again. These issues caused developers to spend, on average, 35 percent of their time performing the mechanics of navigation within and between source files. These observations suggest a new model of program understanding grounded in theories of information foraging and suggest ideas for tools that help developers seek, relate, and collect information in a more effective and explicit manner.

Feature Location in Source Code: A Taxonomy and Survey

by Bogdan Dit, Meghan Revelle, Malcom Gethers, Denys Poshyvanyk - Journal of Software Maintenance and Evolution: Research and Practice , 2011
"... Feature location is the activity of identifying an initial location in the source code that implements functionality in a software system. Many feature location techniques have been introduced that automate some or all of this process, and a comprehensive overview of this large body of work would be ..."
Abstract - Cited by 80 (14 self) - Add to MetaCart
Feature location is the activity of identifying an initial location in the source code that implements functionality in a software system. Many feature location techniques have been introduced that automate some or all of this process, and a comprehensive overview of this large body of work would be beneficial to researchers and practitioners. This paper presents a systematic literature survey of feature location techniques. Eighty-nine articles from 25 venues have been reviewed and classified within the taxonomy in order to organize and structure existing work in the field of feature location. The paper also discusses open issues and defines future directions in the field of feature location.

Combining Formal Concept Analysis with Information Retrieval for Concept Location in Source Code

by Denys Poshyvanyk, Andrian Marcus - in Proc. of ICPC'07 , 2007
"... The paper addresses the problem of concept location in source code by presenting an approach which combines Formal Concept Analysis (FCA) and Latent Semantic Indexing (LSI). In the proposed approach, LSI is used to map the concepts expressed in queries written by the programmer to relevant parts of ..."
Abstract - Cited by 70 (18 self) - Add to MetaCart
The paper addresses the problem of concept location in source code by presenting an approach which combines Formal Concept Analysis (FCA) and Latent Semantic Indexing (LSI). In the proposed approach, LSI is used to map the concepts expressed in queries written by the programmer to relevant parts of the source code, presented as a ranked list of search results. Given the ranked list of source code elements, our approach selects most relevant attributes from these documents and organizes the results in a concept lattice, generated via FCA. The approach is evaluated in a case study on concept location in the source code of Eclipse, an industrial size integrated development environment. The results of the case study show that the proposed approach is effective in organizing different concepts and their relationships present in the subset of the search results. The proposed concept location method outperforms the simple ranking of the search results, reducing the programmers ’ effort. 1.
(Show Context)

Citation Context

...ther static-based techniques for concept location is the one proposed by Chen et al. [9], which is based on the search of abstract system dependence graph. This approach has been recently extended in =-=[10]-=- via analysis of dependency topologies to rank elements of interest in source code. Some other methods combine other types of information obtained via static analysis (that is, textual and structural)...

Feature Location via Information Retrieval based Filtering of a Single Scenario Execution Trace

by Dapeng Liu, Andrian Marcus, Denys Poshyvanyk, Václav Rajlich - in Automated Software Engineering (ASE 2007 , 2007
"... The paper presents a semi-automated technique for feature location in source code. The technique is based on combining information from two different sources: an execution trace, on one hand and the comments and identifiers from the source code, on the other hand. Users execute a single partial scen ..."
Abstract - Cited by 60 (26 self) - Add to MetaCart
The paper presents a semi-automated technique for feature location in source code. The technique is based on combining information from two different sources: an execution trace, on one hand and the comments and identifiers from the source code, on the other hand. Users execute a single partial scenario, which exercises the desired feature and all executed methods are identified based on the collected trace. The source code is indexed using Latent Semantic Indexing, an Information Retrieval method, which allows users to write queries relevant to the desired feature and rank all the executed methods based on their textual similarity to the query. Two case studies on open source software (JEdit and Eclipse) indicate that the new technique has high accuracy, comparable with previously published approaches and it is easy to use as it considerably simplifies the dynamic analysis.
(Show Context)

Citation Context

...e source code [3, 9, 12, 33, 35, 36, 38]. Static techniques use program dependencies and the textual information from the source code and associated documentation to help the user search the software =-=[1, 4, 29, 32, 40]-=-. A number of techniques use both types of analyses [11, 25]. Both static and dynamic techniques have their own limitations. In general, dynamic techniques are conservative in nature, as execution tra...

Exploring the neighborhood with Dora to expedite software maintenance

by Emily Hill, Lori Pollock, K. Vijay-shanker - In 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE/ACM , 2007
"... 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 n ..."
Abstract - Cited by 56 (7 self) - Add to MetaCart
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.
(Show Context)

Citation Context

..., variable def-use, or type hierarchy relationships. In contrast to lexical searches, navigation suggestions utilize program structure information to automatically recommend relevant sections of code =-=[32, 39]-=-. Unfortunately, a single program element may be structurally connected to tens or hundreds of other elements, when only a handful are relevant to the maintenance task. Thus, most existing program exp...

On the Naturalness of Software

by Abram Hindle, Earl Barr, Zhendong Su, Prem Devanbu, Mark Gabel
"... Abstract—Natural languages like English are rich, complex, and powerful. The highly creative and graceful use of languages like English and Tamil, by masters like Shakespeare and Avvaiyar, can certainly delight and inspire. But in practice, given cognitive constraints and the exigencies of daily lif ..."
Abstract - Cited by 48 (8 self) - Add to MetaCart
Abstract—Natural languages like English are rich, complex, and powerful. The highly creative and graceful use of languages like English and Tamil, by masters like Shakespeare and Avvaiyar, can certainly delight and inspire. But in practice, given cognitive constraints and the exigencies of daily life, most human utterances are far simpler and much more repetitive and predictable. In fact, these utterances can be very usefully modeled using modern statistical methods. This fact has led to the phenomenal success of statistical approaches to speech recognition, natural language translation, question-answering, and text mining and comprehension. We begin with the conjecture that most software is also natural, in the sense that it is created by humans at work, with all the attendant constraints and limitations—and thus, like natural language, it is also likely to be repetitive and predictable. We then proceed to ask whether a) code can be usefully modeled by statistical language models and b) such models can be leveraged to support software engineers. Using the widely adopted n-gram model, we provide empirical evidence supportive of a positive answer to both these questions. We show that code is also very repetitive, and in fact even more so than natural languages. As an example use of the model, we have developed a simple code completion engine for Java that, despite its simplicity, already improves Eclipse’s completion capability. We conclude the paper by laying out a vision for future research in this area. Keywords-language models; n-gram; nature language processing; code completion; code suggestion I.
(Show Context)

Citation Context

...ed to strncat) is evidence for a potential buffer flow, but not conclusive proof. As another example, suppose 3 related methods (wherein the “relatedness” has been detected using a recommender system =-=[32, 33]-=-) open, access, close are called together in the same method, with the 3 methods occurring in that textual order in the code, and access occurring within a loop. This is evidence (albeit not conclusiv...

A Search Engine For Finding Highly Relevant Applications

by Mark Grechanik , Chen Fu, Qing Xie, Collin Mcmillan , Denys Poshyvanyk, Chad Cumby , 2010
"... A fundamental problem of finding applications that are highly relevant to development tasks is the mismatch between the high-level intent reflected in the descriptions of these tasks and low-level implementation details of applications. To reduce this mismatch we created an approach called Exemplar ..."
Abstract - Cited by 38 (13 self) - Add to MetaCart
A fundamental problem of finding applications that are highly relevant to development tasks is the mismatch between the high-level intent reflected in the descriptions of these tasks and low-level implementation details of applications. To reduce this mismatch we created an approach called Exemplar (EXEcutable exaMPLes ARchive) for finding highly relevant software projects from large archives of applications. After a programmer enters a naturallanguage query that contains high-level concepts (e.g., MIME, data sets), Exemplar uses information retrieval and program analysis techniques to retrieve applications that implement these concepts. Our case study with 39 professional Java programmers shows that Exemplar is more effective than Sourceforge in helping programmers to quickly find highly relevant applications.

Topology analysis of software dependencies

by Martin P. Robillard - ACM Transactions on Software Engineering and Methodology
"... Before performing a modification task, a developer usually has to investigate the source code of a system to understand how to carry out the task. Discovering the code relevant to a change task is costly because it is a human activity whose success depends on a large number of unpredictable factors, ..."
Abstract - Cited by 37 (5 self) - Add to MetaCart
Before performing a modification task, a developer usually has to investigate the source code of a system to understand how to carry out the task. Discovering the code relevant to a change task is costly because it is a human activity whose success depends on a large number of unpredictable factors, such as intuition and luck. Although studies have shown that effective developers tend to explore a program by following structural dependencies, no methodology is available to guide their navigation through the thousands of dependency paths found in a nontrivial program. We describe a technique to automatically propose and rank program elements that are potentially interesting to a developer investigating source code. Our technique is based on an analysis of the topology of structural dependencies in a program. It takes as input a set of program elements of interest to a developer and produces a fuzzy set describing other elements of potential interest. Empirical evaluation of our technique indicates that it can help developers quickly select program elements worthy of investigation while avoiding less interesting ones.
Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University