SimSoup System Diagram
The System Diagram above shows the structure of SimSoup within the context of the layered architecture. The diagram shows:-
- Subsystems: Subsystems are hierarchical. In the Kernel Layer, the main subsystem is the Kernel itself. This is composed of smaller subsystems: the Chemistry, Reactor, Simulation, Tracker and Kernel Manager subsystems (or 'sub-subsystems'). The other layers do not include hierarchical subsystems.
At the lowest level in the hierarchy, each subsystem consists of a group of logically related classes (not shown on this diagram), and encapsulates the data and functionality of those classes.
- Subsystem Interfaces (or APIs): These are the white rectangles with << interface >> 'stereotype' labels. Such subsystem interfaces are only used for communications that cross layer boundaries. For other communications (and some cross layer communications) standard class level interfaces are used
- Dependencies: These are the lines between subsystems and other subsystems, or between subsystems and interfaces to other subsystems. A dependency means that the subsystem at the start of the line uses the subsystem or interface at the end of the line (the one with the arrowhead). For example, the line from the Simulation subsystem to the Chemistry subsystem means that the Simulation subsystem uses (or is dependent on) the Chemistry subsystem.
For simplicity, a few dependency relationships are omitted from the diagram. These are dependencies on the Utilities subsystem, and dependencies between the Kernel Manager and other Kernel subsystems that are only used during SimSoup initialisation.