SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Efficient Synthesis of
Feature Models
Thiago Pereira Rosa - thiagor@engineer.com
Universidade Federal do Ceará - Quixadá/CE

Engenharia de Software - 2015/1
http://dl.acm.org/citation.cfm?id=2362553
Nele Andersen, Krzysztof Czarnecki, Steven She,
Andrzej Wasowski (2012) "Efficient Synthesis of
Feature Models”, Asia-Pacific Software
Engineering Conference, Software Product Line
conference (SPLC), vol. 1, pp. 106-115.
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
Grandes sistemas de software
contêm variabilidades espalhadas
pela documentação, projeto e
implementação.
Porque fazer a modelagem
da variabilidade?
Modelo de Variabilidade
Os benefícios incluem configuração gráfica e análise automatizada.
Modelo de Features
Introduzido pela primeira vez por Kang et al
Descreve um conjunto de configurações legais
Modelo de Features
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.
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
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.
• 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
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.
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.
Dúvidas?

Contenu connexe

Tendances

02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesJuliano Tiago Rinaldi
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Maicon Amarante
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software RupFelipe
 
Documentação
DocumentaçãoDocumentação
DocumentaçãoLuiz China
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 

Tendances (20)

02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em Componentes
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
152191 11993
152191 11993152191 11993
152191 11993
 
Qualidade de código
Qualidade de códigoQualidade de código
Qualidade de código
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)
 
Documentos de software
Documentos de softwareDocumentos de software
Documentos de software
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software Rup
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Documentação
DocumentaçãoDocumentação
Documentação
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
Documento de requisitos
Documento de requisitosDocumento de requisitos
Documento de requisitos
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Engenharia de Software - Pontos de função
Engenharia de Software - Pontos de funçãoEngenharia de Software - Pontos de função
Engenharia de Software - Pontos de função
 

En vedette

En vedette (7)

Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertação
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
FDD
FDDFDD
FDD
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Ejemplo de fdd
Ejemplo de fddEjemplo de fdd
Ejemplo de fdd
 

Similaire à Reuso de Software - Síntese do Modelo de Features

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREEdson Oliveira Junior
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...sbcars
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe munizMatheus de Lara Calache
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Edson Oliveira Junior
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line VariabilitiesMichel Alves
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareEdison Moreira
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Alexandre Augusto Giron
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacaoguestff06a
 

Similaire à Reuso de Software - Síntese do Modelo de Features (20)

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 
Aula1 eng software
Aula1 eng softwareAula1 eng software
Aula1 eng software
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do Software
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacao
 

Plus de Thiago Pereira

Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosThiago Pereira
 
Workshop - Business Process Management
Workshop - Business Process ManagementWorkshop - Business Process Management
Workshop - Business Process ManagementThiago Pereira
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
Windows Azure - Computação em Nuvem
Windows Azure - Computação em NuvemWindows Azure - Computação em Nuvem
Windows Azure - Computação em NuvemThiago Pereira
 
Redesign iTest Learning
Redesign iTest LearningRedesign iTest Learning
Redesign iTest LearningThiago Pereira
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessThiago Pereira
 
Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoraçãoThiago Pereira
 

Plus de Thiago Pereira (8)

Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
 
Workshop - Business Process Management
Workshop - Business Process ManagementWorkshop - Business Process Management
Workshop - Business Process Management
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
Windows Azure - Computação em Nuvem
Windows Azure - Computação em NuvemWindows Azure - Computação em Nuvem
Windows Azure - Computação em Nuvem
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Redesign iTest Learning
Redesign iTest LearningRedesign iTest Learning
Redesign iTest Learning
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoração
 

Reuso de Software - Síntese do Modelo de Features

  • 1. Efficient Synthesis of Feature Models Thiago Pereira Rosa - thiagor@engineer.com Universidade Federal do Ceará - Quixadá/CE Engenharia de Software - 2015/1
  • 2. http://dl.acm.org/citation.cfm?id=2362553 Nele Andersen, Krzysztof Czarnecki, Steven She, Andrzej Wasowski (2012) "Efficient Synthesis of Feature Models”, Asia-Pacific Software Engineering Conference, Software Product Line conference (SPLC), vol. 1, pp. 106-115.
  • 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?
  • 5. Modelo de Variabilidade Os benefícios incluem configuração gráfica e análise automatizada.
  • 6. Modelo de Features Introduzido pela primeira vez por Kang et al Descreve um conjunto de configurações legais
  • 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.