Understanding and recovering architecture rules

Detalhes bibliográficos
Autor(a) principal: Zapalowski, Vanius
Data de Publicação: 2021
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/221621
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 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.
id URGS_fcf7284fcbdbfcb5e23742913fc6ca57
oai_identifier_str oai:www.lume.ufrgs.br:10183/221621
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Zapalowski, VaniusNunes, Ingrid Oliveira deNunes, Daltro Jose2021-05-28T04:25:31Z2021http://hdl.handle.net/10183/221621001125704A 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.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.application/pdfengArquitetura : SoftwareRegras arquiteturais : InformáticaDesenvolvimento : SoftwareArchitecture recoveryModule dependencyUnderstanding and recovering architecture rulesCompreendendo e recuperando regras de Arquitetura info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2021doutoradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001125704.pdf.txt001125704.pdf.txtExtracted Texttext/plain269976http://www.lume.ufrgs.br/bitstream/10183/221621/2/001125704.pdf.txtd175b1b8b448faeaee1ff571f56d17d8MD52ORIGINAL001125704.pdfTexto completo (inglês)application/pdf2154231http://www.lume.ufrgs.br/bitstream/10183/221621/1/001125704.pdf02d9194466c50937f0571999835b1340MD5110183/2216212024-05-01 06:52:11.621449oai:www.lume.ufrgs.br:10183/221621Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532024-05-01T09:52:11Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Understanding and recovering architecture rules
dc.title.alternative.pt.fl_str_mv Compreendendo e recuperando regras de Arquitetura
title Understanding and recovering architecture rules
spellingShingle Understanding and recovering architecture rules
Zapalowski, Vanius
Arquitetura : Software
Regras arquiteturais : Informática
Desenvolvimento : Software
Architecture recovery
Module dependency
title_short Understanding and recovering architecture rules
title_full Understanding and recovering architecture rules
title_fullStr Understanding and recovering architecture rules
title_full_unstemmed Understanding and recovering architecture rules
title_sort Understanding and recovering architecture rules
author Zapalowski, Vanius
author_facet Zapalowski, Vanius
author_role author
dc.contributor.author.fl_str_mv Zapalowski, Vanius
dc.contributor.advisor1.fl_str_mv Nunes, Ingrid Oliveira de
dc.contributor.advisor-co1.fl_str_mv Nunes, Daltro Jose
contributor_str_mv Nunes, Ingrid Oliveira de
Nunes, Daltro Jose
dc.subject.por.fl_str_mv Arquitetura : Software
Regras arquiteturais : Informática
Desenvolvimento : Software
topic Arquitetura : Software
Regras arquiteturais : Informática
Desenvolvimento : Software
Architecture recovery
Module dependency
dc.subject.eng.fl_str_mv Architecture recovery
Module dependency
description 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.
publishDate 2021
dc.date.accessioned.fl_str_mv 2021-05-28T04:25:31Z
dc.date.issued.fl_str_mv 2021
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/221621
dc.identifier.nrb.pt_BR.fl_str_mv 001125704
url http://hdl.handle.net/10183/221621
identifier_str_mv 001125704
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/221621/2/001125704.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/221621/1/001125704.pdf
bitstream.checksum.fl_str_mv d175b1b8b448faeaee1ff571f56d17d8
02d9194466c50937f0571999835b1340
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1800309179820277760