Search For:

Displaying 1-39 out of 39 total
Analyzing temporal API usage patterns
Found in: Automated Software Engineering, International Conference on
By Gias Uddin,Barthelemy Dagenais,Martin P. Robillard
Issue Date:November 2011
pp. 456-459
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...
 
Moving into a new software project landscape
Found in: Software Engineering, International Conference on
By Barthélémy Dagenais,Harold Ossher,Rachel K. E. Bellamy,Martin P. Robillard,Jacqueline P. de Vries
Issue Date:May 2010
pp. 275-284
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 v...
 
A detailed examination of the correlation between imports and failure-proneness of software components
Found in: Empirical Software Engineering and Measurement, International Symposium on
By Ekwa Duala-Ekoko, Martin P. Robillard
Issue Date:October 2009
pp. 34-43
Research has provided evidence that type usage in source files is correlated with the risk of failure of software components. Previous studies that investigated the correlation between type usage and component failure assigned equal blame to all the types ...
 
Reusing Program Investigation Knowledge for Code Understanding
Found in: International Conference on Program Comprehension
By Martin P. Robillard, Putra Manggala
Issue Date:June 2008
pp. 202-211
Software maintenance tasks typically involve an important amount of program investigation effort on the part of software developers. To what extent can we benefit from prior program investigation activities to decrease this effort? To investigate this ques...
 
What Makes APIs Hard to Learn? Answers from Developers
Found in: IEEE Software
By Martin P. Robillard
Issue Date:November 2009
pp. 27-34
Most software projects reuse components exposed through APIs, which provide developers access to implemented functionality. APIs have grown large and diverse, which raises questions regarding their usability. This article reports on a study of the obstacle...
 
Tracking Code Clones in Evolving Software
Found in: Software Engineering, International Conference on
By Ekwa Duala-Ekoko, Martin P. Robillard
Issue Date:May 2007
pp. 158-167
Code clones are generally considered harmful in software development, and the predominant approach is to try to eliminate them through refactoring. However, recent research has provided evidence that it may not always be practical, feasible, or cost-effect...
 
The Influence of the Task on Programmer Behaviour
Found in: International Conference on Program Comprehension
By Annie T.T. Ying, Martin P. Robillard
Issue Date:June 2011
pp. 31-40
Programmers performing a change task must understand the existing software in addition to performing the actual change. This process is likely to be affected by characteristics of the task. We investigated whether the nature of a task has any relationship ...
 
RSSE 2010: Second International Workshop on Recommendation Systems for Software Engineering
Found in: Software Engineering, International Conference on
By Reid Holmes,Martin P. Robillard,Robert J. Walker,Thomas Zimmermann
Issue Date:May 2010
pp. 455-456
The goal of this one-day workshop is to bring together researchers and practitioners with interest and experience in the theory, elaboration, and evaluation of concepts, techniques, and tools for providing recommendations to developers, managers, and other...
 
Improving API Usage through Automatic Detection of Redundant Code
Found in: Automated Software Engineering, International Conference on
By David Kawrykow, Martin P. Robillard
Issue Date:November 2009
pp. 111-122
Software projects often rely on third-party libraries made accessible through Application Programming Interfaces (APIs). We have observed many cases where APIs are used in ways that are not the most effective. We developed a technique and tool support to a...
 
Automatically Recommending Triage Decisions for Pragmatic Reuse Tasks
Found in: Automated Software Engineering, International Conference on
By Reid Holmes, Tristan Ratchford, Martin P. Robillard, Robert J. Walker
Issue Date:November 2009
pp. 397-408
Planning a complex software modification task imposes a high cognitive burden on developers, who must juggle navigating the software, understanding what they see with respect to their task, and deciding how their task should be performed given what they ha...
 
A Comparative Study of Three Program Exploration Tools
Found in: International Conference on Program Comprehension
By Brian de Alwis, Gail C. Murphy, Martin P. Robillard
Issue Date:June 2007
pp. 103-112
Programmers need tools to help explore large software systems when performing software evolution tasks. A va- riety of tools have been created to improve the effective- ness of such exploration. The usefulness of these tools has been argued largely on the ...
 
Suade: Topology-Based Searches for Software Investigation
Found in: Software Engineering, International Conference on
By Frederic Weigand Warr, Martin P. Robillard
Issue Date:May 2007
pp. 780-783
The investigation of a software system prior to a modification task often constitutes an important fraction of the overall effort associated with the task. We present Suade, an Eclipse plug-in to automatically generate suggestions for software investigatio...
 
