The CARAMEL team
CARAMEL is part of the Software Engineering group of the CRIStAL Laboratory. Members come from the former LIFL research group named COCOA:- J-M. Geib (Professeur Université de Lille, délégué à l'AERES)
- O. Caron (Maître de Conférences Université de Lille )
- B. Carré (Maître de Conférences Université de Lille )
- G. Vanwormhoudt (Maître de Conférences IMT Nord Europe)
Context and scientific issue
"Design by reuse" is a main challenge of software engineering. The ultimate goal is to facilitate safe and controlled software production by assembling proven and reusable prefabricated artifacts. Code pieces are directly concerned but also much more abstract artifacts like software models, as promoted by MDE (Model Driven Engineering).
Indeed, after being considered only as documentation for a long time, software models are nowadays recognized as full software artifacts. The MDA methodology (Model Driven Architecture of the OMG standard organization) identified the need to separate platform-independent modeling choices from platform-dependent ones with respect to some "vertical" transformation chains. After this proof of concern, MDE generalized the approach. It upgraded the status of models from ingredients dedicated to MDA steps to full first-class software objects, so reusable and composable within their proper space.
The challenge is to facilitate the capitalization of technology independent design efforts and logic ("off the shelf" model components libraries) then conversely systematic "design by model reuse" methodology. Once it was clear that software models could be isolated, reused and composed, powerful technics issued from the programming world were considered to reach this goal. Part of this are software parameterization and aspect-oriented practices. But within model spaces, the real difficulty lies on the high-level granularity of models compared to individual software ingredients usually addressed (object classes, software components or operations for example).
Scientific Project
We ourselves contributed to this trend (see 2008-2013 scientific report). Work was done to facilitate the reuse of coarse-grained software components at the binary level (TOOLS'09). We deeply studied standard UML templates and their possible usage for "model parameterization by models" needs. Such templates may apply to final models (of some system being in construction) but also to model templates themselves (thanks to partial application) in order to obtain richer ones. We also explored "model variability" technics under the AOM (Aspect Oriented Modeling) topic (Models 2008, SoSym Journal 2012). Experiments were carried out in the field of telecom services (DAIS 2011, CBSE 2013). Finally, on the strength of these experiences, we isolated and characterized the notion of submodel and its properties (SoSym Journal 2013). The construct and its formalism apply to any submodel being well-formed or not w.r.t their metamodel (of any kind). This must be helpful for the comprehension and control of the preceding modeling phenomena and contributes to better structuring of model spaces.
It will be our project to exploit the former results to deeply investigate the question of model reuse and composition through their parameterization. At a fundamental level, we will concentrate on:
- The formalization, so the control, of parameterized model application and involved constituents thanks to the submodel formalism that we stated.
- Classification and "model-(sub)typing" issues. Important questions are the following. How a parameterized model may apply to a submodel hierarchy (model substitutability)? What about hierarchization of parameterized models in order to allow the enrichment of their core as well as their model parameter? How far such hierarchies may combine?
At a much more practical level, applications are the constitution of "off-the-shelf" model libraries and "model repositories". Main intents are to capture full entire reusable models as well as any modeling design effort and then their retrieval and reuse. Consequent engineering facilities in the Eclipse environment will be offered, as far as possible, such as rich content-driven (parameterized) model querying (browsing, visualization in the large and model completion), then their composition and application automation.