Navigation auf uzh.ch
finished by Mark Odermatt.
Program comprehension is a necessary step in achieving objectives, such as, fixing errors, changing or adding features, or improving code and design. Modern development environments lack of adequate visual support for advanced program comprehension tasks. Based on our experience with existing tools, such as Rigi, Creole, and Imagix-4D, we developed Dependency Analyzer for Java (DA4Java).The main objective of DA4Java is to reduce the cognitive effort to understand Java source code. DA4Java uses nested graphs and a set of features to incrementally compose graphs and filter irrelevant nodes and edges. The current implementation of DA4Java provides an initial set of features which you will extend in this Bachelor project.
The goal of this thesis is to extend DA4Java by undo/redo functionality, snapshot functionality, and Polymetric Views.
The first phase of this Bachelor project is concerned with understanding the current implementation of DA4Java and determining the state-of-the-art in source code visualization and navigation techniques. The publications on DA4Java, Shrimp & Creole, and CodeCrawler provide the starting points for your investigations. A cognitive model for program comprehension is presented by von Mayrhauser and Vans.
The second phase shall focus on extending DA4Java. The core features to implement are:
Alternative ideas to improve the visualizations of Java source code are welcome. A refactoring of the current source code will be done, if needed. The following libraries and models are needed for the implementation: Hibernate, FAMIX meta model, yFiles, and Evolizer.
In the last phase of your project you will evaluate your approach with the source code of an Eclipse plugin and write the final report.
When | What |
---|---|
1st month | A report with ideas on how to implement the set of new features. |
2nd month | Improved user-interface, visualization and filter of other dependency relationships. |
3rd month | Undo/redo, snapshot functionality, and Polymetric Views. |
4th month | Evaluation and Final report. |
The typical rules of academic work must be followed. "So what is a 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 bachelor thesis has to be concluded with a final presentation for the members of the Software Evolution and Architecture Lab (s.e.a.l.).
Martin Pinzger, Prof. Harald Gall.
More information on "How to do a Bachelor Thesis at IFI" is provided here.