Tracking Concerns in Evolving Source Code: An Empirical Study
Found in: Software Maintenance, IEEE International Conference on
By Martin P. Robillard
Issue Date:September 2006
pp. 479-482
The association between the description of a concern (e.g., a feature) and the code that implements it is valuable information that can degrade as the code of a system evolves. We present a study of the evolution of the implementation of a concern in 33 ve...
 
Managing Concern Interfaces
Found in: Software Maintenance, IEEE International Conference on
By Jean-Sebastien Boulanger, Martin P. Robillard
Issue Date:September 2006
pp. 14-23
Programming languages provide various mechanisms to support information hiding. One problem with information hiding, however, is that providing a stable interface behind which to hide implementation details involves fixing in advance the services offered t...
 
Clone region descriptors: Representing and tracking duplication in source code
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Ekwa Duala-Ekoko, Martin P. Robillard, Martin P. Robillard
Issue Date:June 2010
pp. 1-31
Source code duplication, commonly known as code cloning, is considered an obstacle to software maintenance because changes to a cloned region often require consistent changes to other regions of the source code. Research has provided evidence that the elim...
     
A qualitative study on project landscapes
Found in: Cooperative and Human Aspects on Software Engineering, ICSE Workshop on
By Barthelemy Dagenais, Harold Ossher, Rachel K. E. Bellamy, Martin P. Robillard, Jacqueline P. de Vries
Issue Date:May 2009
pp. 32-35
When developers join a project, they find themselves in a new project landscape and must orient themselves quickly. To investigate the nature of this project landscape, and how we could help newcomers orient themselves, we have started an exploratory study...
 
Automated API Property Inference Techniques
Found in: IEEE Transactions on Software Engineering
By Martin P. Robillard,Eric Bodden,David Kawrykow,Mira Mezini,Tristan Ratchford
Issue Date:May 2013
pp. 613-637
Frameworks and libraries offer reusable and customizable functionality through Application Programming Interfaces (APIs). Correctly using large and sophisticated APIs can represent a challenge due to hidden assumptions and requirements. Numerous approaches...
 
Retrieving Task-Related Clusters from Change History
Found in: Reverse Engineering, Working Conference on
By Martin P. Robillard, Barthélémy Dagenais
Issue Date:October 2008
pp. 17-26
During software maintenance tasks, developers often spend an important amount of effort investigating source code. This effort can be reduced if tools are available to help developers navigate the source code effectively. For this purpose, we propose to se...
 
Patterns of Knowledge in API Reference Documentation
Found in: IEEE Transactions on Software Engineering
By Walid Maalej,Martin P. Robillard
Issue Date:September 2013
pp. 1264-1282
Reading reference documentation is an important part of programming with application programming interfaces (APIs). Reference documentation complements the API by providing information not obvious from the API syntax. To improve the quality of reference do...
 
SemDiff: Analysis and recommendation support for API evolution
Found in: Software Engineering, International Conference on
By Barthelemy Dagenais, Martin P. Robillard
Issue Date:May 2009
pp. 599-602
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 c...
 
How Effective Developers Investigate Source Code: An Exploratory Study
Found in: IEEE Transactions on Software Engineering
By Martin P. Robillard, Wesley Coelho, Gail C. Murphy
Issue Date:December 2004
pp. 889-903
Prior to performing a software change task, developers must discover and understand the subset of the system relevant to the task. Since the behavior exhibited by individual developers when investigating a software system is influenced by intuition, experi...
 
Automatically Inferring Concern Code from Program Investigation Activities
Found in: Automated Software Engineering, International Conference on
By Martin P. Robillard, Gail C. Murphy
Issue Date:October 2003
pp. 225
When performing a program evolution task, developers typically spend a significant amount of effort investigating and re-investigating source code. To reduce this effort, we propose a technique to automatically infer the essence of program investigation ac...
 
FEAT A Tool for Locating, Describing, and Analyzing Concerns in Source Code
Found in: Software Engineering, International Conference on
By Martin P. Robillard, Gail C. Murphy
Issue Date:May 2003
pp. 822
No summary available.
   
Separating Features in Source Code: An Exploratory Study
Found in: Software Engineering, International Conference on
By Gail C. Murphy, Albert Lai, Robert J. Walker, Martin P. Robillard
Issue Date:May 2001
pp. 0275
Abstract: Most software systems are inflexible. Reconfiguring a system's modules to add or to delete a feature requires substantial effort. This inflexibility increases the costs of building variants of a system, amongst other problems. New languages and t...
 
