Archruby: architecture conformance checking in dynamically typed languages

Detalhes bibliográficos
Autor(a) principal: Sergio Henrique Miranda Júnior
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFMG
Texto Completo: http://hdl.handle.net/1843/ESBF-AN9JTM
Resumo: Erosão arquitetural é um problema recorrente na evolução de software. Esse problema se agrava em sistemas desenvolvidos em linguagens dinamicamente tipadas devido (i) a certos recursos providos por tais linguagens tornarem os desenvolvedores mais propícios a quebrar a arquitetura planejada, e (ii) a comunidade de desenvolvedores sofrer dafalta de ferramentas para análise de arquiteturas. Assim, esta dissertação de mestrado propõe uma solução de conformidade e visualização arquitetural baseada em técnicas de análise estática de código e em uma heurística de inferência de tipos para linguagensdinamicamente tipadas. A ideia central é prover à comunidade de desenvolvedores formas de controlar o processo de erosão arquitetural através da detecção de violações arquiteturais e da visualização de um modelo de alto nível da arquitetura implementada, na forma de modelos de reflexão e DSMs. Nesse sentido, foi projetada uma ferramenta,chamada ArchRuby, que implementa a solução proposta. Para avaliar tal solução, foram realizadas quatro avaliações. Primeiro, a solução proposta foi avaliada em três sistemas reais, sendo capaz de identificar 48 violações arquiteturais das quais os arquitetos não tinham conhecimento. Segundo, foi avaliada a acurácia da heurística de inferência de tipos, concluindo-se que (i) a quantidade de tipos analisados aumenta em 5% na média e (ii) certas violações só foram identificadas devido a essa heurística. Terceiro, realizou-se um estudo para comparar a heurística de inferência de tipos proposta comtécnicas de análise dinâmica de código, concluindo-se que (i) a heurística de inferência de tipos proposta provê uma revocação média de 44% e (ii) sete melhorias podem ser incorporadas em técnicas de análise estática de código para aumentar a quantidade de tipos inferidos. Quinto e último, realizou-se um estudo com um sistema real adaptando a ferramenta ArchRuby para utilizar informações geradas por técnicas de análise dinâmica de código, a fim de aumentar o número de dependências a serem analisadas.
id UFMG_5158ff3d4855b49dc66c5ee94a747818
oai_identifier_str oai:repositorio.ufmg.br:1843/ESBF-AN9JTM
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Marco Tulio de Oliveira ValenteRicardo Terra Nunes Bueno VillelaRicardo Terra Nunes Bueno VillelaEduardo Magno Lages FigueiredoSergio Henrique Miranda Júnior2019-08-12T15:59:32Z2019-08-12T15:59:32Z2017-03-29http://hdl.handle.net/1843/ESBF-AN9JTMErosão arquitetural é um problema recorrente na evolução de software. Esse problema se agrava em sistemas desenvolvidos em linguagens dinamicamente tipadas devido (i) a certos recursos providos por tais linguagens tornarem os desenvolvedores mais propícios a quebrar a arquitetura planejada, e (ii) a comunidade de desenvolvedores sofrer dafalta de ferramentas para análise de arquiteturas. Assim, esta dissertação de mestrado propõe uma solução de conformidade e visualização arquitetural baseada em técnicas de análise estática de código e em uma heurística de inferência de tipos para linguagensdinamicamente tipadas. A ideia central é prover à comunidade de desenvolvedores formas de controlar o processo de erosão arquitetural através da detecção de violações arquiteturais e da visualização de um modelo de alto nível da arquitetura implementada, na forma de modelos de reflexão e DSMs. Nesse sentido, foi projetada uma ferramenta,chamada ArchRuby, que implementa a solução proposta. Para avaliar tal solução, foram realizadas quatro avaliações. Primeiro, a solução proposta foi avaliada em três sistemas reais, sendo capaz de identificar 48 violações arquiteturais das quais os arquitetos não tinham conhecimento. Segundo, foi avaliada a acurácia da heurística de inferência de tipos, concluindo-se que (i) a quantidade de tipos analisados aumenta em 5% na média e (ii) certas violações só foram identificadas devido a essa heurística. Terceiro, realizou-se um estudo para comparar a heurística de inferência de tipos proposta comtécnicas de análise dinâmica de código, concluindo-se que (i) a heurística de inferência de tipos proposta provê uma revocação média de 44% e (ii) sete melhorias podem ser incorporadas em técnicas de análise estática de código para aumentar a quantidade de tipos inferidos. Quinto e último, realizou-se um estudo com um sistema real adaptando a ferramenta ArchRuby para utilizar informações geradas por técnicas de análise dinâmica de código, a fim de aumentar o número de dependências a serem analisadas.Universidade Federal de Minas GeraisUFMGComputaçãoConformidade arquiteturalLinguagens dinâmicasVisualização arquitetural de alto nívelArchruby: architecture conformance checking in dynamically typed languagesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGORIGINALsergiohenriquemirandajr.pdfapplication/pdf4929632https://repositorio.ufmg.br/bitstream/1843/ESBF-AN9JTM/1/sergiohenriquemirandajr.pdf0585662b1e6cc35edfd0407726e2dcdaMD51TEXTsergiohenriquemirandajr.pdf.txtsergiohenriquemirandajr.pdf.txtExtracted texttext/plain176439https://repositorio.ufmg.br/bitstream/1843/ESBF-AN9JTM/2/sergiohenriquemirandajr.pdf.txted2b385ac694d539f28b4bd2f0f7cf47MD521843/ESBF-AN9JTM2019-11-14 18:28:43.041oai:repositorio.ufmg.br:1843/ESBF-AN9JTMRepositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2019-11-14T21:28:43Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.pt_BR.fl_str_mv Archruby: architecture conformance checking in dynamically typed languages
title Archruby: architecture conformance checking in dynamically typed languages
spellingShingle Archruby: architecture conformance checking in dynamically typed languages
Sergio Henrique Miranda Júnior
Conformidade arquitetural
Linguagens dinâmicas
Visualização arquitetural de alto nível
Computação
title_short Archruby: architecture conformance checking in dynamically typed languages
title_full Archruby: architecture conformance checking in dynamically typed languages
title_fullStr Archruby: architecture conformance checking in dynamically typed languages
title_full_unstemmed Archruby: architecture conformance checking in dynamically typed languages
title_sort Archruby: architecture conformance checking in dynamically typed languages
author Sergio Henrique Miranda Júnior
author_facet Sergio Henrique Miranda Júnior
author_role author
dc.contributor.advisor1.fl_str_mv Marco Tulio de Oliveira Valente
dc.contributor.advisor-co1.fl_str_mv Ricardo Terra Nunes Bueno Villela
dc.contributor.referee1.fl_str_mv Ricardo Terra Nunes Bueno Villela
dc.contributor.referee2.fl_str_mv Eduardo Magno Lages Figueiredo
dc.contributor.author.fl_str_mv Sergio Henrique Miranda Júnior
contributor_str_mv Marco Tulio de Oliveira Valente
Ricardo Terra Nunes Bueno Villela
Ricardo Terra Nunes Bueno Villela
Eduardo Magno Lages Figueiredo
dc.subject.por.fl_str_mv Conformidade arquitetural
Linguagens dinâmicas
Visualização arquitetural de alto nível
topic Conformidade arquitetural
Linguagens dinâmicas
Visualização arquitetural de alto nível
Computação
dc.subject.other.pt_BR.fl_str_mv Computação
description Erosão arquitetural é um problema recorrente na evolução de software. Esse problema se agrava em sistemas desenvolvidos em linguagens dinamicamente tipadas devido (i) a certos recursos providos por tais linguagens tornarem os desenvolvedores mais propícios a quebrar a arquitetura planejada, e (ii) a comunidade de desenvolvedores sofrer dafalta de ferramentas para análise de arquiteturas. Assim, esta dissertação de mestrado propõe uma solução de conformidade e visualização arquitetural baseada em técnicas de análise estática de código e em uma heurística de inferência de tipos para linguagensdinamicamente tipadas. A ideia central é prover à comunidade de desenvolvedores formas de controlar o processo de erosão arquitetural através da detecção de violações arquiteturais e da visualização de um modelo de alto nível da arquitetura implementada, na forma de modelos de reflexão e DSMs. Nesse sentido, foi projetada uma ferramenta,chamada ArchRuby, que implementa a solução proposta. Para avaliar tal solução, foram realizadas quatro avaliações. Primeiro, a solução proposta foi avaliada em três sistemas reais, sendo capaz de identificar 48 violações arquiteturais das quais os arquitetos não tinham conhecimento. Segundo, foi avaliada a acurácia da heurística de inferência de tipos, concluindo-se que (i) a quantidade de tipos analisados aumenta em 5% na média e (ii) certas violações só foram identificadas devido a essa heurística. Terceiro, realizou-se um estudo para comparar a heurística de inferência de tipos proposta comtécnicas de análise dinâmica de código, concluindo-se que (i) a heurística de inferência de tipos proposta provê uma revocação média de 44% e (ii) sete melhorias podem ser incorporadas em técnicas de análise estática de código para aumentar a quantidade de tipos inferidos. Quinto e último, realizou-se um estudo com um sistema real adaptando a ferramenta ArchRuby para utilizar informações geradas por técnicas de análise dinâmica de código, a fim de aumentar o número de dependências a serem analisadas.
publishDate 2017
dc.date.issued.fl_str_mv 2017-03-29
dc.date.accessioned.fl_str_mv 2019-08-12T15:59:32Z
dc.date.available.fl_str_mv 2019-08-12T15:59:32Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1843/ESBF-AN9JTM
url http://hdl.handle.net/1843/ESBF-AN9JTM
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/ESBF-AN9JTM/1/sergiohenriquemirandajr.pdf
https://repositorio.ufmg.br/bitstream/1843/ESBF-AN9JTM/2/sergiohenriquemirandajr.pdf.txt
bitstream.checksum.fl_str_mv 0585662b1e6cc35edfd0407726e2dcda
ed2b385ac694d539f28b4bd2f0f7cf47
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_ 1801676614026657792