Spelling suggestions: "subject:"arquiteturas"" "subject:"arquitetura""
11 |
Context-based code quality assessment / Avaliação de qualidade de código baseada em contextoMauricio Finavaro Aniche 15 July 2016 (has links)
Two tasks that software engineers constantly perform are writing code that is easy to evolve and maintain, and detecting poorly written pieces of code. For the former, software engineers commonly rely on well-known software architecture styles, such as Model-View-Controller (MVC). To the latter, they rely on code metrics and code smell detection approaches. However, up to now, these code metrics and code smell approaches do not take into account underlying architectureall classes are assessed as if they were the same. In practice, software developers know that classes differ in terms of responsibilities and implementation, and thus, we expect these classes to present different levels of coupling, cohesion, and complexity. As an example, in an MVC system, Controllers are responsible for the flow between the Model and the View, and Models are responsible for representing the systems business concepts. Thus, in this thesis, we evaluate the impact of architectural roles within a system architecture on code metrics and code smells. We performed an empirical analysis in 120 open source systems, and interviewed and surveyed more than 50 software developers. Our findings show that each architectural role has a different code metric values distribution, which is a likely consequence of their specific responsibilities. Thus, we propose SATT, an approach that provides specific thresholds for architectural roles that are significantly different from others in terms of code smells. We also show that classes that play a specific architectural role contain specific code smells, which developers perceive as problems, and can impact class\' change- and defect-proneness. Based on our findings, we suggest that developers understand the responsibilities of each architectural role in their system architecture, so that code metrics and code smells techniques can provide more accurate feedback. / Duas tarefas que desenvolvedores de software constantemente fazem são escrever código fácil de ser mantido e evoluído, e detectar pedaços de código problemáticos. Para a primeira tarefa, desenvolvedores comumente fazem uso de conhecidos padrões arquiteturais, como Model-View-Controller (MVC). Para a segunda tarefa, desenvolvedores fazem uso de métricas de código e estratégias de detecção de maus cheiros de código (code smells). No entanto, até o momento, métricas de código e estratégias de detecção de maus cheiros de código não levam em conta a arquitetura do software em análise. Isso significa que todas classes são avaliadas como se umas fossem iguais às outras. Na prática, sabemos que classes são diferentes em suas responsibilidades e implementação, e portanto, esperamos que elas variem em termos de acoplamento, coesão e complexidade. Por exemplo, em um sistema MVC, Controladores são responsáveis pelo fluxo entre a camada de Modelo e a camada de Visão, e Modelos representam a visão de negócios do sistema. Nesta tese, nós avaliamos o impacto dos papéis arquiteturais em técnicas de medição de métricas de código e de detecção de maus cheiros de código. Nós realizamos um estudo empírico em 120 sistemas de código aberto, e entrevistamos e realizamos questionários com mais de 50 desenvolvedores. Nossos resultados mostram que cada papel arquitetural possui distribuições diferentes de valores de métrica de código, consequência das diferentes responsabilidades de cada papel. Como consequência, propomos SATT, uma abordagem que provê thresholds específicos para papéis arquiteturais que são significantemente diferentes de outros em termos de métricas de código. Mostramos também que classes que cumprem um papel arquitetural específico também contêm maus cheiros de código específicos. Esses maus cheiros são percebidos por desenvolvedores como problemas reais e podem fazer com que essas classes sejam mais modificadas e apresentem mais defeitos do que classes limpas. Sugerimos então que desenvolvedores entendam a arquitetura dos seus sistemas, bem como as responsabilidades de cada papel arquitetural que as classes desempenham, para que tanto métricas de código quanto estratégias de detecção de maus cheiros de código possam prover um melhor retorno.
|
12 |
Habilitando a checagem estática de conformidade arquitetural de software em evolução. / Enabling static architectural compliance checking of evolving software.BITTENCOURT, Roberto Almeida. 03 August 2018 (has links)
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.
|
13 |
Importance de l’hétérogénéité structurale de la zone non saturée pour la modélisation de l’écoulement à méso-échelle / A importancia da heterogeneidade estrutural da zona nao-saturada para a modelagem dos processes de transfereancia de agua na meso escala / Influence of lithological heterogeneity for modelling flow in vadose zone at meso scaleCoutinho, Artur Paiva 14 December 2016 (has links)
La compréhension des écoulements préférentiels dans la zone non saturée en fond de bassins d’infiltration est une condition préalable à une gestion optimale de ces ouvrages. Le basin d’infiltration étudié repose sur un dépôt fluvioglaciaire hétérogène constitué d’un lithofaciès majoritaire contenant des lentilles de sable et de gravier. Une étude géophysique (radar) a permis de caractériser cette hétérogénéité sédimentologique le long de radar-grammes (sections de quelques mètres de profondeurs et de plusieurs dizaines de mètre de long). Les écoulements ont été modélisés pour toutes ces sections ainsi qu’une section fictive remplie uniquement du lithofaciès majoritaire (témoin) et pour divers évènements pluvieux type incluant une chronique météorologique complète. Les résultats montrent clairement que l'hétérogénéité lithologique a un effet significatif sur l’écoulement avec la mise en place d’écoulements hétérogènes du fait de phénomènes de barrière capillaire au niveau des lentilles de sable et de gravier en non-saturé. Cet effet se répercute sur les chemins de l’eau dans le dépôt et sur les flux en surface (infiltration et ruissellement). Les résultats montrent aussi que cet effet dépend fortement de la section considérée. La variabilité spatiale de l’hétérogénéité lithologique induit donc une variabilité spatiale des écoulements préférentiels. Certains paramètres architecturaux et géométriques relatifs à l’hétérogénéité lithologique ont été proposés pour expliquer l’effet de l’hétérogénéité lithologique sur les écoulements préférentiels, de sorte à proposer une première tentative de modélisation des écoulements à méso-échelle. / Understanding preferential flows in the vadose zone is a prerequisite for a proper management of infiltration basins. The studied infiltration basin lies on a strongly heterogeneous glaciofluvial deposit made of a predominant lithofacies that embeds lenses of sand and gravel. Geophysics (GPR) were used to characterize the lithological heterogeneity along radar-grammes (sections few meters deep and dozens of meters long). Flow was modelled for all these sections and compared to a synthetic section filled only with the predominant lithofacies (control). Numerical results show that, under unsaturated conditions, the lithological heterogeneity has a strong impact on flow with the establishment of preferential flows induced by capillary-barrier effects in the vicinity of lenses of sand and gravel. These effects have also consequences on water fluxes at surface (infiltration and runoff) and depend strongly on the section considered for numerical modelling. It can thus be concluded that the spatial variability of lithological heterogeneity induces a spatial variability of preferential flow. Geometrical and architectural parameters were defined to quantity lithological heterogeneity and link it to preferential flows, with the aim to propose a first step towards modelling flow in the basin at the meso-scale. / O entendimento do fluxo na zona não saturada em formações heterogêneas é um prérequisito para uma gestão adequada de poluentes em bacias de infiltração inseridas nessas formações. Este estudo aborda o efeito da heterogeneidade litológica nos processo de escoamento numa bacia de infiltração com geologia inserida num depósito fluvioglacial. A bacia de infiltração é a Bacia Django Reinhardt, existente em Lyon. Esta bacia foi objeto de vários estudos que demonstraram algumas avaliações do impacto da heterogeneidade do solo. Os objetivos desses trabalhos foram todos baseados apenas no estudo sedimentológico de uma trincheira. Nenhum estudo abordou a potencial variabilidade espacial dos atributos do solo. Neste trabalho, foi modelizado o fluxo na zona vadosa através de três casos: drenagem interna, infiltração de água durante um evento de precipitação pluviométrica constante e solicitação hidrológica a partir de um fluxo variável escoamento superficial. Estes cálculos foram realizados para várias seções, que foram previamente caracterizadas quanto a sua heterogeneidade estrutural usando a técnica não destrutiva do GPR com uma frequência de 200MHz e 100MHz. O comportamento hidráulico dessas seções foi comparado com a de uma seção homogênea. Foi comparada o efeito da resolução da imagem nas estimativas das variáveis de fluxo. Alguns indicadores arquiteturais, geométricos e texturais foram propostos para esclarecer e avaliar a variabilidade espacial do efeito da heterogeneidade do solo sobre o fluxo em condições não saturadas. Os resultados mostram claramente que a heterogeneidade gera impactos nas variáveis de fluxo em condições não saturadas. Os impactos dependem da seção considerada.Os resultados mostram também que: a) a heterogeneidade estrutural do subsolo na meso-escala apresenta um efeito sobre a geração de escoamento preferencial e isso independe do tipo de solicitação aplicada na seção; b) O efeito da heterogeneidade se mostrou independentende das condições de contorno aplicadas na superfície; c) Nos períodos de ocorrência de chuvas intensas quem controla o comportamento das variáveis de fluxo é a intensidade de precipitação. No entanto, nos períodos em que ocorre ausência de precipitação, as variáveis de fluxo são controladas pela heterogeneidade da zona não saturada; d) A utilização de diferentes frequências influencia na estimativa das variáveis de fluxo. Isso é decorrente do impacto na quantificação da heterogeneidade decorrente do efeito da resolução de cada antena; e) Os indicadores não apresentaram relação direta com as variáveis de fluxo estudadas. Isso demonstra que o efeito da heterogeneidade não pode ser explicado por um único fator, mas por um conjunto de fatores.
|
Page generated in 0.3085 seconds