A Representation for Describing and Analyzing Concerns in Source Code
Found in: Software Engineering, International Conference on
By Martin P. Robillard
Issue Date:May 2002
pp. 721
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Sometimes, such non-localized concern code is the result of inadequate design. More often, it is the result of either unanticipated ...
   
Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies
Found in: Software Engineering, International Conference on
By Martin P. Robillard, Gail C. Murphy
Issue Date:May 2002
pp. 406
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manage scattered concerns use a representation based on lines o...
 
Recommending Adaptive Changes for Framework Evolution
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Barthelemy Dagenais, Martin P. Robillard
Issue Date:September 2011
pp. 1-35
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 par...
     
Non-essential changes in version histories
Found in: Proceeding of the 33rd international conference on Software engineering (ICSE '11)
By David Kawrykow, Martin P. Robillard
Issue Date:May 2011
pp. 351-360
Numerous techniques involve mining change data captured in software archives to assist engineering efforts, for example to identify components that tend to evolve together. We observed that important changes to software artifacts are sometimes accompanied ...
     
Topology analysis of software dependencies
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Martin P. Robillard
Issue Date:August 2008
pp. 1-36
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...
     
Clonetracker: tool support for code clone management
Found in: Proceedings of the 13th international conference on Software engineering (ICSE '08)
By Ekwa Duala-Ekoko, Martin P. Robillard
Issue Date:May 2008
pp. 1-1
Code clones are generally considered to be an obstacle to software maintenance. Research has provided evidence that it may not always be practical, feasible, or cost-effective to eliminate certain clone groups through refactoring. This paper describes Clon...
     
Representing concerns in source code
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Gail C. Murphy, Martin P. Robillard
Issue Date:February 2007
pp. 3-es
A software modification task often addresses several concerns. A concern is anything a stakeholder may want to consider as a conceptual unit, including features, nonfunctional requirements, and design idioms. In many cases, the source code implementing a c...
     
NaCIN: an Eclipse plug-in for program navigation-based concern inference
Found in: Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange (eclipse '05)
By Imran Majid, Martin P. Robillard
Issue Date:October 2005
pp. 70-74
In this paper we describe NaCIN, an Eclipse plug-in that records a developer's code navigation activity and produces sets of elements potentially implementing different concerns relevant to the current task. It performs an analysis of the navigation paths ...
     
Automatic generation of suggestions for program investigation
Found in: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering (ESEC/FSE-13)
By Martin P. Robillard
Issue Date:September 2005
pp. 11-20
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 suc...
     
Just-in-time concern modeling
Found in: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software (MACS '05)
By Gail C. Murphy, Martin P. Robillard
Issue Date:May 2005
pp. 105-110
In this position paper, we propose the notion of just-in-time concern modeling. As some concerns emerge late in the software life cycle and can be ephemeral, we argue that mechanisms should be available to capture descriptions of concerns as they emerge or...
     
First international workshop on the modeling and analysis of concerns in software (MACS 2005)
Found in: Proceedings of the 27th international conference on Software engineering (ICSE '05)
By Martin P. Robillard, Peri Tarr
Issue Date:May 2005
pp. 685-685
Many software engineering activities are organized around the idea of concerns. Separation of concerns is a basic tenet of software engineering intended to facilitate the development and evolution of software systems. Unfortunately, separation of concerns ...
     
A representation for describing and analyzing concerns in source code
Found in: Proceedings of the 24th international conference on Software engineering (ICSE '02)
By Martin P. Robillard
Issue Date:May 2002
pp. 721-722
In this paper an empiric validation of a Person to Role Allocation Process is presented. In this process the allocation of persons to fulfill roles is made according to the capacities that the persons possess and those required by the roles in the software...
     
Concern graphs: finding and describing concerns using structural program dependencies
Found in: Proceedings of the 24th international conference on Software engineering (ICSE '02)
By Gail C. Murphy, Martin P. Robillard
Issue Date:May 2002
pp. 406-416
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manage scattered concerns use a representation based on lines o...
     
Designing robust Java programs with exceptions
Found in: Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications (SIGSOFT '00/FSE-8)
By Gail C. Murphy, Martin P. Robillard
Issue Date:November 2000
pp. 163-166
Exception handling mechanisms are intended to help developers build robust systems. Although an exception handling mechanism provides a basis for structuring source code dealing with unusual situations, little information is available to help guide a devel...
     
Does aspect-oriented programming work?
Found in: Communications of the ACM
By Albert Lai, Elisa L. A. Baniassad, Gail C. Murphy, Martin P. Robillard, Mik A. Kersten Kersten, Robert J. Walker
Issue Date:January 1988
pp. 75-77
The online Risks Forum has long been a hotbed for discussions of the relative merits of openness relating to the dissemination of knowledge about security vulnerabilities. The debate has now been rekindled, and is summarized here.
     
 1