z-logo
open-access-imgOpen Access
SOFTWARE ENGINEERING CONSIDERATIONS FOR INDIVIDUAL‐BASED MODELS
Author(s) -
ROPELLA GLEN E.,
RAILSBACK STEVEN F.,
JACKSON STEPHEN K.
Publication year - 2002
Publication title -
natural resource modeling
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.28
H-Index - 32
eISSN - 1939-7445
pISSN - 0890-8575
DOI - 10.1111/j.1939-7445.2002.tb00077.x
Subject(s) - computer science , software engineering , ibm , software , software construction , software system , software development , programming language , materials science , nanotechnology
. Software design is much more important for individual‐based models (IBMs) than it is for conventional models, for three reasons. First, the results of an IBM are the emergent properties of a system of interacting agents that exist only in the software; unlike analytical model results, an IBMs outcomes can be reproduced only by exactly reproducing its software implementation. Second, outcomes of an IBM are expected to be complex and novel, making software errors difficult to identify. Third, an IBM needs ‘systems software’ that manages populations of multiple kinds of agents, often has nonlinear and multi‐threaded process control and simulates a wide range of physical and biological processes. General software guidelines for complex models are especially important for IBMs. (1) Have code critically reviewed by several people. (2) Follow prudent release management prac‐tices, keeping careful control over the software as changes are implemented. (3) Develop multiple representations of the model and its software; diagrams and written descriptions of code aid design and understanding. (4) Use appropriate and widespread software tools which provide numerous major benefits; coding ‘from scratch’ is rarely appropriate. (5) Test the software continually, following a planned, multi‐level, exper‐imental strategy. (6) Provide tools for thorough, pervasive validation and verification. (7) Pay attention to how pseudorandom numbers are generated and used. Additional guidelines for IBMs include: (a) design the model's organization before starting to write code,(b) provide the ability to observe all parts of the model from the beginning,(c) make an extensive effort to understand how the model executes how often different pieces of code are called by which objects, and (d) design the software to resemble the system being mod‐eled, which helps maintain an understanding of the software. Strategies for meeting these guidelines include planning adequate resources for software development, using software professionals to implement models and using tools like Swarm that are designed specifically for IBMs.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here