Software engineering considerations for individual‐based models
GE Ropella, SF Railsback…�- Natural Resource�…, 2002 - Wiley Online Library
GE Ropella, SF Railsback, SK Jackson
Natural Resource Modeling, 2002•Wiley Online LibrarySoftware 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�…
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�…
Abstract
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.
Wiley Online Library
Showing the best result for this search. See all results