next up previous contents index
Next: Event=PortValue Up: DEVSsharpSim Previous: Building Ping-Pong Game using   Contents   Index


Structure of DEVS#

DEVS# is an C# open source of DEVS formalism. Thus, there are two features: one comes from C# language, the other from the formalism. Figure 2.1 shows the hierarchy relation among classes used in DEVS#.

As we reviewed in Chapter 1, two DEVS models called atomic DEVS and coupled DEVS have common features such as input and output event interfaces as well as time features such as current time, elapsed time, schedule time and so on. In DEVS#, these common features have been captured by a base class, called Devs from which the class Atomic (for atomic DEVS) and the class Coupled (for coupled DEVS) are derived.

In DEVS#, an event is a PortValue that is a pair of ($ port$ , $ value$ ) where $ port$ can be an instance of either InputPort class or OutputPort class, while $ value$ is an instance of any derived class of the basic class object of C#. SRTEngine is a scalable real-time engine which runs a DEVS instance inside.

Figure 2.1: Classes in DEVS#
\begin{figure}\centering\mbox {\epsfig{file=Classes,width=1.0\columnwidth}}
\end{figure}

In Figure 2.1, a $ gray$ box indicates a concrete class which can be created as an instance, while a $ white$ box is an abstract class which can not be created as an instance.

We will first go through PortValue related classes in Section 2.1. Next, Devs class and its derived two classes: Atomic and Coupled will be investigated in Section 2.2. Section 2.3 will introduce a simulation engine class, called SRTEngine. And finally, we will see the random number generator classes in Section 2.4.



Subsections
next up previous contents index
Next: Event=PortValue Up: DEVSsharpSim Previous: Building Ping-Pong Game using   Contents   Index
MHHwang 2007-05-08