This chapter shows how Model Driven Engineering (MDE) can contribute to the production of Crop models. The ITK firm works in agronomy; it designs digital models and Decision Support Systems for croppers. Common model development at ITK relies on a dual implementation. The first one in Matlab® is usually proposed by agronomists, but for industrial purposes, software engineers translate this model in Java. This leads to double implementation, maintenance, and heavy production costs. To deal with this efficiency problem, the authors use a MDE approach to produce a Crop Model Factory (CMF). For this factory they propose a DSML (Domain Specific Modeling Language) formalized by a metamodel. In this chapter, the authors present this DSML, the concrete syntax retained for the factory, and its implementation in a tool enabling automatic code generation. The resulting Crop Model Factory (CMF) prototype is the fruit of an interdisciplinary collaboration, and they also present feedback on this working experience.
In an agronomical context, the Decision Support System (DSS) proposed by the ITK firm rely on mechanistic models. They represent the different biological processes occurring during the plant growth and in the field. Such models help identifying management options and are a precious aid for decision makers. However, ITK usually develops models in two steps. First, agronomists use specialized programming languages such as Matlab or R to prototype their crop models. Second, software engineers implement these models in Java or C++/C# for industrial use. This double development is time consuming and error-prone. In order to overcome this issue, this chapter shows how Model Driven Engineering can be used by providing a Domain Specific Modeling Language (DSML) for agronomists. This DSML is dedicated to the representation and automatic implementation of crop models. This solution experimented by the ITK company allows agronomists to define and experiment their models with a specific graphical user interface and to produce directly Java code.
Domain-specific modeling is a software engineering methodology for the conception and implementation of systems. It implies the use of languages dedicated to particular domains (i.e., DSML) to represent models. DSMLs require less effort for modelers to specify a particular type of system than general purpose languages, such as UML (Unified Modeling Language). Code generation techniques can be also used to automate the production of source code directly from the models.
In order to implement our language and our “crop model factory”, we have retained the Eclipse platform and the Graphical Modeling Framework (GMF) plugin. The tool we propose provides a Java code generator. In our work, we took inspiration from the contribution presented in (Hill and Gourgand, 1993; Hill, 1996) where graphical specifications led to simulation code generation and from the proposal of (deLara and Vangheluwe, 2004) where the syntax and the semantics of visual notations are based on metamodeling.
The present chapter will introduce the characteristics of crop models and will show how Model Driven Engineering (MDE) can contribute in their development. Our DSML will be presented and formalized by a metamodel. Then, the concrete syntax of our model factory will be shown as well as its implementation in a tool providing automatic code generation. Future research directions will be also described.