As libraries are the most widespread form of software reuse, the usability of their APIs substantially influences the productivity of programmers in all software development phas...
Developers rely on the mechanisms provided by their IDE to browse and navigate a large software system. These mechanisms are usually based purely on a system’s static source cod...
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 prog...
As an object-oriented system evolves, its architecture tends to drift away from the original design. Knowledge of how the system has changed at coarse-grained levels is key to und...
Modern software systems are typically large and complex, making comprehension of these systems extremely difficult. Experienced programmers comprehend code by seamlessly processi...
Giriprasad Sridhara, Emily Hill, Lori L. Pollock, ...