Dynamic models of biological systems are diverse, but have components
in common. The description of a system may involve multiple databases
which change and interact (individuals, populations, the landscape). A
clock is required to advance the system description through time. In
addition, the generation of random variates from different probability
distributions, interpolation of values from tabular data, and the col
lection of statistics on system components may be required. All of the
se tasks can be effectively achieved through object oriented programmi
ng (OOP). The C + + programming language is the object oriented langua
ge utilized in the implementation described. Object oriented programmi
ng can be utilized to facilitate the organization and development of d
ynamic models of biological systems. A C + + hierarchy of classes desc
ribing objects in the system can start at the level of machine process
ing. A binary object can use individual bits of memory to represent bi
nary data. Computer memory requirements can be minimized by using a li
nked list class to place objects in a list whose composition and size
vary as the program executes. The C + + feature of runtime linking can
connect a general base class with the data required for a specific ap
plication. These machine oriented classes can then be inherited into a
n individual animal class with binary data (male/female, diseased/nond
iseased) and a population class which is a linked list of individuals.
The binary arithmetic and memory pointers involved in these base clas
ses can be completely transparent to the user of the individual and po
pulation classes which are described in biological rather than machine
terms. OOP can facilitate the development of a description of the ind
ividual, population, landscape and their interactions. A landscape obj
ect can be described by a grid of rectangular cells linked on four sid
es to adjoining cells by memory pointers. These memory pointers to adj
oining cells can be utilized to describe flows and movement of objects
over the grid. This base class grid description can be inherited into
a derived habitat class with additional data. The location or coordin
ates of objects located on the grid can be utilized to access the data
for the cell in which it is located. Since grids describing landscape
s can be large and heterogeneous, GIS can be utilized for grid initial
ization and for analysis of spatial data in the simulation output. A s
imulation clock is required to advance the description of the objects
in the system and their interactions through time. A base clock class
advances time in specified increments, or between events, or in specif
ied increments until an event occurs. Events can be either scheduled l
ong term or triggered by a change in the system and stored in an event
queue by using the same base linked list class used to describe popul
ations. The type of events which occur in a system are specified in a
derived clock class which is accessed by the base clock class when the
program executes through run-time linking. An example application is
developed to describe winter kill of deer. Analysis of the simulation
output in a GIS showed simple rules for individual animal behavior aff
ected the pattern of landscape usage through time. Source code and doc
umentation are available. (C) 1997 Elsevier Science B.V.