impacto de mudanças em LPS baseada em técnicas de rastreabilidade de artefatos. Ela também provê uma ferramenta para a abordagem proposta e uma avaliação da análise de impacto realizada. Na abordagem proposta, as informações de rastreabilidade são utilizadas para apoiar a análise de impacto de mudanças, através da avaliação das implicações de mudanças que ocorrem nos sistemas de software por meio dos seus artefatos.
Esta abordagem oferece suporte para três tipos de artefatos: diagrama de casos de uso, modelo de características e diagrama de classes. As informações extraídas dos artefatos são associadas a um modelo de rastreabilidade, o qual foi definido com base no metamodelo de rastreabilidade de artefatos proposto por (SOUZA et al., 2009). São definidos três tipos de relação: (i) satisfatibilidade – um artefato A atende os requisitos de B, por exemplo, as relações de satisfatibilidade entre características e classes, pois as classes devem implementar a característica expressa pela característica; (ii) dependência – expressam que um artefato A depende do artefato B se A invoca B, ou se uma mudança
em B reflete em A; (iii) evolução – podem acontecer entre classes, quando uma classe A evolui para classe B. Isso implica que a classe A foi alterada para classe B durante a evolução da LPS, geralmente ocorre entre versões diferentes da LPS.
Com base no modelo de rastreabilidade realiza-se a análise de impacto de mudanças. A análise proposta está dividida em quatro etapas além de uma etapa final de avaliação. A primeira etapa é “Analisar as Requisições de Mudança” na qual são analisadas as mudanças propostas para a LPS no nível de documentação de casos de uso. A atividade “Rastrear Potencial de Impacto” utiliza os resultados da atividade anterior para estimar quais artefatos poderão sofrer mudanças, obtendo assim o impacto estimado. Na atividade “Implementar Requisições de Mudança” são identificados os artefatos que realmente são afetados pela execução das mudanças, resultando no impacto afetado. Por fim, compara-se o impacto afetado com o impacto estimado com intuito de obter os falsos positivos e os impactos não identificados. Após a análise de impacto de mudanças é realizada uma avaliação dos resultados obtidos, na qual são aplicadas métricas para avaliar se a análise de impacto foi bem sucedida ao estimar os artefatos alterados, calculando a taxa de erro, taxa de acerto e a precisão da análise de impacto.
A ferramenta Satori foi construída para dar suporte a abordagem proposta. Ela foi desenvolvida sob a plataforma Eclipse utilizando o EMF para extrair as informações dos modelos de casos de uso, de classes e de características. Após a extração, o Satori exporta as informações dos artefatos para uma instância do modelo de rastreabilidade em um banco de dados relacional, o qual é encarregado de armazenar as informações de rastreabilidade. A ferramenta também provê uma aplicação web para manipulação das informações contidas no modelo de rastreabilidade, para simulação de mudanças nos artefatos e para visualização dos resultados das métricas de avaliação.
Embora a abordagem ofereça suporte ferramental, nem todas as etapas são automatizadas. As relações de rastreabilidades não podem ser inferidas diretamente através dos modelos de entrada e exigem a participação dos engenheiros de domínio e de aplicação da LPS para auxiliar nessa atividade. Essa é uma desvantagem considerável, pois a cada evolução da LPS, essas relações de rastreabilidade precisam ser atualizadas para que a ferramenta funcione corretamente. Dentro do contexto de LPSs de larga escala, esta atividade pode ser muito dispendiosa.
Por adotar modelos no quais os elementos de granularidade mais fina são as classes, a abordagem não consegue lidar com situações onde há várias características implementadas por uma mesma classe. Por exemplo, o Satori identifica uma mudança realizada em uma determinada classe como impacto para todo o conjunto de características associadas àquela classe, porém a modificação pode estar relacionada a apenas uma das características associadas. Esse tipo de situação prejudica a precisão da análise de impacto de mudanças inserindo muitos falsos positivos no resultado, esta condição foi verificada no experimento apresentado.
Em relação a este trabalho de mestrado, (OLIVEIRA, 2011) realiza a análise de impacto de mudanças apenas com base em informações de rastreabilidade de artefatos de alto nível, não havendo nenhum tipo de análise de dependência de artefatos de código. Conforme comentado anteriormente, o uso de tais informações de dependência de código, pode ajudar a melhorar a previsão da análise de impacto de mudança. De forma similar a (RIBEIRO et al., 2011), este trabalho não se preocupa em oferecer uma solução flexível preparada para receber extensões que venham permitir aos engenheiros de LPS customizar as estratégias de análise de impacto, de acordo com as suas necessidades.
7 Considerações Finais
Essa dissertação envolveu o projeto e implementação de uma infraestrutura de software para a instanciação de ferramentas de análise de implementações de linhas de produto de software, usando como base informações relacionadas as suas variabilidades bem como dependências entre artefatos de código. A infraestrutura oferece pontos flexíveis que podem ser concretizados para: (i) extração de informações de características de artefatos de modelagem e implementação de LPS; (ii) extração de dependências de artefatos de implementação; (iii) buscas sobre um modelo de análise que agrega as informações extraídas dos artefatos da LPS; e (iv) visualizações específicas para os resultados das buscas. A dissertação também apresentou implementações de referência dos pontos de extensão providos pela infraestrutura.
Como forma de instanciação da infraestrutura Squid foi desenvolvida uma ferramenta de análise de impacto de mudanças em LPS, denominada Squid Impact
Analyser. A ferramenta propõe um conjunto de estratégias de análise de impacto de
mudanças para o contexto de LPS implementadas na linguagem Java, fazendo uso combinado de informações de características de LPS e de dependência de artefatos de implementação. As informações de dependência de artefatos de implementação são obtidas através de um módulo da infraestrutura Squid que realiza análise estática de código fonte da LPS para extrair dependência entre elementos de implementação incluindo trechos de código anotados com compilação condicional.
Finalmente, a dissertação também apresentou uma avaliação sistemática da ferramenta Squid Impact Analyser, através da realização de experimentos de análise de impacto de mudança no contexto de evolução da LPS Mobile Media. Foram realizados dois experimentos, o primeiro focalizou a avaliação da influência do uso de informações de características na análise de impacto de mudanças em LPS, enquanto o segundo investigou a influência simultâneo de informações de mapeamento de características e informações de dependência entre artefatos na análise de impacto de mudanças. Para a avaliação e análise dos resultados foram adotadas métricas para análise de impacto de mudanças. Os resultados dos experimentos de avaliação mostraram que:
(I). Em ambos experimentos nota-se que parte dos impactos de mudança estimados corretamente é proveniente de informações de rastreabilidade de características, enquanto a outra parte é proveniente de informações da análise estática de código. Esse resultado demonstrou que o uso combinado de informações de dependência entre artefatos de implementação e informações de mapeamento de características nos artefatos da LPS, induzem a uma melhora da taxa de cobertura da análise de impacto de mudanças, porém o seu efeito colateral foi uma diminuição da taxa de precisão da análise.
(II). No caso de evolução de remoção de características de LPS, o uso de informações de dependências contribuiu para o aumento na cobertura da análise ao custo da redução na precisão da ferramenta.
(III). Os resultados do segundo experimento mostraram que, para o contexto da análise de impacto de remoção de características, as informações de rastreabilidade das características apontam artefatos que certamente sofrem impactos de mudança para este tipo de evolução.
(IV). Os resultados da métrica média harmônica demonstram que o uso simultâneo de informações de mapeamento de características e informações de dependência entre artefatos na análise impacto de mudanças se reflete um melhor resultado ao uso isolado dessas informações. A diferença pode se r observada de forma mais contundente no experimento 2, no qual houve uma diferença media de 8%.