Question

I want to start a simulation project, which will be a descrete-time simulation. The purpose is simulating agent communication with some non-autonomous physical models involved, so it is not necessarily limited to a pure agent-based simulation. Before starting, I wanted to ask what software engineering practices specific to simulation do exist, for example test practices (TDD suited? Simulation tends to be hinghly non-deterministic), which problems from a software engineering point of view are common, often occurring problems, etc. I am not talking about the modelling process, but the process of the realization of a system that uses existing models. Related book recommendations are very welcome.

Thanks.

Was it helpful?

Solution

Marcin is right, this question is much too broad to have a correct answer apart from It Depends.

The main reason for this is that simulation software is, first and foremost, still 'just' software, and the engineering part very much depends on your requirements (programming language, purposes of the software, time budget, constraints on resources, etc.). Of course, there might be additional steps involved (such as VV&A) and certain tasks need extra care, such as testing, but all this depends on the context.

Also, before you start hacking away, have you looked at existing tools - maybe there is a library or framework that you can rely on? If so, what approaches have worked there?

Except general introductions (like this), most books and papers are also focused on specific subsets of simulation software (e.g. simulation software in C++, or agent-based simulations, or parallel and distributed simulations). So without more context it is hard to even point you to relevant material.

OTHER TIPS

One common problem in software engineering and development of (agent-based) simulation software is dealing with floating point numbers.

Since not all real numbers can be exactly represented by the floating point formats used in computers, small errors can build up in simulations with many operations over time and influence the final results.

Moreover, small differences in how floating point operations are implemented on various hardware and software platforms may result in different outcomes when a simulation is run on different systems.

See these links for some extensive studies into the effects of this on agent-based models:

http://www.macaulay.ac.uk/fearlus/floating-point/
http://jasss.soc.surrey.ac.uk/8/1/5.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top