QUESIM - Simulation of Queueing Networks in SIMULA

"Everything should be made as simple as possible, but not simpler"

Albert Einstein                                         

[ What is QUESIM | Why SIMULA | Why QUESIM | Download & Installation | Requirements]
[ QUESIM Examples | The Author ]

What is QUESIM

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.

Back to Top


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.

Back to Top


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.

Back to Top

Download & Installation

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.

Back to Top


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.

Back to Top

QUESIM Examples

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.

Back to Top

The Author

In case of any problems do not hesitate to contact me:

Jaroslav Sklenar
Associate Professor
Department of Statistics and Operations Research
University of Malta
Msida MSD 06
e-mail: jaroslav.sklenar@um.edu.mt

Web: http://staff.um.edu.mt/jskl1/

Phone: (+356) 2340 3070     Fax: (+356) 2131 2110

Back to Top

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.

[ Home | University of Malta | Department of Statistics & OR ]