1. Efficient Synthesis of
Feature Models
Thiago Pereira Rosa - thiagor@engineer.com
Universidade Federal do Ceará - Quixadá/CE
Engenharia de Software - 2015/1
3. O que é Variabilidade em Software?
"A variabilidade em um sistema de software é a capacidade para
adaptar e personalizar um sistema para um determinado contexto."
-van Gurp et al., 2001
4. Grandes sistemas de software
contêm variabilidades espalhadas
pela documentação, projeto e
implementação.
Porque fazer a modelagem
da variabilidade?
8. O que é a síntese do Modelo de Features?
• É o design e concepção de um modelo, dado um
conjunto de features e suas combinações legais.
9. Cenários aplicáveis
• Síntese a partir de Configurações do Produto
• Ferramenta de Engenharia Reversa do Código
• Merge das operações do Modelo de Features
10. A partir de Configurações do Produto
• A entrada consiste de variantes descrevendo uma linha de produtos.
Exemplo das variantes de modelo: Produtos desenvolvidos por
clonagem de código.
• As variantes são comparadas e os Pontos de Variação (VPS) são identificados.
• VPs e configurações do VP são usado como entrada para a síntese.
11. • A entrada consiste do código-fonte que contém a
variabilidade
• Análise estática de declarações #ifdef identifica
fragmentos de código como VPs e as dependências
entre as VPs.
Ferramenta de Engenharia Reversa do Código
12. Merge das operações do Modelo de Features
• A entrada consiste de Modelos de Features
• Modelos de Features são traduzidos para uma fórmula preposicional
através da configuração semântica
• Em seguida a fórmula é utilizada como entrada para a síntese.
13.
14. Inovações
• She, Czarnecki, and Wasowski,
“Usage scenarios for feature
model synthesis,” in VARY
Workshop, 2012.
• She, Lotufo, Berger, Wąsowski,
Czarnecki. “The variability
model of the linux kernel,” in
VaMoS Workshop, 2010.