Archruby: architecture conformance checking in dynamically typed languages
Autor(a) principal: | |
---|---|
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_ |
1803589149250289664 |