SlideShare une entreprise Scribd logo
1  sur  138
Télécharger pour lire hors ligne
3 years in 45 minutes
mercredi 13 octobre 2010
Validation of
reasoning engines and
adaptation mechanisms for
self-adaptive systems
Freddy Munoz
Rennes, France — 29 september 2010
mercredi 13 octobre 2010
3
Early 1900 boiler heating
mercredi 13 octobre 2010
4
1960 heating control
mercredi 13 octobre 2010
5
state of the art heating control
mercredi 13 octobre 2010
6
It’s just the beginning
mercredi 13 octobre 2010
7
“The future”
mercredi 13 octobre 2010
What if the system
makes the wrong
decision?
8
mercredi 13 octobre 2010
What if the system
fails to adapt?
9
mercredi 13 octobre 2010
[image] what if a new device is introduced an the
system
decides to load a conflictive driver, the heating device
get crazy, enables full heating to compensate the wrong
driver, and burns the house down
10
A wrong decision
mercredi 13 octobre 2010
This
Thesis
mercredi 13 octobre 2010
A
self-adaptive
system
12
mercredi 13 octobre 2010
12
mercredi 13 octobre 2010
12
Reasoning Engine
mercredi 13 octobre 2010
12
Reasoning Engine
Adaptation Mechanism
mercredi 13 octobre 2010
12
Reasoning Engine
Adaptation Mechanism
Running Platform
mercredi 13 octobre 2010
Rule based, Goal based,
cost function, etc.
12
Adaptation Mechanism
Running Platform
mercredi 13 octobre 2010
Rule based, Goal based,
cost function, etc.
AOP, Model Based,
Component based, etc.
12
Running Platform
mercredi 13 octobre 2010
Rule based, Goal based,
cost function, etc.
AOP, Model Based,
Component based, etc.
Component platform,
reflective java, etc.
12
mercredi 13 octobre 2010
Case Study
Validation
Reasoning
Engines
Specification of
Aspect Oriented
Adaptation
Mechanisms
Conclusions
&
Perspectives
13
mercredi 13 octobre 2010
Case study
14
mercredi 13 octobre 2010
Cordelia’s ACRM
15
Cordelia
mercredi 13 octobre 2010
16
Nomadic Business
“ Cordelia cannot afford not being
capable of fetching her customers data ”
mercredi 13 octobre 2010
17
Adaptive CRM
mercredi 13 octobre 2010
connection
speed
= {slow , fast}
exchange
service
=
{available ,
unavailable}
18
mercredi 13 octobre 2010
Calendar
services
Platform
Memory level
Connection speed
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
Security level
User feedback
Usetype
19
Cordelia’s
ACRM
environment
mercredi 13 octobre 2010
20
mercredi 13 octobre 2010
20
mercredi 13 octobre 2010
20
mercredi 13 octobre 2010
rule "R1: platform windows-reserve"
	 when
	 	 Platform( id == Platform.WINDOWS
or
	 	 	 	 id == Platform.MAC )
	 	 UseType( type == UseType.RESERVE )
	 then
	 	 ORACLEClient.setActive(true);
end
21
mercredi 13 octobre 2010
rule "R2: security-protocol transition"
	 when
$currentServices : Services( available contains
Services.GOOGLE )
	 Services( this before $currentServices,
	 	 	 selected contains Services.EXCHANGE)
	
$currentSecurity : Security( level == Security.HIGH )
Security( this before $currentSecurity, level ==
Security.LOW )
	 then
	 	 TLSProtocol.setActive(true);
