## Model Visualization

### Usage of AMALTHEA Model Visualization

The AMALTHEA Visualization can be opened via

- Window → Show View → Other... → APP4MC → APP4MC Visualizations,
- or via right click on an element and selecting Open APP4MC Visualization.

Via the context menu it is also possible to open multiple visualization views.

On selecting a model element, the view will render a corresponding visualization. If multiple visualizations are available, the first one will be selected by default, unless the user has selected another visualization before.

The visualization view has 3 buttons in the toolbar:

1. Visualization dropdown
   The dropdown contains all available visualizations for the current active selection. A click on the image will reload the visualization.
2. Pin visualization
   The selection handling will be disabled so the visualization gets not updated on model selection changes.
3. Select model element
   Selects the current visualized model element in the model editor. Useful for example if a visualization is pinned and the selection in the model editor changed.

### Standard Visualizations

APP4MC comes with a set of default model visualizations to show the options and possibilities the visualization framework provides.

#### Hardware Model

- HW Model Block Diagram
  This visualization is intended to provide an overview of the described and used hardware within the system.
  It uses PlantUML and SVG for rendering. Therefore a Graphviz dot.exe needs to be configured via Window – Preferences – PlantUML – Path to the dot executable of Graphviz in order to get the result shown.

#### Software Model

- SWModel Statistics Visualization
  This is a simple visualization that shows some statistics on the selected Software Model. It is also a simple example to show how to implement a visualization with JavaFX and some animations.

- Shared Runnable Label Dependencies
  This visualization paints all Runnables and the read/write dependencies on Labels in a Software Model.
  Via the buttons on the left edge you can Zoom in (+) / Zoom out (-) / Filter (F) the currently visible Runnables.

#### Runnable

- LabelAccess View
  A simple visualization of a Runnable and its Label read/write access. On the left side the Labels are rendered that are accessed for a read operation. On the right side the Labels are rendered that are accessed for a write operation.

- Shared Runnable Label Dependencies
  Visualization of all selected Runnables and their relationships based on Labels. This visualization is an example to verify how to implement a visualization on multi-selection.
  Via the buttons on the left edge you can Zoom in (+) / Zoom out (-) / Filter (F) the currently visible Runnables.

- Runnable Label Dependencies
  This visualization shows the current selected Runnable and the Runnables that have a direct dependency via Labels. On the left side the Runnables are rendered that write to Labels that are read by the selected Runnable. On the right side the Runnables are rendered that read from Labels that were modified by the selected Runnable.
  Via the buttons on the left edge you can Zoom in (+) / Zoom out (-) the currently visible Runnables.

#### Deviation

- Probability Density Diagram
  This visualization provides probability density diagrams for all subclasses of
  - IContinuousValueDeviation
  - IDiscreteValueDeviation
  - ITimeDeviation
  Markers (vertical lines) are shown for lower bound, upper bound and average.
  Changed values in the Properties view lead to an update of the diagram.