Is there a MDSD/MDA success story for a real world application? [closed]
Asked Answered
H

5

7

I am currently facing a situation where I as an advocate of test driven development have to compete with an advocate of model driven software development (MDSD) / model driven architecture (MDA).

In my opinion, code generation is a valuable tool in my toolbox and I make heavy use of templates and automation when needed. I also create diagrams in UML when I think this helps to understand the inner working or to discuss architecture on the white board. However, I strongly doubt that creating software via UML (creating statecharts and sequence diagrams to create working code not only skeletons of code) is more efficient for multi tier applications (database layer, business/domain layer and a Gui, maybe even distributed). It seems to me when it comes to MDSD, the CASE tooling suddenly isn't just a tool anymore but it is the thing to satisfy: As I see it, on the one hand, MDSDevelopers profit from the higher abstraction UML gives them but at the same time they are struggling with modifing the codegenerator/template/engine to fullfill their needs which might be easily implemented (and tested) if used another tool out of their toolbox (VisualStudio, Eclipse,...).

All this makes me wonder if there has been a success story (suceess being that the product was rolled out in time, within the budged and with only few bugs and parts of the software have been reused later on) for a real world application which fullfills this creteria and has been developed using a strict model driven approach:

  • it has nothing to do with the the Object Management Group (OMG) or with consultants related to MDSD/MDA/SOA/
  • the application is not related to Business Process Modelling and is not a CASE tool itself
  • the application is actively used by end user
  • it has at least three tiers, including a user interface which goes beyond displaying raw table values and is not one of the common MDA/MDSD examples ("how to model a coffee machine, traffic light, dishwasher").
Holtorf answered 22/6, 2010 at 20:3 Comment(1)
Would you accept NO as a valid answer?Belemnite
D
3

A tiny, but nevertheless useful testimonial on the use of MDSD has been posted on the Model Driven Software Network:

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

It is a relatively small app being developed, but still a good example of MDSD in action.

More success stories are listed at Metacase's site (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, very close to DSM. ABSE is outlined at http://www.abse.info.

David answered 23/6, 2010 at 23:35 Comment(3)
+1 Thanks for your answer. Maybe you know more details about this project. E.g. How many people are involved, how long did it take to complete a first version, are requirements also held in the model, what kind of diagrams/UML were used (e.g. were statecharts involved to create behaviour code?)?Holtorf
@Holtorf I don't have that information, but you can nevertheless ask directly to Peter Adriaenssens in the forum...David
@RuiCurado the 1st link in your answer is broken. Can you fix it by providing more up-to-date link? (your 2nd link works just fine :)Lambency
L
3

I used MDA and code generation on an embedded system project using 4 processors connected via CAN. We had over 20 axes of motion and many, many sensors. The system was highly robust and maintainable as the mechanical components were evaluated and modified.

We worked in the models and generated code so the models were always up-to-date. We did a careful domain analysis to achieve subject matter isolation. The motor control required very high performance and so was not modeled or generated. Our network drivers were also hand-coded, and we wrote interfaces that allowed bridge services to send events to any service anywhere in the system as needed (although this was tightly controlled so as to minimize interprocessor dependencies).

Using the method took a bit of discipline, but having working models was great because they can be reviewed by non-software types.

Version control and differencing of the models was a bit of a challenge but we had a small, localized team so we were able to avoid merge issues.

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

Leopold answered 30/6, 2010 at 18:26 Comment(2)
Thanks for your answer, but has is at least three tiers, including a user interface? From your description, it seems that you created some kind of robot / embedded software for it?! Sounds really interesting!Holtorf
It had a user interface, but there isn't much gain in modeling the UI since they are not generally state-based. A tool like Enterprise Architect from Sparx is very good at capturing simple class structures such as a UI might use. My colleague uses it for code generation as well, but I never have.Leopold
W
2

You could also take a look at the slides from previous Code Generation conferences. Several of these talks were from successful case studies e.g. http://www.codegeneration.net/cg2009/slides.php

Warship answered 30/6, 2010 at 17:55 Comment(2)
Thanks for the link, I will definitely have a look. However, I just googled some of the names/companies and all of the ones I tried came back to companies involved in the creation of MDSD-Tools. I really need independent proof that building an real-world application is possible beyond embedded software with MDSD. Maybe you can point out one talk which fulfills this?Holtorf
Evangelizing Code Generation: A Case Study of Incremental Adoption (Brooke Hamilton) PDF (3.00 Mb) from 2008. codegeneration.net/conference/sessions/slides/bernier.pdf IIRC this was from the financial domain. The 'Putting it all together' talk from the same year was also from the financial domain IIRC. See also slideshare.net/HeikoB/… from Code Generation 2009. FWIW not everyone uses UML. Google 'Domain-Specific Languages' or 'Domain-specific Modeling- for alternative approaches.Warship
T
1

I am working on one of the project for legacy modernization and its using MDA tool named Bluage. Its for a big healthcare organization and its in production so i could say that its successful. MDA is better in case of legacy modernization as it can generate KDM model from some technologies like pacbase which are going to be out of support.

Tradesman answered 31/7, 2012 at 14:39 Comment(0)
P
1

I worked on a MDSD system that generated admin style web apps in Google Closure. I believe that your question is compelling. Too much complexity and your MDSD system is too hard to use. Too simple and you won't generate apps that are useful in the real world. Where MDSD really shines is in saving developer time typing lots of plumbing style code but how can MDSD remain effective over multiple releases? Requirements can go in many directions. That is the real challenge. I recently blogged about my MDSD lessons learned on that project.

Pistareen answered 11/8, 2012 at 23:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.