end
22
mercredi 13 octobre 2010
23
Reasoning engine
Adaptation mechanism
mercredi 13 octobre 2010
23
Reasoning engine
Adaptation mechanism
mercredi 13 octobre 2010
Is that decision always right
(correct)?
?
24
mercredi 13 octobre 2010
Easy!
:-)
Test
25
mercredi 13 octobre 2010
26
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
26
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
0
10
20
30
4050
60
70
Testing a reasoning engine
mercredi 13 octobre 2010
Problem I: huge space size
27
mercredi 13 octobre 2010
Problem I: huge space size
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
27
mercredi 13 octobre 2010
6.14429
3 4x x =
Problem I: huge space size
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
27
mercredi 13 octobre 2010
6.14429
3 4x x =
Problem I: huge space size
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
So What? 27
mercredi 13 octobre 2010
Problem II: temporality matters
28
mercredi 13 octobre 2010
Problem II: temporality matters
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
28
mercredi 13 octobre 2010
Problem II: temporality matters
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
28
mercredi 13 octobre 2010
Problem II: temporality matters
6.144
2
= 37x 10 6
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
28
mercredi 13 octobre 2010
Problem II: temporality matters
6.144
2
= 37x 10 6
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
28
So What?mercredi 13 octobre 2010
Problem III
29
mercredi 13 octobre 2010
Problem III
Each test takes ~ 10 seconds
29
mercredi 13 octobre 2010
Problem III
Each test takes ~ 10 seconds
Test evaluation takes ~ 10 seconds
29
mercredi 13 octobre 2010
Problem III
Each test takes ~ 10 seconds
Test evaluation takes ~ 10 seconds
20 = 122.8806144x ≈ 1.4 Days...
29
mercredi 13 octobre 2010
Problem III
Each test takes ~ 10 seconds
Test evaluation takes ~ 10 seconds
≈ 23 Years20 37x x106 = 74x107 ...
20 = 122.8806144x ≈ 1.4 Days...
29
mercredi 13 octobre 2010
)
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
Solution:
30
mercredi 13 octobre 2010
)
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
0
10
20
30
40 50
60
70
selectionSolution:
30
mercredi 13 octobre 2010
Multi-Dimensional
Covering Array
mercredi 13 octobre 2010
Each variable value is a
billiard ball...
32
mercredi 13 octobre 2010
...that interact with
other balls
33
mercredi 13 octobre 2010
Connection speed
Security level
Memory level
Slow Fast
Low Medium High
Low High
Inter-variable Interactions
34
mercredi 13 octobre 2010
Connection speed
Security level
Memory level
Slow Fast
Low Medium High
Low High
Inter-variable Interactions
34
mercredi 13 octobre 2010
Connection speed
Security level
Memory level
Slow Fast
Low Medium High
Low High
Inter-variable Interactions
34
mercredi 13 octobre 2010
History influences the
reasoning....
35
mercredi 13 octobre 2010
time 36
mercredi 13 octobre 2010
Memory level
Security level
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level Low High Low High High
Security level Low Med High Med Low
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level Low High Low High High
Security level Low Med High Med Low
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level Low High Low High High
Security level Low Med High Med Low
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level Low High Low High High
Security level Low Med High Med Low
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level Low High Low High High
Security level Low Med High Med Low
time
Intra-variable Interactions
37
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
Memory level
Security level
Connection
speed
Low High
Low Med
Slow Fast
Low
High
Slow
Low
Low High
High
Fast Fast
Intra-variable Interactions 2 values
Inter-variable Interactions 2 variables
38
mercredi 13 octobre 2010
39
Before: 37 x 10
6
mercredi 13 octobre 2010
40
After: 141
mercredi 13 octobre 2010
Genetic Algorithm
Bacteriologic Algorithm
41
mercredi 13 octobre 2010
Experiments
42
mercredi 13 octobre 2010
Experimental subjects
40 rules
21 history rules
11 variables
17 rules
0 history rules
3 variables
96 rules
22 history rules
11 variables
43
mercredi 13 octobre 2010
44
Experimental SetUp
3 data sets:
50 MCA
50 MDCA
50 Random
mercredi 13 octobre 2010
45
Evaluation criteria
Coverage of conditions
mercredi 13 octobre 2010
46
40
32
30
27
20
23
Conditionscovered
MDCA MCA RAND
Cordelia’s ACRM (Drools)
mercredi 13 octobre 2010
47
860
725
710
640
570
LOCcovered
MDCA MCA RAND
Cordelia’s ACRM (Java)
mercredi 13 octobre 2010
48
17
15
Conditionscovered
MDCA MCA RAND
Simple web server
mercredi 13 octobre 2010
49
MDCA rocks!
MDCA is more stable!
mercredi 13 octobre 2010
50
MCA is cheaper
memoryless reasoning
mercredi 13 octobre 2010
51
Reasoning engine
Adaptation mechanism
mercredi 13 octobre 2010
51
Reasoning engine
Adaptation mechanism
mercredi 13 octobre 2010
52
rule "R1: platform windows-reserve"
! when
! ! Platform( id == Platform.WINDOWS
or
! ! ! ! id == Platform.MAC )
! ! UseType( type == UseType.RESERVE )
! then
! ! ORACLEClient.setActive(true);
end
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
Problem : Invasiveness
53
mercredi 13 octobre 2010
54
privileged Aspect Pan{
	 around(Egg egg):
execution(Object do())&&target(egg){
	
	 	 if(egg.yolk.isMature())
	 	 	 egg.yolk.makeAge();
	 	 if(egg.white.isReady())
	 	 	 egg.white.makeReady();
	 	 Object result=proceed();
	 	 if(result instanceof Cooked)
	 	 	 return result;
	 	 else
	 	 	 return Pan.
cook(egg.yolk,egg.white);
	 }
	 private static cook(Vitellus yolk,
Albumen white){
	 ...
	 }
}
do:Object
white:Albumen
yolk: Vitellus
Egg
mercredi 13 octobre 2010
54
privileged Aspect Pan{
	 around(Egg egg):
execution(Object do())&&target(egg){
	
	 	 if(egg.yolk.isMature())
	 	 	 egg.yolk.makeAge();
	 	 if(egg.white.isReady())
	 	 	 egg.white.makeReady();
	 	 Object result=proceed();
	 	 if(result instanceof Cooked)
	 	 	 return result;
	 	 else
	 	 	 return Pan.
cook(egg.yolk,egg.white);
	 }
	 private static cook(Vitellus yolk,
Albumen white){
	 ...
	 }
}
do:Object
white:Albumen
yolk: Vitellus
Egg
mercredi 13 octobre 2010
Broken encapsulation
55
mercredi 13 octobre 2010
Aspect
Specification
mercredi 13 octobre 2010
Reinforce the encapsulation
57
mercredi 13 octobre 2010
58
do:Object
white:Albumen
yolk: Vitellus
Egg
@Forbidden(...)
@Forbidden(...)
@Forbidden(...)
privileged Aspect Pan{
	 around(Egg egg):
execution(Object do())&&target(egg){
	
	 	 if(egg.yolk.isMature())
	 	 	 egg.yolk.makeAge();
	 	 if(egg.white.isReady())
	 	 	 egg.white.makeReady();
	 	 Object result=proceed();
	 	 if(result instanceof Cooked)
	 	 	 return result;
	 	 else
	 	 	 return Pan.
cook(egg.yolk,egg.white);
	 }
	 private static cook(Vitellus yolk,
Albumen white){
	 ...
	 }
}
mercredi 13 octobre 2010
58
do:Object
white:Albumen
yolk: Vitellus
Egg
@Forbidden(...)
@Forbidden(...)
@Forbidden(...)
privileged Aspect Pan{
	 around(Egg egg):
execution(Object do())&&target(egg){
	
	 	 if(egg.yolk.isMature())
	 	 	 egg.yolk.makeAge();
	 	 if(egg.white.isReady())
	 	 	 egg.white.makeReady();
	 	 Object result=proceed();
	 	 if(result instanceof Cooked)
	 	 	 return result;
	 	 else
	 	 	 return Pan.
cook(egg.yolk,egg.white);
	 }
	 private static cook(Vitellus yolk,
Albumen white){
	 ...
	 }
}
✘
✘
mercredi 13 octobre 2010
Make specific shields
59
mercredi 13 octobre 2010
60
Augmentation Conditional
replacement
MultipleCrossing Argument passing
Write
Read
Hierarchy Method addition Field addition
Replacement
mercredi 13 octobre 2010
61
rule "R1: platform windows-reserve"
! when
! ! Platform( id == Platform.WINDOWS
or
! ! ! ! id == Platform.MAC )
! ! UseType( type == UseType.RESERVE )
! then
! ! ORACLEClient.setActive(true);
end
mercredi 13 octobre 2010
Conclusions
mercredi 13 octobre 2010
Before MDCA
After MDCA
63
mercredi 13 octobre 2010
Interactions matter
64
mercredi 13 octobre 2010
65
Aspects can introduce
hidden complications
mercredi 13 octobre 2010
66
Perspectives
mercredi 13 octobre 2010
67
Validation @ Runtime
mercredi 13 octobre 2010
68
System Validation @
Runtime
mercredi 13 octobre 2010
The future of
self-adaptive
systems
69
mercredi 13 octobre 2010
Inquiring the usage
of aspect-oriented
programming: an
empirical study
— ICSM’09
Vigilant usage of Aspects
ADI 09
Validation challenges in model
composition: The case of
adaptive systems —ChaMDE’08
Improving
Maintenance in
AOP Through
an Interaction
Specification
Framework
— ICSM’08
A framework for testing
model composition engines
— Software composition’08
Vidock: a Tool for Impact
Analysis of Aspect
Weaving on Test Cases
—ICTSS’08
International
Publications
mercredi 13 octobre 2010
Thank you!
mercredi 13 octobre 2010
No bullet point was
harmed in this
presentation!
mercredi 13 octobre 2010

Contenu connexe

En vedette

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

En vedette (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Freddy Munoz Ph.D defense slides