Model driven best practices were published @ InfoQ
There's new post @ InfoQ regarding
best practices in model-driven software development.
Summary of the topics:
1)
Separate the generated and
manual code from each other - in my opinion the separation should only physical
and you can you partial classes to achieve physical separation with
concrete linkage to the non-generated code of yours.
2)
Don't check-in generated
code – in my opinion it's not always true (see my
comments on that)
3)
Integrate the generator
into the build process
4)
Use the resources of the
target platform
5)
Generate clean code
6)
Use the complier – see my
insights on that (between the lines)
7)
Talk in Meta models
8)
Develop DSLs iteratively
9)
Develop model-validation
iteratively
10)
Test the generator using a
reference model
11)
Select suitable technology –
in my opinion, technologies that enforce you to tight-couple their assemblies
with you code, are less preferable (future technologies upgrades might become extremely
high risk to the project so that they will be discarded altogether).
12)
Encapsulate UML (and other
complex meta-models)
13)
Use graphical syntax
correctly
14)
Use textual syntax
correctly
15)
Use Configuration By
Exception
16)
Teamwork loves textual DSLs
17)
Use model-transformation to
reduce complexity
18)
Generate towards a
comprehensive platform