Simulation Software: Not the Same Yesterday, Today Or Forever M Pidd* and a Carvalho Lancaster University, Lancester, UK
Total Page:16
File Type:pdf, Size:1020Kb
Journal of Simulation (2006),1–14 r 2006 Operational Research Society Ltd. All rights reserved. 1747-7778/06 $30.00 www.palgrave-journals.com/jos Simulation software: not the same yesterday, today or forever M Pidd* and A Carvalho Lancaster University, Lancester, UK It is probably true, at least in part, that each generation assumes that the way it operates is the only way to go about things. It is easy to forget that different approaches were used in the past and hard to imagine what other approaches might be used in the future. We consider the symbiotic relationship between general developments in computing, especially in software and parallel developments in discrete event simulation. This shows that approaches other than today’s excellent simulation packages were used in the past, albeit with difficulty, to conduct useful simulations. Given that few current simulation packages make much use of recent developments in computer software, particularly in component-based developments, we consider how simulation software might develop if it utilized these developments. We present a brief description of DotNetSim, a prototype component-based discrete event simulation package to illustrate our argument. Journal of Simulation (2006) 0, 000–000. doi:10.1057/palgrave.jos.4250004 Keywords: simulation software; Microsoft.NET; composability; the future Introduction methods are also common in the various sub-disciplines of the social sciences and management sciences. Since this new It will be very obvious to readers of this new journal that a journal is published on behalf of the Operational Research computer can be used to simulate the operation of a system Society, we focus on simulation as used in OR/MS such as a factory or call centre, but whether it was so (operational research/management science)—but there is obvious to the pioneers is not so clear. It is clear, though, much more to simulation than this. Within OR/MS, the that when they realized the possibilities they were creative term ‘computer simulation’ covers discrete event simulation, and enthusiastic in developing methods that would harness the emerging power of computers to the improvement of continuous simulation, system dynamics and agent based productive systems. When computer simulation began, there modelling. Since we have too little space to cover every were no programming languages in the sense that we aspect of simulation, even in OR/MS, here we concentrate understand them today. Instead, the earliest simulation on discrete event simulation. modellers found themselves flipping switches or writing in A well-rounded discrete event simulation modeller re- machine code and, a few years later, writing in assembler; all quires three related skill sets. First, expertise in and rather clumsy. More than 50 years later, computer simula- knowledge of probability and statistics, since many systems tion methods are taken for granted in many areas and there modelled by discrete event simulation contain elements that are easy-to-use tools that enable people with limited are best represented stochastically. This does not mean that computing skills to develop and run simulation models simulation modellers must be professional statisticians, but (Hollocks, 2004). Our aim, here, is to review the develop- they really should be comfortable with statistical variation ments that occurred in that half century, trying to do justice and probability. Secondly, modellers need expertise and to the pioneers and to those who have moved things on since experience in computing, since discrete event simulations are then. About 20 years ago, one of us reviewed developments implemented in computer programs. It would be a mistake, in simulation and linked these to developments in computing however, to assume that modellers require fully developed (Pidd, 1987), but much has changed since then. programming skills in the sense that this would have been Nowadays, computer simulation is rather a broad field meant 20 years ago. As will become clear later in this paper, with applications in all scientific disciplines: indeed much of many, possibly most, discrete event simulations are im- climate science is wholly based on simulation models, many plemented in modelling packages. These are often known as of which are impossible to validate in any sense. Simulation Visual Interactive Modelling Systems (VIMS) and, although they do require some programming, this consists of small *Correspondence: M Pidd, Department of Management Science, Lancaster sets of logical statements rather than full programs. Thirdly, University Management School, Lancaster University, Lancaster LA1 4YX, UK. and perhaps less obviously, discrete event simulation E-mail: [email protected] modellers must be able to model. That is, they must learn 2 Journal of Simulation Vol. ]],No.]] the skills of extracting the essence from a situation, develop understanding. That is, modern simulation tools embodying these in a conceptual model and using them have shifted the emphasis from programming and software once they are implemented in a suitable computer system to development to modelling and model use—at least as far as draw inferences about the system being simulated. simulation modellers are concerned. Of course, hidden away One of us, Pidd, is a management scientist who has been in the background are the software engineers and developers involved with computer simulation for over 30 years. During who provide the tools that have enabled this shift. this period, he has maintained an interest in both the theory and practice of simulation, especially of discrete event Aquick review of the history of discrete event simulation simulation; though with more than a passing interest in software system dynamics. The other, Carvalho, is an experienced computer scientist who, at the time this paper is written, is Without over-simplifying matters too much, we can consider close to completing a PhD in computer simulation, as part of discrete event simulation software as passing through the which she developed DotNetSim which is described later. following phases. Our joint insights form the basis of this paper, which we hope will be of value to people in considering not just the 1. Almost any programming language can be used to write a past of simulation but also its possible future. Over the years, discrete simulation application from scratch, as long as it a symbiotic relationship has developed between simulation supports both numerical computation and logical opera- and computing. In general, computing has been ahead of tion. Thus, people have used FORTRAN, Pascal, discrete event simulation; that is, simulation modellers have BASIC, Modula II, C, C þþ and the variations around taken up developments that occurred elsewhere in comput- these languages. Since common operations occur in any ing. But there have been exceptions to this rule, such as when discrete event simulation, programmers were quick to object orientation first appeared in the simulation program- develop libraries of subroutines and functions that could ming language SIMULA (Dahl and Nygaard, 1966) and be re-used. Initially, such re-use was for a single also in the use of graphics for decision support. individual or organization, but gradually products such In general, we consider the strong links between discrete as GASP (described in Pritsker, 1974) and SIMON (Hills, event simulation and developments in computing over the 1965), which were libraries of subroutines, appeared in last half century and suggest that, useful though they are, the market. SIMON, a library of Algol routines, was so- today’s simulation packages may need to be radically re- named because its originator, Robin Hills, intended it to thought if they are to meet users’ future expectations. For a be simple to use—compared to the available alternatives. broader treatment of developments in simulation see Today, some simulations are still written by cutting Robinson (2005) who discusses issues beyond software. general-purpose code, but probably very few of these are in the commercial world. 2. Since computer programming skills have rarely been Developments in computing and their effect on discrete widespread, simulation software developers realized that event simulation users without proper programming skills could be supported by the development of application packages It may once have been true that simulation modellers were based around the idea of a flow diagram, sometimes pleased to find any way to run even a simple simulation known as a block diagram. Early examples of these were model. Anyone who has written a reasonably complex GPSS (described in Gordon, 1962) and HOCUS (Hills, program in a language like FORTRAN or C þþknows the 1971). As originally envisaged, such models would be feeling of relief when it seems to work properly—and the all developed in a two-stage process. First, the user would too common despair when a bug appears later. Eventually draw a flow diagram that represented the outline of the the program will be declared fit for purpose, but behind this logic of the system to be simulated. Secondly, this logic will have been many bugs and development problems sorted would be translated by the modeller into a command out one by one, in a laborious process of debugging and sequence (using punched cards in the early days) that verification. Nowadays, the existence of VIMS allows a would be read by the flow/block diagram system (eg modeller to take for granted that a simulation model will run GPSS) as data. As long as the application was relatively once it has been built. Models can be built very quickly, simple, the simulation could then be run. However, such sometimes while the client for the work is watching and flow diagrams can rarely capture the full logic of a taking part in the work. In the early days, a huge proportion simulation application and further development was of the effort in a simulation project involved getting a model needed. Since an experienced modeller could write down into a computable form, so it could be used.