The concept of Model-Driven Development (MDD) is really starting to catch on because of its promise to increase the productivity of those charged with the task of developing and maintaining application systems.
A major issue in software engineering today is software productivity improvement. Likewise, model engineering is a growing trend for building systems that will be used and maintained for many years and sometimes for many decades, as in the defense and aerospace domains
Programming in today’s mainstream programming languages such as Java is theoretically still possible using a notepad editor and command line operations for compiling and executing code. In practice, most programmers will use a combination of programming IDE’s, wizards and code generation tools to make his/her development more productive. The next step in abstraction, using model-driven techniques, is not widespread yet.
One of the highest priorities in MDD is to produce working software that can be validated by end users and stakeholders as early as possible. This is consistent with the major shift towards agile software development methodologies in the industry. MDD provides the scalability that is not inherent in popular agile methodologies such as Extreme Programming.
The first paradigm shift in modeling is to develop productive models rather than contemplative models that only draw informal sets of concepts about the system to be developed. The paradigm shift with model-driven software factories is to automate as far as possible the software production from models. This approach implies tools built in this purpose but also adapted methods of work and software factory awareness from the development teams.
As a newbie to MDD, you should focus on finding tools that have an open architecture, especially in the generation and implementation of code artifacts. For instance, you should be able to generate unit tests and you should be able to generate not only source code but also documentation. The generation aspect is a huge win. You can use MDD to remove the monkey-coding that would otherwise be sent offshore. And I think a lot of people who are looking at offshore strategies as a cost savings reduction should also be looking at MDD and seeing the big cost and efficiency savings that can be made there.