Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-03T17:58:25Z
No. of bitstreams: 1
ROBERTO ALMEIDA BITTENCOURT - TESE PPGCC 2012..pdf: 33887570 bytes, checksum: 348d0986ffb03c3554fefac4ab926a5a (MD5) / Made available in DSpace on 2018-08-03T17:58:25Z (GMT). No. of bitstreams: 1
ROBERTO ALMEIDA BITTENCOURT - TESE PPGCC 2012..pdf: 33887570 bytes, checksum: 348d0986ffb03c3554fefac4ab926a5a (MD5)
Previous issue date: 2012-02-29 / A técnica dos modelos de reflexão é um processo de checagem de conformidade entre
visões arquiteturais modulares e implementação que permite prevenir e remediar o envelhecimento de software através do combate à deterioração arquitetural. Contudo, o esforço manual necessário para aplicar a técnica pode terminar evitando seu uso na prática, especialmente no contexto de evolução de software em processos de desenvolvimento leves. Em termos mais específicos, a técnica é custosa para: i) produzir um modelo de alto nível e o mapeamento entre as entidades do código-fonte e este modelo; ii) manter tanto o modelo como o mapeamento atualizados à medida que o software evolui; e Ui) analisar a normalmente longa lista de violações arquiteturais no código fonte. Este trabalho procura habilitar a checagem de conformidade estática de software em evolução através da automação parcial do esforço manual para aplicar a técnica de modelos de reflexão. Para fazê-lo, primeiramente é avaliado o potencial de técnicas de agrupamento para a geração e manutenção de modelos de alto nívei. Também é proposta e avaliada uma técnica de mapeamento incremental entre entidades do código-fonte e modelos de alto nível baseada na combinação da recuperação de informação de vocabulário de software com dependências estruturais. Por fim, uma técnica de priorização baseada na história do software para recomendar as violações arquiteturais no código-fonte mais provavelmente relevantes do ponto de vista dos desenvolvedores de software é relatada e avaliada. Técnicas de agrupamento são avaliadas através de medidas de acurácia e estabilidade. Os resultados para quatro diferentes algoritmos de agrupamento mostram que nenhum deles consegue o melhor desempenho para todas as medidas, e que todos eles apresentam limitações para prover a geração automática de modelos de alto nível. Por outro lado, a avaliação sugere que a etapa de mapeamento da técnica de modelos de reflexão pode ser habilitada
pela técnica proposta de mapeamento incremental automático que combina estrutura
e vocabulário. Em dois estudos de caso, esta técnica obteve os maiores valores de medidaF em mudanças de código-fonte unitárias, pequenas ou grandes. Finalmente, a avaliação da técnica de priorização de violações mostra que, de cinco fatores estudados, a duração da violação e a co-locação da violação correlacionam bem com a relevância das violações. Os resultados sugerem que estes fatores podem ser usados para ordenar as violações mais provavelmente relevantes, com uma melhoria de pelo menos 57% em relação a uma linhabase de violações selecionadas aleatoriamente. A análise dos resultados sugere que a produção de modelos de alto nível para checagem estática de conformidade arquitetural pode ser auxi'iada por um processo semi-automático de recuperação arquitetural, e, à medida que o software evolui, por técnicas incrementais de
agrupamento/mapeamento. Por outro lado, a análise dos resultados para a técnica de priorização sugere a eficácia de uma abordagem automatizada para a recomendação de violações arquiteturais a serem analisadas pelos desenvolvedore: do software. / The refíexion model technique is a static conformance checking technique to keep architecture module views and implementation conformant. It can either prevent or remedy software aging by combating architecture deterioration. However, the amount of manual effort to apply the technique may prevent its use in practice, especially in the context of software evolution in lightweight development methods. More specifically, it can be time-consuming and costly to: i) produce a high-level model and the mapping between source code entities and this model; ii) keep both model and mapping up-to-date as software evolves; and Ui) analyze the usual large number of architectural violations in the source code reported by the technique. This work tries to enable static conformance checking of evolving software by partially automating the manual effort to apply the refíexion model technique. To do so, the potential of clustering techniques to generate high-level models and keep them up-to-date is evaluated. It is also proposed and evaluated an incremental mapping approach between source code entities and high-level models based on the combination of information retrieval of software vocabulary and structural dependencies. Last, a prioritizing technique based on software history to recommend architectural violations in the source code most likely to be relevant to software developers is reported and evaluated. Clustering techniques are evaluated by measures of accuracy and stability, and results for four different clustering algorithms show that none of them performs best for ali measures, and that they are limited to provide fully automated generation of high-level models. On the other hand, evaluation suggests that the mapping step in the refíexion model technique can be enabled by the proposed incremental automated mapping technique that combines structure and vocabulary. In two case studies, the combined technique showed the highest F-measure values for both singleton, small and large source code changes. Finally, evaluation for the prioritizing technique shows that, from five studied factors, violation duration and violation co-location correlate well with violation relevance. Results suggest that these factors can be used to rank the violations most likely to be relevant, with an improvement of at least 57% against a baseline of randomly selected violations. Analysis of the results suggests that the producton of high-level models for static conformance checking can be aided by a semi-automated architecture recovery process, and, as software evolves, by incremental clustering/mapping techniques. On the other hand, analysis of the results for the prioritizing technique suggests the effectiveness of an automated approach to recommend architectural violations to bí analyzed by software developers.
Identifer | oai:union.ndltd.org:IBICT/oai:localhost:riufcg/1341 |
Date | 03 August 2018 |
Creators | BITTENCOURT, Roberto Almeida. |
Contributors | GUERRERO, Dalton Dario Serey., MURPHY, Gail Cecile., SAUVÉ, Jacques Phillipe., MASSONI, Tiago Lima., KULESZA, Uira., VALENTE, Marco Túlio de Oliveira. |
Publisher | Universidade Federal de Campina Grande, PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO, UFCG, Brasil, Centro de Engenharia Elétrica e Informática - CEEI |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/doctoralThesis |
Source | reponame:Biblioteca de Teses e Dissertações da UFCG, instname:Universidade Federal de Campina Grande, instacron:UFCG |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0022 seconds