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...
To support understanding a specific GUI functionality in a program, we propose a visualization technique that presents the correspondence between the screens before and after the...
Libraries are the most widespreaded form of software reuse. In order to properly use a library API, its clients should fulfill a series of (many times implicit) assumptions made ...
The way in which a system’s software archive is partitioned influences the evolvability of that system. The partition of a software archive is mostly assessed by looking at the...
Adam Vanya, Lennart Holland, A. Steven Klusener, P...
REportal is an existing web-based reverse engineering portal web site that provides access to a suite of reverse engineering and program comprehension tools via a web This abstrac...
William M. Mongan, Maxim Shevertalov, Spiros Manco...
Inheritance is an important mechanism when developing object-oriented programs with class-based programming languages: it enables subtyping, polymorphism, and code reuse. Inherita...
Many program comprehension tools use graphs to visualize and analyze source code. The main issue is that existing approaches create graphs overloaded with too much information. Gr...
Martin Pinzger, Katja Grafenhain, Patrick Knab, Ha...
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...
Reusing syntax specifications without embedded arbitrary semantic actions is straightforward because the semantic analysis phases of new applications can feed off trees or other ...
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, ...