| Abstract |
Software systems are subject to continuous changes to adapt to new and
changing requirements.
This phenomenon, known as software evolution, leads in the long term to
software aging: The size and the complexity of systems increase, while their
quality decreases. In this context, it is no wonder that software
maintenance claims the most part of a software system's cost. In the last
two decades, researchers have focused on mining and analyzing software
repositories, to understand software evolution and support maintenance
activities.
In this presentation, we propose an *integrated* view of software evolution
that combines different evolutionary aspects. Our hypothesis is that an
integrated and flexible approach supports an *extensible* set of software
maintenance activities.
To this aim, we present a meta-model that integrates two aspects of software
evolution: source code and software defects. We implemented our approach in
a framework that, by retrieving information from source code and defect
repositories, serves as a basis to create analysis techniques and tools.
To validate our hypothesis, we devised and evaluated, on top of our
approach, a number of analysis techniques that achieve two main goals:
(1)Inferring the causes of problems, and
(2) predicting the future of software
systems. |