Extracting Up-to-date Architecture Models based on Clustering of Run-time Information

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, not understanding the importance of this activity, etc. Methods and tool support for recovering the current state of the software architecture have already been proposed, but they typically address the reconstruction of the static and dynamic views separately. The purpose of this master thesis is to develop a combined, two-folded solution that, first, aims to recover the static view of the architecture based on information about the software?s behavior and, second, maps the software?s behavior on the output of static reconstruction tools to study their interactions. The outputs of the previous two steps will be then analyzed and compared. It will be then researched if such a combined analysis can provide useful information for software architects that is otherwise not available.

Tasks

The primary goal of this thesis is to develop a software prototype for the combined reconstruction of software architecture static and dynamic views. A method and tool-support for the extraction of information regarding the software?s behavior and its mapping on higher level architecture units has already been developed in the context of the ARAMIS research project. However, the static view of the architecture must currently be entered manually by the architect in the ARAMIS system and it is assumed to be already known. However, in real-life scenarios, this is not always the case. Therefore, the student will explore methods and tools for the reconstruction of the static view. The results of this step will be used to extend ARAMIS with more intuitive input methods.

Next, the student will analyze the possibility of analyzing the interactions between the low-level code building blocks (e.g. objects) in order to make assumptions regarding the structure of the analyzed system. Answers to questions such as ?which entities behave cohesively??, ?which entities are low coupled??, ?which entities behaves as facades for other entities?, etc. will be given and analyzed. The applicability of clustering algorithms in this context will also be investigated. The results will be then integrated in ARAMIS and compared with the ones obtained in the previous step.

The thesis will end with a case study that analyses the usefulness of such a combined analysis on a real-life software system.

Main phases covered in the thesis

  1. Thorough analysis of related work (clustering algorithms, static and dynamic reconstruction approaches, etc.)
  2. Integrate one or more static reconstruction techniques within ARAMIS
  3. Extension of ARAMIS to analyze interactions and apply various heuristics to identify the static view of the architecture
  4. Compare the results obtained in the steps 2 and 3 using a real-life software system

Project information

Status:

Finished

Thesis for degree:

Master

Student:

Lidia Lang

Supervisor:
Id:

2014-018