2. Towards Modularity in Live Visual Modeling
•Jan Blizničenko (bliznjan@fit.cvut.cz)
•Nick Papoulias (nikolaos.papoulias@upmc.fr)
•Robert Pergl (robert.pergl@fit.cvut.cz)
•Serge Stinckwich (serge.stinckwich@ird.fr)
2
3. Live Visual Programming
& Modeling is great !
• Especially for people outside the core CS
curriculum
• Example: Students & Experts of all
“computational” disciplines that use
modeling and simulation as an
experimentation tool
• From Chemistry to Biology and Medicine,
and from there to Epidemiology, Sociology
and many others..
3
4. Live Visual Programming
& Modeling is great !
• This does not scale, beyond small examples
• What happens when you are trying to model
complex systems of MANY interacting parts
?
• How is composition or modularity expressed
lively and visually at runtime ?
• Current solutions are MONOLITHIC (ie one
visual part at a time externally composed)
Unfortunately….
4
5. Live Visual Programming
& Modeling is great !
•But we need modular visual exploration
•To understand complex composition
semantics arising in domains such as
epidemiology:
=
+
5
6. Live Visual Programming
& Modeling is great !
•To understand complex composition
semantics arising in domains such as
epidemiology:
=
+
=>
Visually Edit
“PART”
Lively Update “WHOLE”
(Cartesian product semantics)
Lively Update Execution
Context and Simulation
Results
6
7. Live Visual Programming
& Modeling is great !
•To understand complex composition
semantics arising in domains such as
epidemiology:
=
+
=>
Visually Edit
“PART”
Lively Update “WHOLE”
(Cartesian product semantics)
Lively Update Execution
Context and Simulation
Results
• Q1 How can we extend a modeling platform
(such as OpenPonk) to support
modular exploration?
• Q2 How can such a modular platform
integrate with execution back-ends
to provide live simulation feedback?
7
8. KENDRICK is a moldable platform for
epidemiological modeling and analysis
8
Visualizations
9. What is Epidemiological Modelling ?
•Building
mathematical to
study dynamics of
disease propagation
inside a population
•Compartimental
modelling
9
10. Separation of concerns (modularity) in
Epidemiological Modelling
• Decompose highly-coupled
models into modular concerns
• Compose concerns as freely as
possible
• Models in KENDRICK are
expressed as stochastic automata
that can be composed.
10
12. Problems for Visual Kendrick
•Modular in live textual modeling but..
•Complete recompilation for each and
every edit
•Visual modeling needs to be MORE
INCREMENTAL
•Incremental Editing -> Incremental
Composition
•Examples: Showing interactively diffs
between composition results and
simulation outputs ...
12
KendrickModel SIR
attribute: #( status −> S I R );
parameters: #( beta lambda gamma mu );
transitions:
#( S −− lambda −−> I #'.'
I −− gamma −−> R #'.'
status −− mu −−> Empty #'.'
Empty −− mu −−> S #'.' ).
KendrickModel SEIRS
extends: 'SIR';
parameters: #( sigma nu );
delay: #( sigma , S −− lambda −−> I , E );
addTransition: #( R −− nu −−> S #'.' );
addTransition: #( E −− mu −−> Empty #'.' ).
13. OpenPonk
•Visual diagram-based modeling tool
•Implemented in Pharo
•OpenSource
•Designed to be extensible
• by new models and notations
• by new functions
13
14. Problems for Modular OpenPonk
14
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
15. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
15
16. Our Solution
•User interface that allows display impacts of change simultaneously
➥ User interface with two views - for definitions and results
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
16
18. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
18
19. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
➥ Requirement for new diagram-friendly models
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
19
21. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
21
22. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
➥ "Link" elements that reference other models
•Communication with backend that creates models and results
22
24. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
24
25. Our Solution
•User interface that allows display impacts of change simultaneously
•Both definitions and whole final models as diagrams
•Working with elements of one model in definition of another
•Communication with backend that creates models and results
➥ "Bridge" component responsible for updating results
25