Understanding and recovering architecture rules
Fecha
2021Autor
Co-director
Nivel académico
Doctorado
Tipo
Otro título
Compreendendo e recuperando regras de Arquitetura
Materia
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 p ...
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. ...
Resumo
A arquitetura de software é fundamental para documentar as estruturas, papéis e regras mais importantes de um software, que são usadas no projeto e na implementação. Assim, ter uma arquitetura documentada que reflete o que está implementado é importante para o desenvolvimento e evolução de forma controlada. Apesar da importância de ter a arquitetura documentada corretamente, é comum que os sistemas não tenham uma documentação arquitetural, ou que que ela esteja desatualizada. Para minimizar ess ...
A arquitetura de software é fundamental para documentar as estruturas, papéis e regras mais importantes de um software, que são usadas no projeto e na implementação. Assim, ter uma arquitetura documentada que reflete o que está implementado é importante para o desenvolvimento e evolução de forma controlada. Apesar da importância de ter a arquitetura documentada corretamente, é comum que os sistemas não tenham uma documentação arquitetural, ou que que ela esteja desatualizada. Para minimizar esse problema, muitos estudos avaliam como manter a conformidade entre a documentação arquitetural e o código-fonte. No entanto, a maioria desses estudos tem uma baixa precisão necessitando uma verificação dos seus resultados, que é uma tarefa demorada e que pode conter erros, para fornecer uma documentação útil. Para dar suporte à documentação da arquitetura, nós propomos o métodoWeighted-graph-based (baseado em grafos com pesos) para recuperar regras arquiteturais. Nosso método é baseado na ideia de que regras arquiteturais de alto nível podem ser derivadas através da análise das dependências do código-fonte. Isso reduz o esforço de documentar as regras arquiteturais por diminuir a necessidade de verificação de um especialista. Para atingir nossos objetivos, nós analisamos as dependências do código-fonte e as diferenças arquiteturais. Com base nessa análise, nós desenvolvemos o método Weighted-graph-based que se baseia na métrica de força de dependência entre módulos, também proposta nesta trabalho, e em um resolvedor de equações lineares para obter regras arquiteturais mais relevantes. Nosso método também é independente de domínio e específico para cada software visto que não depende de parâmetros e documentações. Nós avaliamos nosso método usando um estudo de caso para apresentar como o nosso método funciona, um estudo offline detalhando a aplicação de nosso método em seis sistemas e um estudo com usuários realizado para analisar o uso prático das regras extraídas usando nosso método em dois sistemas comerciais. Os resultados mostram que nosso método extrai regras arquiteturais que são úteis, eficientes e apropriadas. Além disso, os resultados apresentam a preferência dos desenvolvedores por regras extraídas usando nosso método quando comparadas com as regras recuperadas manualmente. ...
Institución
Universidade Federal do Rio Grande do Sul. Instituto de Informática. Programa de Pós-Graduação em Computação.
Colecciones
-
Ciencias Exactas y Naturales (5129)Computación (1764)
Este ítem está licenciado en la Creative Commons License