I am currently facing a situation where, as a proponent of test-based development, I must compete with a proponent of software-based architecture (MDSD) based on model (MDSD) / MDA).
In my opinion, code generation is a valuable tool in my toolbox, and if necessary I actively use templates and automation. I also create diagrams in UML when I think it helps to understand the inner workings or discuss architecture on a white board. However, I highly doubt that creating software through UML (creating state diagrams and sequence diagrams to create working code not only for code skeletons) is more efficient for multi-level applications (database level, business / domain level and Gui, perhaps even distributed). It seems to me that when it comes to MDSD, the CASE toolkit suddenly becomes not just a tool, but it is something that needs to be satisfied. As I can see, on the one hand, MDSDevelopers profit from the higher abstraction that UML gives, but at the same time they are struggling with modifying the generator code / template / engine to fully satisfy their needs, which can be easily realized (and tested) if you use another tool from your toolbar (VisualStudio, Eclipse, ...).
All this makes me wonder if there was a success story (assuming that the product was released on time, within the delayed period and with a small amount of errors, and parts of the software were reused later) for the real world application that completely fills this criterion developed using a rigorous model approach:
- it has nothing to do with the Object Management Group (OMG) or with consultants associated with MDSD / MDA / SOA /
- the application is not related to the business process and is not a CASE tool
- the application is actively used by the end user
- it has at least three levels, including a user interface that goes beyond displaying the values โโof the source tables and is not one of the common examples of MDA / MDSD ("how to simulate a coffee machine, traffic light, dishwasher").
model-driven-development mda mdsd
tobsen
source share