Abstract
Software has today a large penetration in all infrastructure levels of the society. This
penetration took place rapidly in the last two decades and continues to increase. In the
same time, however, the software industry gets confronted with two increasingly serious
challenges: complexity and evolution. The size of software applications is growing larger.
This leads to a steep increase in complexity. Additionally, the change in requirements and
available technologies leads to softwaremodifications. As a result, a huge amount of code
needs to be maintained and updated every year (i.e. the legacy systems problem).
Software visualization is a very promising solution to the abovementioned challenges
of the software industry. It is a specialized branch of information visualization, which
visualizes artifacts related to software and its development process. In this thesis we try
to use visualization of software evolution to get insight in the development context of
software and in its evolution trends. The main question we try to answer with this is:
"How to enable users to get insight in the evolution of a software system?"
Our final goal is to improve both software understanding and decision making during
the maintenance phase of large software projects.
We start by positioning the thesis in the context of related research in the field of
both software evolution analysis and visualization. Then we perform an analysis of the
software evolution domain to formalize the problems specific to this field. To this end, we
propose a generic system evolution model and a structure based meta-model for software
description. Consequently, we use these models to give a formal definition of software
evolution.
Next we propose a visualization model for software evolution, based on the previously
introduced software evolution model. The visualization model consists of a number
of steps with specific guidelines for building visual representations. Then we present
three applications that make use of the proposed visualization model to support real life
software evolution analysis scenarios. These applications cover the most commonly used
software description models in industry: file as a set of code lines, project as a set of
files, and project as a unitary entity. For each application, we formulate relevant use
cases, present specific implementation aspects, and discuss results of use case evaluation
experiments.
We also propose in this thesis a novel visualization of data exchange processes in
Peer-to-Peer networks. While this does not address software evolution, it tackles comparable
issues, e.g., the dynamic evolution of a set of interrelated data artifacts. The aim
of presenting this visualization is twofold. First, we illustrate how to visualize different
types of software-related data than purely software source code. Secondly, we show that
the visual and interaction techniques that we have developed in the context of software
evolution visualization can be put to a good use for other applications as well.
We conclude the thesis with an inventory of reoccurring problems and solutions we
have discovered in the visualization of software evolution. Additionally, we identify
generic issues that transcend the border of the software evolution domain and we present
them together with a set of recommendation for their broader applicability. Finally, we
outline the remaining open issues, and the possible research directions that can be followed
to address them.
Original language | English |
---|---|
Qualification | Doctor of Philosophy |
Awarding Institution |
|
Supervisors/Advisors |
|
Award date | 1 Oct 2007 |
Place of Publication | Eindhoven |
Publisher | |
Print ISBNs | 978-90-386-1099-3 |
DOIs | |
Publication status | Published - 2007 |