We covered this thing in school. It’s sort of neat.
Model Driven Development revolves around the idea that code can be generated from domain models. At the very least those things are the main focus of MDD. Making models isn’t nearly as time consuming as writing code is, so there’s at least one reason why MDD is something good. Thing is though, generating code is hard. Well, hard. It’s pretty smooth sailing when all you want is to be able to have classes with variable you can get and set, but once you require more complex functions, that’s when the wind picks up and blows your little ship onto the rocks.
I’m no expert, so I’m not going to voice my shitty opinion on MDD. Chances are it’ll come back to mess with me later on if I do. You know, what with still being a bit of an idiot and all that. I will say though, that it seems like a bit of a bifurcated approach. There’s the automatic code generation (from domain models), but once you get to the body of your program, it’s mostly manual labor. Nothing wrong with that, I mean you get a really nice kickstart from the prebuilt code husks, but it feels a bit strange still.
Oh look, I ended up voicing my shitty opinion. That’s so Fang!
Of course, you don’t want to use this method for any project that’s thrown at you. It’s mostly intended for data-driven systems, since those feature way larger chunks of “easy” code than algorithmic concepts or whatever. Doesn’t really lower the method’s value though, as proven by its use in the real world.
As for the code generation, you can specify how it goes yourself, which is kind of fun to do.