Is there a MDSD / MDA success story for a real world application?

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").
+7
model-driven-development mda mdsd
source share
5 answers

A small but useful feature of using MDSD was published on the Model Driven Software network:

http://www.modeldrivensoftware.net/profiles/blogs/viva-mdd-follow-up-building-a?xg_source=activity

This is a relatively small application that is being developed, but is still a good example of MDSD in action.

Additional success stories are listed on the Metacase website ( http://www.metacase.com/cases/index.html ). Metacase sells MetaEdit +, which implements DSM (Domain-Specific Modeling). DSM is just a form of MDSD.

I am also developing ABSE (Atom-Based Software Engineering), another form of MDSD that is very close to DSM. ABSE is outlined at http://www.abse.info .

+3
source share

I used MDA and code generation in an embedded system project using 4 processors connected via CAN. We had more than 20 axes of movement and many sensors. The system was very reliable and maintainable as the mechanical components were evaluated and modified.

We worked in models and generated code, so the models were always up to date. We conducted a thorough domain analysis to achieve object isolation. Engine control required very high performance and therefore was not modeled or created. Our network drivers were also manually encoded, and we wrote interfaces that allowed bridge services to send events to any service anywhere on the system as needed (although this was tightly controlled to minimize interprocess dependencies).

Using the method took a bit of discipline, but the availability of working models was great because they could be scanned by non-programmatic types.

Version control and model differences were a bit of a challenge, but we had a small localized team, so we managed to avoid problems with the merge.

The good people at Pathfinder Solutions (our tool provider) can help you inherit you through the project.

+3
source share

You can also take a look at the slides from previous Code Generation conferences. Several of these negotiations were dedicated to successful case studies, for example. http://www.codegeneration.net/cg2009/slides.php

+2
source share

I am working on one of the legacy modernization projects and using an MDA tool called Bluage. This is for a large healthcare organization and its production, so I can say that it is successful. MDA is better for obsolescence upgrades because it can generate a KDM model from some technologies, such as pacbase, that will not be supported.

+1
source share

I worked on an MDSD system that created admin-style web applications in Google Closure. I think your question is more convincing. Too much complexity, and your MDSD system is too complicated to use. Too simple, and you will not create applications that are useful in the real world. Where MDSD really shines is to save developers time by typing a lot of plumbing style code, but how can MDSD remain effective for multiple releases? Demands can go in many directions. This is a real problem. I recently wrote about my MDSD lessons in this project.

+1
source share

All Articles