Previous PageTable Of ContentsNext Page

A framework for developing agricultural production system models

J.N.G. Hargreavesl, D.P. Holzworth1 and N.I. Huth2

1 QDPI/CSIRO Agricultural Production Systems Research Unit, PO Box 102 Toowoomba Q. 4350
QDPI/CSIRO Agricultural Production Systems Research Unit, 306 Carmody Road, St Lucia Q. 4067

Building durable computer simulation models of complex agricultural systems presents major problems in maintenance (1), reliability (2), and change management ( 1) of the computer code. A framework is presented to overcome these problems so complex models are easy to correct, improve, maintain, and apply by many disciplinary specialists.

The following components are considered essential parts of a modelling framework:

Module engine and a modular program structure

  • allows any module to communicate with any other module through a module engine using a standard interface protocol, thus providing an open ended system
  • discrete packets (processes) are grouped into a functional module such as a crop
  • these modules can be pulled out of and plugged into the engine as required

2. Shell environment

  • Allows ease of building, maintaining, prototyping and applying models by providing:
  • ability to choose modules to plug in
  • access to tools such as editor, compiler, linker, databases, graphics and version control
  • easy development by non-computing specialists

3. Testing environment

  • moderating of code for correctness by computer specialists
  • a test-bed for functions and subprograms in modules, that allows a subprogram unit to be rigorously tested.

4. Software Development and Programming standards

  • A defined subprogram structure and coding style which provides:
  • consistency throughout modules
  • ease of maintenance
  • a reduced number of errors

5. Version control

A disciplined approach to managing code changes from requests for a change to recovery of earlier versions.

Although a large investment in computing specialists and resources is required to develop this type of framework, there is a large payoff by overcoming the problems associated with the modelling effort which allows shorter model development time and more reliable models for developers and users. This framework has been used in the development of the Agriculture Production systems SIMulator (APSIM).


1. Arthur. L.J.1988. Software Evolution: The software maintenance challenge. (John Wiley: New York).

2. Myers, G.J. 1976. Software Reliability: Principles and practices. (John Wiley: New York).

Previous PageTop Of PageNext Page