software product line with ibea
TRANSCRIPT
Constraint Solver for Product LinesProject 1 Presentation
Jianfeng Chen
April 9, 2015
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 1 / 18
Software features
Software engineering is becoming more and more complex.More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Software features
Software engineering is becoming more and more complex.
More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Software features
Software engineering is becoming more and more complex.More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Software features
Software engineering is becoming more and more complex.More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Software features
Software engineering is becoming more and more complex.More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Software features
Software engineering is becoming more and more complex.More and more features.
C2C online trading system: database, commercial data encryption, mil-lisecond(microsecond) response, customable GUI, chatting module, emailconnection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 2 / 18
Feature model
Feature tree:
http://www.digplanet.com/wiki/Feature_model
Many features are related to others.Cross-tree constraints complex the problem.Cross-tree constraints are widespread in the software products.Ex. more than three fourths features in eCos(an open source real-time oper-
ating system) are referred by some constraints.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 3 / 18
Feature model
Feature tree:
http://www.digplanet.com/wiki/Feature_model
Many features are related to others.
Cross-tree constraints complex the problem.Cross-tree constraints are widespread in the software products.Ex. more than three fourths features in eCos(an open source real-time oper-
ating system) are referred by some constraints.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 3 / 18
Feature model
Feature tree:
http://www.digplanet.com/wiki/Feature_model
Many features are related to others.Cross-tree constraints complex the problem.
Cross-tree constraints are widespread in the software products.Ex. more than three fourths features in eCos(an open source real-time oper-
ating system) are referred by some constraints.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 3 / 18
Feature model
Feature tree:
http://www.digplanet.com/wiki/Feature_model
Many features are related to others.Cross-tree constraints complex the problem.Cross-tree constraints are widespread in the software products.
Ex. more than three fourths features in eCos(an open source real-time oper-
ating system) are referred by some constraints.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 3 / 18
Feature model
Feature tree:
http://www.digplanet.com/wiki/Feature_model
Many features are related to others.Cross-tree constraints complex the problem.Cross-tree constraints are widespread in the software products.Ex. more than three fourths features in eCos(an open source real-time oper-
ating system) are referred by some constraints.Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 3 / 18
Feature model
SPLOT
open repository
more than 600 feature models
SXFM language; parser is available
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 4 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
cost
familiarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)
defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Goals
INPUT:
feature model(including constraints)
some important feature attributes:
costfamiliarity(used before?)defects
OUTPUT: configurations (select which features?)
GOALS:
⇓ constraint violations
⇑ feature richness
⇑ used features
⇓ defects
⇓ total cost
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 5 / 18
Genetic algorithms
http://www.abrandao.com/2015/01/21/simple-php-genetic-algorithm/
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 6 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7
A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5
B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7
A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7A dominates B
A 4 7 6 2 7
B 4 4 6 1 5B dominates A
A 3 7 4 2 7
B 4 4 6 1 7A is indifferent from B
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 7 / 18
Method 1: Differential Evolution
continuous: new = A + F ∗ (B − C )binary: for each bit, new = A|B|C basing on some lottery.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 8 / 18
Method 1: Differential Evolution
continuous: new = A + F ∗ (B − C )binary: for each bit, new = A|B|C basing on some lottery.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 8 / 18
Method 1: Differential Evolution
continuous: new = A + F ∗ (B − C )binary: for each bit, new = A|B|C basing on some lottery.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 8 / 18
Method 1: Differential Evolution
What if indifferent?
add to the population pool!
How to prune?
[Deb, Kalyanmoy, et al. 2002]
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 9 / 18
Method 1: Differential Evolution
What if indifferent?add to the population pool!
How to prune?
[Deb, Kalyanmoy, et al. 2002]
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 9 / 18
Method 1: Differential Evolution
What if indifferent?add to the population pool!
How to prune?
[Deb, Kalyanmoy, et al. 2002]
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 9 / 18
Method 1: Differential Evolution
What if indifferent?add to the population pool!
How to prune?
[Deb, Kalyanmoy, et al. 2002]
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 9 / 18
Method 2: Indicator-based search
Binary quality indicatorFitness F (x) =
∑i∈P\x −e−I (i ,x)/κ
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 10 / 18
Method 2: Indicator-based search
Binary quality indicatorFitness F (x) =
∑i∈P\x −e−I (i ,x)/κ
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 10 / 18
Method 2: Indicator-based search
Binary quality indicator
Fitness F (x) =∑
i∈P\x −e−I (i ,x)/κ
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 10 / 18
Method 2: Indicator-based search
Binary quality indicatorFitness F (x) =
∑i∈P\x −e−I (i ,x)/κ
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 10 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Terminate or back to second step
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 11 / 18
Results
FM test (medium size)166 features112 leaves46 cross-tree constraints
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 12 / 18
Results
IBEA.FM.
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 13 / 18
Results
DE vs IBEA.FM.
Figure: Features NOT provided
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 14 / 18
Results
DE vs IBEA.FM.
Figure: Features NOT providedJianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 14 / 18
Results
DE vs IBEA.FM.
Figure: DefectsJianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 15 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Further discussion
Stopping criterion
improvement/deterioration accumulation
customable weight
Running time
DE-FM-500 gens-54s
IBEA-FM-500 gens-83s
In average, IBEA = 1.3*DE
Front Quality
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 16 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Satz/Z3
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 17 / 18
Thank you!
Jianfeng Chen ([email protected]) Constraint Solver for Product Lines April 9, 2015 18 / 18