Squid Impact Analyzer: Uma Ferramenta de Análise de Impacto de Mudanças para Linhas de Produto de Software
Linha de Produto de Software; Análise de Impacto de Mudanças; Evolução de Linhas de Produto de Software; Engenharia de Software Automatizada.
Linhas de Produtos de Software (LPS) consiste em um paradigma de desenvolvimento de software, no qual famílias de sistemas compartilham características comuns e tornam explícitas outras características que variam de acordo com o sistema final sendo considerado. Esta abordagem oferece benefícios ao desenvolvimento de software como redução de custos, qualidade do produto final, produtividade e tempo de desenvolvimento reduzido. Por outro lado, a abordagem impõe novos desafios para a atividade de evolução dos artefatos que modelam e implementam a LPS. Trabalhos de pesquisa recentes propõem abordagens com suporte automatizado de ferramentas de análise de impacto de mudança no contexto de evolução de LPSs. Tais abordagens são baseadas em técnicas de análise de impacto de mudanças e rastreabilidade de artefatos, porém apresentam limitações quanto à análise de impacto de mudanças em variabilidades de granularidade fina e à customização dos tipos e estratégias de análise realizadas. Esta dissertação propõe uma ferramenta de análise de impacto de mudança, denominada Squid Impact Analyzer, que utiliza uma estratégia de estimativa de impacto baseada em informações de variabilidades, mapeamento de tais variabilidades em artefatos de código, e dependência existente entre artefatos de implementação. A ferramenta é avaliada através da elaboração de estudos de caso que realizam a quantificação de métricas de cobertura e precisão nos resultados de buscas de análise de impacto de mudança da ferramenta proposta em contraposição à mudanças reais realizadas nos artefatos de diversas versões de evolução de uma LPS para gerenciamento de mídias em dispositivos móveis. A ferramenta foi desenvolvida com base em uma infraestrutura que serve de base para a instanciação de ferramentas de análise de propriedades de código de LPSs, e que é também parte da contribuição da dissertação.