Comprehension is a key activity that underpins a variety of software maintenance and engineering tasks. The task of understanding object-oriented systems is hampered by the fact t...
Program comprehension research can be characterized by both the theories that provide rich explanations about how programmers comprehend software, as well as the tools that are us...
The paper presents a usability study conducted with graduate and undergraduate computer science students, designed to evaluate the effectiveness of a software visualization tool n...
Very little is known about professional programmers’ mental representations of variables, yet this information is vital in designing effective tools for program comprehension. I...
Dynamic software visualization is designed to provide programmers with insights as to what the program is doing. Most current visualizations either use program traces to show info...
Interoperability is the challenge involved in getting software components to work together. This working session discusses in depth the state of the art in reengineering tool inte...
The fact that crosscutting concerns (aspects) cannot be well modularized in object oriented software is an impediment to program comprehension: the implementation of a concern is ...
Mariano Ceccato, Marius Marin, Kim Mens, Leon Moon...
This paper presents an analysis of software architecture as social artifact, that is, something that software developers talk about and use in their work. This analysis is histori...
We perform knowledge discovery in software archives in order to detect refactorings on the level of classes and methods. Our REFVIS prototype finds these refactorings in CVS repo...
Incremental software change adds new functionality to software. It is the foundation of software evolution, maintenance, iterative development, agile development, and other softwa...
Jonathan Buckner, Joseph Buchta, Maksym Petrenko, ...