Thursday, June 28, 2007

What is MDD?

Model Driven Development is a software development approach that raises the level of abstraction or method of programming from textual code to visual models, with a great emphasize on focusing the developer concerns on the problem domain and less on the underlying technologies.

The evolution of programming languages from machine languages (1GL) to assembly (2GL) to the ever evolving human-understandable languages (3GL) like Basic, COBOL, Pascal, C, C++, Java and C#, all focus on making programming simpler, quicker and easier to understand and maintain. This is accomplished by raising the level of abstraction by

  • providing more semantically rich vocabularies to accomplish common and repetitive tasks (i.e. patterns),
  • shifting programming from imperative to more declarative constructs (i.e. focusing on the what and less than on the how)

4GL’s took a detour by focusing on data-oriented (or database) applications and introduced artificial and often proprietary artifacts like forms and tables to capture these common and repetitive tasks and provide more declarative constructs. 4GL’s did very well on the presentation (user interface) and persistence (database) layers, but fell short on the application logic layer. They simply didn’t have a continuous paradigm that spans the different aspects of programming artifacts.

5GL, describing visual programming languages, had limited success in the past, which contributed to the misconceptions surrounding visual programming. The failures of 5GL had nothing to do with the visual aspect of 5GL and all to do with:

  • the lack of a standard and ubiquitous modeling notation
  • high complexity of the visual models
  • proprietary architectures
  • high price points (or vendor business models in general)
  • limited availability of high-end computing horsepower required to operate
  • heavy focus on code generation

Today, with the wide adoption of UML as a standard notation for expressing application logic, the convergence of software architectures and the great advancements in computing power and memory, the perfect storm is forming to make MDD the first mainstream 5GL.

No comments: