|
|
Best Practices for Model-Driven Development
Model-Driven Development is well on its way into the mainstream of software development. Many developers have used DSLs, models and code generators to simplify recurring development tasks. However, fully exploiting the power of DSLs and MDSD requires more that "just using a generator". Specifically, many of the benefits will only materialize if development teams build their own languages and generators for their particular domain. This tutorial presents a set of best practices extracted from a number of MDD projects, among them
(-) When and how to use custom meta models instead of general purpose meta models such as UML
(-) Various techniques of annotating, extending and specializing models
(-) Trade offs between textual and graphical DSLs
(-) When to use code generation, and when to use interpreters
(-) Pragmatic use of model-to-model transformations
(-) Handling variants in models, generators and transformations
(-) How to sensibly integrate generated code with manually written code
(-) Multiple viewpoint meta models
(-) modelling behavioural aspects of a system
This tutorial is aimed at real developers working in real projects. The concepts will be illustrated with examples from my projects in the last year, based on tools from the Eclipse Modeling Project and openArchitectureWare.
|