Studying how a software system has evolved over time is difficult, time consuming, and costly; existing techniques are often limited in their applicability, are hard to extend, a...
Maintenance and evolution of complex software systems (such as large telecom embedded devices) involve activities such as reverse engineering (RE) and software visualization. Alth...
When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising tech...
Impact analysis is needed for the planning and estimation of software maintenance projects. Traditional impact analysis techniques tend to be too expensive for this phase, so ther...
A means to add explicit structure to program source code is presented. XML is used to augment source code with syntactic information from the parse tree. More importantly, comment...
Jonathan I. Maletic, Michael L. Collard, Andrian M...
In this paper, we take the concept of benchmarking as used extensively in computing and apply it to evaluating C++ fact extractors. We demonstrated the efficacy of this approach b...
Susan Elliott Sim, Richard C. Holt, Steve M. Easte...
The paper presents an overview of the role of concepts in program comprehension. It discusses concept location, in which the implementation of a specific concept is located in the...
Program comprehension tools extract, organize and analyze information about the design and implementation of software systems. Before tools can exchange information, they must sha...
While code understanding is the primary program comprehension activity, it is quite challenging to recognize the application requirements from code, since they have usually been o...
Mohammad El-Ramly, Eleni Stroulia, Paul G. Sorenso...
Program understanding tools manipulate program represensuch as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinat...