Dissertações/Teses

Clique aqui para acessar os arquivos diretamente da Biblioteca Digital de Teses e Dissertações da UFBA

2021
Teses
1
  • TIAGO OLIVEIRA MOTTA
  • Um Estudo de Caracterização de Mudanças Arquiteturais em Projetos de Software Livre

  • Orientador : RODRIGO ROCHA GOMES E SOUZA
  • MEMBROS DA BANCA :
  • CHRISTINA VON FLACH GARCIA CHAVEZ
  • MANOEL GOMES DE MENDONCA NETO
  • PAULO CESAR MASIERO
  • PAULO ROBERTO MIRANDA MEIRELLES
  • RODRIGO ROCHA GOMES E SOUZA
  • Data: 26/04/2021

  • Mostrar Resumo
  • A literatura em vigor aponta que a escassez de documentação arquitetural predomina em projetos de software livre. Nesse sentido, diversas técnicas têm sido propostas para recuperar informações sobre a arquitetura, e a maioria delas se concentra em aspectos estruturais a partir do código-fonte, um elemento que acompanha a evolução do produto de software.

    Problema. No entanto, essas técnicas não recuperam outras informações sobre a arquitetura (tampouco a sua evolução), tais como os objetivos, restrições e motivações, requisitos não-funcionais, mecanismos de acesso a dados ou de comunicação utilizados no projeto.

    Objetivo. A proposta desse trabalho é caracterizar mudanças arquiteturais em projetos de Software Livre, apresentando os impactos por elas causados no código-fonte do projeto em comparação com outros tipos de mudança em que a arquitetura não foi modificada. As hipóteses são que as mensagens de commit registram informações sobre mudanças na arquitetura do projeto e esse tipo de mudança impacta o código do projeto de forma diferente em comparação com mudanças onde a arquitetura não foi modificada.

    Metodologia. Inicialmente, foi produzido um estudo empírico, a partir da mineração de repositórios, no qual identificaram-se traços arquiteturais em registros de informações sobre mudanças que constam em mensagens de commit. A partir dos dados coletados, foi realizado um estudo exploratório que caracterizou tais mudanças sobre em que momento da evolução do projeto ocorreram, quem são os seus autores, quais tópicos arquiteturais são modificados, além das características dessas mensagens e do grupo de módulos atingidos pela mudança. Após esse estudo, foi conduzido um segundo estudo empírico, envolvendo a extração de métricas de código-fonte das versões do projeto identificadas como tendo sofrido modificações em sua arquitetura. Por fim, foi realizado um estudo para avaliar os resultados obtidos, considerando as opiniões de pesquisadores da área de Arquitetura e Engenharia de Software, assim como de desenvolvedores frente à caracterização obtida perante as mudanças arquiteturais.

    Resultados. Dentre as descobertas realizadas, pode-se destacar que períodos de lançamento de novas versões são concentradores de mudanças arquiteturais, os principais colaboradores do projeto também são os colaboradores que mais modificam a arquitetura e todos os tópicos arquiteturais do projeto são alvo de modificações, porém em escalas diferentes. Outros aspectos importantes sobre as mudanças arquiteturais são que (i) o tamanho do código tende a aumentar; (ii) a complexidade e a coesão do código tendem a se manter; e (iii) o acoplamento verificado aumentou para duas métricas e em outras três se manteve, quando comparadas a mudanças no projeto onde a arquitetura não foi atingida. Por fim, durante o terceiro estudo desta tese, desenvolvedores e pesquisadores confirmaram a hipótese que a documentação arquitetural é escassa em projetos de Software Livre, e a principal forma de recuperar informações sobre a arquitetura, até aqui, é analisando o código-fonte de diversas formas. A maioria dos participantes da pesquisa concordam com os resultados obtidos por este estudo em relação à variação das métricas de código, tanto como sendo generalizáveis, como sendo verificáveis nos projetos onde pesquisam e desenvolvem. Alguns desenvolvedores apresentaram pequenas discordâncias quanto às variações de métricas obtidas. Sobre os traços arquiteturais como fontes de informação sobre a arquitetura, a maioria de desenvolvedores e pesquisadores afirmaram ser uma fonte promissora de informações mas fizeram a ressalva de que um cenário ideal seria combiná-las com outras informações do projeto.


  • Mostrar Abstract
  • The current literature points out that the scarcity of architectural documentation predominates in free software projects. In this sense, several techniques have been proposed to retrieve information about the architecture, and most of them focus on structural aspects from the source code, an element that accompanies the evolution of the software product.
    Problem. However, these techniques do not retrieve other information about the architecture (nor its evolution), such as the objectives, restrictions and motivations, non-functional requirements, data access or communication mechanisms used in the project.
    Objective. The purpose of this work is to characterize architectural changes in Free Software projects, presenting the impacts caused by them in the project's source code in comparison with other types of changes in which the architecture has not been modified. The hypotheses are that the commit messages record information about changes in the project architecture and this type of change impacts the project code differently compared to changes where the architecture has not been modified.
    Methodology. Initially, an empirical study was produced, from the mining of repositories, in which architectural traces were identified in records of information about changes contained in commit messages. From the data collected, an exploratory study was carried out that characterized such changes about when the project's evolution occurred, who are its authors, which architectural topics are modified, in addition to the characteristics of these messages and the group of modules affected by the change . After this study, a second empirical study was conducted, involving the extraction of metrics from source code of the versions of the project identified as having undergone modifications in their architecture. Finally, a study was carried out to evaluate the results obtained, considering the opinions of researchers in the field of Architecture and Software Engineering, as well as of developers regarding the characterization obtained in the face of architectural changes.
    Results. Among the discoveries made, it can be noted that periods of release of new versions are concentrators of architectural changes, the main collaborators of the project are also the collaborators who most modify the architecture and all the architectural topics of the project are subject to modifications, however in different scales. Other important aspects of architectural changes are that (i) the size of the code tends to increase; (ii) the complexity and cohesion of the code tends to remain; and (iii) the verified coupling increased to two metrics and in three others it was maintained, when compared to changes in the design where the architecture was not reached. Finally, during the third study of this thesis, developers and researchers confirmed the hypothesis that architectural documentation is scarce in Free Software projects, and the main way to retrieve information about architecture, until now, is by analyzing the source code of several shapes. Most research participants agree with the results obtained by this study in relation to the variation of code metrics, both as being generalizable and verifiable in the projects where they research and develop. Some developers showed slight disagreements as to the variations of metrics obtained. Regarding architectural features as sources of information about architecture, most developers and researchers claimed to be a promising source of information but made the reservation that an ideal scenario would be to combine them with other information from the project.

2019
Teses
1
  • IURI SANTOS SOUZA

  • Understanding Variability-Aware Smells in Software Product Lines
  • Orientador : EDUARDO SANTANA DE ALMEIDA
  • MEMBROS DA BANCA :
  • EDUARDO SANTANA DE ALMEIDA
  • MANOEL GOMES DE MENDONCA NETO
  • RODRIGO ROCHA GOMES E SOUZA
  • RODRIGO OLIVEIRA SPINOLA
  • JOSÉ AMÂNCIO MACEDO SANTOS
  • Data: 28/06/2019

  • Mostrar Resumo
  • Atualmente, existem várias técnicas e ferramentas para lidar com a variabilidade e elas foram aplicadas no desenvolvimento de sistemas altamente configuráveis, como linhas de produto de software (SPL). Essa configurabilidade pode ser obtida através de estruturas de código de variáveis usando técnicas como compilação condicional. No entanto, essa variabilidade de código adiciona novas dimensões de complexidade, como a compreensão do programa e a capacidade de manutenção do código, além de permitir novas possibilidades de cheiros de código. Os odores de código descrevem falhas de design ou decaimento no código-fonte. No entanto, a maioria dos cheiros relatados na literatura não consideram a variabilidade e não caracterizam adequadamente falhas de estruturas de código variáveis. Esta proposta de tese pretende investigar e caracterizar odores para sistemas altamente configuráveis desenvolvidos através da linguagem Java e modelagem de recursos. Propomos um conjunto de seis cheiros com consciência de variabilidade e investiga instâncias de cheiros bem como o impacto negativo dos cheiros propostos através de um conjunto de estudos empíricos para validar a evidência recolhida e a proposta destes cheiros. Os estudos empíricos relatados relataram um conjunto de evidências que confirmaram cinco dos seis cheiros cientes da variabilidade propostos. Além disso, entrevistas com desenvolvedores melhoraram o corpo de conhecimento dos cheiros propostos, apontando algumas possíveis razões para sua presença.


  • Mostrar Abstract
  •  Nowadays, there are several techniques and tools to deal with variability and they have been applied in the development of highly configurable systems such as Software Product Lines (SPL). This configurability can be achieved through variable code structures using techniques such as conditional compilation. 

    However, such code variability adds new dimensions of complexity, such as program comprehension and maintainability of code, and enables new possibilities for code smells. Code smells describe design flaws or decay in the source code. Nevertheless, most of the smells reported in the literature do not consider variability and fail to suitably characterize flaws of variable code structures.

    This Thesis proposal intends to investigate and characterize smells for highly configurable systems developed through Java language and feature modeling. We propose a set of six variability-aware smells and investigates smell instances as well as the negative impact of the proposed smells through a set of empirical studies to validate the gathered evidence and proposal of these smells.

    The conducted empirical studies reported a set of evidence that confirmed five of six proposed variability-aware smells. In addition, developer interviews improved the body of knowledge of the proposed smells pointing out some possible reasons for their presence. 

2
  • RAFAEL FREITAS REALE
  • Cognitiva e Dinâmica da Alocação de Recursos para Redes MPLS/DSTE

  • Orientador : JOBERTO SERGIO BARBOSA MARTINS
  • MEMBROS DA BANCA :
  • JOBERTO SERGIO BARBOSA MARTINS
  • LEOBINO NASCIMENTO SAMPAIO
  • ALLAN EDGARD SILVA FREITAS
  • ANILTON SALLES GARCIA
  • LISANDRO ZAMBENEDETTI GRANVILLE
  • Data: 19/07/2019

  • Mostrar Resumo
  • A concorrência por recursos de redes necessita ser arbitrada de acordo com as característicasde cada aplicação ou serviço para fornecer uma forma satisfatória, transparente e com um custo aceitável de utilização para os usuários. O atendimento às requisições de recursos deforma dinâmica, ou seja, sem prévia alocação (agendamento) do recursos para as aplicações e serviços podem permitir o compartilhamento de destes visando uma melhor utilização da rede. Decorrente das heterogeneidade dos perfis de usuários, aplicações e serviços, o atendimento dinâmico às requisições de recursos tende a gerar uma concorrência dinâmica por recursos nas redes como um todo.  Os modelos de alocação de banda possuem os atributos que permitem a definição de classes de aplicações e o controle da distribuição dos recursos entre as classes de forma intuitiva.  Estes modelos podem ser alterados e/ou reconfigurados visando a otimização na utilização do recurso de forma a evoluir seus comportamentos em sintonia com o perfil de tráfego e requisitos de comunicação e dequalidade definido para rede.  A definição do comportamento na arbitração de recursos que reflita uma melhor eficiência dos requisitos de comunicação e de qualidade definidos para rede em um determinado perfil de tráfego é uma tarefa complexa.  Esta complexidade podetornar a intervenção humana como um ponto de falha.  De forma geral, sistemas de gerência cognitiva são indicados para lidar com tarefas complexas onde a intervenção humana possa ser um ponto de falha. Estes sistemas são capazes de autoconfigurar-se autonomicamente, em resposta a mudanças ou falhas, de acordo com políticas de negócio, especificadas pelos administradores.  Esta Tese propõe a orquestração cognitiva e dinâmica da alocação derecursos (largura de banda), baseado em BAM, para redes MPLS/DSTE.  Para tal, propões um novo modelo de alocação de banda GBAM  que generaliza os comportamentos dos modelo clássicos e permite novas combinações de estratégias de forma configurável em tempo de execução; e um arcabouço cognitivo (BAM Cognitivo) que aprende e orquestra dinamicamente o comportamento do GBAM em sintonia com o perfil de tráfego e requisitosde comunicação e de qualidade definidos para rede.


  • Mostrar Abstract

  • Competition for network resources needs to be arbitrated according to the characteristics of each application or service to provide a satisfactory, transparent and cost-effective manner for users. Meeting resource requests dynamically, that is, without prior allocation (scheduling) of resources for applications and services can allow sharing of them for better use of the network. Due to the heterogeneity of user profiles, applications and services, dynamic response to resource requests tends to generate dynamic competition for resources across networks as a whole. Bandwidth allocation models have the attributes that allow you to define application classes and control the distribution of resources between classes intuitively. These models can be changed and / or reconfigured to optimize resource utilization to evolve their behaviors in line with the traffic profile and communication and network quality requirements. Defining behavior in resource arbitration that reflects better efficiency of network quality and communication requirements defined in a given traffic profile is a complex task. This complexity can make human intervention a point of failure. Generally speaking, cognitive management systems are designed to handle complex tasks where human intervention can be a point of failure. These systems are able to autonomously configure themselves in response to changes or failures in accordance with business policies specified by administrators. This thesis proposes the cognitive and dynamic orchestration of BAM-based resource allocation (bandwidth) for MPLS / DSTE networks. To this end, they propose a new GBAM band allocation model that generalizes the behaviors of classic models and allows new strategy combinations to be configurable at runtime; and a cognitive framework (Cognitive BAM) that dynamically learns and orchestrates GBAM behavior in line with the traffic profile and communication and quality requirements set for the network.

3
  • FLÁVIO GALVÃO CALHAU
  • Uma Estratégia Cognitiva de Recuperação de Redes Elétricas no Contexto do Smart Grid

  • Orientador : JOBERTO SERGIO BARBOSA MARTINS
  • MEMBROS DA BANCA :
  • EDUARDO CAMBRUZZ
  • JOBERTO SERGIO BARBOSA MARTINS
  • JOSÉ ANTONIO GOMES DE LIMA
  • KLEBER FREIRE DA SILVA
  • NATALIA CASTRO FERNANDES
  • Data: 02/08/2019

  • Mostrar Resumo
  • A reconfiguração das redes de distribuição de energia elétrica tem se tornado bastante atrativa devido ao processo de automatização e incorporação de dispositivos eletrônicos, que possibilitam manobras à distância. O processo de reconfiguração consiste em alterar a topologia da rede de distribuição através do fechamento ou abertura das chaves de interconexão. O processo de reconfiguração de redes de distribuição tem como objetivo apoiar o processo de decisão, planejamento e/ou controle em tempo real de operação de redes elétricas almejando a minimização de perdas ativas, balanceamento de carga e isolamento de falhas e melhoria nos níveis de tensão. A tarefa de gerenciar e tomar decisões de alterar a topologia da rede elétrica é uma tarefa bastante complexa devido à diversidade de possibilidades de configuração. Neste contexto, os sistemas de gerência autonômicos (Autonomic Management Systems - AMS) estão sendo investigados como uma solução exequível para o problema de reconfiguração de rede elétrica. Desta forma, espera-se que a intervenção humana na gerência possa ser substituída por soluções autonômicas geradas, de preferência, dinamicamente. Esta tese propõe o uso do Raciocínio Baseado em Casos (Case-Based Reasoning - CBR) acoplado ao algoritmo HATSGA para a rápida reconfiguração de grandes redes de distribuição de energia. A adequação e a escalabilidade da estratégia de reconfiguração baseado em CBR usando o algoritmo HATSGA são avaliados. A avaliação de desempenho indica que o algoritmo HATSGA calcula novas topologias de reconfiguração com um tempo computacional viável para grandes topologias de redes. A estratégia CBR procura soluções de reconfiguração gerenciais aceitáveis no banco de dados do CBR e, como tal, contribui para reduzir o número necessário de cálculos de reconfiguração usando o HATSGA. Isso sugere que o CBR pode ser aplicado com um algoritmo rápido de reconfiguração, resultando em uma estratégia de recuperação de redes mais eficiente, dinâmica e cognitiva.


  • Mostrar Abstract
  • The reconfiguration of electricity distribution networks has become quite attractive due to the process of automation and incorporation of electronic devices, which enable remote maneuvers. The reconfiguration process consists of changing the distribution network topology by closing or opening the interconnect switches. The distribution network reconfiguration process aims to support decision-making, planning and / or real-time control of grid operation aiming at minimizing active losses, load balancing and fault isolation and improving voltage levels. . The task of managing and making decisions to change the power grid topology is a very complex task due to the diversity of configuration possibilities. In this context, Autonomic Management Systems (AMS) are being investigated as a workable solution to the power grid reconfiguration problem. Thus, it is expected that human intervention in management can be replaced by autonomously generated solutions, preferably dynamically. This thesis proposes the use of Case-Based Reasoning (CBR) coupled with the HATSGA algorithm for the rapid reconfiguration of large power distribution networks. The suitability and scalability of the CBR-based reconfiguration strategy using the HATSGA algorithm are evaluated. Performance evaluation indicates that the HATSGA algorithm calculates new reconfiguration topologies with viable computational time for large network topologies. The CBR strategy looks for acceptable management reconfiguration solutions in the CBR database and, as such, contributes to reducing the required number of reconfiguration calculations using HATSGA. This suggests that CBR can be applied with a quick reconfiguration algorithm, resulting in a more efficient, dynamic and cognitive network recovery strategy.

2018
Teses
1
  • MARCELO MACHADO DE PINHEIRO
  • Network and Application Aware Orchestration (NAAO) for Cloud Computing

  • Orientador : JOSE AUGUSTO SURUAGY MONTEIRO
  • MEMBROS DA BANCA :
  • EDMUNDO ROBERTO MAURO MADEIRA
  • FRANCISCO VILAR BRASILEIRO
  • JOBERTO SERGIO BARBOSA MARTINS
  • JOSE AUGUSTO SURUAGY MONTEIRO
  • MAYCON LEONE MACIEL PEIXOTO
  • Data: 10/05/2018

  • Mostrar Resumo
  • This project proposes new Orchestration strategies based on Network and Application tiers awareness to accommodate the growing needs for Cloud Computing and its application. Commonly used orchestration strategies use CPU, RAM, Network, and storage attributes to allocate resources. The prototype of Network and Application Aware Orchestration (NAAO) is capable of orchestrating resources using, not only CPU, RAM and Network, but it also considers application tiers that are highly inter-dependent to each other. Those tiers are orchestrated as close as possible to provide the lowest latency between them. Three different strategies were developed: Aggressive, Aggregate, and Balanced. Each strategy can be applicable to meet different application latency, and response time SLAs. For each strategy, besides latency, VM migration and VM allocation time were measured. Each strategy is compared to commonly used orchestration strategy, and it is also compared against each other to understand the most suitable use case for each one. Aggregate and Aggressive strategies results can guarantee the lowest latency possible due to its behavior, whereas Balance has higher latency compared to these two, but very low latency when compared to commonly used orchestration. For Balanced and Aggregate, VM migration for 2-tier application occurs on average 14.51% and 22.82%, respectively, and it increases to 24.18% and 40.40% when 3-tier applications are used. On average, all three strategies have 4.04x higher VM allocation times when compared to commonly used orchestration. For all use cases tested in this dissertation, NAAO is able to achieve very low latency for highly inter-dependent applications (2 and 3 tiers), however it has impacts on VM migration and VM allocation time, which are tradeoffs of the proposed strategies.


  • Mostrar Abstract
  • This project proposes new Orchestration strategies based on Network and Application tiers awareness to accommodate the growing needs for Cloud Computing and its application. Commonly used orchestration strategies use CPU, RAM, Network, and storage attributes to allocate resources. The prototype of Network and Application Aware Orchestration (NAAO) is capable of orchestrating resources using, not only CPU, RAM and Network, but it also considers application tiers that are highly inter-dependent to each other. Those tiers are orchestrated as close as possible to provide the lowest latency between them. Three different strategies were developed: Aggressive, Aggregate, and Balanced. Each strategy can be applicable to meet different application latency, and response time SLAs. For each strategy, besides latency, VM migration and VM allocation time were measured. Each strategy is compared to commonly used orchestration strategy, and it is also compared against each other to understand the most suitable use case for each one. Aggregate and Aggressive strategies results can guarantee the lowest latency possible due to its behavior, whereas Balance has higher latency compared to these two, but very low latency when compared to commonly used orchestration. For Balanced and Aggregate, VM migration for 2-tier application occurs on average 14.51% and 22.82%, respectively, and it increases to 24.18% and 40.40% when 3-tier applications are used. On average, all three strategies have 4.04x higher VM allocation times when compared to commonly used orchestration. For all use cases tested in this dissertation, NAAO is able to achieve very low latency for highly inter-dependent applications (2 and 3 tiers), however it has impacts on VM migration and VM allocation time, which are tradeoffs of the proposed strategies.

2
  • THIAGO SOUTO MENDES
  • IDENTIFICAÇÃO E MONITORAMENTO INTERATIVO DE DÍVIDA TÉCNICA POR MEIO DA COMBINAÇÃO DE MÉTRICAS DE SOFTWARE E COMENTÁRIOS DE CÓDIGO FONTE

  • Orientador : MANOEL GOMES DE MENDONCA NETO
  • MEMBROS DA BANCA :
  • CHRISTINA VON FLACH GARCIA CHAVEZ
  • CLAUDIO NOGUEIRA SANT ANNA
  • JOSÉ AMÂNCIO MACEDO SANTOS
  • MANOEL GOMES DE MENDONCA NETO
  • MARCOS KALINOWSKI
  • Data: 11/05/2018

  • Mostrar Resumo
  • O conceito de dívida técnica contextualiza o problema das tarefas de manutenção pendentes como um tipo de dívida que traz um benefício a curto prazo para o projeto, mas que poderão ter de ser pagas com juros mais tarde no processo de desenvolvimento. É comum que projetos de software incorram em dívidas durante o processo de desenvolvimento uma vez que em pequenas quantidades dívidas podem aumentar a produtividade a curto prazo. No entanto, sua presença traz riscos e dificuldades para a gestão de projetos de software. Métricas de software têm sido utilizadas na identificação automática de dívida técnica. Entretanto, essa utilização não é uma tarefa trivial, pois necessita de ferramental específico e depende de conhecimento de domínio, contexto, e linhas bases e modelos próprios para determinação de valores de limiares das métricas que indiquem uma dívida técnica. Estes modelos, muitos deles baseados na detecção de code smells, geram altas taxas de falsos positivos. Nos últimos anos, estudos também têm sido realizados utilizando análises dos comentários de código fonte como mais uma alternativa para a identificação automática de dívida técnica. Neste cenário, o presente trabalho tem como objetivo investigar as correlações existentes na combinação das informações de métricas e comentários no processo de identificação de dívida técnica. Na busca deste objetivo, foram realizadas as seguintes atividades: (i) um mapeamento sistemático da literatura para identificar os principais tipos de dívida técnica existentes, seus respectivos indicadores, e estratégias para seu gerenciamento; (ii) estudos para entender problemas causados por diferentes tipos de dívida, principalmente as dívidas de código, de projeto e de documentação; (iii) estudos para definir uma estratégia de identificação de dívida técnica por meio da combinação de métricas e comentários de código; e (iv) desenvolvimento de duas ferramentas: a primeira para minerar repositórios de software, calcular métricas, detectar code smells, identificar dívida técnica por meio da combinação de diferentes indicadores e a segunda que utiliza técnicas visuais para apoiar a identificação e o monitoramento da evolução de dívida técnica baseado nos resultados dos estudos que foram realizados; e (v) um estudo exploratório com três softwares com o objetivo de verificar as relações existentes entre métricas e comentários na identificação de dívida técnica. Os resultados dos estudos mostram que os comentários podem ser utilizados com uma complementação da informação gerada a partir das métricas, para auxiliar os gerentes de projeto na identificação e priorização das dívidas a serem pagos.


  • Mostrar Abstract
  • The concept of technical debt contextualizes the problem of outstanding maintenance tasks as a kind of debt that brings a short-term benefit to the project but which may have to be paid with interest later in the development process. It is common for software projects to incur debt during the development process since small amounts of debt can increase productivity in the short term. However, their presence brings risks and difficulties to the management of software projects. Software metrics have been used in automatic identification of technical debt. However, this use is not a trivial task, since it requires specific tooling and depends on knowledge of the domain, context, and baselines and own models to determine threshold values of the metrics that indicate a technical debt. These models, many of them based on the detection of code smells, generate high rates of false positives. In recent years, studies have also been conducted using analyzes of source code comments as another alternative for automatic identification of technical debt. In this scenario, the present work aims to investigate the existing correlations in the combination of metrics and comments information in the technical debt identification process. In pursuit of this objective, the following activities were carried out: (i) a systematic mapping of the literature to identify the main types of technical debt, their respective indicators, and strategies for their management; (ii) studies to understand problems caused by different types of debt, especially the debts of code, project and documentation; (iii) studies to define a technical debt identification strategy by combining metrics and code comments; and (iv) development of two tools: the first to mine software repositories, calculate metrics, detect code smells, identify technical debt through the combination of different indicators, and the second that uses visual techniques to support evolution identification and monitoring technical debt based on the results of the studies that were carried out; and (v) an exploratory study with three software to verify the relationship between metrics and comments in the identification of technical debt. The results of the studies show that the comments can be used with a complementation of the information generated from the metrics, to assist the project managers in the identification and prioritization of the debts to be paid.
3
  • TASSIO FERREIRA VALE
  • Trace2vary: um novo algoritmo para recuperar rastreamentos de código de recurso SPL

  • Orientador : EDUARDO SANTANA DE ALMEIDA
  • MEMBROS DA BANCA :
  • CLAUDIO NOGUEIRA SANT ANNA
  • EDUARDO SANTANA DE ALMEIDA
  • TATIANE NOGUEIRA RIOS
  • PAULO HENRIQUE MONTEIRO BORBA
  • ALTIGRAN SOARES DA SILVA
  • Data: 19/10/2018

  • Mostrar Resumo
  • Na área de Linhas de Produto de Software (LPS), rastreabilidade refere-se ao relacionamento entre artefatos de software através de links capazes de responder perguntas específicas em famílias de produtos e dos processos de desenvolvimento atrelados a estas. Rastreabilidade é ainda mais complexa neste contexto se comparada ao desenvolvimento de sistemas simples (chamados single systems), por conta da necessidade de gerenciar a variabilidade dos produtos durante todas as fases do desenvolvimento. Esta tese investiga rastreabilidade em LPS e uma das suas contribuições é a evidência relacionada ao mapeamento sistemático da literatura, obtida a partir da análise de 62 estudos primários. Para esta área de pesquisa, um conjunto de aspectos foram analisados: principais objetivos, estratégias, domínios de aplicação, intensidade de pesquisa, desafios, rigor de pesquisa e relevância para a indústria. Os resultados do estudo de mapeamento indicam um conjunto de áreas que requerem pesquisa, dentre elas, o tema abordado neste trabalho que é a recuperação de rastreabilidade em LPS utilizando técnicas de recuperação de informação. Embora exista uma série de estudos que realizam tarefas de rastreabilidade com base em recuperação de informação no contexto de sistemas simples, nenhum destes menciona sua utilização no domínio de LPS. Consequentemente, outra contribuição deste trabalho envolve a avaliação de métodos de recuperação de informação aplicados como instrumentos de recuperação de rastreabilidade, uma vez que esta é uma prática exitosa no cenário de sistemas simples. A avaliação, realizada num formato de experimento controlado, aplicou cinco métodos de recuperação da informação distintos (classic vector, extended boolean, latent semantic indexing, neural network and BM25 ) em 41 projetos de sistemas ricos em variação, visando recuperar links entre features e arquivos de código-fonte. Os resultados experimentais identificaram limitações dos métodos relacionadas `a baixas taxas de precisão na recuperação, escalabilidade e incapacidade de recuperar informações relacionadas `a variabilidade. Considerando tais limitações, esta tese propõe trace2vary, um algoritmo de recuperação de rastreabilidade que cria links relevantes entre feature e código-fonte contendo informações relacionadas `a variabilidade da linha de produtos. Os resultados da avaliação com 16 projetos reais com um total de aproximadamente 61 milhões de linhas de código apontam que existem melhorias nas taxas de precisão dos links gerados, e o algoritmo é capaz de oferecer informações sobre variabilidade tanto no nível de feature, quanto no nível de código fonte.


  • Mostrar Abstract
  • Traceability in Software Product Lines (SPL) refers to the interrelation of software artifacts through required links to answer specific questions about families of products and their underlying development processes. Traceability becomes even more complex in SPLs if compared to single system development due to additional issues posed by the need for variability management in all development stages. Such variability should be systematically traced to cope with a consistent product line evolution. This thesis initially generated a systematic mapping study evidence by analyzing 62 SPL traceability primary studies. A set of aspects for such research field were investigated: main goals, strategies, application domains, research intensity, challenges, research rigor, and industrial relevance. The mapping study findings indicated a set of research gaps as the one addressed by this work, the lack of SPL traceability recovery (semi-) automatic techniques. Although there is a set of studies that perform traceability recovery using information retrieval methods in a single system development setting, none of them have targeted the SPL application domain. Thus, another contribution of this work concerned the evaluation of IR-based proposals as traceability recovery instruments since they represent a successful alternative for single system scenarios. The evaluation performed in a controlled-experiment fashion applied five different IR methods (namely classic vector, extended boolean, latent semantic indexing, neural network and BM25) into 41 SPL projects aiming at recovering feature-to-code trace links. The experimental results identified limitations of IR proposals related to low recovery precision rates and the inability to collect information related to variability. Considering the limitations of current research, this thesis proposes trace2vary, a traceability recovery algorithm that creates relevant feature-code trace links with embodied variability information. The evaluation results from the application of the proposal in 16 real-world projects with a total of, approximately, 61 million lines of code, indicate that trace2vary presents improvements in the traces recovery precision and the ability to provide variability knowledge at both feature and source code levels.

SIGAA | STI/SUPAC - - | Copyright © 2006-2024 - UFBA