As we discuss in Chapter 8 of our book, it's a relatively taxing problem to do high fidelity synchronization of code and models in the cases where there's some abstraction gap between the two.

Jean-Marc Prieur of the DslFactory community in France has a project called DslFactory Utilities up on CodePlex that contains a framework to, as he puts it,

"explain how to create bidirectional DSLs, and automate this very complex process as much as possible."

You'll also find a sample designer showing how to use this for reverse engineering web services, and a couple of videos.

Nice work Jean-Marc!