next up previous contents index
Next: Acknowledgements Up: DEVSsharpSim Previous: DEVSsharpSim   Contents   Index

Preface

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

- Antoine de Saint Exupery

DEVS# is an open source library that is an implementation of discrete event system specification (DEVS) formalism in C# language. More than 30 years ago, Dr. Zeigler introduced DEVS to the public through his first book [Zei76], and its second edition [ZPK00] became available in 2000 due to the help of other two authors, Dr. Praehofer and Dr. Kim.

In 2005 when I tried to make DEVS# which is an another open source library of DEVS formalism in C++, I had a chance to use C# language in a project. During the project, I realized that C# has some advantages over C++ such as garbage collection, type checking functionality, Web functionality, etc. Then, I compared the execution speeds of these two languages. Surprisingly, C# is not slower than C++ (frankly speaking, C# was little bit faster than C++ in my test case). After the speed testing, I got started to implement a DEVS open library in C# through the sourceforge.net in 2006. Finally, I could open DEVS# library at http://xsy-csharp.sourceforge.net/DEVSsharp http://xsy-csharp.sourceforge.net/DEVSsharp.

Although the main objective of developing DEVS# is to provide not only a modeling and simulation environment but also a modeling and verification software based-on DEVS theory, this document would focus on the first functionality: modeling and simulation. However, since this document is not a C# programming book, this book doesn't cover the syntax of C# and how to use Visual Studio developing environment in depth. Thus, I would recommend you to read introductory book of C# first if the reader is not familiar with C# language.

This document consists as follows.

Chapter 1 provides a belief review of DEVS formalism including a verbal description of DEVS behavior. Chapter 1 also gives sample codes for a ping-pong game using DEVS# so we can see what the DEVS# codes look like.

Chapter 2 explains the DEVS# library in terms of the object oriented programming paradigm of C#. We will see the class hierarchy and some of the virtual or the abstract functions the user is supposed to override to make a concrete class. In addition, this section introduces a menu that DEVS# provides when we run DEVS# from a console.

Chapter 3 demonstrates several simple examples from atomic DEVS models to a coupled DEVS network. In these examples, we can check the knowledge learned from the previous chapters.

Chapter 4 deals with one of major goals of simulation study, that is, how to measure some performance indices. To do this, the mathematical definitions of throughput, cycle time, utilization and average queue length are addressed first, then their implementations in DEVS# are introduced using a practical example.

As an appendix, Chapter 5 briefly covers the structure of DEVS# library, how to compile examples which are provided in DEVS#, and how to add our own project or solution using Visual Studio 2005. If you want to compile, build, and run the examples first, you'd better read this chapter first.



Subsections
next up previous contents index
Next: Acknowledgements Up: DEVSsharpSim Previous: DEVSsharpSim   Contents   Index
MHHwang 2007-05-08