- The UI model should never pose requirements for the domain model
- Reuse at the model level is key, so each UI model component should follow the 'strong cohesion, loose coupling' principle
- The percentage of generated code should be well above 90% and preferable > 95%
The antipatterns that the principles above avoid can be seen in many UI development projects:
Allthough n-tier architecture is widely adopted it is still commonplace to add domain model features to accomodate the UI tier.
Programming logic, navigation and content inside a single screen class is another common trap, because of the RAD style of development where a single screen is the focus for developers.
If you only generate 40% or 60% of the UI, you quickly loose some of the advantages of MDSE, because of synchronisation and uncontrolled dependencies. There are too many DSL's that are only used in the first iteration. They are abandoned and the generated code is just a starting point for traditional manual labor.
Next time I will describe the key concepts (metamodel elements) in StUIML.