Model-driven development seems to have a lot of buzz in certain software engineering circles, but I've never encountered an open source MDD projects "in the wild".
Are any open source projects using model-driven development? (I don't just mean that there's some UML documentation, but that the primary artifacts that the developers manipulate are the models, rather than the code).
-
1I don't think MDD and typical open-source workflows would be a good match. Most importantly, manipulating (graphical) models instead of source code means you have to abandon the "prefer textual" mantra of the UNIX world.tdammers– tdammers2012年06月06日 18:21:16 +00:00Commented Jun 6, 2012 at 18:21
-
Are there open-source MDD tools? Open-source projects can't be built using proprietary tools.kevin cline– kevin cline2012年06月06日 18:45:29 +00:00Commented Jun 6, 2012 at 18:45
-
@tdammers: I don't see why models couldn't be text-only, though.haylem– haylem2012年06月06日 20:18:04 +00:00Commented Jun 6, 2012 at 20:18
-
@kevincline: why not?tdammers– tdammers2012年06月06日 22:08:01 +00:00Commented Jun 6, 2012 at 22:08
-
1@kevincline: I agree with tdammers. Open Source projects can be built with proprietary software, there isn't necessarily a legal issue with that.haylem– haylem2012年06月07日 09:54:07 +00:00Commented Jun 7, 2012 at 9:54
2 Answers 2
I don't know of many projects using a completely MDD-oriented approach, but I've often come across projects that use generated sources and artifacts from models of various kind.
I've found a few interesting links on this in the past:
- Here's a wikipedia list of projects based on Eclipse EMF (so, not necessarily consumer products using it, but still interesting),
- an IBM Developer Series tutorial on Eclipse EMF,
- a very interesting software called CodeWorker that uses Generative Programming as its core concept (to a certain extent, this allows you to work purely on models).
You may also want to read Why aren't we all doing MDD yet?
I think that live synchronization at model level is a solution. I mean that if you work on a native model explorer which will immediately updated all modified or new information in the complete model then you can manipulate the model at developer level. You can change your model with a simple text editor or using the tree viewer. Have a look at the EclipseUML2 plugin which is a kind of tree viewer using the EclipseUML2 model.