mathieu acher managing feature models. (feature model script language for manipulation and automatic...
TRANSCRIPT
![Page 1: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/1.jpg)
Mathieu Acher
Managing Feature Models
![Page 2: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/2.jpg)
LearningFeature Models with
(a.k.a implementing the introductory example)
![Page 3: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/3.jpg)
(FeAture Model scrIpt Language for manIpulation and Automatic Reasoning)
φTVLDIMACS
http://familiar-project.github.com/
Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France « A Domain-Specific Language for Large-Scale Management of Feature Models » Science of Computer Programming (SCP), 2013
![Page 4: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/4.jpg)
4
![Page 5: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/5.jpg)
5
![Page 6: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/6.jpg)
6
{AirConditioning, FrontFogLights}{AutomaticHeadLights, AirConditioning, FrontFogLights}{AutomaticHeadLights, FrontFogLights, AirConditioningFrontAndRear}{AirConditioningFrontAndRear}{AirConditioning}{AirConditioningFrontAndRear, FrontFogLights}
{CarEquipment, Comfort, DrivingAndSafety, Healthing}
X
![Page 7: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/7.jpg)
7
![Page 8: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/8.jpg)
Much more than that!
Let us have a deeper look
![Page 9: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/9.jpg)
(FeAture Model scrIpt Language for manIpulation and Automatic Reasoning)
importing, exporting, composing, decomposing, editing, configuring, reverse engineering, computing "diffs", refactoring, testing, and reasoning about (multiple) variability models
φTVLDIMACS
http://familiar-project.github.com/
Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France « A Domain-Specific Language for Large-Scale Management of Feature Models » Science of Computer Programming (SCP), 2013
![Page 10: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/10.jpg)
10
#1 Automated Analysis
![Page 11: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/11.jpg)
11
#2 Multiple Feature Models
![Page 12: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/12.jpg)
1212
Multi-* variability
*systems, perspectives, or stakeholders
![Page 13: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/13.jpg)
13
• #1 Automated analysis – Aka support to better understand and play with your feature
model (TVL model)
• #2 Managing multiple feature models– Composing / Decomposing / Diff and Reasoning about their
relationships– Combining these operators
Two Key Requirements
![Page 14: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/14.jpg)
language and environment
And-Group
Optional
Mandatory
Xor-Group
Or-Group
constraints
……..
DirectX
V10 V10.1 v11
Outputs
VIVO DVI HDMI
S-Video Composite
VGA
GraphicCard And-Group
Optional
Mandatory
Xor-Group
Or-Group
TV output
constraints
VGA excludes TV outputHDMI implies v10.1 or v11
constraints
……..
constraints
……..
constraints
……..
// foo.fmlfm1 = FM (“foo1.tvl”)fm2 = FM (“foo2.m”)fm3 = merge intersection { fm1 fm2 }c3 = counting fm3renameFeature fm3.TV as “OutputTV”fm5 = aggregate { fm3 FM (“foo4.xml”) }assert (isValid fm5) fm6 = slice fm5 including fm5.TV.* export fm6
True/False8759“OutputTV”, “TV”
Interoperability Language facilities Environment
![Page 15: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/15.jpg)
15
Interoperabilityfm1 = FM(“foo.tvl”)fm2 = FM (“foo.m”) serialize fm4 into SPLOT
serialize fm1 into featureidefm3 = FM (“foo.xmi”)fm4 = FM (A : B ….)
De/Compositionmerge diff intersection sunion
aggregatemapunmap
extract slicing
EditingrenameFeature
removeFeatureaccessors
copy
Reasoning counting configs
isValiddeadscores
falseOptionalscleanup
configuration selectdeselectasFMcompare
setOptional setMandatory
setAlternativessetOr
Language Facilitiesfm1.* fm1.B
modular mechanisms
restricted set of typesiterator/conditional
assertion
insert
features
![Page 16: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/16.jpg)
16
Hello Worldhelloworld.fml
![Page 17: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/17.jpg)
17
Typed language • Domain-specific types
– Feature Model, – Configuration, – Feature, – Constraint
• Other types include – Set– String – Boolean, – Enum, – Integer and Real.
• A set of operations, called operators, are defined for a given type.
basics2.fml
![Page 18: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/18.jpg)
18
Typed language basics2.fml
![Page 19: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/19.jpg)
19
Typed language basics2.fml
![Page 20: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/20.jpg)
20
Importing/Exporting feature models
Internal notation or by “filename extensions”
basics3.fml
![Page 21: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/21.jpg)
21
Feature Accessors (1)ftAccessors.fml
![Page 22: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/22.jpg)
22
Other constructsftAccessors2.fml
![Page 23: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/23.jpg)
23
Configurationconf.fml
![Page 24: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/24.jpg)
24
φ FM
A ^A B ^ C => A ^D => A
![Page 25: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/25.jpg)
25
Operations for Feature Models (1)
φ
operatorsFM.fml
![Page 26: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/26.jpg)
26
Operations for Feature Models (2)
φ
operatorsFM2.fml
![Page 27: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/27.jpg)
27
Operations for Feature Models (3)operatorsFM3.fml
![Page 28: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/28.jpg)
SoC support = Composition/Decompositionfor managinglarge, complex and multiplefeature models
FORM 1998, Tun et al. 2009 (SPLC), Hartmann 2008 (SPLC), Lee et al. 2010, Czarnecki 2005, Reiser et al. 2007 (RE journal), Hartmann et al. 2009 (SPLC), Thuem et al. 2009 (ICSE), Classen et al. 2009 (SPLC), Mendonca et al. 2010 (SCP), Dunghana et al. 2010, Hubaux et al. 2011 (SoSyM), Zaid et al. 2010 (ER), She et al., 2011 (ICSE), etc.
![Page 29: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/29.jpg)
29
Composing Feature Models (1)aggregateBasics.fml
![Page 30: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/30.jpg)
30
Composing Feature Models (2)aggregate1.fml
Previous version
![Page 31: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/31.jpg)
31
Composing Feature Models (3)mergeMI.fml
Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France « Comparing Approaches for Implementing Feature Model Composition » ECMFA’10
![Page 32: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/32.jpg)
see also Thuem, Kastner and Batory, ICSE’09
Comparing Feature Models
32
compare.fml
![Page 33: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/33.jpg)
Combining operators: an example
![Page 34: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/34.jpg)
34
Merge Intersection: Available Suppliers
∩∩
A customer has some
requirements
Suppliers?Products?
![Page 35: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/35.jpg)
35
In FAMILIARsuppliersExample0.fml
![Page 36: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/36.jpg)
36
Merge Union: Availability Checking
Can suppliers provide all products?Yes!
“compare”
∩
![Page 37: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/37.jpg)
37
In FAMILIARsuppliersExample.fml
![Page 38: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/38.jpg)
38
Merging operation: implementation issues
How to synthesise a feature model that represents the union of input sets of configurations?
T2
MRI
Medical Image
HeaderAnonymized
T1
DICOM
Header excludes DICOMHeader implies AnonymizedAnonymized v Header v ~DICOM v ~T1 v ~T2Anonymized v Header v DICOM v ~T1 v ~T2
![Page 39: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/39.jpg)
39
Merging operation: semantic issues (2)
φUnionIntersection Diff
How to synthesise a feature model that represents the union of input sets of configurations?
![Page 40: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/40.jpg)
40
Merging operation: algorithm
φ1
φ2
φ3
φ123
merged propositional formulaT2
MRI
Medical Image
HeaderAnonymized
T1
DICOM
merged hierarchy+
Set mandatory featuresDetect Xor and Or-groupsCompute “implies/excludes” constraints
How to synthesise a feature model that represents the union of input sets of configurations?
see also [Czarnecki SPLC’07 or SPLC’12]
![Page 41: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/41.jpg)
41
Merging operation: back to hierarchymergeNonPC.fml
> configs fm4res12: (SET) {{C;A};{A;B};{A};{A;B;C}} ?
Mathieu Acher, Benoit Combemale, Philippe Collet, Olivier Barais, Philippe Lahire, Robert B. France « Composing your Compositions of Variability Models » MODELS’13
![Page 42: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/42.jpg)
42see also [Acher et al., ECMFA’10 / MODELS’13]
– Well-defined semantics– Guarantee semantics properties by construction– More compact feature models than reference-based
techniques [Schobbens et al., 2007], [Hartmann et al., 2007]
• Easier to understand• Easier to analyze (e.g., compare with another)
– Applicable to any propositional feature models • Full support of propositional constraints • Different hierarchies [Van Den Broek et al., SPLC’2010/2012]
– Syntactical strategies fail [Alves et al., 2006], [Segura et al., 2007]
Related Works
![Page 43: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/43.jpg)
Another application of composing feature
models
(purpose: automated synthesis of feature models)
![Page 44: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/44.jpg)
44
Problem: multiple „car models“
![Page 45: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/45.jpg)
45
Problem: multiple „car models“
![Page 46: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/46.jpg)
46
Problem: multiple „car models“
![Page 47: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/47.jpg)
47
Problem: multiple „car models“
#2 – bottom-up: elaborate a feature model for each model line and merge them
Two modeling approaches
#1 – top-down: specify constraints (e.g., excludes) of all model lines upfront
![Page 48: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/48.jpg)
48
#1 top-down
![Page 49: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/49.jpg)
49
#1 bottom-upFM_1
FM_2
FM_3
FM_rmerge
![Page 50: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/50.jpg)
50
#1 bottom-up (FAMILIAR)FM_1
FM_2
FM_3
FM_rmerge
audiMerge.fml
![Page 51: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/51.jpg)
Decomposition support
(and its combination with other operators)
![Page 52: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/52.jpg)
52
Building “views” of a feature model
![Page 53: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/53.jpg)
53
• Problem: given a feature model, how to decompose it into smaller feature models?
• Semantics?– What’s the hierarchy– What’s the set of configurations?
Building “views” of a feature model
![Page 54: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/54.jpg)
54
A first try
A3 => P1P2 => A5
R
A2
A5 A6
A1
A3 A4
A
fm0
P3P2P1
P
P1 => P2
A2
A5 A6
A1
A3 A4
AfmExtraction1
A2
A5 A6
A1
A3 A4
AfmExtraction2
A3 => A5A4 => A6
Problem: You can select A3 without A5
Hierarchy and Configuration matter!
![Page 55: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/55.jpg)
55
Slicing Operator
W
constraintsE implies DR implies E D excludes FS implies (F and not E)
P
R S
fm1
AV
T U
B C D
E F
Optional
Mandatory
Xor-Group
Or-Group
T
S E D
constraintsE implies DD implies E
slicing criterion : an arbitrary set of features, relevant for a feature model user
slice : a new feature model, representing a projected set of configurations
![Page 56: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/56.jpg)
56
Slicing operator: going into detailsprojected set of configurations
fm1 = { {A,B,C,D,E,P,R,T,U,W}, {A,B,C,F,P,S,T,U,W}, {A,B,C,D,E,P,R,T,W}, {A,B,C,F,P,S,T,V,W}, {A,B,C,F,P,S,T,U,V,W}, {A,B,C,F,P,S,T,W}, {A,B,C,D,E,P,R,T,V,W}, }
fm1 = { {A,B,C,D,E,P,R,T,U,W}, {A,B,C,F,P,S,T,U,W}, {A,B,C,D,E,P,R,T,W}, {A,B,C,F,P,S,T,V,W}, {A,B,C,F,P,S,T,U,V,W}, {A,B,C,F,P,S,T,W}, {A,B,C,D,E,P,R,T,V,W}, }
fm1p = { {D,E,T}, {S,T}, {D,E,T}, {S,T}, {S,T}, {S,T}, {D,E,T}}
fm1p = { {D,E,T}, {S,T}, }
![Page 57: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/57.jpg)
57
+T
S E D
constraintsE implies DD implies E
φs1
existential quantification
of features not included in the slicing
criterion
fm1p = { {D,E,T}, {S,T}}
Slicing operator: going into detailssynthesizing the corresponding feature model
S E D
T
φ1
Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France « Separation of Concerns in Feature Modeling: Support and Applications » AOSD’12
![Page 58: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/58.jpg)
58
T
S E D
constraintsE implies DD implies E
Slicing operator with FAMILIAR (1)slicingOp2.fml
![Page 59: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/59.jpg)
59
Slicing with FAMILIAR (2)slicingOp.fml
![Page 60: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/60.jpg)
From marketing, customers, product management
From existing software assets (technical variability)
Metzger, Heymans et al. “Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis“ (RE’07)
![Page 61: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/61.jpg)
From marketing, customers, product management
From existing software assets
realizability
usefulness
![Page 62: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/62.jpg)
Realizability checkingaggregate
{{V1,V3,V2,VP1},{V1,VP1},{V3,VP1}, {VP1}}
merge diff (“unrealizable products”)
φ
1
slice (“realizable part”)2
3 compare4
Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France « Separation of Concerns in Feature Modeling: Support and Applications » AOSD’12
![Page 63: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/63.jpg)
63
With FAMILIARrealizibility.fml
![Page 64: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/64.jpg)
Advanced topics
![Page 65: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/65.jpg)
65
Revisiting Merge: Aggregate + Slice
![Page 66: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/66.jpg)
66
Revisiting Aggregate, Merge and Slice:
mergeWithAggregateMI.fml
Mathieu Acher, Benoit Combemale, Philippe Collet, Olivier Barais, Philippe Lahire, Robert B. France « Composing your Compositions of Variability Models » MODELS’13
![Page 67: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/67.jpg)
67Mathieu Acher, Benoit Combemale, Philippe Collet, Olivier Barais, Philippe Lahire, Robert B. France « Composing your Compositions of Variability Models » MODELS’13
![Page 68: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/68.jpg)
68
φ FM
Feature Model Synthesis Problem[Czarnecki et al., SPLC’07]
[She et al., ICSE’11][Andersen et al., SPLC’12]
A ^A B ^ C => A ^D => A
![Page 69: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/69.jpg)
φ
« How to synthesise an accurate (w.r.t. the set of
constraints/configurations)meaningful (maintainable by a user), and
unique feature model? »
http://familiar-project.github.com/
![Page 70: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/70.jpg)
φ(SAT solvers or
Binary Decision Diagrams)
The knowledge can be: inconsistent (e.g., root feature specified is not possible)consistent and incomplete (i.e., synthesis algorithm needs additional information)consistent, « partial » (e.g., not all the hierarchy is specified) and actually complete
Mathieu Acher, Patrick Heymans, Anthony Cleve, Jean-Luc Hainaut, Benoit Baudry « Support for Reverse Engineering and Maintaining Feature Models » VaMoS’13
![Page 71: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/71.jpg)
#1 Reverse Engineering Scenarios• [Haslinger et al., WCRE’11], [Acher et al., VaMoS’12]
φ
![Page 72: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/72.jpg)
#2 Refactoring• [Alves et al., GPCE’06], [Thuem et al., ICSE’09]
φ
![Page 73: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/73.jpg)
#3 Re-Engineering Feature Models of repository
• For each FM we execute the following FAMILIAR script…
• … And we «compare» syntactically fm1 and fm2• semantical comparison is not needed: we know that they are refactoring by
construction (good test case though ;-))
• Results:– 147 synthesised FMs (69 %) were exactly the same as input FMs ; – 40 synthesised FMs (19%) were corrections of input FMs ; – 24 synthesised FMs (12%) were different (knowledge needed)
• another set of cross-tree constraints was synthesised. • feature group conflicts in six cases
Specification of the hierarchy is the main issue
φ
![Page 74: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/74.jpg)
φ FAMILIAR« Give me a formula and some knowledge,
I will synthesise an accurate, meaningful,
unique feature model »
#1 Breathing knowledge into feature model synthesisformal specification (consistency and completeness)concrete syntax and tooling suport
#2 Practical applicationsreverse engineering, refactoring/re-engineering of feature models
http://familiar-project.github.com/
Automated support is highly needed (ongoing work)
![Page 75: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/75.jpg)
FAMILIAR console
Ranking list
Ontological Heuristics
Logical clusters
(interactive synthesis)Clusters of conceptuallysimilar features
« Breathing Ontological Knowledge into Feature Model Management » Guillaume Bécan, Mathieu Acher, Benoit Baudry, Sana Ben Nasr
State-of-the-art support for assisting users: http://tinyurl.com/OntoFMExperiments
![Page 76: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/76.jpg)
300+ Products Comparison Matrices in Wikipedia
« From Comparison Matrix to Variability Model: The Wikipedia Case Study » Nicolas Sannier, Mathieu Acher, and Benoit Baudry (ASE’2013)
![Page 77: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/77.jpg)
77
From Products to Feature Models
![Page 78: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/78.jpg)
78
Manual extraction of a feature model from product description(s) is not possible
Exact set of configurations, each configuration corresponding to at least one product
640 configurations(634 counter examples)
![Page 79: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/79.jpg)
79
Automation • Each product description is encoded as a feature model
• Feature models {fm1, fm2,…,fm8} are merged
fm1fm2fm3fm4fm5fm6fm7fm8
![Page 80: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/80.jpg)
80
Each product description is encoded as a feature model
![Page 81: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/81.jpg)
81
Merging of feature models
φ1
φ2 φ
3
φm
merged propositional formulamerged hierarchy
+Set mandatory featuresDetect Xor and Or-groupsCompute “implies/excludes”
![Page 82: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/82.jpg)
82
Feature models in the real
• SPLOT repository– more than 200 feature models reported from the literature
(various domains) • Linux feature model
– worst case: more than 6300 features!– eCos, FreeBSD, BusyBox, etc.
• Automotive industry– thousands of features
• Wiki matrix– wiki engines: ~ 2000 features
• Reverse engineering procedures are emerging
![Page 83: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/83.jpg)
83
(ongoing) Comprehensive model-based product line support
Reverse engineeringAutomated AnalysisLanguages, API/DSLsEvaluation (European projects, long-term collaboration with Thales, open source systems)
83
![Page 84: Mathieu Acher Managing Feature Models. (FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) φ TVL DIMACS](https://reader038.vdocuments.net/reader038/viewer/2022102809/56649f155503460f94c2b2f3/html5/thumbnails/84.jpg)
?84