A model is only valuable if it directly aids the development process
In some cases, models that look good may not translate effectively into implementation
It's emphasised that the model should maintain a strong connection with the code through its lifecycle
An increasingly complex model may struggle with misalignment with the design or become decoupled from the implementation
Modelling Paradigms and Tool Support
Useful languages for model driven design such as OO languages rather than procedural
Model driven design scales easily and accommodates testing
A design takes several iterations of refactoring and knowledge crunching to distill the concepts into a simple and concise model
Letting the Bones Show: Why Models Matter to Users
Need to create UI matching the domain modle, causes less confusion
Revealing the model to the user has more potential for the software to yield predictable behaviour
Hands on Modellers
Separation of roles in development often leads to problems between the model and software as there's no collaboration
Better for developers to do modelling work so they understand the constraints
Using model driven design connects the model and implementation with ubiquitous language to constantly flow information between developers and domain experts