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.

Thursday, June 21, 2007

Welcome to MDD

Welcome to the Model Driven Developer blog by Intelliun. After years of pushing the envelope in Model Driven Development (MDD), both as a technology vendor and a user of the technology, we felt that we've accumulated a wealth of experience and lessons that we would like to share with the greater development community.

Yes, you will hear about our company and products, but mostly this blog is about sharing ideas about MDD, Object-Oriented development, and Software Engineering in general. We will talk about processes, architectures and patterns; solve real-life problems using MDD; and discuss some of the misconceptions and skepticism surrounding MDD.

Combining the increased complexity in software development, increased demand for web services and applications, and the limited supply of developers, we believe that MDD is the next inevitable evolution in software development. We applied it to many projects and reaped the productivity rewards, worked out a lot of the kinks, and with your collaboration are going to push MDD into mainstream software development.

The development team here at Intelliun and I are very excited about this blog and we hope that you find it educational, informative and engaging.