I was reading the Jon Hurwitz post this morning saying
"I think regeneration from the model every time is the only realistic way to get the major benefits of MDD"
I must admit that I agree with him based on our AndroMDA return of experience and also I don' fully agree because of new agile methodologies.
It is common to say as explained by Karsten that "the truth is in the code" therefore if the model is not synchronized with the code, the model would not be the truth anymore.
This is the reason why I have influenced Omondo to create the agile project iteration feature
http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/r...
On the other hand using MDD with AndroMDA for example allows to create all needed layers. In our 2007 example available at:
http://www.ejb3.org/model_spring_hibernate_struts.doc we used the following layers:
• Spring for services
• Hibernate for persistence
• Struts technology presentation
The problem we faced was that the complexity of the AndroMDA model validation and that whatever we did at model level we have not been able to create a full running application if no customization at code level. btw, we can certainly save over 50% compare to manually typing code and also have a robust and intelligent architecture in which all generated layers codes are generated separately respecting MDD spirit. It is therefore recommended to use MDD but should it be regeneration every time from the model ?
The today's question is therefore: Is regeneration from the model
every time the only realistic way to get major benefits of MDD ?