Functional- structural plant models (FSPMs) have attracted significant interest and the expertise of researchers in botanical, mathematical and computational sciences. From a programming perspective, the key difficulty in decomposing plant models into both components (modules) and functions (aspects of model operation) is that they represent crises-crossing concerns: different modules may exhibit the same function, and different functions may be shared by the same module. For each function, users can state the type (primitive or non-primitive). If the function being modeled is a primitive function, the user can choose from an existing set of primitive functions that are provided by the system.
Introduction
Functional- structural plant models (FSPMs) have attracted significant interest and the expertise of researchers in botanical, mathematical and computational sciences. The motivations for developing these models range from increasing our fundamental understanding of plant behavior to developing decision support systems that will aid in optimizing horticultural, agricultural and forestry production. The diverse applications of FSPMs create a growing need to share and reuse not only sheer models, but also model components and software tools. In this context, an important open problem is to develop methods for integrating previously modeled aspects of plant function into a single model (Bradshaw, 2007).
Functional-Structural Modeling
From a programming perspective, the key difficulty in decomposing plant models into both components (modules) and functions (aspects of model operation) is that they represent crises-crossing concerns: different modules may exhibit the same function, and different functions may be shared by the same module. For example, the progress of time (ageing) is an aspect that affects most structural modules, while these modules are also likely to be endowed with other functions. A straightforward implementation of the ageing process would require a duplication of the corresponding code in all modules. Here, we introduce a ...