Look mom, no code!
Leveraging Model-Integrated Computing to reduce the reliance on textual code
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
- WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
Model-Integrated Computing
Overview
What does it all mean?
Strengths of MIC
- Code Reuse
- Better separation of business logic and implementation
- Lower barrier to entry
- Increased productivity
Examples
Domain Specific Modeling
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
-
WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
WebGME
Running Example
Dependency graph for the Legend of Zelda Ocarina of Time.
This example is available on Github:
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
- WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
Metamodel
- Defines the modeling language.
- Uses UML-like Syntax
- Basically, we are answering:
- What things are we representing?
- What do connections mean?
- etc
Example
Example Metamodel
Model
- Represents actual elements in the domain
- Instantiates elements defined in the metamodel
- "Composition" pane in the WebGME
Example
Example Model
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
- WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
Plugins
- Code that can be executed with access to the model
- Can read or write to the model
- User-triggered
- Often used for:
- Code Generation
- Job Execution
- Model transformations
Example
Addons
- Code to execute with access to model
- Event triggered
- One instance running per project
Example
Executors
- Infrastructure for delegating computation to slave machines
- Examples:
- Simulations
- Training machine learning classifiers
- etc
- Examples:
- Used within the context of other components
- Usually executed from WebGME plugins
Executors
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
- WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
Visualizers
- Custom data visualization
- Component based
Decorators
- Decorators control the visualization of each node
- Facilitates visual customization on the node level
Overview
- Model-Integrated Computing
- What is it?
- Why do I care?
- WebGME
- Metamodel/model
- Plugins
- Addons
- Executors
- Visualizers
- Decorators
- Examples
Examples
Questions?
- More information available at
- Follow me on Github!
Look mom, no code!
By Brian Broll
Look mom, no code!
A brief introduction to Model-Integrated Computing and the WebGME for a talk at NashJS
- 1,269