Aluno: Vanius Zapalowski
Orientadora: Profª. Drª. Ingrid Oliveira de Nunes
Título: Understanding and Recovering Architecture Rules
Linha de Pesquisa: Engenharia de Software
Esta banca ocorrerá excepcionalmente de forma totalmente remota. Interessados em assistir a defesa poderão acessar a sala virtual através do link: https://mconf.ufrgs.br/webconf/prosoft
– Profª. Drª. Erika Fernandes Cota (UFRGS)
– Prof. Dr. Ricardo Terra Nunes Bueno Villela (UFLA)
– Prof. Dr. Cláudio Nogueira Sant’Anna (UFBA)
Presidente da Banca: Profª. Drª. Ingrid Oliveira de Nunes
Abstract: Software architecture is fundamental to clearly present the most important structures, roles, and rules of a software, which collectively are used to guide software design and implementation. Thus, the existence of reliable architecture documentation is critical to develop and maintain software in a controlled way. Despite the importance of architecture documentation, there are systems without proper documentation, as their documentation is often outdated or nonexistent. To help overcome this problem, many studies investigate how to maintain conformity between architecture documentation and the source code. However, most of these studies provide a low precision demanding an expert postverification, which is an error-prone and time-consuming task, to provide useful architecture documentation. To support architecture documentation, we propose the Weightedgraph-based (WGB) method to recover architecture rules. Our method is based on the idea that high-level architecture rules can be derived through the investigation of source code dependencies, thus decreasing the effort of providing useful architecture rules with a reduced need for human verification. To achieve our goals, we investigate the source code dependencies and the architecture differences between them. Based on this investigation, we propose the WGB method that relies on the module dependency strength metric and linear equation solver to provide relevant architecture rules. It is domain-independent because it needs only the source code as information to execute. We evaluate our proposed method with a case study presenting details of how it works, an offline study presenting the application of our method in six subject systems, and a user study analyzing the rules extracted using our method in two commercial systems from the perspective of the developers. The results show that our method extracts useful and appropriate architecture rules using only the source code as information, thus supporting the task of recovering the architecture rules. Furthermore, the results of the user study present the preference of the developers for rules extracted using our method when compared against their manually recovered rules in most of the comparisons.
Keywords: Software architecture. architecture rules. architecture recovery. module dependency.