Barthélémy Dagenais

dblp:82/3722 · DBLP profile ↗
← Back
14ranked-venue papers
10as first author
0since 2021 · last 2015
—ORCID · none

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

Software engineering, systems software and programming languages · 14 · 10 first-author

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
13 papers
Software maintenance and evolution · 66% Empirical software engineering · 27% Program analysis · 4%
Databases, data mining, and information retrieval
1 paper
Information retrieval · 100%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering
developer studies
0.432015
Extracting Development Tasks to Navigate Software Documentation · IEEE Trans. Software Eng. 2015
Creating and evolving developer documentation: understanding the decisions of open source contributors · SIGSOFT FSE 2010
Moving into a new software project landscape · ICSE (1) 2010
Software maintenance and evolution
software documentation
0.422015
Extracting Development Tasks to Navigate Software Documentation · IEEE Trans. Software Eng. 2015
Recovering traceability links between an API and its learning resources · ICSE 2012
Empirical software engineering
mining software repositories
0.342012
Temporal analysis of API usage concepts · ICSE 2012
Analyzing temporal API usage patterns · ASE 2011
Recovering traceability links between an API and its learning resources · ICSE 2012
Software maintenance and evolution
software ecosystems
0.232010
SemDiff: Analysis and recommendation support for API evolution · ICSE 2009
Recommending adaptive changes for framework evolution · ICSE 2008
Moving into a new software project landscape · ICSE (1) 2010
Software maintenance and evolution › software evolution
framework evolution
0.222011
Recommending Adaptive Changes for Framework Evolution · ACM Trans. Softw. Eng. Methodol. 2011
Recommending adaptive changes for framework evolution · ICSE 2008
Software maintenance and evolution
software maintenance
0.212014
Using Traceability Links to Recommend Adaptive Changes for Documentation Evolution · IEEE Trans. Software Eng. 2014
Software maintenance and evolution › software evolution
API evolution
0.222009
SemDiff: Analysis and recommendation support for API evolution · ICSE 2009
Recommending adaptive changes for framework evolution · ICSE 2008
Software maintenance and evolution
refactoring
0.222009
SemDiff: Analysis and recommendation support for API evolution · ICSE 2009
Recommending adaptive changes for framework evolution · ICSE 2008
Software maintenance and evolution › API usage
API usage analysis
0.112012
Temporal analysis of API usage concepts · ICSE 2012
Software maintenance and evolution › traceability
traceability link recovery
0.112012
Recovering traceability links between an API and its learning resources · ICSE 2012
Software maintenance and evolution
API usage
0.112011
Analyzing temporal API usage patterns · ASE 2011
Software maintenance and evolution › API usage
API usage pattern mining
0.112011
Analyzing temporal API usage patterns · ASE 2011
Software maintenance and evolution › recommendation system for software engineering
change recommendation
0.112011
Recommending Adaptive Changes for Framework Evolution · ACM Trans. Softw. Eng. Methodol. 2011
Empirical software engineering › developer studies › software teams
newcomer onboarding
0.112010
Moving into a new software project landscape · ICSE (1) 2010
Program analysis › static analysis › incomplete code analysis
partial program analysis
0.112008
Enabling static analysis for partial java programs · OOPSLA 2008
Program analysis
static analysis
0.112008
Enabling static analysis for partial java programs · OOPSLA 2008
Programming languages and type systems
type inference
0.112008
Enabling static analysis for partial java programs · OOPSLA 2008
Information retrieval › query suggestion
query auto-completion
0.112015
Extracting Development Tasks to Navigate Software Documentation · IEEE Trans. Software Eng. 2015
Information retrieval
search interfaces
0.112015
Extracting Development Tasks to Navigate Software Documentation · IEEE Trans. Software Eng. 2015
Software maintenance and evolution › code change analysis
change detection
0.122011
Recommending Adaptive Changes for Framework Evolution · ACM Trans. Softw. Eng. Methodol. 2011
Recommending adaptive changes for framework evolution · ICSE 2008
Software maintenance and evolution › software evolution
code evolution
0.012007
Inferring structural patterns for concern traceability in evolving software · ASE 2007
Software maintenance and evolution
software evolution
0.012007
Inferring structural patterns for concern traceability in evolving software · ASE 2007

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

