Professional Documents
Culture Documents
Site A Site B
R1
2
R1 R2
4
1 R3
3
Collabo-
R2 ration
1 B1 Robot Zone
Operator
Controller
Scene
Controller A R3
2 3 4 B2 Robot
Controller
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 2 of 14
Montréal, October 26th 2022
A Case Study
Site A Site B
R1
2
R1 R2
4
1 R3
3
Collabo-
R2 ration
1 B1 Robot Zone
Operator
Controller
Scene
Controller A R3
2 3 4 B2 Robot
Controller
scenecommand
command
scene
scene
RAG Model A logical scene RAG Model B
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 2 of 14
Montréal, October 26th 2022
Combining Two Concepts
Self-Adaptive Systems (SAS) Reference Attribute Grammars (RAG) [Hed00]
• Modern software: Start small. Gets
complex, distributed, heterogeneous • Based on Attribute Grammars [Knu68]
• Goals: Separation of concerns, fast • Origin: compiler construction (program
prototyping, theoretical grounding, analysis)
efficiency • Advantages: concise specification, efficient
• One approach: Model-driven evaluation, natural separation of concerns
engineering / Models@run.time
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Combining Two Concepts
Self-Adaptive Systems (SAS) Reference Attribute Grammars (RAG) [Hed00]
• Modern software: Start small. Gets
complex, distributed, heterogeneous • Based on Attribute Grammars [Knu68]
• Goals: Separation of concerns, fast • Origin: compiler construction (program
prototyping, theoretical grounding, analysis)
efficiency • Advantages: concise specification, efficient
• One approach: Model-driven evaluation, natural separation of concerns
engineering / Models@run.time
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Combining Two Concepts
Self-Adaptive Systems (SAS) Reference Attribute Grammars (RAG) [Hed00]
• Modern software: Start small. Gets
complex, distributed, heterogeneous • Based on Attribute Grammars [Knu68]
• Goals: Separation of concerns, fast • Origin: compiler construction (program
prototyping, theoretical grounding, analysis)
efficiency • Advantages: concise specification, efficient
• One approach: Model-driven evaluation, natural separation of concerns
engineering / Models@run.time
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Challenges Ahead
Specifications of Managing System
• modular
Self-adaptive System
• (re-)usable
read
Adaptation Goals
Managing
System
• understandable
• correct
adapt
sense • efficient
Managed System
Environment • reusable
[Wey19]
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Challenges Ahead
• (re-)usable
Managing
System
• understandable
• correct
adapt
• efficient
sense
Managed System
Environment
• reusable
[Wey19]
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Challenges Ahead
Specifications of Managing System
• modular
Self-adaptive System
• (re-)usable
read
Adaptation Goals
Managing
System
• understandable
• correct
adapt
sense • efficient
Managed System
Environment • reusable
[Wey19]
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 3 of 14
Montréal, October 26th 2022
Model Specification using Attribute Grammars (AGs)
• Efficient evaluation
Tree Structure Declarative Specification
• Concise specification along tree
inherited (↓), synthesized (↑) attributes – Incremental evaluation
– Concurrent evaluation
• Collections (JastAdd)
• Circular attributes, AOP features (JastAdd)
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 4 of 14
Montréal, October 26th 2022
Grammars as Models
• In models:
Main Difference: Relations RC
– Non-containment relations
Rou. Reg.
– Bidirectional relations
• In grammars:
L L
}
L
– Containment references:
SwP. Sen.
– Non-containment references
Seg.
AST
– Bidirectional references
Relational RAGs [Mey+20] Seg. Sw. Seg.
Sem. Sem.
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 5 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
Grammars as Models
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 6 of 14
Montréal, October 26th 2022
An Iterative Process to Build Self-Adaptive Systems
revisit structure
Computation
(Attributes)
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 7 of 14
Montréal, October 26th 2022
An Iterative Process to Build Self-Adaptive Systems
revisit structure
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 7 of 14
Montréal, October 26th 2022
Coming Back to our Case Study
Site A Site B
R1
2
R1 R2
4
1 R3
3
Collabo-
R2 ration
Operator
1 B1 Robot Zone
Controller
Scene
Controller A R3
2 3 4 B2 Robot
Controller
command
scene
command
scene
scene
RAG Model A logical scene RAG Model B
MovableObject Region Component Causal Connection Port Port Target
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 8 of 14
Montréal, October 26th 2022
Coming Back to our Case Study
Site A Site B
R1
2
R1 R2
4
1 R3
3
Collabo-
R2 ration
Operator
1 B1 Robot Zone
Controller
Scene
Controller A R3
2 3 4 B2 Robot
Controller
command
scene
command
scene
scene
RAG Model A logical scene RAG Model B
MovableObject Region Component Causal Connection Port Port Target
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 8 of 14
Montréal, October 26th 2022
ect
Ports Mark Required Connections for our Case Study
AST as model@run.time
send port Region
WorldModelB
OtherScene [0] LogicalScene
name = "A"
receive port
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene LogicalMovableObject LogicalRegion
CurrentPosition
Driver Code
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 9 of 14
Montréal, October 26th 2022
ect
Ports Mark Required Connections for our Case Study
AST as model@run.time
send port Region
WorldModelB
OtherScene [0] LogicalScene
name = "A"
receive port
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene LogicalMovableObject LogicalRegion
CurrentPosition
Driver Code
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 9 of 14
Montréal, October 26th 2022
send port
A DSL to Specify Connections
Region
WorldModelB
OtherSce
name = "A"
receive port
send WorldModelB.NextOperation using PrintOperation ;
PrintOperation maps Operation op to byte[] {: ② NextOperation MyScen
byte[] result = op.toProtobufByteArray();
if (result == null) { reject(); }
Robot
①
return result;
OwnedCollaborationZoneNames RobotToExecute
:} PickAndPlace Scene
OccupiedCollaborationZoneNames
CurrentPosition
Port target Recompute Apply Different yes Send
has changed port target mappings value?
message
Reachability [0] ObjectToPick
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 10 of 14
Montréal, October 26th 2022
Supported Grammar Elements of the DSL
Support for Different Parts of the Grammar Using Send
and Receive Ports. Legend: Full support, G
# Partly
supported, # Not supported, / not applicable
Element of a grammar Send Receive
Terminal
Non-Terminal (Context-free)
Non-Terminal (Single)
Non-Terminal (List)
Non-Terminal (Optional)
Relation G
# #
Attribute /
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 11 of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Compu- Driver
Grammar
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect Connection Generated
Specification
RagConnect
Aspect JastAdd
Code
HM03] + Relational RAGs [Mey+20] + RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Compu- Driver
Grammar
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect Connection Generated
Specification
RagConnect
Aspect JastAdd
Code
WorldModelB ::= Region* Robot* ExecutedOperation:Operation
[MyScene:Scene] OtherScene:LogicalScene*
HM03] + Relational/NextOperation:Operation/
RAGs [Mey+20] + RagConnect ;
1st phase: Specification
abstract Operation ; 2nd phase: Generation 3rd phase: Usage
Grammar (Structure)
PickAndPlace : Operation ; AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Compu- Driver
Grammar
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect Connection Generated
Specification
RagConnect
Aspect JastAdd
Code
WorldModelB ::= Region* Robot* ExecutedOperation:Operation
[MyScene:Scene] OtherScene:LogicalScene*
HM03] + Relational/NextOperation:Operation/
RAGs [Mey+20] + RagConnect ;
1st phase: Specification
abstract Operation ; 2nd phase: Generation 3rd phase: Usage
Grammar (Structure)
PickAndPlace : Operation ; AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓ Compu- Driver
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect Connection Generated
Specification
RagConnect
Aspect JastAdd
Code
HM03] + Relational RAGs [Mey+20] + RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓
syn Operation WorldModelB.getNextOperation() {
Compu- Driver
❌ Notation Code
if (diffToOperations().getNumChild() == 0)
uses
return errorNoOperationComputed(); connections to other systems possi
cation ⬋
⬊ for (Operation op : diffToOperations()) { (only for simple tokens [Sch+20])
uation
Connect Connection Generated
JastAdd
Robot executingRobot = op.getRobotToExecute();
RagConnect
Specification Aspect Code
if (!op.isErrorOperation()) {
if (op.equals(lastOperationFor(executingRobot))) {
return errorDuplicateOperation();
HM03] + Relational} RAGs [Mey+20] + RagConnect
1st}phase: Specification 2nd phase: Generation 3rd phase: Usage
return op;
Grammar (Structure) AST as model@run.time
}
return errorNoExecutableOperation(); send port Region OtherScene [0] L
.
① } receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓ Compu- ✓ Driver
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect Connection Generated
Specification
RagConnect
Aspect JastAdd
Code
HM03] + Relational RAGs [Mey+20] + RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓ Compu- ✓ Driver
❌ Notation Code
uses;
connections to other systems possi
cation ⬋
⬊ (only for simple tokens [Sch+20])
uation
Connect PrintOperation Connection Generated
send WorldModelB.NextOperation using PrintOperation
Specification
RagConnect
byte[] result =Aspect JastAdd
Code
maps Operation op to byte[] {:
op.toProtobufByteArray();
if (result == null) { reject(); }
HM03] + Relational RAGs [Mey+20]return+ RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
result;
:}
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓ Compu- ✓ Driver
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect ✓ RagConnect
Connection
JastAdd Generated
Specification Aspect Code
HM03] + Relational RAGs [Mey+20] + RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓
WorldModelB model = new WorldModelB(); Compu- ✓ Driver
❌ Notation Code
model.ragconnectResetEvaluationCounter();
uses [Sch+20])
connections to other systems possi
cation model.addOtherScene(new LogicalScene()); ⬋
⬊ (only for simple tokens
uation
Connect ✓ RagConnect
Connection
for (String topic : config.forB.topicsSceneUpdate)
JastAdd
{
Generated
Specification
model.connectMyScene(topic); Aspect Code
}
HM03] + Relational RAGs [Mey+20] + RagConnect
1stmodel.connectOtherScene("place-a/logical/update",
phase: Specification 2nd phase: Generation 0); 3rd phase: Usage
Grammar model.connectNextOperation("robot/operation",
(Structure) AST as model@run.time
false);
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
✅ Declarative and concise textual specification
olves manual work
⬋ ✅ Similar to a metamodel using [Mey+20]
Detailed Generation Process
Grammar
✓ Compu- ✓ Driver ✓
❌ Notation Code
uses [Sch+20])
connections to other systems possi
cation ⬋
⬊ (only for simple tokens
uation
Connect ✓ RagConnect
Connection
JastAdd Generated
Specification Aspect Code
HM03] + Relational RAGs [Mey+20] + RagConnect
1st phase: Specification 2nd phase: Generation 3rd phase: Usage
Grammar (Structure) AST as model@run.time
send port Region OtherScene [0] L
.
① receive port
name = "A"
WorldModelB
②
② NextOperation MyScene
Robot
OwnedCollaborationZoneNames
OccupiedCollaborationZoneNames
RobotToExecute
PickAndPlace ① Scene Logic
CurrentPosition
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Reachability [0] Slide 12ObjectToPick
of 14
Montréal, October 26th 2022
Evaluation of Concisness
es
ar
ut
t
m
ec
ib
m
va
r
on
ra
tt
Ja
Case Study Part
C
Common (manual) 15 255 52 318
Site A (manual) 1 17 2 136
Site A (generated) 31 2570 11 042
Main
Site B (manual) 29 668 136 350
Site B (generated) 69 5443 23 075
Main (manual) 15 261 8 144
Coordinator
Main (generated) 28 1510 9592
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 13 of 14
Montréal, October 26th 2022
Evaluation of Concisness
es
ar
ut
t
m
ec
ib
m
va
r
on
ra
tt
Ja
Case Study Part
C
Common (manual) 15 255 52 318
Site A (manual) 1 17 2 136
Site A (generated) 31 2570 11 042
Main
Site B (manual) 29 668 136 350
Site B (generated) 69 5443 23 075
Main (manual) 15 261 8 144
Coordinator
Main (generated) 28 1510 9592
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 13 of 14
Montréal, October 26th 2022
Conclusion
We showed this
• in a robot coordination case study
• . . . for solving a cooperative task
• . . . and for coordinating the runtime components.
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 14 of 14
Montréal, October 26th 2022
Visit us at our poster!
Conclusion
Incremental Causal Connection for Self-Adaptive Systems
Based on Relational Reference Attribute Grammars
Solution: Self-Adaptive Systems with JastAdd [HM03] + Relational RAGs [Mey+20] + RagConnect
RagConnect
Driver Code
⟨port⟩ ::= ⟨direction⟩ ⟨options⟩ ⟨target⟩ using ⟨mappings⟩ ; WorldModelB model = new WorldModelB();
model.ragconnectResetEvaluationCounter();
⟨direction⟩ ::= send | receive model.addOtherScene(new LogicalScene());
es
ar
Support for Different Parts of the Grammar Using Send
ut
t
}
ec
ib
and Receive Ports. Legend: Full support, G
# Partly
nn
va
tr
ra
Co
At
Ja
supported, # Not supported, / not applicable Case Study Part
G
Element of a grammar Send Receive Connection Aspect Common (manual) 15 255 52 318
Message Receive Apply yes
Update Site A (manual) 1 17 2 136
Terminal message mappings
Different
value?
port
target Site A (generated) 31 2570 11 042
Main
We showed this
Non-Terminal (Context-free) if rejected Site B (manual) 29 668 136 350
no
Non-Terminal (Single) Site B (generated) 69 5443 23 075
Evaluation: Collaborative, Teaching-Based Robotic Cells (Case study 1) and Coordinator (Case study 2)
command
scene
Controller Controller
command
scene
scene
RAG command status RAG
Model A status Coordinator command Model B
RAG Model A logical scene RAG Model B
Conceptual view on the coordinator starting →
Our approach uses models based on relational RAGs and RagConnect enables adding efficient connections to all possible parts of a given model specification.
References
[HM03] Görel Hedin and Eva Magnusson. “JastAdd—an Aspect-Oriented Compiler Construction System”. In: Science of Computer Programming [Sch+20] René Schöne et al. “Connecting Conceptual Models Using Relational Reference Attribute Grammars”. In: Proceedings of the 23rd ACM/
47.1 (Apr. 1, 2003). IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings. New York, NY, USA: ACM, Oct.
[Mey+20] Johannes Mey et al. “Relational Reference Attribute Grammars: Improving Continuous Model Validation”. In: Journal of Computer 16, 2020, pp. 1–11.
Languages 57 (2020).
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 14 of 14
Montréal, October 26th 2022
References I
[Hed00] Görel Hedin. “Reference attributed grammars”. In: Informatica (Slovenia) 24.3
(2000), pp. 301–317. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=
10.1.1.108.8792&rep=rep1&type=pdf (visited on 08/03/2015).
[HM03] Görel Hedin and Eva Magnusson. “JastAdd: an aspect-oriented compiler
construction system”. In: Science of Computer Programming. Special Issue on
Language Descriptions, Tools and Applications (L DTA’01) 47.1 (Apr. 2003),
pp. 37–58. ISSN: 0167-6423. DOI: 10.1016/S0167-6423(02)00109-0. URL:
http://www.sciencedirect.com/science/article/pii/S0167642302001090 (visited on
10/01/2019).
[Knu68] Donald E. Knuth. “Semantics of context-free languages”. In: Mathematical systems
theory 2.2 (1968), pp. 127–145. URL:
http://link.springer.com/article/10.1007/BF01692511 (visited on 08/03/2015).
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 15 of 14
Montréal, October 26th 2022
References II
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 16 of 14
Montréal, October 26th 2022
RagConnect DSL // Grammar
⟨port⟩ ::= ⟨direction⟩ ⟨options⟩ ⟨target⟩ using ⟨mappings⟩ ;
Incremental Causal Connection for Self-Adaptive Systems Based on Relational Reference Attribute Grammars
René Schöne, Johannes Mey, Sebastian Ebert, Sebastian Götz, Uwe Aßmann Slide 17 of 14
Montréal, October 26th 2022