“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 prebuilt components. Code pieces are directly concerned but also much more abstract artifacts like software models, as promoted by MDE (Model Driven Engineering).
The CARAMEL project contributes to this research by deeply studying model spaces, their construction and structuration properties. From the perspective of software composition we are examining the concepts of submodel and sub-metamodel, their relationships and software qualities that they offer for the control of MDE processes. From the perspective of software reuse, parameterization techniques inspired from the programming world are investigated at the model level, in particular under the concept of “software template”. When the model level is concerned, parameterization of templates by models has to be considered. It is the objective of our research to clearly define and characterize the notion in relation to preceding sub(meta-)model composition properties. Targeted applications are the management of model repositories and the constitution of “off-the-shelf” model libraries, their structuration and construction through composition and template application, and finally their querying.