Page 81 -
P. 81

76                                                     E. Norling et al.

              Thus, it is impossible to simply dictate which system is best to use for developing
            simulation models of social complexity; indeed, there is no single system that is
            best under all circumstances. However, the sorts of questions one should consider
            are clearer. They include:
            • Clear structure: Is the way the system is structured clear and consistent? Are
              there clear analogies that help “navigate” your way through various choices you
              need to make? Is it clear how its structures can be combined to achieve more
              complex goals?
            • Documentation: Is there a good description of the system? Is there a tutorial
              to lead you through learning its features? Are there good reference documents
              where you can look up individual features? Are there lots of well-documented
              examples you can learn from?
            • Adaptability: Can the system be adapted to your needs without undue difficulty?
              Is the way it is structured helpful to what you want to do? Are the structures
              easily adaptable once implemented in your model? Does the system facilitate the
              modularisation of your model so that you can change one aspect without having
              to change it all?
            • Speed: How long does it take to run a model? Speed of execution is particularly
              important when a variety of scenarios or parameters need to be explored or when
              several runs are necessary per parameter configuration due to random processes
              in the model.
            • User community: Do many people in your field use the system? Are there active
              mailing lists or discussion boards where you can ask for help? If you publish a
              model in that system, is it likely that it will be accessible to others?
            • Debugging facilities: Does the system provide inbuilt facilities for debugging
              and tracing your simulation? If not, are there perhaps generic tools that could be
              used for the purpose? Or would you have to debug/trace your model by manually
              inserting statements into your code?
            • Visualisation facilities: Does the system provide tools and libraries to visualise
              and organise your results? Are there dynamic visualisation tools (allowing one to
              view the dynamics of the system as it evolves)? How quickly can you develop a
              module to visualise the key outputs of a simulation?
            • Batch processing facilities: Is there a means of running the model a number of
              times, collecting and perhaps collating the results? Is it possible to automatically
              explore a range of parameters whilst doing this?
            • Data collection facilities: Are the results collected and stored systematically so
              that previous runs can easily be retrieved? Is it possible to store them in formats
              suitable for input into other packages (e.g. for statistical analysis or network
              analysis)?
            • Portability: Is the system restricted to a particular platform or does it require
              special software to run? Even if all your development will be done on one
              particular machine, in the interests of reusability, it is desirable to use a system
              that will run on multiple platforms and that is not dependent on specialised
              commercial software.
   76   77   78   79   80   81   82   83   84   85   86