Basically, MDD states that only the model of an application needs to be developed, and that the rest is automatically generated
In the context of MDD the model is the means of representing the data and the logic of the application. It can be either a graphical notation, such as UML.
Model-driven approach is use for rapid development, in which you produce a model and obtain a full application from it. The model consists of a Business Component.
The Business Component approach allows you to structure the application around business concepts. Apart from business components there will be modules like controllers, validator, calculators, etc. that you can optionally use to customize your application. It generates lot of automatic stuff, but it is flexible enough to be useful developing real life business applications.
At the end of the day you can develop applications just using simple Java classes with annotations.
1. Ideal application you have to write view, model & controller ideal MVC framework but using model driven development you only need to write the model the result is less code.
2. Rapid development since only need to write the model(business component)
3. If your data structures and the business logic are likely to change frequently, then the Business Component approach is very useful since all changes can be made in the same place instead of being scattered over multiple files.
4. Productivity would increase.
5. More structured