• Publications
  • Influence
Software systems as cities: a controlled experiment
Software visualization is a popular program comprehension technique used in the context of software maintenance, reverse engineering, and software evolution analysis. While there is a broad range ofExpand
  • 179
  • 15
  • PDF
Linking e-mails and source code artifacts
E-mails concerning the development issues of a system constitute an important source of information about high-level design decisions, low-level implementation concerns, and the social structure ofExpand
  • 160
  • 13
  • PDF
How do developers react to API deprecation?: the case of a smalltalk ecosystem
When the Application Programming Interface (API) of a framework or library changes, its clients must be adapted. This change propagation---known as a ripple effect---is a problem that has garneredExpand
  • 125
  • 11
  • PDF
A Change-based Approach to Software Evolution
Software evolution research is limited by the amount of information available to researchers: Current version control tools do not store all the information generated by developers. They do notExpand
  • 128
  • 11
  • PDF
SpyWare: a change-aware development toolset
Our research is driven by the motivation that change must be put in the center, if one wants to understand the complex processes of software evolution. We built a toolset named SpyWare which, using aExpand
  • 85
  • 8
  • PDF
How Program History Can Improve Code Completion
  • R. Robbes, M. Lanza
  • Computer Science
  • 23rd IEEE/ACM International Conference on…
  • 15 September 2008
Code completion is a widely used productivity tool. It takes away the burden of remembering and typing the exact names of methods or classes: As a developer starts typing a name, it provides aExpand
  • 118
  • 7
  • PDF
The Small Project Observatory: Visualizing software ecosystems
Software evolution research has focused mostly on analyzing the evolution of single software systems. However, it is rarely the case that a project exists as standalone, independent of others.Expand
  • 110
  • 6
  • PDF
Recovering inter-project dependencies in software ecosystems
In large software systems, knowing the dependencies between modules or components is critical to assess the impact of changes. To recover the dependencies, fact extractors analyze the system as aExpand
  • 88
  • 4
  • PDF
Mining a Change-Based Software Repository
  • R. Robbes
  • Computer Science
  • Fourth International Workshop on Mining Software…
  • 20 May 2007
Although state-of-the-art software repositories based on versioning system information are useful to assess the evolution of a software system, the information they contain is limited in severalExpand
  • 70
  • 3
  • PDF
How developers use the dynamic features of programming languages: the case of smalltalk
The dynamic and reflective features of programming languages are powerful constructs that programmers often mention as extremely useful. However, the ability to modify a program at runtime can beExpand
  • 53
  • 3
  • PDF