Many real-world product lines are only represented as non-hierarchical collections of distinct products, described by their configuration values. As the manual preparation of feature models is a tedious and labour-intensive activity, some techniques have been proposed to automatically generate boolean feature models from product descriptions. However , none of these techniques is capable of synthesizing feature attributes and relations among attributes, despite the huge relevance of attributes for documenting software product lines. In this paper, we introduce for the first time an algorithmic and parametrizable approach for computing a legal and appropriate hierarchy of features, including feature groups, typed feature attributes, domain values and relations among these attributes. We have performed an empirical evaluation by using both randomized configuration matrices and real-world examples. The initial results of our evaluation show that our approach can scale up to matrices containing 2,000 attributed features, and 200,000 distinct configurations in a couple of minutes.
Paper has been presented at SPLC'15 (Nashville, USA)
Synthesis of Attributed Feature Models From Product Descriptions
1. 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
F2F0
A1 A2
A2 < 8 => A1 >= 2
A1 > 0 => A2 <= 2
Guillaume Bécan, Razieh Behjati, Arnaud Gotlieb, Mathieu Acher
Synthesis of Attributed Feature Models
From Product Descriptions
2. 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
3. Synthesis of Attributed Feature Models: Foundations 3
Product Lines/Highly configurable systems
config NR_CPUS
int "Maximum number of CPUs" if SMP && !MAXSMP
range 2 8 if SMP && X86_32 && !X86_BIGSMP
range 2 512 if SMP && !MAXSMP && !CPUMASK_OFFSTACK
range 2 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64
default "1" if !SMP
default "8192" if MAXSMP
default "32" if SMP && X86_BIGSMP
default "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
4. Synthesis of Attributed Feature Models: Foundations 4
● 2000+ options in about:config
● 3 types: boolean, integers, string
Firefox
Product Lines/Highly configurable systems
5. Synthesis of Attributed Feature Models: Foundations 5
Product Lines
Product comparison matrices
Comparison of digital SLRs
6. 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
7. Synthesis of Attributed Feature Models: Foundations 7
From Configuration Matrix to AFM
#2 synthesis procedure
#3 scalability evaluation
#1
semantics
8. 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
9. 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
10. 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
F2F0
A1 A2
root
F1
F3F2F0
A1
A2
excludes
Synthesis
11. 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
12. 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 => F1
F2 => A1 ∈ {0,2}
¬ F2 => A1 ∈ {2,3}
F2 => A2 ∈ {2,8}
¬ F2 => A2 ∈ {0}
…
A1 = 2 => A2 ∈ {0,2}
13. Synthesis of Attributed Feature Models: Foundations 13
Synthesis algorithm
● Define hierarchy (feature tree + place of attributes)
Binary implications
...
F2 => ¬ F1
¬ F2 => F1
F2 => 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
Hierarchy
Possible places for attributes
¬ f => ( a = null value of a )
A1 : root, F0
A2 : root, F0, F2
A1 A2
14. 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}
root
F1
F3
F2 F0
Mutex graph
Solver
Binary implications
Possible
feature groups
(Mutex, Or, Xor)
root
F1
F3
F2F0
A1 A2
+
+
Binary implication graph Hierarchy+ Mandatory
features
16. Synthesis of Attributed Feature Models: Foundations 16
User Effort
Domain knowledge =
● user input
● default heuristics
No user effort
Arbitrary choices
Fully 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)
17. Synthesis of Attributed Feature Models: Foundations 17
Scalability
Random 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
18. Synthesis of Attributed Feature Models: Foundations 18
Scalability
Random 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 min
Max: 62 min
19. Synthesis of Attributed Feature Models: Foundations 19
Scalability
Best 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
20. 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.
21. 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)
22. 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
23. 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
F2F0
A1 A2
A2 < 8 => A1 >= 2
A1 > 0 => A2 <= 2