Modelling and simulation is a tool that provides support both for the planning, design and evaluation of systems as well as the evaluation of strategies for system transformation and change. Its importance continues to grow at a remarkable rate, in part because its application is not constrained by discipline boundaries. This growth is also the consequence of the opportunities provided by the ever widening availability of significant computing resources and the expanding pool of human skill that can effectively harness this computational power. However the effective use of any tool and especially a multi-faceted tool such as modelling and simulation, involves a learning curve. This book addresses some of the challenges that lie on the path that ascends that curve.

Consistent with good design practice, the development of this textbook began with several clearly defined objectives. Perhaps the most fundamental was the intent that the final product provide a practical (i.e., useful) introduction to the main facets of a typical modelling and simulation project. This objective was, furthermore, to include projects emerging from both the discrete-event and the continuous-time domains. In addition, the work was not to evolve into a treatise on any particular software tool, nor was it to be overly biased towards the statistical notions that play a key role in handling projects from the discrete-event domain. To a large extent, these objectives were the product of insights acquired by the first author over the course of several decades of teaching a wide range of modelling and simulation topics. Our view is that we have been successful in achieving these objectives.


We have taken a project oriented perspective of the modelling and simulation enterprise. The implication here is that modelling and simulation is, in fact, a collection of activities that are all focused on one particular objective; namely, providing a credible resolution to a clearly stated goal, a goal that is formulated within a specific system context. There can be no project unless there is a goal. All the constituent sub-activities work in concert to achieve the goal. Furthermore the “big picture” must always be clearly in focus when dealing with any of the sub-activities. We have strived to reflect this perspective through-out our presentation.

The notion of a conceptual model plays a central role in our presentation. This is not especially significant for projects within the continuous time domain inasmuch as the differential equations that define the system dynamics can be correctly regarded as the conceptual model. On the other hand, however, this is very significant in the case of projects from the discrete event domain because there is no generally accepted view of what actually constitutes a conceptual model in that context. This invariably poses a significant hurdle from a pedagogical point of view because there is no abstract framework in which to discuss the structural and behavioural features pf the system under investigation. The inevitable (and unfortunate) result is a migration to the semantic and syntactic formalisms of some programming environment.

We have addressed this problem by presenting a conceptual modelling environment which we call the ABCmod framework. Its basis is the identification of “units of behaviour” within the system under investigation and their subsequent synthesis into individual activities. The approach is a version of the activity-based world view that is often mentioned in the modelling and simulation literature as one three standard approaches for organizing a computer program that captures the time evolution of a discrete-event dynamic system. In our ABCmod (Activity Based Conceptual modelling) framework the underlying notions are elevated from the programming level to a more abstract and hence more conceptual level. The inherent implementation difficulty with the notions does not arise because there is no execution requirement at the conceptual level. The examples that are presented in the text illustrate conceptual model development using the ABCmod framework. Furthermore we demonstrate the utility of the ABCmod framework by showing how its constructs conveniently map onto those that are required in both the event-scheduling and the process-oriented programming environments.


This textbook is intended for students (and indeed, anyone else) interested in learning about the problem solving methodology called modelling and simulation. The book makes no pretence at being a research monograph, (although our ABCmod conceptual modelling framework is novel and previously unpublished). A meaningful presentation of the topics involved necessarily requires a certain level of technical maturity and our reference in this regard is a science or engineering background at the senior undergraduate or the junior graduate level.

More specifically our readers are assumed to have a reasonable comfort level with standard mathematical notation which we frequently use to concisely express relationships. There are no particular topics from mathematics that are essential to the discussion but some familiarity with the basic notions of probability and statistics play a key role in the material in Chapters 3 and 6. (In this regard, a Probability Primer is provided in Annex 1). A reasonable level of computer programming skills is assumed in the discussions of Chapter 5 and 8. We use Java as our environment of choice in developing event-scheduling simulation models. The GPSS programming environment is used to illustrate the process-oriented approach to developing simulation models and we provide a GPSS Primer in Annex 2. Our discussion of the modelling and simulation enterprise in the continuous-time domain is illustrated using the Open Desire programming environment and we provide an Open Desire Primer in Annex 3.


This book is organized into three Parts. The first Part has two Chapters and serves to provide an overview of the modelling and simulation discipline. It provides a context for the subsequent discussions and, as well, the process that is involved in carrying out a modelling and simulation study is presented. Important notions such as quality assurance are also discussed.

The four Chapters of Part 2 explore the various facets of a modelling and simulation project within the realm of discrete event dynamic systems (DEDS). We begin by pointing out the key role of random (stochastic) phenomena in modelling and simulation studies in the DEDS realm. This, in particular, introduces the need to deal with data models as an integral part of the modelling phase. Furthermore there are significant issues that must be recognized when handling the output data resulting from experiments with DEDS models. These topics are explored in some detail in the discussions of Part 2.

As noted earlier, we introduce in this book an activity based conceptual modelling framework that provides a means for formulating a description of the structure and behaviour of a model that evolves from the DEDS domain. An outline of this framework is provided in Part 2. A conceptual model is intended to provide a stepping stone for the development of a computer program that will serve as the “solution engine” for the project. We show how this can be accomplished for both the event scheduling and the process oriented program development perspectives (i.e., world views).

There are three Chapters in Part 3 of the book and these are devoted to an examination of various important aspects of the modelling and simulation activity within the continuous time dynamic system (CTDS) domain. We begin by showing how conceptual models for a variety of relatively simple systems can be formulated. Most of these originate in the physical world that is governed by familiar laws of physics. However, we also show how intuitive arguments can be used to formulate credible models of systems that fall outside the realm of classical physics.

Inasmuch as a conceptual model in the CTDS realm is predominantly a set of differential equations, the “solution engine” is a numerical procedure. We explore several options that exist in this regard and provide some insight into important features of the alternatives. Several properties of CTDS models that can cause numerical difficulty are also identified.

Determining optimal values for some set of parameters within a CTDS model is a common project goal in a modelling and simulation study. The last chapter in Part 3 explores this task in some detail. We outline two particular numerical procedures that can be applied to optimization problems that arise in this context.