Skip to content
BorjaFG edited this page Mar 21, 2017 · 23 revisions

Goals

This C# app has the following main goals:

  • Generate the configuration file of a Simion app taking as input the definitions of all the classes and parameters using a GUI.
  • Allow the user to give several values to each parameter
  • Remote execution of each combination of parameter values
  • Analysis of the results

The app should be as independent from the source code as possible but there is a compromise between being generic and being able to validation of the data without overcomplicating the syntax of the input file. So far, validation done by Badger is minimal: check numerical parameters are actually numbers, etc...

Input definition files

The input XML file is automatically generated by SimionSrcParser each time the source code is recompiled.

Design

Badger uses a MVVM pattern and follows Caliburn Micro's naming conventions. The View-model of some Foo class is named FooViewModel, and its view is named FooView.

Badger has three main windows that allow to design an experiment, monitor it and analyse the results.

Main window

From this window, the user can design from scratch, load, save and launch experiments. The user can also view and analyse the results of a previous execution (Reports). On the left side, the user can set the value of parameters of a Simion app, and, on the right side, the list of herd agents that have replied to the call is shown. This list is updated periodically, so some delay between updates can be expected.

Main window

Monitor window

In this window, the user can follow the progress, performance and the messages logged by the experiments being run.

Monitor window

Report viewer

The user can easily analyse the results of an experiment, which are organised using the forks in the experiment.

Report viewer

Dependencies

This app uses Caliburn Micro to simplify MVVM and Oxyplot to draw plots.

Clone this wiki locally