3.1 MB - Evernote
3.1 MB - Evernote
3.1 MB - Evernote
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
50<br />
Implementation<br />
GPSS test models were parsed that contained all of the supported GPSS entities and the<br />
textual output of the resulting object structures was checked. These tests included<br />
checking the default values of the different GPSS block types and parsing errors for<br />
invalid model files.<br />
5.2.2 Basic GPSS Simulation Engine<br />
The second implementation phase focused on the development of the basic GPSS<br />
simulation functionality. A GPSS simulation engine was implemented that can perform<br />
the sequential simulation of one model partition. This sequential simulation engine will<br />
be the basis of the parallel simulation engine implemented in the third phase.<br />
The classes for the basic GPSS simulation functionality can be found in the package<br />
parallelJavaGpssSimulator.gpss. The main class in this package is the<br />
SimulationEngine class that encapsulates the GPSS simulation engine functionality. It<br />
uses the runtime model object structure class hierarchy mentioned in 5.2.1 to represent<br />
the model partition and the model state in memory. The runtime model object structure<br />
class hierarchy contains classes for the GPSS block types plus some additional classes<br />
to represent other GPSS entities like Facilities, Queues and Storages. Each of these<br />
classes implements the functionality that will be performed when a block of that type is<br />
executed or the GPSS entity is used by a Transaction. Two further classes in this<br />
package are the Transaction class representing a single Transaction and the<br />
GlobalBlockReference class introduced in 5.2.1.<br />
The basic GPSS simulation scheduling is also implemented using the SimulationEngine<br />
class (a detailed description of the scheduling can be found in 5.<strong>3.1</strong>). It will generate<br />
Transactions and move them through the simulation model partition using the runtime<br />
model object structure. All block instances within this runtime model object structure<br />
inherit from the abstract Block class and therefore have to implement the execute()<br />
method. When a Transaction is moved through the model it will call this execute()<br />
method for each block it enters.<br />
Test and Debugging of Basic GPSS Simulation functionality<br />
The test application class TestSimulationApp was used to test and debug the basic GPSS<br />
simulation functionality implemented during this phase. This class contains a main()