The need for better collaboration among scientists and different existing environmental models makes it necessary to find efficient ways of using and reusing functionalities or services provided by third parties. New advances in software engineering can be successfully used to develop environmental models that use an enabling architecture for a ''plug and play'' approach. In this study, the Kraalingen crop simulation model was used to demonstrate the concept and feasibility of the ''plug and play'' architecture for crop simulation models. Strategy and AbstractFactory design patterns are used as the basis for the ''plug and play'' approach. In addition to design patterns, Java's reflection was used to dynamically instantiate the appropriate Strategy instance. This paper focuses only on the issues dealing with design and implementation of the ''plug and play'' architecture. This architecture was successfully tested using several components providing polymorphic behavior in the Kraalingen model. Components for obtaining weather data from different sources were plugged into the system without requiring changes to the code. This approach creates the necessary technical environment for scientists to focus on what they know the best, save time and effort and subsequently, increase the cross-disciplinary interaction for creating better models.
[1]
Robert M. Argent,et al.
An overview of model integration for environmental applications--components, frameworks and semantics
,
2004,
Environ. Model. Softw..
[2]
Petraq Papajorgji,et al.
Using the Unified Modeling Language to develop soil water-balance and irrigation-scheduling models
,
2004,
Environ. Model. Softw..
[3]
Desmond D'Souza,et al.
Objects, Components, and Frameworks with UML: The Catalysis Approach
,
1998
.
[4]
Petraq J. Papajorgji,et al.
An architecture for developing service-oriented and component-based environmental models
,
2004
.
[5]
Clemens A. Szyperski,et al.
Component software - beyond object-oriented programming
,
2002
.
[6]
John Stuart Lakos,et al.
Large-Scale C++ Software Design
,
1996
.
[7]
Jeff Prosise.
Programming Microsoft .NET
,
2002
.
[8]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.