Knowing where to start reverse engineering a large
software system, when no information other than the
system`s source code itself is available, is a
daunting task. Having the history of the code (i.e.,
the versions) could be of help if this would not
imply analyzing a huge amount of data. In this paper
we present an approach for identifying candidate
classes for reverse engineering and reengineering
efforts. Our solution is based on summarizing the
changes in the evolution of object-oriented software
systems by defining history measurements. Our
approach, named Yesterday`s Weather, is an analysis
based on the retrospective empirical observation
that classes which changed the most in the recent
past also suffer important changes in the near
future. We apply this approach on two case studies
and show how we can obtain an overview of the
evolution of a system and pinpoint its classes that
might change in the next versions.