Documents
Link to Final Thesis Link to Intermediate Talk Slides Link to Final Talk Slides
Background
The architecture of a software application or of a family of software applications has a big impact on various important aspects, such as modifiability, maintainability, understandability, etc. In the case of an existing project, the architecture needs to be understood and meaningfully evolved. However, it is often the case that architectures degenerate with the addition of new requirements. Once changes have been made to the code, developers hesitate to promote the documentation of the undergone changes at the architecture description level, because of various reasons: lack of time, lack of understanding the importance of such an activity, lack of understanding the principles that should drive the implementation of changes, fear that the changes are not considered architecture-compliant, or very often, the fact that the architecture description is very old and needs extensive updating until the new changes can be represented.
Tasks
The primary goal of this thesis is to develop a software prototype for the extraction of software architecture dynamic views from Java-based software systems. The extraction should be done by analyzing the runtime of the considered software system. To make this possible, the code should be ?enhanced? with architectural information in an unobtrusive but analyzable manner. The student will have to investigate ways how this tagging can be made possible. To architecturally tag the code, the student will develop a rudimentary meta-model that contains relevant architecture information (e.g., ?layer?, ?component?, ?pipe?, ?filter?). However, designing a complete architecture meta-model is not part of the current thesis. Next, based on the analysis results, dynamic views at various abstraction levels should be extracted and displayed using relevant visualizations. The thesis will end with a case study that proves the applicability of the developed extraction method.
Main phases covered in the thesis
- Thorough analysis of related work
- Creation of a ?rudimentary? meta-model, containing some basic architecture elements of interest
- Develop a tagging method to architecturally enhance the source code of the system. Alternatively, an already existing monitoring framework can also be extended (e.g. the Kieker Framework)
- Extract runtime information from the running system and create suitable visualizations at several abstraction levels
- Proof of concept: perform a case study to show the applicability of the developed method
Resources
Project information
Finished
Master
Johannes Dohmen
2013-012