Package ikr.simlib

IKR Simulation Library (IKR SimLib)

See: Description

Package ikr.simlib Description

IKR Simulation Library (IKR SimLib)


1.1 History

The IKR Simulation Library is a tool, which is mainly used for event-driven simulation of complex systems in the area of communications engineering. Originally, Hartmut Kocher designed an object-oriented version of the IKR SimLib in 1993 during his dissertation [1] and implemented it in C++. Since this original design, we enhanced and improved the IKR SimLib continously.
In 2008, we ported the IKR SimLib to Java while keeping all concepts and mechanisms of the existing C++ class library. Today, two editions of the IKR SimLib are available: The C++ Edition and the Java Edition. Each edition comes as a separate class library. The IKR SimLib is publicly available under the GNU Lesser General Public License (LGPL) and thus allows changes within the libraries itself as well as proprietary programs to use it.
In the last years, we have successfully used the IKR SimLib for performance evaluation in various projects from different areas in communication network research, e.g. IP, ATM, photonic, mobile, and signaling networks.

1.2 Conceptual Structure

We structure the IKR Simulation Library into three main parts (Fig. 1). Basic concepts include simulation support mechanisms like event handling (see ikr.simlib.events), simulation IKR control (See ikr.simlib.control), distribution-oriented random number generation (See ikr.simlib.distributions) and tools to statistically evaluate measured values (See ikr.simlib.statistics) as well as reading parameters (See ikr.simlib.parameters) and printing simulation results are provided.
Beyond that, the IKR Simulation Library contains concepts for constructing hierarchical models from individual components (See ikr.simlib.model) that communicate with each other by exchanging messages (See Message). This message exchange occurs using so-called ports (See Port), which are used to define an external interface of a model component. Then, we can connect this interface to meters (See ikr.simlib.meters), which allow a simple determination of measurement values.

Structure of the IKR Simulation Library
Structure of the IKR Simulation Library


1.3 Naming Conventions

In order to ensure that the source code of the IKR SimLib is easy to read and maintain, we follow Sun's Code Conventions for the Java Programming Language (see http://java.sun.com/ docs/codeconv/html/CodeConvTOC.doc.html). Depending on the type, the first letter of a camel case compound may or may not be capitalized. For example class names use a capitalized letter (e.g., Queue), and variables and attributes a lowercase letter (e.g., name). The identifier of an element should be self-explanatory (e.g., maxLength, routingManager). If the element's name consists of several individual words, these are preferably written together, where each new part of the word begins with a capitalized letter.


[1] H. KOCHER: Entwurf und Implementierung einer Simulationsbibliothek unter Anwendung objektorientierter Methoden, Dissertation, Institute of Communication Networks and Computer Engineering, University of Stuttgart, 1993.