On the Implementation o Dynamic Software Product Lines: An Exploratory Study - Carvalho, Michelle (2015)
A abordagem de Linhas de Produto de Software (LPS) consiste em um paradigma de engenharia de software emergente para promover reuso através do ciclo de vida de software. LPS permitem que as empresas de desenvolvimento supram a grande demanda de sistemas de software usando plataformas e customização em massa. O desenvolvimento de LPS, entretanto, precisa ser adaptado aos novos requisitos, tendo em conta o surgimento de novas tecnologias e serviços. Estas novas tendências de mercado requerem que LPS tornem-se mais evolutivas e adaptáveis. Mais recentemente, a abordagem de Linhas de Produto de Software Dinâmicas (LPSD) surgiu como um meio promissor para desenvolver LPS que incorporam artefatos reusveis e dinamicamente reconfiguráveis. LPSD adaptam seu comportamento quando a variabilidade é alcançada em tempo de execução. A abordagem de reconfiguração dinâmica usa o mapeamento de funcionalidades para os componentes que normalmente são tratadas na implementação. Assim, a seleção de mecanismos que oferecem suporte as decisões de tempo de execução consiste em uma atividade importante. Embora a literatura apresente alguns estudos de implementação nesse contexto, falta a caracterização de mecanismos de acordo com os requisitos de LPSD. De fato, os desenvolvedores precisam contar com um conjunto de mecanismos para lidar com a variabilidade dinâmica. Ademais, as pesquisas existentes começaram recentemente a investigar a necessidade de continuamente evoluir LPSD. No entanto, o foco consiste em discutir modelos de variabilidade. Além disso, no foram realizados estudos empíricos para avaliar quantitativamente o impacto de diferentes paradigmas na implementação de evolução de LPSD. A fim de entender e reduzir as questões mencionadas, nos investigamos as áreas de LPS e LPSD para identificar quais mecanismos de implementação têm sido abordados para gerenciar a variabilidade dinâmica. Neste sentido, um conjunto de critérios foi desenvolvido visando caracterizar esses mecanismos e auxiliar os desenvolvedores na etapa inicial do desenvolvimento de LPSD. Além disso, foi realizado um estudo exploratório no domínio de casas inteligentes com o objetivo de comparar as soluções orientadas a objetos e aspectos para a implementação de evolução de LPSD.