In model-driven development (MDD), software development is centred around a formal description (model) of the proposed software system, and other software artifacts, such as model analysis, code, test suites, can be derived directly from the model. We are investigating configurable MDD, in which specifiers are able to configure the semantics of their models. The goal of this work is to provide a modelling environment that offers flexible, configurable modelling notations, so that specifiers are better able to represent their ideas, and yet still provides the types of analysis tools and code generators normally associated with model- driven development.
In this talk, I will describe a formalism we have developed, called template semantics, that structures the operational semantics of a family of notations as a set of predefined templates that must be instantiated with user-provided parameter values. Thus, the semantics of a single notation can be described succinctly as a set of parameter values to this template. I will also talk about recent experiences in using this formalism to develop parameterized semantics-based tools, such as model analyzers and code generators.