Decomposing Feature Models
Language, Environment, and Applications
Mathieu Acher1, Philippe Collet1 , Philippe Lahire1 and Robert France2
1 University 2 Colorado
State University, USA
of Nice Sophia Antipolis, CNRS, France
{acher,collet,lahire}@i3s.unice.fr Computer Science Department
france@cs.colostate.edu
Slicing Feature Models
Semantics, Algorithm, Support, and Applications
Mathieu Acher1, Philippe Collet1 , Philippe Lahire1 and Robert France2
1 University 2 Colorado State University, USA
of Nice Sophia Antipolis, CNRS, France
{acher,collet,lahire}@i3s.unice.fr Computer Science Department
france@cs.colostate.edu
ASE'11 short paper
Semantics Algorithm
Hierarchy Set of Support for Semantics-aware
configurations Constraints Technique
Root Support
Or Mandatory
Slicing
Xor Optional
Technique
Future Work Motivation
Reasoning
about two kinds
of variability Reconciling Updating and
Paper Feature Models Extracting Views
Large and Multiple, Inter-
Support Complex FMs related FMs Algorithm
Propositional
Demonstration Long Short
Logics
Support for
Constraints Corrective
Capabilities Semantics-aware
Automation Language
Syntactical Technique
Environment Root Support Technique
Case Study
BDD SAT Standalone Eclipse Editors
Semantics
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering Graphical Textual
Workflows Software Architecture Editor Editor
Hierarchy Set of
configurations
(Algorithm <-> Semantics) ^ (Algorithm <-> CorrectiveCapabilities) ^ (Algorithm <-> RootSupport)
^ (CorrectiveCapabilities -> SupportForConstraints) ^ (CorrectiveCapabilities -> SemanticsAware)
^ (SetOfConfigurations <-> SemanticsAware) ^ (SemanticsAware -> Automation) ^ (Language -> TextualEditor)
^ (TextualEditor -> Eclipse) ^ Language
ASE'11
demonstration Applications
Support
Technique
Case Study
Language Reasoning
Automation Environment about two kinds
Reconciling Updating
of variability
Video Feature and
Surveillance Models Extracting
Processing Views
Textual Chains Medical
Standalone Eclipse Reverse Engineering
BDD SAT Editor Imaging
Software Architecture
Workflows
Feature Models
defacto standard for modeling variability
more than 1000 citations of Kang et al. 1990 per year
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Feature Models
semantics: control legal combination of features (aka configurations)
Batory et al. 2005, Czarnecki et al. 2007, Schobbens et al. 2007
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Feature Models
support: automated reasoning (e.g., configurators) Benavides et al. 2010
languages and tools e.g., FeatureIDE, SPLOT, TVL and FAMILIAR
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Feature Models
large, complex and multiple
Feature Model of Linux: more than 5000 features Berger et al. ASE’10, She et al. ICSE’11
Feature models are governed by many complex constraints Hubaux et al. 2010, Benavides et al. 2010
Feature models are multiple (e.g., systems-of-systems, suppliers) Acher et al. 2011 (PhD thesis)
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Feature Models
large, complex and multiple
We need support for Separation of Concerns and Automated Reasoning
(1) ability to compose feature models (inserting, merging, aggregating) Acher et al. 2009
(II) ability to decompose feature models Acher et al. ASE’11
(III) ability to reason about the composition and decomposition
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Feature Models
We need support for Managing Feature Models
new capabilities arise when you combine decomposition mechanism with
composition, reasoning, comparison and editing mechanisms
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
Decomposing Feature Models
Language, Environment, and Applications
Slicing
Technique
Case Study
Reasoning
about two kinds
Support of variability Updating and
Reconciling
Feature Models Extracting Views
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering
Workflows Software Architecture
Automation
Language
Or Mandatory
Environment
CaseStudy -> Automation ^ Language) ^
Xor Optional
(Language -> TextualEditor) ^
(TextualEditor -> Eclipse)
BDD SAT
Standalone Eclipse Editors
Graphical Textual
Editor Editor
ASE'11
demonstration Applications
Support
Technique
Case Study
Language Reasoning
Automation Environment about two kinds
Reconciling Updating
of variability
Video Feature and
Surveillance Models Extracting
Processing Views
Textual Chains Medical
Standalone Eclipse Reverse Engineering
BDD SAT Editor Imaging
Software Architecture
Workflows
See you!
Slicing Feature Models
Semantics, Algorithm, Support, and Applications
Mathieu Acher1, Philippe Collet1 , Philippe Lahire1 and Robert France2
1 University 2 Colorado
of Nice Sophia Antipolis, CNRS, France State University, USA
{acher,collet,lahire}@i3s.unice.fr Computer Science Department
france@cs.colostate.edu
ASE'11 short paper
Semantics Algorithm
Hierarchy Set of Support for Semantics-aware
configurations Constraints Technique
Root Support
Or Mandatory
Slicing
Xor Optional
Technique
Future Work Motivation
Reasoning
about two kinds
of variability Reconciling Updating and
Paper Feature Models Extracting Views
Large and Multiple, Inter-
Support Complex FMs related FMs Algorithm
Propositional
Demonstration Long Short
Logics
Support for
Constraints Corrective
Capabilities Semantics-aware
Automation Language
Syntactical Technique
Environment Root Support Technique
Case Study
BDD SAT Standalone Eclipse Editors
Semantics
Video Surveillance
Processing Chains Medical Imaging Reverse Engineering Graphical Textual
Workflows Software Architecture Editor Editor
Hierarchy Set of
configurations
(Algorithm <-> Semantics) ^ (Algorithm <-> CorrectiveCapabilities) ^ (Algorithm <-> RootSupport)
^ (CorrectiveCapabilities -> SupportForConstraints) ^ (CorrectiveCapabilities -> SemanticsAware)
^ (SetOfConfigurations <-> SemanticsAware) ^ (SemanticsAware -> Automation) ^ (Language -> TextualEditor)
^ (TextualEditor -> Eclipse) ^ Language
ASE'11
demonstration Applications
Support
Technique
Case Study
Language Reasoning
Automation Environment about two kinds
Reconciling Updating
of variability
Video Feature and
Surveillance Models Extracting
Processing Views
Textual Chains Medical
Standalone Eclipse Reverse Engineering
BDD SAT Editor Imaging
Software Architecture
Workflows