Uma Abordagem para Evolução e Reconciliação de Linhas de Produtos de Software Clonadas
Engenharia de Linhas de Produto de Software, Clonagem de Linhas de Produto de Software, Evolução de Software, Mineração de repositório de Software, Linhas de Produto para Sistemas de Informações Web
Linhas de produtos de software promovem a reutilização em larga escala através do desenvolvimento de famílias de sistemas que:
(i) compartilham um núcleo comum de características previamente implementadas; e (ii) permitem a seleção e customização das características variáveis, as quais determinam os comportamentos distintos de cada membro ou produto da família de sistema. Por razões de time-to-market e flexibilidade, a indústria de software tem adotado, com frequência, a técnica de clonagem como mecanismo de criação de produtos ou de novas linhas de produtos. Apesar das suas vantagens, a técnica de clonagem traz dificuldades para a evolução e reconciliação de características de linhas de produto de software devido aos possíveis conflitos de integração das mudanças realizadas no código da linha de produto de software original, denominada Source, e a da linha de produto clonada, denominada Target. Esta tese de doutorado propõe uma abordagem para evolução e reconciliação de produtos clonadas baseada na adoção de técnicas de mineração de repositórios de software. A abordagem promove a identificação de
diferentes tipos de conflitos - léxicos, estruturais e semânticos - que podem ocorrer durante a integração de características ou tarefas de desenvolvimento da linha de produto original para a linha de produto clonada. O trabalho apresenta os resultados de um estudo empírico de caracterização dos tipos de conflitos de integração de código em diferentes evoluções de duas linhas de produto de software de sistemas de informação web. Os resultados do estudo demonstram o potencial da abordagem na resolução automática ou semi-automática de vários dos conflitos existentes, reduzindo assim os custos de evolução e reconciliação de linhas de produto de software clonadas.