26.08.2013 Views

3.1 MB - Evernote

3.1 MB - Evernote

3.1 MB - Evernote

SHOW MORE
SHOW LESS

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()

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!