SimSoup: Design - Subsystems

The subsystems from which SimSoup is composed are identified below. The purpose of each subsystem is described. Where a subsystem has one or more subsystem level interfaces, these are also identified and described.

Kernel Layer Subsystems

Kernel: The Kernel is the heart of the SimSoup model. It is responsible for representing Molecules and the Interactions that take place between them. The Kernel is also responsible for ensuring that the simulation is setup and run according to the user's requirements (as specified in 'Action Requests'). The Kernel is composed of the following subsystems:- The Kernel has the following subsystem interfaces:- Statistics: The Statistics subsystem provides facilities for storing and retrieving simulation statistics, including time series data.

Utilities: This provides a range of general purpose functions, including random number sequence handling.

User Interface Manager Layer Subsystems

Form Manager: Manages the SimSoup user interface. Provides the logic required to handle user inputs and to control the display of information; this includes handling Simulation Display Requests from the Kernel. The Form Manager is not responsible for the final presentation of the user interface or for the initial capture of user inputs; instead it manages an abstraction of the user interface. This ensures that it is isolated from the details of the graphics toolset used for presentation. The Form Manager has the following subsystem interfaces:-

Network Painter: This is responsible for graphical display of networks.

User Interface Presentation Layer Subsystems

SimSoup GUI: This is responsible for presentation of the user interface, including screen display and the immediate handling of user inputs; it uses the GTK+ graphics toolset. Each of the 'Forms' known to the Form Manager is setup as a tab in a GTK+ Notebook. The SimSoup GUI initialises and manages the various widgets on each tab, as well as the SimSoup menu. Handlers for the various SimSoup user actions are provided; when they are invoked they each call the relevant logic in the Form Manager. The SimSoup GUI provides the following subsystem interface:-

GUI Tools: Provides some common tools for managing the SimSoup user interface.

GTK+: This is the Gimp Toolkit. It is a multi-platform toolkit for creating graphical user interfaces. GTK+ is free software and part of the GNU Project. It is used to provide the user interface for SimSoup. Thanks to the GTK+ team for making this excellent software available! GTK+ provides the following interface:-