News Stay informed about the latest enterprise technology news and product updates.

Preferred programming: Model-driven and pattern-based development

A pair of Forrester Research reports show developer preference for model-driven development over OMG's prescribed model-driven architecture (MDA) and the flexibility offered by patterns-based development over code generation.

Forrester Research Inc. of Cambridge, Mass., last week released two application development reports that dismiss model-driven architecture (MDA) and tout pattern-based development.


Compare and contrast model-driven development and architecture


Read how model-driven development increases productivity


The reports –- "'Model-Driven'" Matters More Than MDA" and "Pattern-Based Development Appeals" -- are based on surveys conducted with 389 IT organizations in conjunction with Application Development Trends magazine.

IT shops have taken interest in the Object Management Group's vision of MDA, but in practice have adopted more pragmatic, tactical approaches to application development such as model-driven development, according to the "'Model-Driven' Matters More Than MDA" report.

MDA is OMG's prescribed way of modeling applications in a platform-independent manner; however, very few people are actually adopting it, according to the report.

According to the OMG, MDA involves creating platform-independent models that document the business functionality and behavior of an application separate from the technology-specific code that implements it.

In contrast, model-driven development (MDD), involves a less rigorous commitment to the tenets of MDA and provides more value in tactical model-driven transformations; users are looking for a lower level of more pragmatic development support, according to the report.

When companies hear about MDA, they are superficially interested, but when they realize what it entails, they back away. They fear MDA is rigid, is slow and will be difficult to implement, said Carl Zetie, an analyst in Forrester's application development and infrastructure research group, who is the author of the two reports.

Despite the marketing hype made by tools vendors around MDA, the report discusses how there is little support by so-called MDA products beyond sophisticated transformations or simple code generation, and this is precisely the extent to which companies are doing MDA.

There is certainly some blame to go around for vendors, which have attached the word "MDA" to their product, although it is not in accordance with OMG's definition of MDA, said Zetie.

The report indicates many organizations consider MDA to be "important" or "very important"; however, this may stem from the influence of marketing by MDA vendors, according to the report.

There is genuine user interest and a desire to not have to code every line. Once they get into MDA, however, they realize it isn't the best solution, Zetie said.

Meanwhile, Forrester's "Pattern-Based Development Appeals" report looked at the constraints of automatic code generation and the benefits and flexibility offered by pattern-based development, from a productivity standpoint.

Patterns encapsulate "best practice" knowledge, and pattern-based development involves the use of patterns to solve common design problems, technology implementations or address issues specific to a vertical domain, according to the report.

In the report, survey respondents broadly used code generation, but most used it minimally, due to things like constraints in generated code, developers being deskilled and tight coupling to the model.

With generation-based approaches, there is little flexibility and more fuss about the generation process. When companies commit themselves 100% to code generation, there is little room for tweaking, especially when developers always have to go through their model, Zetie said.

By designing and coding around a particular design pattern, developers have greater flexibility to modify or diverge from generated code as they see fit and are no longer constrained to generate code simply based on an abstract model, Zetie said.

Application development is being done in a more pragmatic fashion, according to Zetie. Nobody is adhering entirely to MDA or code generation, but instead are using them in degrees.

Agile modeling is a form of this pragmatism. It is a prescriptive collection of principles and practices for modeling software in a lightweight manner, and is attracting greater interest as an alternative to traditional modeling approaches.

People use a little bit generation for plumbing code, lots of patterns for best practices and lots of agility to make sure they're on the right track, Zetie said.

FEEDBACK: Are you using Model-Driven & Pattern-based development? Do you prefer these over MDA and code-generation?
Send your feedback to the news team.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.