finished by Roman Flückiger
Reverse engineering techniques help to understand programs for maintaining and evolving large, complex software systems. For this engineers need to browse and navigate the existing source code using textual and graph-like visualizations. In this Diploma Thesis the focus is on eliciting existing source code browsing and navigation techniques and apply them on data of multiple source code releases. By including the data of past releases big changes in the implementation can be highlighted allowing users to reason about implementation and design specific aspects.
The goals of this Diploma Thesis
The goal of this Diploma Thesis is to extend existing graph-like information browsing and navigation techniques and implement the techniques in a prototype tool integrated into the Eclipse IDE.
The thesis comprises a scientific and an engineering part. The scientific part is concerned with the investigation and evaluation of current information browsing and navigation techniques handling data of multiple source code releases. The focus is on graph-like techniques with emphasis on the ArchView approach. ArchView follows the Polymetric-Views principle and uses Kiviat Graphs to represent data of multiple releases.
The engineering part is concerned with the implementation of a prototype tool that supports the user in browsing and navigating source code data of multiple releases. The basic requirements for the implementation are:
- Extract and integrate the source code model and metric data from multiple source code releases of a Java project (it is recommended to use and extending the existing ArchView implementation with the Hibernate toolset).
- Provide a graphical user interface (GUI) to select a number of source code entities to browse and navigate the graphs as well as a user interface to configure the graphical representation (i.e., considering the Polymetric-Views principles).
The output of the implementation phase is a prototype tool implemented as a plug-in into the Eclipse IDE. The tool then is applied in a case study with a medium-sized Java project (e.g., Bittorrent client Azureus) to validate the improved techniques and the tool.
The envisioned outcome
- An evaluation of existing graph-like information browsing and navigation techniques;
- A prototype tool that uses and extends the techniques to handle data of multiple source code releases;
- A validation of the technique with a medium-sized Java case study.
In this Diploma Thesis you will learn
- Insights into existing graphical browsing and navigation techniques with focus on our architecture and software evolution analysis approach ArchView.
- Software architecture and design quality aspects.
- Hibernate object relational mapping tool.
- Insights into Eclipse and how to contribute to the Eclipse project.
General thesis guidelines
The typical rules of academic work must be followed. "So what is a (Diploma) Thesis" describes guidelines which must be followed. At the end of the thesis, a final report has to be written. The report should clearly be organized, follow the usual academic report structure, and has to be written in English using our s.e.a.l. LaTeX-template.
Since implementing software is also part of this thesis, state-of-the-art design, coding, and documentation standards for the software have to be obeyed.
The diploma thesis has to be concluded with a final presentation.