1
Search Based Software Engineering for Variability Management
Roberto E. Lopez-Herrejon
Systems Engineering and Automation Institute Johannes Kepler University Linz, Austria
Search Based Software Engineering for Variability Management Roberto - - PowerPoint PPT Presentation
Search Based Software Engineering for Variability Management Roberto E. Lopez-Herrejon Systems Engineering and Automation Institute Johannes Kepler University Linz, Austria 1 Project Context FWF Lise Meitner Fellowship Named after
1
Search Based Software Engineering for Variability Management
Roberto E. Lopez-Herrejon
Systems Engineering and Automation Institute Johannes Kepler University Linz, Austria
2
Project Context
scientist
3
For this talk …
4
Background – Feature Models
VOD Play TV Mobile Record CD Card V P T M R CD C P1 P2 P3 P4 P5 P6 P7 P8
≡
5
Background – Software Evolution
components and their relationships with the goal of creating a higher level abstraction of them
artifacts or their properties
6
Background – Consistency Checking
describe the semantic relationships among elements
receiver's class.
: Streamer : Service store
store()
Streamer
consistent
7
Project Big Picture
8
Relation with workshop …?
9
Problems Addressed
10
Problem 1
Fixing inconsistencies in the presence of variability
Software Artifacts Feature Model ... ... ... Products
11
Problem 1 – Example
VOD Play TV Mobile Record CD Card
: Streamer : Service store
Feature CD Feature Record
How can this instance be fixed ?
Define store in CD Define store in Record Define store in TV and Mobile Define store in Play Define store in VOD
What if … ?
Incorrect message name – start
setup() start() Streamer
Incorrect message target Incorrect feature ascription Instances overlap …
12
Problem 2
13
Problem 3
modifications
Feature Model ... ... ...
14
Early Results
Reverse Engineering Feature Models from Product Configurations (SBSE 2012)
Collaboration with University of Seville David Benavides, Jose Galindo, Sergio Segura, Jose Parejo
15
Problem Pictorial View
A B C ... N ... ... ... ... ... ... ... ... ... ... ... ... Reverse Engineering Feature Sets Feature Model ... ... ... non trivial error prone non unique non optimal
16
ETHOM Structural Encoding Example
1 2 3 4 5 6 7 8 9 10 11 12 M,0 Op,0 M,2 Alt,2 Alt,0 Alt,0 Alt,2 Alt,0 Alt,0 M,2 M,0 Op,0 Op,0
1 2 3 4 5 6 7 8 9 10 11 12
17
ETHOM CTC Encoding Example
1 2 3 4 5 6 7 8 9 10 11 12
E,4,12 R,5,12 R,8,12 R,8,11
18
Crossover — One point (1) Feature Diagram
4 5 7 1 3 6 2 4 5 7 1 3 6 2 Op,2 Or,1 M,0 Or,0 Alt,0 Alt,1 M,0 Op,0 Op,2 Or,1 Op,0 Or,0 Op,3 Alt,0 Alt,0 Alt,0 crossover point 1 2 3 4 5 6 7
19
Crossover — One point (1) Result
4 1 3 2 5 7 6 Op,2 Or,1 M,0 Or,0 Alt,0 Alt,0 Alt,0 Alt,0 1 2 3 4 5 6 7 Alt,1 M,0 Op,0 Op,2 Or,1 Op,0 Or,0 Op,3 1 2 3 4 5 6 7 4 5 7 1 3 6 2
20
Crossover — One point (2) Cross-Tree Constraints
4 5 7 1 3 6 2 4 5 7 1 3 6 2 E,3,6 R,6,7 R,3,5 R,2,6 crossover point
21
Crossover — One point (2) Result
4 1 3 2 5 7 6 E,3,6 R,2,6
22
Experimental Setting
ETHOM
23
Evaluation
same for the fitness functions being analysed
function
24
Pictorial View of a Generation
...
fm1 fm2 fm3 fmn desired feature sets
individuals = feature models that denote tables of feature sets feature sets
perfect fit full containment
...
25
Relaxed Fitness Function
FFRelaxed(sfs, fm) = | {fs : sfs | validFor(fs,fm) } | sfs = set of desired feature sets fm = feature model to evaluate fs = a feature set
26
FFRelaxed Results (1)
2 4 6 8 10 12 14 16 18 1 3 5 7 9 11 13 15 17 19 21 23 25 Frequency Number of GenerationsHistogram Generations for Complete Containment
maximum
for reaching maximum
maximum not reached in 25 generations
27
FFRelaxed Results (2)
fmi fmj fmn desired feature sets
maximum = cardinality of the desired feature sets feature sets
both reached maximum
surplus
28
FFRelaxed Results (3)
1 10 100 1000 10000 100000 100 200 300 400 500 600 700 800 900 1000 Percentage SurplusNumber of Feature Sets
Percentage Surplus Feature Sets
Surplus(sfs,fm) = #products(fm) - |sfs| x 100 |sfs|
feature sets
with ≤ |sfs|
29
Ongoing work
30
http://www.sea.uni-linz.ac.at/sbse4vm/
31
Acknowledgements