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: 

https://github.com/brollb/NashJS-no-hands

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
  • 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?

Made with Slides.com