Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion

Detalhes bibliográficos
Autor(a) principal: Ricardo Terra Nunes Bueno Villela
Data de Publicação: 2013
Tipo de documento: Tese
Idioma: por
Título da fonte: Repositório Institucional da UFMG
Texto Completo: http://hdl.handle.net/1843/ESSA-9D6GRY
Resumo: Erosão arquitetural é um problema recorrente enfrentado por arquitetos de software. Embora um grande número de técnicas de conformidade arquitetural tenham sido propostas para detectar violações arquiteturais (por exemplo, modelos de reflexão, matrizes de dependência estrutural, linguagens de consulta em código fonte, linguagens de restrição, linguagens de descrição arquitetural e testes de desenho), a tarefa de reparação de violações arquiteturais ainda não tem o suporte adequado. Como consequência direta, desenvolvedores costumam corrigir violações arquiteturais de forma ad hoc e ainda sem o auxílio de ferramentas no nível arquitetural. Isso pode fazer com que desenvolvedores gastem um tempo considerável para descobrir como reparar as violações arquiteturais ou mesmo introduzam novas violações ao reparar violações existentes. Diante disso, esta tese propõe um sistema de recomendação de reparação arquitetural que provê diretrizes de correção para desenvolvedores e arquitetos encarregados de reverter processos de erosão arquitetural. Formalizou-se um catálogo de recomendações de reparação para corrigir violações detectadas por abordagens estáticas de conformidade arquitetural; elaborou-se uma heurística para determinar o módulo correto para entidades de código-fonte; desenvolveu-se uma ferramenta chamada ArchFix que automatiza as recomendações propostas; e avaliou-se a aplicabilidade da abordagem em um sistema de médio porte e em um sistema de grande porte. Para o primeiro sistema um sistema de gestão estratégica de 21 KLOC a abordagem proposta indicou reparações corretas para 31 das 41 violações detectadas pelo processo de conformidade arquitetural. Para o segundo sistema um sistema de atendimento a clientes de 728 KLOC utilizado por uma empresa de telecomunicações nacional a abordagem proposta sugeriu recomendações corretas de acordo com o arquiteto do sistema para 632 das 787 violações. Além disso, os arquitetos apontaram 80% dessas recomendações como tendo complexidade moderada ou alta.
id UFMG_4198c6dc5d08652a41a22a7aed999875
oai_identifier_str oai:repositorio.ufmg.br:1843/ESSA-9D6GRY
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Roberto da Silva BigonhaMarco Tulio de Oliveira ValenteDalton Dario Serey GuerreroKrzysztof CzarneckiEduardo Magno Lages FigueiredoMarco Tulio de Oliveira ValentePaulo Henrique Monteiro BorbaRicardo Terra Nunes Bueno Villela2019-08-11T16:59:00Z2019-08-11T16:59:00Z2013-09-27http://hdl.handle.net/1843/ESSA-9D6GRYErosão arquitetural é um problema recorrente enfrentado por arquitetos de software. Embora um grande número de técnicas de conformidade arquitetural tenham sido propostas para detectar violações arquiteturais (por exemplo, modelos de reflexão, matrizes de dependência estrutural, linguagens de consulta em código fonte, linguagens de restrição, linguagens de descrição arquitetural e testes de desenho), a tarefa de reparação de violações arquiteturais ainda não tem o suporte adequado. Como consequência direta, desenvolvedores costumam corrigir violações arquiteturais de forma ad hoc e ainda sem o auxílio de ferramentas no nível arquitetural. Isso pode fazer com que desenvolvedores gastem um tempo considerável para descobrir como reparar as violações arquiteturais ou mesmo introduzam novas violações ao reparar violações existentes. Diante disso, esta tese propõe um sistema de recomendação de reparação arquitetural que provê diretrizes de correção para desenvolvedores e arquitetos encarregados de reverter processos de erosão arquitetural. Formalizou-se um catálogo de recomendações de reparação para corrigir violações detectadas por abordagens estáticas de conformidade arquitetural; elaborou-se uma heurística para determinar o módulo correto para entidades de código-fonte; desenvolveu-se uma ferramenta chamada ArchFix que automatiza as recomendações propostas; e avaliou-se a aplicabilidade da abordagem em um sistema de médio porte e em um sistema de grande porte. Para o primeiro sistema um sistema de gestão estratégica de 21 KLOC a abordagem proposta indicou reparações corretas para 31 das 41 violações detectadas pelo processo de conformidade arquitetural. Para o segundo sistema um sistema de atendimento a clientes de 728 KLOC utilizado por uma empresa de telecomunicações nacional a abordagem proposta sugeriu recomendações corretas de acordo com o arquiteto do sistema para 632 das 787 violações. Além disso, os arquitetos apontaram 80% dessas recomendações como tendo complexidade moderada ou alta.Architectural erosion is a recurrent problem faced by software architects. Although several architecture conformance techniques have been proposed to detect architectural violations (e.g., reflexion models, dependency structure matrices, source code query languages, constraint languages, architecture description languages, and design tests), less research effort has been dedicated to the task of repairing such violations. As a consequence, developers usually perform the repairing task in ad hoc ways, without tool support at the architectural level. This fact may lead developers to spend a long time to discover how to repair the architectural violations and even to introduce new violations when repairing one. In view of such circumstances, this thesis proposes an architectural repair recommendation system that provides fixing guidelines for developers and maintainers when tackling architectural erosion. We have formalized a catalog of repairing recommendations to repair violations raised by static architecture conformance checking approaches; we have elaborated a suitable module heuristic to determine the correct module for source code entities; we have designed a toolcalled ArchFixthat triggers the proposed recommendations; and we have evaluated the application of our approach in two industrial-strength systems. For the first systema 21 KLOC open-source strategic management systemour approach indicated correct repairing recommendations for 31 out of 41 violations detected as the result of an architecture conformance process. For the second systema 728 KLOC customer care system used by a major telecommunication companyour approach triggered correct recommendations for 632 out of 787 violations, as asserted by the systems architect. Moreover, the architects scored 80% of these recommendations as having moderate or major complexity.Universidade Federal de Minas GeraisUFMGSistemas de recomendaçãSoftware DesenvolvimentoComputaçãoEngenharia de softwareSistema de recomendaçãoReparação arquiteturalErosão arquiteturalUm sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosioninfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGORIGINALricardoterra.pdfapplication/pdf2658786https://repositorio.ufmg.br/bitstream/1843/ESSA-9D6GRY/1/ricardoterra.pdf7a35d42e0a257e80865314cdc72f6123MD51TEXTricardoterra.pdf.txtricardoterra.pdf.txtExtracted texttext/plain242505https://repositorio.ufmg.br/bitstream/1843/ESSA-9D6GRY/2/ricardoterra.pdf.txt953c7b46448b5974ec4ac0b7c2f92155MD521843/ESSA-9D6GRY2019-11-14 06:00:21.992oai:repositorio.ufmg.br:1843/ESSA-9D6GRYRepositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2019-11-14T09:00:21Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.pt_BR.fl_str_mv Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
title Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
spellingShingle Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
Ricardo Terra Nunes Bueno Villela
Sistema de recomendação
Reparação arquitetural
Erosão arquitetural
Sistemas de recomendaçã
Software Desenvolvimento
Computação
Engenharia de software
title_short Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
title_full Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
title_fullStr Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
title_full_unstemmed Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
title_sort Um sistema de recomendação para reparação de erosão arquitetural de software = A recommendation system for repairing software architecture erosion
author Ricardo Terra Nunes Bueno Villela
author_facet Ricardo Terra Nunes Bueno Villela
author_role author
dc.contributor.advisor1.fl_str_mv Roberto da Silva Bigonha
dc.contributor.advisor-co1.fl_str_mv Marco Tulio de Oliveira Valente
dc.contributor.referee1.fl_str_mv Dalton Dario Serey Guerrero
dc.contributor.referee2.fl_str_mv Krzysztof Czarnecki
dc.contributor.referee3.fl_str_mv Eduardo Magno Lages Figueiredo
dc.contributor.referee4.fl_str_mv Marco Tulio de Oliveira Valente
dc.contributor.referee5.fl_str_mv Paulo Henrique Monteiro Borba
dc.contributor.author.fl_str_mv Ricardo Terra Nunes Bueno Villela
contributor_str_mv Roberto da Silva Bigonha
Marco Tulio de Oliveira Valente
Dalton Dario Serey Guerrero
Krzysztof Czarnecki
Eduardo Magno Lages Figueiredo
Marco Tulio de Oliveira Valente
Paulo Henrique Monteiro Borba
dc.subject.por.fl_str_mv Sistema de recomendação
Reparação arquitetural
Erosão arquitetural
topic Sistema de recomendação
Reparação arquitetural
Erosão arquitetural
Sistemas de recomendaçã
Software Desenvolvimento
Computação
Engenharia de software
dc.subject.other.pt_BR.fl_str_mv Sistemas de recomendaçã
Software Desenvolvimento
Computação
Engenharia de software
description Erosão arquitetural é um problema recorrente enfrentado por arquitetos de software. Embora um grande número de técnicas de conformidade arquitetural tenham sido propostas para detectar violações arquiteturais (por exemplo, modelos de reflexão, matrizes de dependência estrutural, linguagens de consulta em código fonte, linguagens de restrição, linguagens de descrição arquitetural e testes de desenho), a tarefa de reparação de violações arquiteturais ainda não tem o suporte adequado. Como consequência direta, desenvolvedores costumam corrigir violações arquiteturais de forma ad hoc e ainda sem o auxílio de ferramentas no nível arquitetural. Isso pode fazer com que desenvolvedores gastem um tempo considerável para descobrir como reparar as violações arquiteturais ou mesmo introduzam novas violações ao reparar violações existentes. Diante disso, esta tese propõe um sistema de recomendação de reparação arquitetural que provê diretrizes de correção para desenvolvedores e arquitetos encarregados de reverter processos de erosão arquitetural. Formalizou-se um catálogo de recomendações de reparação para corrigir violações detectadas por abordagens estáticas de conformidade arquitetural; elaborou-se uma heurística para determinar o módulo correto para entidades de código-fonte; desenvolveu-se uma ferramenta chamada ArchFix que automatiza as recomendações propostas; e avaliou-se a aplicabilidade da abordagem em um sistema de médio porte e em um sistema de grande porte. Para o primeiro sistema um sistema de gestão estratégica de 21 KLOC a abordagem proposta indicou reparações corretas para 31 das 41 violações detectadas pelo processo de conformidade arquitetural. Para o segundo sistema um sistema de atendimento a clientes de 728 KLOC utilizado por uma empresa de telecomunicações nacional a abordagem proposta sugeriu recomendações corretas de acordo com o arquiteto do sistema para 632 das 787 violações. Além disso, os arquitetos apontaram 80% dessas recomendações como tendo complexidade moderada ou alta.
publishDate 2013
dc.date.issued.fl_str_mv 2013-09-27
dc.date.accessioned.fl_str_mv 2019-08-11T16:59:00Z
dc.date.available.fl_str_mv 2019-08-11T16:59:00Z
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/1843/ESSA-9D6GRY
url http://hdl.handle.net/1843/ESSA-9D6GRY
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.publisher.initials.fl_str_mv UFMG
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
bitstream.url.fl_str_mv https://repositorio.ufmg.br/bitstream/1843/ESSA-9D6GRY/1/ricardoterra.pdf
https://repositorio.ufmg.br/bitstream/1843/ESSA-9D6GRY/2/ricardoterra.pdf.txt
bitstream.checksum.fl_str_mv 7a35d42e0a257e80865314cdc72f6123
953c7b46448b5974ec4ac0b7c2f92155
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv
_version_ 1803589347297984512