finished by Dominik Schaffhauser.
Bug reporting systems and versioning systems provide a wealth of information that can be used to analyze architecture and design quality aspects of software systems. In this Diploma Thesis the focus is on analyzing and visualizing the impact of changes due to reported problems and enhancements in the Bugzilla repository. Finding the fine-grained changes associated with problem reports will allow us to build the link between them and reason about architecture and design specific quality aspects, such as the stability of class and module interfaces. Based on this reasoning different suggestions could be made, such as about the:
- Interface Stability: The architect/developer should consider to re-design a part of a system in order to ease fixing certain problems and implement enhancements.
- Problem and Change Impact: Aid software architects and developers to better assess the costs for fixing a problem or extending and adding features.
The goals of this Diploma Thesis
The goal of this Diploma Thesis is to develop an Eclipse plug-in that:
- Analyzes and visualizes the impact of bugs on source code on a fine-grained level (method-level);
- Investigates how class interfaces are affected by certain bugs and feature enhancements.
The first phase of the Diploma Thesis is concerned with investigating quality aspects of software architectures and design with focus on module and class interfaces. The output is a catalogue of quality aspects of module and class interfaces that are subject to analysis. In addition, the student will get familiar with our previous and related work in the area of software evolution and architecture analysis. The latter also includes the concepts and tools that we have developed so far.
The second phase is concerned with developing the Eclipse plug-in. The plug-in has to be based on our existing tools. Regarding the implementation we foresee the following key functionality:
- Selection of a particular bug;
- Navigation of the problem to affected source code entities (files, classes, methods, attributes);
- Visualization and analysis of the problem by relating them to the fine-grained changes to fix a problem;
- Based on the quality aspect catalogue use analysis results to provide suggestions for the software developer and architect (e.g., point to interfaces with certain change characteristics);
The final phase is concerned with an evaluation of the Eclipse plug-in with a medium-sized Java software project.
The envisioned outcome
- A catalogue of software architecture and design quality aspects regarding module and class interfaces.
- An implementation of the prototype tool on basis of the Eclipse platform.
- A validation of the tool with a medium-sized open source software project.
In this Diploma Thesis you will learn
- Software architecture and design quality aspects.
- Bugzilla, a bug tracking system storing the information about reported problems and enhancements.
- CVS, a versioning system storing the information about source code changes.
- Hibernate, an 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. This document describes guidelines which must be followed. The thesis starts with preparing a project plan that gives a brief description of each planned activity and describes the project milestones. At the end of the thesis, a final report has to be written. The report should be clearly organized and follow the usual academic report structure.
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 for the members of the Software Evolution and Architecture Lab (s.e.a.l.).