PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Program understanding and the concept assignment problem
Communications of the ACM
A new model of program dependences for reverse engineering
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Fuzzy set theory—and its applications (3rd ed.)
Fuzzy set theory—and its applications (3rd ed.)
Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
Concept analysis—a new framework for program understanding
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
An efficient relevant slicing method for debugging
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
The Rational Unified Process: An Introduction, Second Edition
The Rational Unified Process: An Introduction, Second Edition
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Variable Precision Reaching Definitions Analysis for Software Maintenance
CSMR '97 Proceedings of the 1st Euromicro Working Conference on Software Maintenance and Reengineering (CSMR '97)
Recovering Code to Documentation Links in OO System
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Case Study of Feature Location Using Dependence Graph
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
SNIAFL: Towards a Static Non-Interactive Approach to Feature Location
Proceedings of the 26th International Conference on Software Engineering
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
Resolving uncertainties during trace analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
How Effective Developers Investigate Source Code: An Exploratory Study
IEEE Transactions on Software Engineering
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
ConcernMapper: simple view-based separation of scattered concerns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Visualisation-based tool support for the development of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Unanticipated reuse of large-scale software features
Proceedings of the 28th international conference on Software engineering
Detecting similar Java classes using tree algorithms
Proceedings of the 2006 international workshop on Mining software repositories
Using task context to improve programmer productivity
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Combined static and dynamic analysis for inferring program dependencies using a pattern language
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Using natural language program analysis to locate and understand action-oriented concerns
Proceedings of the 6th international conference on Aspect-oriented software development
IEEE Transactions on Software Engineering
Supporting the Investigation and Planning of Pragmatic Reuse Tasks
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Suade: Topology-Based Searches for Software Investigation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
IEEE Transactions on Software Engineering
Finding Relevant Applications for Prototyping
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Exploring the neighborhood with dora to expedite software maintenance
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Feature location via information retrieval based filtering of a single scenario execution trace
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Using information retrieval to support design of incremental change of software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Filtering out methods you wish you hadn't navigated
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Developing natural language-based program analyses and tools to expedite software maintenance
Companion of the 30th international conference on Software engineering
Understanding interaction differences between newcomer and expert programmers
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Evaluating recommended applications
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Automatic identification of key classes in a software system using webmining techniques
Journal of Software Maintenance and Evolution: Research and Practice
Using information retrieval based coupling measures for impact analysis
Empirical Software Engineering
Journal of Systems and Software
SNIFF: A Search Engine for Java Using Free-Form Queries
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Combining textual and structural analysis of software artifacts for traceability link recovery
TEFSE '09 Proceedings of the 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering
Api hyperlinking via structural overlap
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A search engine for finding highly relevant applications
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Language-based replay via data flow cut
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Investigating how to effectively combine static concern location techniques
Proceedings of the 3rd International Workshop on Search-Driven Development: Users, Infrastructure, Tools, and Evaluation
Portfolio: finding relevant functions and their usage
Proceedings of the 33rd International Conference on Software Engineering
Flow-augmented call graph: a new foundation for taming API complexity
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Cross-library API recommendation using web search engines
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
An adaptive approach to impact analysis from change requests to source code
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Detecting similar software applications
Proceedings of the 34th International Conference on Software Engineering
Integrated impact analysis for managing software changes
Proceedings of the 34th International Conference on Software Engineering
On the naturalness of software
Proceedings of the 34th International Conference on Software Engineering
Locating distinguishing features using diff sets
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Concept location using formal concept analysis and information retrieval
ACM Transactions on Software Engineering and Methodology (TOSEM)
Empirical Software Engineering
Automatically mining software-based, semantically-similar words from comment-code mappings
Proceedings of the 10th Working Conference on Mining Software Repositories
Portfolio: Searching for relevant functions and their usages in millions of lines of code
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Topology analysis of software dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
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 an inherently 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 typically hundreds of dependency paths found in a non-trivial program. In this paper, we propose 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.