New Era of Development with Model-Driven Development with Code Generation

  • MBSE – Model-Based Systems Engineering
  • MDD – Model-Driven Development
  • UML – Unified Modeling Language

Historically, each major increase in abstraction has expanded the developer population by roughly 10×, ushering in a new era of development.

YearEraNumber of developers
1985Assembly~ 0.3 – 1 million
1995C / C++~ 5 – 10 million
2005C++, Java, PHP~ 15 – 20 million
2015Mobile / Cloud~ 20 – 25 million
2025Mobile / Cloud / AI~ 50 million
2035Vibe Coding~ 300 – 500 million
Developers worldwide

The Case for MDD

Academics have long championed MBSE, but they often (1) lack industry experience and (2) fail to carry ideas through to production. Still, the core thesis is correct: model-based software engineering with code generation is superior to handwritten code. This aligns with empirical evidence showing that declarative programming outperforms imperative programming in terms of correctness, complexity, and maintainability.

My industry experience at Adyen and Revolut confirms this: even though both are overwhelmingly Java-based, functional programming—via Java Streams, for example—and strict immutability are heavily emphasized, often required, reflecting industry recognition of their benefits.

Top-Down vs. Bottom-Up

In practice, developers often start by creating a Systems Design document with high-level and low-level diagrams outlining their proposed solutions. These documents are reviewed and approved after a week or two. However, during implementation—especially in companies that require TDD—development immediately becomes “bottom-up.” Developers add missing details, adjust features that don’t fit perfectly, and sometimes unintentionally omit elements. By the time the code reaches prod, it’s significantly diverged from the original design, and the documentation is rarely (if ever) updated.

Model-Driven Development (MDD) doesn’t automatically solve this, but I could enforce a top-down approach within the tool. For example, using UML, sequence diagrams could be required to reference a parent “use case” or another sequence diagram. Moreover, because the model generates the code directly, there is no discrepancy between the documentation and prod code.

Dynamic vs. Static Focus

Java is more of a class-oriented language rather than an object-oriented one. When a stakeholder asks you to review code for a specific use case, there’s rarely (if ever) a single file to inspect. Understanding the full flow often requires navigating multiple references across classes, services, and even repositories. This makes tracing behavior and reasoning about the system challenging.

Again, MDD doesn’t automatically solve this, but I can enforce it in the tool. For example, top-level sequence diagrams could span multiple services or repositories, providing a dynamic, high-level view of a use case that maps directly to the generated code, making the system easier to understand and maintain.

Impact of AI

In the future, AI will generate better code than developers, just as compilers generate better code than humans writing assembly. As that happens, the need for a more visual, higher-level language to understand what is actually going on in a system will become critical.


Execution: Creating WXL

The tool will be called WXL (World eXecution Language).

CI/CD

Coming soon…

Version Control

Coming soon…

Testing

Coming soon…

Process

Most companies rely on Jira for workflow and project management. WXL will be designed to fit naturally into this existing process rather than introducing a parallel one.

Interoperability

Developer familiarity is critical to WXL’s success. The tool should feel immediately recognizable and integrate with established workflows, minimizing cognitive overhead and adoption friction.

Modeling

WXL will use a customized variant of UML for modeling.

As an initial step, a PlantUML-compatible language will be used to render diagrams textually and visually. Over time, this can be replaced with a more dynamic, interactive modeling environment without changing the underlying semantics.

Even though PlantUML is regex-based, WXL grammar will be written in g4.

Programming Language

Java,

IDE

IntelliJ is chosen as the primary Integrated Development Environment. Unlike Eclipse, IntelliJ is the de facto standard in industry today. The trade-off of this decision is the loss of native EMF / ECore tooling, which will need to be addressed through alternative approaches.