The aim of this internship was first to learn how to use the Visual Simulation Environment (VSE), design some small models in order to understand the need of reusable model components and how to implement it with VSE. During this step, it occurs the need of a first library we called "Spot" library. Then, a real problem was proposed to us by an American company locally set up, which gives us the idea of a second library, the "Clock" library.


During the learning of VSE, we designed some fictitious models. One of them is the model of a building, composed of 4 floors. To access the floors, there is an elevator. The model represents the movement of people in this building, using the lift. On each floor, there is a desk, where people receive a service. There can be several persons who wait for a service. Hence, we model a waiting line, as shown by Figure 1. For the purpose of the animation, the waiting line has been modeled by a set of spots. So, logic has been worked out to manage the progression of people in this waiting line.

Figure 1: Example of a Waiting Line.

In a same way, we modeled partially an air traffic. We considered the flight of airplanes between three American cities. In this representation, we also modeled the boarding and the landing of the passengers in the airplane. To obtain a visually acceptable modeling of the movement of the passengers in the airplane, we defined spots between which the passengers can move (see Figure 2). During the boarding, the passengers enter the airplane with an assigned seat and they must find it. Hence, the interaction between spots and passengers has been defined to assure the passengers to move to their seat. To perform a simple animation like this one, the design took some time and resulted in a reasonably complex model.

Figure 2: Example of a Boarding in an Airplane.

Finally, we studied a model of the road traffic in the town of Blacksburg. The purpose of this model was to determine the rules to change the color of the intersection lights of the roads. Hence, the model represents vehicles moving in the streets of the town, respecting the common rules when arriving at a light or stop intersection. It had been decided to model this problem with spots between which the vehicles can move. Then, at each intersection, particular spots were defined to represent the specific rules to apply there (see Figure 3). The result was a really complex model, difficult to verify and debug, with numerous kinds of spot. Although the reuse of the components of this model for another road traffic was possible, it did not seem really easy to us.

Figure 3: Example of a Road Intersection.

From these observations, we decided to develop a library offering a generic solution to the movement of dynamic objects in a layout. From the models presented previously, we fixed the following main objectives.

  • Provide a generic spot component to represent visually the possibilities of movement of the dynamic objects.

  • Provide components to facilitate the expression of rules like the priority (e.g. stop intersection), or the wait for an authorization to move (e.g. light intersection).

  • Provide a mechanism to assure the autonomous movement of the dynamic objects according to priority and authorization rules and the possibilities of movement offered by the spots.


When the problem of parts distribution of a local company was presented to us, it occurred that we would need to deal with the manipulation of dates. However, most of the simulators, and especially VSE, represents the time as a real number, called the simulation clock (see Figure 4).

Usually, it represents a number of years, months, days, hours... from a given date. To know which date corresponds to the simulation clock we need to perform a quite complicated conversion. For this reason, it seemed important to us, especially for a visual simulation, that we dispose of an automatic mechanism that gives us the date corresponding to the simulation clock.

Figure 4: Simulation Clock of VSE.

To design this mechanism, it appears that we need a set of functions to manipulate dates. To be reusable, this set of functions must be complete and we must assess of the credibility of the results these functions give. Hence, from all these requirements, we fixed the following objectives.

  • Provide a mechanism and visual components to display the date corresponding to the simulation clock of the simulator.

  • Provide a complete and useful set of functions to manipulate dates in various contexts.

  • Conduct a credibility assessment study of this set of functions.


The VSE software used for this study is based on an object-oriented technology. To develop reusable model components and to design simulation models with this kind of software, it seems important to understand the concepts of the object-oriented approach. The following chapter presents these concepts.

The kind of simulation we deal with in this study is discrete-event simulation. Chapter 3 introduces the concept and the techniques of simulation, especially discrete-event simulation. Chapter 4 presents some notions about software reuse.

After these presentations, we introduce the VSE software in chapter 5 and explain how the concepts presented in the previous chapters are integrated into the software. And finally we present the study in chapter 6. Each library we designed is described in detail.

Copyright (c) 1999-2016 - Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. See this license for more details (http://www.gnu.org).