Originally associated with the 4GL movement of the 1990s, model-driven development (MDD, MDSD for “model-driven software development,” or MDE for “model-driven engineering”) is a methodology for creating applications based on high-level abstraction and automation, rather than low-level manual coding.
In essence, an MDD programmer serves as an architect, focused on conceptualizing and building models, which contain elements representing multiple lines of code.
How does it do these things? You’re in the right place to find out. Over the coming months, this blog series will drive deep into MDD – what it is, what it isn’t, when it’s a fit and how you can put it to work for you. In this Part 1, we explore the concept of “Code Less, Do More,” and MDD’s effect on developer productivity.
The most commonly cited benefit of MDD is increased programmer productivity. This is a very real phenomenon – and it’s a direct result of MDD allowing knowledge workers to focus their energies on high-level work, rather than simply writing code all day.
At a very basic level, developers spend their time producing something. If they write a line of code in a 3GL, they’ve, well, written a line of code.
By contrast, in MDD, developers create objects that represent the functionality of many lines of code; the code is either generated, or the object itself is executed. Additionally, many basic functions – SQL database connectivity, for instance – are fully automated by MDD platforms. They happen based on the design of the model, rather than having to be implemented by the developer him/herself.
Here’s a real-world example. The famed (and controversial) Java Pet Store demo application contains 14,273 lines of code. Created in response to Pet Store, the highly optimized .NET Pet Shop is made up of 3,484 lines of code. By contrast, Uniface Pet Plaza – developed in the leading MDD technology – contains just 1,959 lines of code, contained in highly secure and consistent repositories, rather than error-prone plain text files. One clear valuable example is that all CRUD functionality is implemented automatically in the MDD app – further reducing developer workload and increasing productivity. They’re not just writing code … they’re creating business functionality.
Can’t wait for the next post in this series? Get all the reasons model-driven development matters by downloading the Uniface guide to MDD, available here.