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. This is why, proposals have been and are still developed, to recover lost architecture descriptions from the source code and/or from run-time information of the analyzed system(s). However, in the case of real-world projects, meaningful descriptions should be provided on more levels of abstractions since the visualization of all the details usually leads to very complex overviews that hinder an easy understanding of the system?s architecture. Visualizations on more abstractions levels can ease the understanding, by offering just enough information, to understand a certain facet of the system, while abstracting away other, more granular, information. Tasks The primary goal of this thesis is to explore the existing visualization methods already proposed in the literature and to investigate their applicability in the software architecture domain. The meaningful visualization of large data sets has been (and still is) researched in many domains, such as social analysis, data mining, etc. The student will analyze the various visualizations and their properties and categorize them according to relevant criteria. Finally, the student will prepare a set of suitable proposals for the better visualization of software architectures, based on the previously identified methods. The proposals will be evaluated in the context of more user interviews.
Main phases covered in the thesis
- Thorough analysis of existing visualization methods
- Categorization/classification of identified visualizations
- Initial user interviews, meant to gather visualization requirements
- Creation of visualization proposals, that depict data on more levels of abstraction
- Proof of concept: perform a case study to check the feasibility of the developed method