-1

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.

Peladao
  • 4,036
  • 1
  • 23
  • 43
AlexLiesenfeld
  • 2,872
  • 7
  • 36
  • 57
  • 1
    Break this down into a series of questions better describing your problem, the parts you are confused about, and your own thoughts, and they will get a much better response than this question. – Marcin Aug 13 '12 at 20:08
  • This is meant to be a general question, asking about what practices evolved and have proofed being good in developing simulation software. – AlexLiesenfeld Aug 13 '12 at 20:14
  • 1
    I understand your question. I am telling you that it is not very good, and some ways in which you can ask some better questions instead. – Marcin Aug 13 '12 at 20:15

2 Answers2

0

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.

Community
  • 1
  • 1
Roland Ewald
  • 4,630
  • 3
  • 35
  • 49
  • 1
    Thank you for your advice. I found the answer here though: http://tinyurl.com/8utw42g which is exactly what I was looking for. – AlexLiesenfeld Sep 14 '12 at 07:46
0

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

Peladao
  • 4,036
  • 1
  • 23
  • 43