Albert Einstein
QUESIM is a tool for user-friendly simulation of queueing systems in the object-oriented process-oriented discrete simulation language defined by the system class SIMULATION of SIMULA. It is made of two classes:
STATSIM, a subclass of SIMULATION declares classes for transparent collection and evaluation of statistics. There are the two usual classes for time (accumulator) and time-less (tally) statistics. Another class is a tally with histogram. Empirical table class makes the facilities already available in SIMULA more user-friendly. It can be initialized from a text file created by tally, so an empirical table distribution can be generated by simulation. Then there are procedures for some theoretical random distributions.
QUESIM, a subclass of STATSIM declares classes for typical parts of queueing systems: a generic customer, various queues, multichannel server and the whole station as such (G/G/c system by Kendall). Two auxiliary procedures generate a heading into a text file and screen.
The following figure shows the position of the "languages" created by the above classes in the SIMULA context.
SIMULA (that used to be called SIMULA 67) is the first true object oriented
language. Being rather old, it still has most (and all
important) mechanisms and principles of OOP. With the exception of the Beta
programming language, other
broadly used OOP languages are conceptual subsets of the SIMULA language
whose standard was defined in 1967. Some things like
classes, inheritance, virtual methods, etc. have been defined
in SIMULA long time before they were rediscovered by the OOP boom
in the 80's.
Today there are visual tools where simulation models can be created without
any programming. Nevertheless there are models that because of various reasons
have to be programmed. SIMULA's system class SIMULATION represents the first object
oriented process oriented discrete simulation language. It is free and it is very
fast compared with other simulation tools.
To learn more about SIMULA visit the author's
SIMULA page.
SIMULA has been criticized that on one side there is a high-level sophistication of the language itself combined with rather limited simulation capabilities except time control on the other side. Lack of supporting simulation tools like transparent collection of statistics, more advanced queues than the basic lists available in the system class SIMSET, report generation, etc. is caused by the fact that the language has been formally frozen in 1968. This decision was controversial. The advantage is that there is only one SIMULA with minimal differences between implementations. On the other hand future development was made difficult. SIMULA is thus more an OOP background for the creation of simulation tools than a complete user-friendly simulation environment. Probably the best known one of such tools is DEMOS (Birtwistle 1979). DEMOS is not a subclass of the system class SIMULATION and thus the users can not use processes of SIMULATION. I am convinced that process-oriented discrete simulation is the most advanced and the most natural way of creating simulation models. The class process of SIMULATION is the first superclass of this type. Process handling facilities of SIMULATION are thus a sort of standard that has been copied in many later simulation tools. To keep the processes of SIMULATION available without any restrictions, I wrote a simple extension to SIMULATION that makes its use more user-friendly. When using QUESIM students and other users can concentrate on the logic of the model without being bothered by repeating tedious tasks mostly related to collection and evaluation of statistics.
Download the quesim.zip file that contains the source files
of the classes STATSIM and QUESIM together with some demonstration simulation models and related
files with input data and sample results.
There is no installation, just copy the two source files into the folder of your project
and compile them (STATSIM first). Import them as external classes. Programs that use them are then prefixed
by STATSIM or QUESIM in standard way. All is also clear from the demo examples.
Contact me if you have any problems,
comments or suggestions.
QUESIM is supposed to work with all SIMULA compilers on all platforms. Please report any possible problems. So the only requirement is a working SIMULA on your computer. For Windows platforms there is a free port of CIM SIMULA. Visit the author's SIMULA page to obtain the link for download instructions.
The file quesim.zip contains two examples with associated input and result files. There is a model of the M/M/c system that can be very easily modified into any single queue system. The second example is a queueing network made of three stations. There is a PDF file with system definition and specification of the problem to be solved by simulation. All should be clear from the commented source. Note that in process-oriented simulation the modeler's view of the world is a number of parallel communicating and cooperating processes. The program is then a description of all processes. Have a look at the text Introduction to OOP in SIMULA for more examples.
In case of any problems do not hesitate to contact me:
Jaroslav SklenarWeb: http://staff.um.edu.mt/jskl1/
Phone: (+356) 2340 3070 Fax: (+356) 2131 2110
This article is translated to Polish by Valeria Aleksandrova.
This article is translated to Russian by Sandi Wolfe.
This article is translated to Portuguese by Artur Weber.
This article is translated to Spanish by Gilchrist Walker.
This article is translated to Italian by Maxwell Edward.
This article is translated to Finnish by Devid.
This article is translated to Urdu by Sharifa.
This article is translated to Chinese by Austin Cole.
This article is translated to Sindhi by Ahsan Soomro.
This article is translated to Ukrainian by David Diaz.
This article is translated to Dutch by Umer Anees.
This article is translated to French by Paul Diaz.
Another translation to Sindhi by Samuel Badree.