3. Software features
Software engineering is becoming more and more complex.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 2 / 18
4. Software features
Software engineering is becoming more and more complex.
More and more features.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 2 / 18
5. 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, email
connection, etc.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 2 / 18
6. 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, email
connection, etc.
An operating system have thousands of modules and features.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 2 / 18
7. 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, email
connection, etc.
An operating system have thousands of modules and features.
Among them, which features should be implemented?
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 2 / 18
11. 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.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 3 / 18
12. 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 (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 3 / 18
13. Feature model
SPLOT
open repository
more than 600 feature models
SXFM language; parser is available
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 4 / 18
30. Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
31. Domination
Reverse the uprise objectives ⇒ all objectives are the less the better.
A 3 7 4 2 7
B 4 7 6 2 7
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
32. 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
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
33. 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 5
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
34. 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 5
B dominates A
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
35. 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 5
B dominates A
A 3 7 4 2 7
B 4 4 6 1 7
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
36. 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 5
B dominates A
A 3 7 4 2 7
B 4 4 6 1 7
A is indifferent from B
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 7 / 18
37. Method 1: Differential Evolution
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 8 / 18
38. Method 1: Differential Evolution
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 8 / 18
39. Method 1: Differential Evolution
continuous: new = A + F ∗ (B − C)
binary: for each bit, new = A|B|C basing on some lottery.
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 8 / 18
40. Method 1: Differential Evolution
What if indifferent?
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 9 / 18
41. Method 1: Differential Evolution
What if indifferent?
add to the population pool!
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 9 / 18
42. Method 1: Differential Evolution
What if indifferent?
add to the population pool!
How to prune?
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 9 / 18
43. Method 1: Differential Evolution
What if indifferent?
add to the population pool!
How to prune?
[Deb, Kalyanmoy, et al. 2002]
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 9 / 18
44. Method 2: Indicator-based search
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 10 / 18
45. Method 2: Indicator-based search
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 10 / 18
48. Method 2: Indicator-based search
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
49. Method 2: Indicator-based search
Initialization
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
50. Method 2: Indicator-based search
Initialization
Get fitness
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
51. Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
52. Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
53. Method 2: Indicator-based search
Initialization
Get fitness
Eliminate the individuals with smallest fitness
Mating selection
Variation
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
54. 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 (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 11 / 18
55. Results
FM test (medium size)
166 features
112 leaves
46 cross-tree constraints
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 12 / 18
67. 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
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 16 / 18
68. 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 (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 16 / 18
69. 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 (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 16 / 18
70. Future work
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
71. Future work
pruning in differential evolution (flocking behaviors)
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
72. Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
73. Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
74. Future work
pruning in differential evolution (flocking behaviors)
mutate with reservations
reconstruct the feature tree (reduce the search space)
chaff algorithm
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
75. 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 (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 17 / 18
76. Thank you!
Jianfeng Chen (jchen37@ncsu.edu) Constraint Solver for Product Lines April 9, 2015 18 / 18