MODSIM III—a tutorial

This tutorial introduces the MODSIM III language, showing how its simulation "world view" together with its object-oriented architecture and built in graphics contribute to successful simulation model building. 1 WHAT IS MODSIM III? Discrete systems simulation is one of the few truly new capabilities offered by the computing revolution. Computer simulation models provides us with a fascinating means to develop insight into the behaviors of the complex non-deterministic systems which surround us in communications networks, transportation logistics, business and manufacturing processes, to name a few. These systems are costly to develop and modify. Feasibility analysis and performance prediction through simulation can greatly reduce the risk of failure or wasteful expense. Simulation is an exploratory technique. We develop a model which represents our best understanding of a proposed system or modification. We run the model in the hope that it will confirm our design intuition. If it does not we endeavor to understand why, and use this knowledge to refine the model. Ultimately, we will use the model to explain and justify decisions affecting the real-world system. So, simulation serves three principal roles: to help us articulate a coherent description of a system; to validate its dynamic behavior to our satisfaction; and, then to communicate this to colleagues and decision makers. These steps are commonly iterative. It is usually wise to begin with a high-level abstraction of the system, allowing the model to evolve as we gain greater understanding of system behavior. Furthermore, the system itself may change in this rapidly changing environment, requiring changes to the model. For the simulation study to be effective, the model behavior should be presented in an understandable way, typically using animation. Ideally, domain experts should be involved in construction and validation of the model. Finally, the whole exercise must be completed within a useful time-frame, or it will serve little purpose. Before embarking on model development, it may be prudent to look for a suitable, off-the-shelf, domainspecific simulator. Frequently, however, unique characteristics or fidelity requirements dictate the need for a custom model. The characteristics of simulation modeling, then, make some special demands of the model development environment. The modeler needs help in the conceptualization of systems with dynamic, interacting, probabilistic behaviors. The model should be understandable, maintainable, and should lend itself to incremental addition of detail. The environment should support graphical interaction for scenario development and animated model execution. This tutorial will introduce the benefits of using an object oriented language specially developed for simulation, and enhanced with comprehensive graphics support. MODSIM III combines CACI's experience with simulation programming over three decades with advances in software engineering to offer the most productive environment for the development of large, complex, evolutionary, custom models. Examples of MODSIM III's simulation features, and the benefits of object-oriented architecture, are demonstrated below using code fragments from a hypothesized airport/airspace planning model. Such a model might be concerned with the representation of aircraft, flight duration, air traffic controllers, runway allocation procedures, and so on. To be of any interest, such a model must represent multiple aircraft in flight concurrently, and delays due to contending requests for resources, such as runways. 2 DEFINITION BLOCK-AN INTERFACE DESCRIPTION In support of modular program construction, objects in MODSIM III are described in two separate blocks of code. The Definition block describes the object type by declaring its variables and methods. This is the object description as it will be referred to by other objects in