Upload
acher
View
128
Download
2
Embed Size (px)
Citation preview
root F0 F1 F2 F3 A1 A2
Yes Yes Yes No Yes 3 0
Yes Yes No Yes Yes 2 2
Yes Yes Yes No No 2 0
Yes Yes No Yes No 0 8
Synthesis
root
F1
F3
F2F0A1 A2
A2 < 8 => A1 >= 2A1 > 0 => A2 <= 2
Guillaume Bécan, Razieh Behjati, Arnaud Gotlieb, Mathieu Acher
Synthesis of Attributed Feature ModelsFrom Product Descriptions
Notes
● Slides have been presented at SPLC'15 (Nashville, USA)
● Guillaume Bécan has made the vast majority of the slides
● Some slides were previously presented at FOSD'15 meeting
● Paper here: https://hal.inria.fr/hal-01178454
Synthesis of Attributed Feature Models: Foundations 3
Product Lines/Highly configurable systems
config NR_CPUSint "Maximum number of CPUs" if SMP && !MAXSMPrange 2 8 if SMP && X86_32 && !X86_BIGSMPrange 2 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACKrange 2 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64default "1" if !SMPdefault "8192" if MAXSMPdefault "32" if SMP && X86_BIGSMPdefault "8" if SMP---help--- This allows you to specify the maximum number of CPUs which this kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum supported value is 4096, otherwise the maximum value is 512. The minimum value which makes sense is 2.
This is purely to save memory - each supported CPU adds approximately eight kilobytes to the kernel image.
Linux kernel
Synthesis of Attributed Feature Models: Foundations 4
● 2000+ options in about:config
● 3 types: boolean, integers, stringFirefox
Product Lines/Highly configurable systems
Synthesis of Attributed Feature Models: Foundations 5
Product Lines
Product comparison matrices
Comparison of digital SLRs
Synthesis of Attributed Feature Models: Foundations 6
Modeling and Synthesis
● Boolean feature models (FMs) are nice but options are not only boolean. Languages/operations have been defined on top of attributed FMs; so where are attributed feature models?
● Numerous works address the synthesis of Boolean feature models, eg [Czarnecki et al. SPLC'07, Andersen et al. SPLC'12, Davril et al. FSE'13, Becan et al. ESE'15] but none of them consider attributes
●
We introduce for the first time an algorithmic and parameterizable approach for synthesizing attributed FMs from product descriptions
Synthesis of Attributed Feature Models: Foundations 7
From Configuration Matrix to AFM
#2 synthesis procedure#3 scalability evaluation
#1 semantics
Synthesis of Attributed Feature Models: Foundations 8
Attributed Feature Model (AFM)● AFM = attributed feature diagram + an arbitrary constraint
● Attributed feature diagram =
– Hierarchy of features
– Attributes: placed in features, they take a value in a domain
– Domain = set of values, null value and a partial order
– A set of human readable constraints
Synthesis of Attributed Feature Models: Foundations 9
Formalizing the AFM Synthesis Problem
● Configuration matrix = intermediate representation of a set of configurations
● Given a configuration matrix, synthesize an AFM which is
– Maximal = the feature diagram contains as much as possible information
– Sound and Complete = represent exactly the set of configurations
Synthesis of Attributed Feature Models: Foundations 10
Formalizing the AFM Synthesis Problem
● Theoretical contributions (more details in the paper)
– Over-approximation of the attributed feature diagram
– Several AFMs are possible for one configuration matrix
root F0 F1 F2 F3 A1 A2
Yes Yes Yes No Yes 3 0
Yes Yes No Yes Yes 2 2
Yes Yes Yes No No 2 0
Yes Yes No Yes No 0 8
root
F1
F3
F2F0A1 A2
root
F1
F3F2F0A1
A2
excludes
Synthesis
Synthesis of Attributed Feature Models: Foundations 11
Synthesis algorithm● Input: Configuration Matrix + Domain Knowledge ( )
● Output: AFM which is maximal, sound and complete
= user input + default heuristics
Tool name : FOReverSE
Synthesis of Attributed Feature Models: Foundations 12
Synthesis algorithm● Extract feature, attributes and their domains
Features● Root● F0● F1● F2● F3
Attributes● A1 : {0,2,3}, 0● A2 : {0,2,8}, 0
root F0 F1 F2 F3 A1 A2
Yes Yes Yes No Yes 3 0
Yes Yes No Yes Yes 2 2
Yes Yes Yes No No 2 0
Yes Yes No Yes No 0 8
● Compute binary implications
root F0 F1 F2 F3 A1 A2
Yes Yes Yes No Yes 3 0
Yes Yes No Yes Yes 2 2
Yes Yes Yes No No 2 0
Yes Yes No Yes No 0 8
...F2 => ¬ F1¬ F2 => F1F2 => A1 ∈ {0,2}¬ F2 => A1 ∈ {2,3}F2 => A2 ∈ {2,8}¬ F2 => A2 ∈ {0}…A1 = 2 => A2 ∈ {0,2}
Synthesis of Attributed Feature Models: Foundations 13
Synthesis algorithm● Define hierarchy (feature tree + place of attributes)
Binary implications...F2 => ¬ F1¬ F2 => F1F2 => A1 ∈ {0,2}¬ F2 => A1 ∈ {2,3}F2 => A2 ∈ {2,8}¬ F2 => A2 ∈ {0}...
root
F1
F3
F2F0
Binary implication graph (all possible hierarchies)
root
F1
F3
F2F0
HierarchyPossible places for attributes¬ f => ( a = null value of a )
A1 : root, F0 A2 : root, F0, F2
A1 A2
Synthesis of Attributed Feature Models: Foundations 14
Synthesis algorithm● Compute variability information (mandatory features, features groups)
– Only based on features
– Reuse existing algorithms (She et al., Inform Software Tech, 2014)
Xor: {F1, F2}
rootF1
F3F2 F0
Mutex graph
Solver
Binary implications
Possible feature groups
(Mutex, Or, Xor)
root
F1
F3
F2F0A1 A2+
+
Binary implication graph Hierarchy+ Mandatoryfeatures
Synthesis of Attributed Feature Models: Foundations 15
Synthesis algorithm● Compute readable constraints
Readable constraintsA1 > 0 => A2 <= 2A2 < 8 => A1 >= 2
Interesting valuesfor attributesA1 → 0A2 → 8
Binary implications...A1 = 0 => A2 ∈ {8}A1 = 2 => A2 ∈ {0,2}A1 = 3 => A2 ∈ {0}
A2 = 0 => A1 ∈ {2,3}A2 = 2 => A1 ∈ {2}A2 = 8 => A1 ∈ {0}…
Mergeconstraints
Grammar of readable constraints
Synthesis of Attributed Feature Models: Foundations 16
User Effort
Domain knowledge =
● user input
● default heuristics
No user effortArbitrary choicesFully automated algorithm
More user effort => better AFM● Feature or attribute?● Interpretation of the cells (“Yes”
= true)● Hierarchy (F3 below F0)● Overlapping feature groups● Bounds in constraints (“0” is an
interesting value for A1)
Synthesis of Attributed Feature Models: Foundations 17
ScalabilityRandom dataset
● Generator of configuration matrices
– Number of variables (features + attributes)
– Number of configurations
– Maximum domain size (number of distinct values in a column)
● Execution time of or-group computation
● 1000 configurations● max domain size of 10
Timeout always reached with more than 60 variables
Or groups do not scale !
= default heuristics only
Synthesis of Attributed Feature Models: Foundations 18
ScalabilityRandom dataset
● Execution time (no or-groups)
● Up to 2,000 variables● 1,000 configurations● Max domain size of 10
● 100 variables● Up to 200,000 configurations● Max domain size of 10
● 10 variables● 10,000 configurations● Up to 6000 distinct values
= default heuristics only
On all experiments:Average: 2.6 minMax: 62 min
Synthesis of Attributed Feature Models: Foundations 19
ScalabilityBest Buy dataset
Execution time of 2.1s for the most challenging matrix:● 77 variables● 185 configurations● Maximum domain size of 185
Execution time is similar to the random dataset
● 242 matrices● < 25% of empty cells● Interpretation of empty cells = default heuristics only
Synthesis of Attributed Feature Models: Foundations 20
Conclusion
We introduce for the first time an algorithmic and parameterizable approach for synthesizing attributed FMs from product descriptions
Three key contributions:
● Semantics of attributed feature models/configuration matrix (over- approximation, equivalence)
● We designed and implemented a tool-supported synthesis algorithm
● We empirically evaluated the scalability of the synthesis algorithm on random and real-world matrices.
Synthesis of Attributed Feature Models: Foundations 21
Future Work
● Empirical experiments provide evidence that the number of constraints can be huge
– Random dataset: 237 constraints in average, 8906 max
– Best Buy dataset: 6821 constraints in average, 28300 max
● How to address the problem?
– Minimization, prioritization, user-specified
– Combination thereof
● Opencompare.org
– More empirical studies on realistic matrices (beyond Best Buy)
Synthesis of Attributed Feature Models: Foundations 22
Future Work
● Take a set of constraints as input (rather than a set of configurations)– arbitrary propositional formula
– require the use of SMT/CP solvers
● Develop other operations on attributed feature models: aggregate, merge, slice...– Instance of synthesis problem
Synthesis of Attributed Feature Models: Foundations 23
Questions?
root F0 F1 F2 F3 A1 A2
Yes Yes Yes No Yes 3 0
Yes Yes No Yes Yes 2 2
Yes Yes Yes No No 2 0
Yes Yes No Yes No 0 8
Synthesis
root
F1
F3
F2F0A1 A2
A2 < 8 => A1 >= 2A1 > 0 => A2 <= 2
Synthesis of Attributed Feature Models: Foundations 24
Product Lines
{ "name": "Luke Skywalker", "height": "1.72 m", "mass": "77 Kg", "hair_color": "Blond", "skin_color": "Caucasian", "eye_color": "Blue", "birth_year": "19 BBY", "gender": "Male", "homeworld": "http://swapi.co/api/planets/1/", "films": [ "http://swapi.co/api/films/1/", "http://swapi.co/api/films/2/", "http://swapi.co/api/films/3/" ],
...}
The Star Wars API (http://swapi.co/){
"name": "Darth Vader","height": "202","mass": "136","hair_color": "none","skin_color": "white","eye_color": "yellow","birth_year": "41.9BBY","gender": "male","homeworld":
"http://swapi.co/api/planets/1/","films": [
"http://swapi.co/api/films/6/","http://swapi.co/api/films/3/","http://swapi.co/api/films/2/","http://swapi.co/api/films/1/"
],...
}