|
|
![]() |
In the domain of agro-ecological modelling, many efforts have been devoted in the last decade to define software designs which improve the efficiency of the process of model development by taking advantage of new technologies. The advent of component-based programming has enabled the development of scalable, robust, large-scale applications in a variety of domains, including agro-ecological modelling . The concept of developing modular systems for biophysical simulation has led to the development of several modelling frameworks, which make use of models as software components that can be linked together and composed according to the modeling purpose. However, little attention has been placed to the development of components which intrinsically promote re-usability, interchangeability, and extensibility of models. Components with such characteristics could find a different use in different clients and contexts, from end-user applications to web services through modelling frameworks; this would be interesting for cross-cutting communities of model developers. While waiting for the availability of tools and open systems which will make the underlaying software structure irrelevant to model developers, the need to deliver model applications ready for specific use still requires to take into account several non-trivial software-related aspects. Reusability chiefly depends on the capability of a component to fully encapsulate the solution to a common problem in terms of its underlying model: technology adopted and component architecture are then parts of the more general encapsulation problem. Rather than a mere issue of technology or component architecture, this one is a software engineering issue that commands a general approach meant to reduce component dependencies to the minimum. As a result, a simulation system should adhere to the following principles: 1) Explicit ontology. Both individual components and the whole system should be designed upon an explicitly-formulated ontology which should cover every aspect shared among components. 2) Semantic-based components. Individual components are not constructed as collections of procedures or functions exhibiting some commonalities, but are rather designed to encapsulate all the knowledge and functionalities related to a specific field or sub-field. The goal of this course is then twofold: 1) to provide to participants an overview of aspects related to the development of model components, 2) to show how to use components to build a simulation system using the modelling framework NModCom
|