natural language processing · 0.4retrospective analysis · 0.2pattern mining · 0.1temporal API usage mining · 0.1semdiff · 0.1related change detection · 0.1machine learning · 0.1qualitative interview study · 0.1grounded theory · 0.1document revision analysis · 0.1
YearPublicationVenuePosition
2015 Extracting Development Tasks to Navigate Software Documentation
abstract
Knowledge management plays a central role in many software development organizations. While much of the important technical knowledge can be captured in documentation, there often exists a gap between the information needs of software developers and the documentation structure. To help developers navigate documentation, we developed a technique for automatically extracting tasks from software documentation by conceptualizing tasks as specific programming actions that have been described in the documentation. More than 70 percent of the tasks we extracted from the documentation of two projects were judged meaningful by at least one of two developers. We present TaskNavigator, a user interface for search queries that suggests tasks extracted with our technique in an auto-complete list along with concepts, code elements, and section headers. We conducted a field study in which six professional developers used TaskNavigator for two weeks as part of their ongoing work. We found search results identified through extracted tasks to be more helpful to developers than those found through concepts, code elements, and section headers. The results indicate that task descriptions can be effectively extracted from software documentation, and that they help bridge the gap between documentation structure and the information needs of software developers.
Christoph Treude, Martin P. Robillard, Barthélémy Dagenais
IEEE Trans. Software Eng.3
2014 Using Traceability Links to Recommend Adaptive Changes for Documentation Evolution
abstract
Developer documentation helps developers learn frameworks and libraries, yet developing and maintaining accurate documentation requires considerable effort and resources. Contributors who work on developer documentation often need to manually track all changes in the code, determine which changes are significant enough to document, and then, adapt the documentation. We propose AdDoc, a technique that automatically discovers documentation patterns, i.e., coherent sets of code elements that are documented together, and that reports violations of these patterns as the code and the documentation evolves. We evaluated our approach in a retrospective analysis of four Java open source projects and found that at least 50 percent of all the changes in the documentation were related to existing documentation patterns. Our technique allows contributors to quickly adapt existing documentation, so that they can focus their documentation effort on the new features.
Barthélémy Dagenais, Martin P. Robillard
IEEE Trans. Software Eng.1
2012 Recovering traceability links between an API and its learning resources
abstract
Large frameworks and libraries require extensive developer learning resources, such as documentation and mailing lists, to be useful. Maintaining these learning resources is challenging partly because they are not explicitly linked to the frameworks' API, and changes in the API are not reflected in the learning resources. Automatically recovering traceability links between an API and learning resources is notoriously difficult due to the inherent ambiguity of unstructured natural language. Code elements mentioned in documents are rarely fully qualified, so readers need to understand the context in which a code element is mentioned. We propose a technique that identifies code-like terms in documents and links these terms to specific code elements in an API, such as methods. In an evaluation study with four open source systems, we found that our technique had an average recall and precision of 96%.
Barthélémy Dagenais, Martin P. Robillard
ICSE1
2012 Temporal analysis of API usage concepts
abstract
Software reuse through Application Programming Interfaces (APIs) is an integral part of software development. The functionality offered by an API is not always accessed uniformly throughout the lifetime of a client program. We propose Temporal API Usage Pattern Mining to detect API usage patterns in terms of their time of introduction into client programs. We detect concepts as distinct groups of API functionality from the change history of a client program. We locate those concepts in the client change history and detect temporal usage patterns, where a pattern contains a set of concepts that were added into the client program in a specific temporal order. We investigated the properties of temporal API usage patterns through a multiple-case study of three APIs and their use in up to 19 client software projects. Our technique was able to detect a number of valuable patterns in two out of three of the APIs investigated. Further investigation showed some patterns to be relatively consistent between clients, produced by multiple developers, and not trivially derivable from program structure or API documentation.
Gias Uddin 0001, Barthélémy Dagenais, Martin P. Robillard
ICSE2
2011 Analyzing temporal API usage patterns
abstract
Software reuse through Application Programming Interfaces (APIs) is an integral part of software development. As developers write client programs, their understanding and usage of APIs change over time. Can we learn from long-term changes in how developers work with APIs in the lifetime of a client program? We propose Temporal API Usage Mining to detect significant changes in API usage. We describe a framework to extract detailed models representing addition and removal of calls to API methods over the change history of a client program. We apply machine learning technique to these models to semi-automatically infer temporal API usage patterns, i.e., coherent addition of API calls at different phases in the life-cycle of the client program.
Gias Uddin 0001, Barthélémy Dagenais, Martin P. Robillard
ASE2
2011 Recommending Adaptive Changes for Framework Evolution
abstract
In the course of a framework’s evolution, changes ranging from a simple refactoring to a complete rearchitecture can break client programs. Finding suitable replacements for framework elements that were accessed by a client program and deleted as part of the framework’s evolution can be a challenging task. We present a recommendation system, SemDiff, that suggests adaptations to client programs by analyzing how a framework was adapted to its own changes. In a study of the evolution of one open source framework and three client programs, our approach recommended relevant adaptive changes with a high level of precision. In a second study of the evolution of two frameworks, we found that related change detection approaches were better at discovering systematic changes and that SemDiff was complementary to these approaches by detecting non-trivial changes such as when a functionality is imported from an external library.
Barthélémy Dagenais, Martin P. Robillard
ACM Trans. Softw. Eng. Methodol.1
2010 Moving into a new software project landscape
abstract
When developers join a software development project, they find themselves in a project landscape, and they must become familiar with the various landscape features. To better understand the nature of project landscapes and the integration process, with a view to improving the experience of both newcomers and the people responsible for orienting them, we performed a grounded theory study with 18 newcomers across 18 projects. We identified the main features that characterize a project landscape, together with key orientation aids and obstacles, and we theorize that there are three primary factors that impact the integration experience of newcomers: early experimentation, internalizing structures and cultures, and progress validation.
Barthélémy Dagenais, Harold Ossher, Rachel K. E. Bellamy, Martin P. Robillard, Jacqueline de Vries
ICSE (1)1
2010 Creating and evolving developer documentation: understanding the decisions of open source contributors
abstract
Developer documentation helps developers learn frameworks and libraries. To better understand how documentation in open source projects is created and maintained, we performed a qualitative study in which we interviewed core contributors who wrote developer documentation and developers who read documentation. In addition, we studied the evolution of 19 documents by analyzing more than 1500 document revisions. We identified the decisions that contributors make, the factors influencing these decisions and the consequences for the project. Among many findings, we observed how working on the documentation could improve the code quality and how constant interaction with the projects' community positively impacted the documentation.
Barthélémy Dagenais, Martin P. Robillard
SIGSOFT FSE1
2010 Recommending change clusters to support software investigation: an empirical study
abstract
Abstract During software maintenance tasks, developers often spend a valuable amount of effort investigating source code. This effort can be reduced if tools are available to help developers navigate the source code effectively. We studied to what extent developers can benefit from information contained in clusters of change sets to guide their investigation of a software system. We defined change clusters as groups of change sets that have a certain amount of elements in common. Our analysis of 4200 change sets for seven different systems and covering a cumulative time span of over 17 years of development showed that less than one in five tasks overlapped with change clusters. Furthermore, a detailed qualitative analysis of the results revealed that only 13% of the clusters associated with applicable change tasks were likely to be useful. We conclude that change clusters can only support a minority of change tasks, and should only be recommended if it is possible to do so at minimal cost to the developers. Copyright © 2009 John Wiley & Sons, Ltd.
Martin P. Robillard, Barthélémy Dagenais
J. Softw. Maintenance Res. Pract.2
2009 SemDiff: Analysis and recommendation support for API evolution
abstract
As a framework evolves, changes in its application programming interface (API) can break client programs that extend the framework. Repairing a client program can be a challenging task because developers need to understand the context surrounding the API change. This paper describes SemDiff, a tool that recommends replacements for framework methods that were accessed by a client program and deleted during the evolution of the framework. SemDiff recommends replacements for non-trivial changes undiscovered by other change-detection techniques and also enables developers to look at the context of the changes that led to the deletion of a framework method.
Barthélémy Dagenais, Martin P. Robillard
ICSE1
2008 Recommending adaptive changes for framework evolution
abstract
In the course of a framework's evolution, changes ranging from a simple refactoring to a complete rearchitecture can break client programs. Finding suitable replacements for framework elements that were accessed by a client program and deleted as part of the framework's evolution can be a challenging task. We present a recommendation system, SemDiff, that suggests adaptations to client programs by analyzing how a framework adapts to its own changes. In a study of the evolution of the Eclipse JDT framework and three client programs, our approach recommended relevant adaptive changes with a high level of precision, and detected non-trivial changes typically undiscovered by current refactoring detection techniques.
Barthélémy Dagenais, Martin P. Robillard
ICSE1
2008 Enabling static analysis for partial java programs
abstract
Software engineering tools often deal with the source code of programs retrieved from the web or source code repositories. Typically, these tools only have access to a subset of a program's source code (one file or a subset of files) which makes it difficult to build a complete and typed intermediate representation (IR). Indeed, for incomplete object-oriented programs, it is not always possible to completely disambiguate the syntactic constructs and to recover the declared type of certain expressions because the declaration of many types and class members are not accessible.
Barthélémy Dagenais, Laurie J. Hendren
OOPSLA1
2008 Automatically locating framework extension examples
abstract
Using and extending a framework is a challenging task whose difficulty is exacerbated by the poor documentation that generally comes with the framework. Even in the presence of documentation, developers often desire implementation examples for concrete guidance. We propose an approach that automatically locates implementation examples from a code base given lightweight documentation of a framework. Based on our experience with concern-oriented documentation, we devised an approach that uses the framework documentation as a template and that finds instances of this template in a code base. The concern instances represent self-contained and structured implementation examples: the relationships and the roles of parts composing the examples are uncovered and explained. We implemented our approach in a tool and conducted a study comparing the results of our tool with results provided by Eclipse committers, showing that our approach can locate examples with high precision.
Barthélémy Dagenais, Harold Ossher
SIGSOFT FSE1
2007 Inferring structural patterns for concern traceability in evolving software
abstract
As part of the evolution of software systems, effort is often invested to discover in what parts of the source code a feature (or other concern) is implemented. Unfortunately, knowledge about a concern's implementation can become invalid as the system evolves. We propose to mitigate this problem by automatically inferring structural patterns among the elements identified as relevant to a concern's implementation. We then document the inferred patterns as rules that can be checked as the source code evolves. Checking whether structural patterns hold across different versions of a system enables the automatic identification of new elements related to a documented concern. We implemented our technique for JAVA in an Eclipse plug-in called ISIS and applied it to a number of concerns. With a case study spanning 34 versions of the development history of an open-source system, we show how our approach supports the tracking of a concern's implementation through modifications such as extensions and refactorings
Barthélémy Dagenais, Silvia Breu, Frédéric Weigand Warr, Martin P. Robillard
ASE1