edit transactions...t. mattis, p. rein, r. hirschfeld | software architecture group | hasso plattner...
TRANSCRIPT
![Page 1: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/1.jpg)
Edit Transactions
Dynamically Scoped Change Setsfor Controlled Updates in Live Programming
Toni Mattis, Patrick Rein, Robert Hirschfeld
Software Architecture GroupHPI, University of Potsdam, Germany
‹Programming› 2017, Brussels
![Page 2: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/2.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Live Programming
• Change & introspection of running programs
• Immediate & continuous feedback
2
("working definition" in the context of this talk)
![Page 3: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/3.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Live Programming: Example
3
Ball >> step
self reflect; move
Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
Ball (class) stepposition move
![Page 4: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/4.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Live Programming: Example
4
Ball >> step
self reflect; move; gravitate
Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
insert call
"gravitate" undefined!
Ball (class) stepposition move
![Page 5: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/5.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Live Programming
• Change & introspection of running programs
• Immediate & continuous feedback
• Fragility
We propose "Edit Transactions"
• Collect a group of changes
• Activate and deactivate atomically
5
![Page 6: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/6.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions: Collecting Changes
6
Ball >> step
self reflect; move; gravitate
Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
insert call
step
Ball (class) stepposition move
Ball (class)
Edit Transaction
![Page 7: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/7.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions: Collecting Changes
7
Ball >> step
self reflect; move; gravitate
Ball >> gravitate […]Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
insert call
Ball (class) stepposition move
Ball (class) gravitate
implement method
step
![Page 8: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/8.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions: Activation
8
Ball >> step
self reflect; move; gravitate
Ball >> gravitate […]Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
insert call
Ball (class) stepposition move
Ball (class) gravitate
implement method
Ball (class) stepposition move gravitategravitate "view"
Base System
step
![Page 9: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/9.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions: Undo
9
Ball >> step
self reflect; move; gravitate
Ball >> gravitate […]Ball >> move
self position: (self position + self speed)
Ball >> reflect "Check bounds and reflect"
insert call
Ball (class) stepposition move
Ball (class) gravitatestep
implement method
Ball (class) stepposition "view"
Base System
move
![Page 10: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/10.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions: Operations
10
Ball (class)
Ball (class)
Ball (class)
movestep
step reflect
move reflectRun-time View(active)
Base System
Edit Transaction
Capturing Changes
Remains Effectively Unmodified
step
Atomic Activation
![Page 11: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/11.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transactions as Dispatchers
11
Ball step reflectEdit Transaction
Un-map field "step",lookup stops here
Map name "reflect" toa new method
compiled method (executable)
Edit Transactions (re-)map or un-map late-bound meta-objects(Classes, Methods, Fields, …).
Changes stored as executable meta-objects.
![Page 12: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/12.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
12
Editor
AdaptationGranularity
Runtime(meta-objects)
Adaptation:Translation of an edit interactioninto executable representation
Control Flow
Emergence:Changes to executablerepresentation taking effect
![Page 13: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/13.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
13
Editor Runtime(meta-objects)
Adaptation:Translation of an edit interactioninto executable representation
Control Flow
Emergence:Changes to executablerepresentation taking effect
Edit Transaction
SemanticGranularity
AdaptationGranularity
Edit Transactions• decouple adaptation from emergence• support semantic change granularity
![Page 14: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/14.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transaction Lifecycle
14
Staged Active
Unstaged Inactive
Capture & View Changesmap/un-map names,use mapping in editor
Visible to Control Flowuse mapping in dispatch
Create
MergeDelete
unstage stage deactivate activate
Per Editor Per Thread/Process
![Page 15: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/15.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Edit Transaction Scoping
Staged only
Review code (e.g. imported from version control),check if it compiles, run static analyses …
Control-flow Activation
Run unit tests (auto-tester), experiment with change
Thread/Global activation
Change considered "stable",
asynchronous
15
[ block ] withTransactions: et.
et activateFor: aProcess.
et activateGlobally.
![Page 16: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/16.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Types of Changes (Class-based OOP)
16
Meta-object Operation
Class add
remove
update hierarchy
rename
Method/Function
add
remove
update implementation
rename
Field(Instance Variable)
add
remove
rename
remove + add
add (overwrite)
![Page 17: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/17.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Challenges:
1. Identify safe point to activate a composite change
2. Ensure safe composition of multiple edit transactions
3. Late-bound, scoped state (implementation-specific)
4. Intercepting message dispatch (implementation-specific)
17
![Page 18: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/18.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
a()
b() b()
a()a()
b() b()
a() a()
18
b
a
Run-time call treeEdit Transaction
Activation
…
![Page 19: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/19.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
a()
b() b()
a()a()
b() b()
a() a()
19
a()
b() b()
a() a()
Method atomicity(mixed-version call stack)
b
a
Re-entrant atomicity(single-version call stack)
a()
b() b()
a() a() Explicit boundariesactivate call,atomic do: [ … ]
default
![Page 20: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/20.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Challenges:
1. Identify safe point to activate a composite change
2. Ensure safe composition of multiple edit transactions
3. Late-bound, scoped state (implementation-specific)
4. Intercepting message dispatch (implementation-specific)
20
![Page 21: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/21.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Composition
21
Ball
Ball
step
step move
Ball step move
Ball step
Ball step move
Deactivation?
![Page 22: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/22.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Composition: Conflicting Activation
22
Ball step
Ball step move
Ball step
No effectShadow
Adding existing meta-objectsshadows the underlying one (even if inherited)
Removing non-existing meta-objects should not have an effect (also does not block inherited ones)
Minimize friction during composition:
![Page 23: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/23.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Composition: Least Surprise
23
Ball step
Ball step
Ball step
Delete all
Removing doubly added meta-objects blocks all of them and prevents old methods or field data from becoming readable again.
Prioritize most recent intent:
Ball step
move
move
![Page 24: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/24.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Challenges:
1. Identify safe point to activate a composite change
2. Ensure safe composition of multiple edit transactions
3. Late-bound, scoped state (implementation-specific)
4. Intercepting message dispatch (implementation-specific)
24
![Page 25: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/25.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
25
Ball x
Ball x y pos
Ball x y
Ball pos
x := 1
pos := 1@2
x = nil
pos = nil
x = 1
x := 10
x = 10
x = nil
pos = 1@2
Ball x pos
x = nil
Same instance of Ball:
![Page 26: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/26.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
26
Ball x
Ball x y pos
Ball x
Ball x y
Ball pos
pos
Instance Layout:
:Ball 1 2
:Ball 1 2 1@2
:Ball 1 2 1@2 10
x
x pos
Dynamic InstanceVariable Store
![Page 27: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/27.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
L-Value:
R-Value:
Concurrent Implementation
27
x := expr Storage for: self at: #x put: (expr)
x Storage for: self at: #x
Storage
Process (activeProcess) ET1ET2
ET2:
Compile-time Transform
Base
instance: #x: 10 …
![Page 28: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/28.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Challenges:
1. Identify safe point to activate a composite change
2. Ensure safe composition of multiple edit transactions
3. Late-bound, scoped state (implementation-specific)
4. Intercepting message dispatch (implementation-specific)
28
![Page 29: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/29.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
29
Class "Ball" (meta-object)
methodDict
CompiledMethod#step
#move
Binary op-codes,stack frame size, …
MultiVersionMethod
#ET1
#Base
CompiledMethod
CompiledMethod
Recompile"Ball >> move"when Edit Transaction "ET1" is staged
CompiledMethod
![Page 30: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/30.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
30
Class "Ball" (meta-object)
methodDict
CompiledMethod#step
#move
MultiVersionMethod
#ET1
#Base
CompiledMethod
CompiledMethod
Process (activeProcess) ET1ET2 Base
Call Ball >> move
![Page 31: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/31.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Case Study:
1. Tooling: Transaction-aware editor in Vivide/Smalltalk
2. Setup/Task:
Adding features to a multi-agent simulation
3. Observed changes in programming workflow
31
![Page 32: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/32.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
32
Unstaged
Staged
Transactions Categories Classes Methods
Source
![Page 33: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/33.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
• Insert Screenshot of World
33
Red: infected agent
Airport: transports agentsto other airports
Green: healthy agent
Task:Agents in infected state should recover after some amount of time
![Page 34: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/34.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Observation 1: Debuggers
34
![Page 35: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/35.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
35
![Page 36: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/36.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Debugger catching an Edit Transaction
36
Agent Agent Agent
Agent (Class)
World
!
step
!
step
!
step
!
DebuggerDebugger
Debugger
stack unwinding
![Page 37: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/37.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
37
![Page 38: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/38.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Debugger catching an Edit Transaction
38
Agent Agent
Agent (Class)
World
step stepstep
!
Agent
!
Debugger
stack unwinding
(Active) Edit Transaction
![Page 39: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/39.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Observation 2: Lazy Initialization
Problem: Adding a field will leave it unitialized for all instances.
Solution:
39
Ball xBall >> x
x ifNil: [x := 0].
^ x
![Page 40: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/40.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Observation 3: Less Editor Windows
Normal "composite" workflow:
• Edit Method 1
• Discover dependency and switch to other window
• Edit Method 2
• Save both in correct order
With Edit Transactions:
• Stage new Edit Transaction
• Edit Method 1
• Edit Method 2
• Activate
40
Editor r
Editor r
![Page 41: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/41.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Conclusion
Edit Transactions
• decouple adaptation from emergencein live programming
• allow semantic granularity of emergence without sacrificing live adaptation and test feedback
• trade immediacy for correct granularity of feedback
41
![Page 42: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/42.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Additional Slides
42
![Page 43: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/43.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Return-frame Insertion
43
![Page 44: Edit Transactions...T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam Edit Transactions Edit Transactions as Dispatchers 11 Edit Transaction](https://reader033.vdocuments.site/reader033/viewer/2022060522/605153b6f26372772d5d2f3c/html5/thumbnails/44.jpg)
T. Mattis, P. Rein, R. Hirschfeld | Software Architecture Group | Hasso Plattner Institute Potsdam
Edit Transactions
Call and State Access Overhead
44