Information about a software system's execution can help a developer with many tasks, including software testing, performance tuning, and program understanding. In almost all...
Robert J. Walker, Gail C. Murphy, Jeffrey Steinbok...
Implementing, validating, modifying, or reengineering an object-oriented system requires an understanding of the object and class interactions which occur as a program executes. T...
System migration presents a myriad of challenges in software maintenance. The user interfaces of interactive systems can undergo significant change during migration. Program unde...
Program understanding relates a computer program to the goals and requirements it is designed to accomplish. Understanding techniques that rely only on source code analysis are li...
Richard Clayton, Spencer Rugaber, Lyman Taylor, Li...
We show how hypertext-based program understanding tools eve new levels of abstraction by using inferred type information for cases where the subject software system is written in ...
As a software system evolves, its architecture will drift. System changes are often done without considering their effects on the system structure. These changes often introduce s...
John B. Tran, Michael W. Godfrey, Eric H. S. Lee, ...
Understanding program dependencies in a computer program is essential for many software engineering tasks such as program understanding, testing, debugging, reverse engineering, a...
A large amount of research is devoted to software evolution and program understanding, but these topics are often neglected in software engineering curricula. The CCSE initiative ...
Arie van Deursen, Jean-Marie Favre, Rainer Koschke...
Information about string values at key points in a program can help program understanding, reverse engineering, and forensics. We present a static-analysis technique for recoverin...
Comments are valuable especially for program understanding and maintenance, but do developers comment their code? To which extent do they add comments or adapt them when they evol...