Patterns, MDD, & Metatooling
When looking at the convergence of pattern specifications, MDD, and metatooling, we note that none of these disciplines is particularly new. Each is associated with a community that has been developing and maturing its domain for a number of years. The new and interesting aspect is when we bring these three concepts together in a mainstream development environment.
Model-driven development is an approach in which models are a key development artifact. The models are used to capture and communicate designand preferably used to generate the solutions they represent.
MDD provides a strategy for raising the productivity and quality of software development by requiring you to think about the essential variables in design; so the model lets you work at the appropriate level of abstraction for the task at hand. The standard, repetitive, and algorithmic activities of expressing these variables in a particular technology environment is delegated to tooling.
The idea of metatooling is that you have tooling that lets you build tooling. In particular, for creating pattern implementations, which are tools themselves, we are interested in two metatools:
- Modeling tools (such as Rational Software Architect) provide frameworks that codify best practices for reuse. With these tools, you can create, reuse, and execute pattern implementations to automate design and development.
- EMFT JET, an Eclipse-enabled template engine for generating applications based on customizable, model-driven architecture transformations. This plug-in can speed up the development of common types of applications via transformations that capture best (or current) practices for the design and implementation of those applications. Associated exemplar authoring tools let you quickly create pattern implementations.
These can be used in combination to provide a platform for pattern implementations.