Markus Voelter has defined model driven development as “a software development approach that aims at developing software from domain-specific models. Domain analysis, meta modeling, model-driven generation, template languages, domain-driven framework design and the principles of agile software development form the backbone of this approach.”
MDD is quickly moving from a novel concept to a pragmatic business necessity in large corporations. The change is due in no small part to the advent of Eclipse. MDD requires tools. Prior to Eclipse, creating tools was an expensive proposition. One needed either to build the entire tool set from scratch or to commit to a particular vendor’s proprietary solution. Neither choice was particularly appealing. Now, with Eclipse, the best tool platform available on the market is free and open source. More importantly, it is designed with the specific intent of extending and customizing. With Eclipse, creating tools is down right cheap.
I will not go in to detail on the various ways of implementing MDD. Instead, I want to share some of the strategic objectives and advantages that I have seen first hand with implementing MDD.
There are several common strategic objectives for using MDD. The seven most common objectives that I have observed are as follows:
- Lower the overall cost of building large internal applications
- Speed time to build large applications
- Lower the risk of large applications
- Simplify development
- Lower the required skill level needed to work on large applications
- Expand the pool of resources that can work on large applications
- Leverage open source
The first three objectives should sound exceedingly familiar. What organization does not claim to want lower costs, faster delivery and lower risk? The other four objectives may sound new, even controversial. Some software professionals take exception to the objective of lowering the skill set necessary by contributors. Nevertheless, these objectives are inherently interdependent. Figure 1 shows a conceptual graph of the interdependencies of these seven strategic objectives. An organization will not achieve the objective of lower cost through MDD unless it embraces also embraces the objective of lowering the required skill set of contributors.