The analysis of the evolution of software systems is a useful source of information for a variety of activities, such as reverse engineering, maintenance, and predicting the future...
Recovering the architecture is the first step towards reengineering a software system. Many reverse engineering tools use top-down exploration as a way of providing a visual and ...
Software applications typically have many features that vary in their similarity. We define a measurement of similarity between pairs of features based on their underlying implem...
Jay Kothari, Trip Denton, Spiros Mancoridis, Ali S...
Jointly deployed aspects may interact with each other. While some interactions might be intended, unintended interactions (interferences) can break a program. Detecting and resolv...
In software evolution research logical coupling has extensively been used to recover the hidden dependencies between source code artifacts. They would otherwise go lost because of...