Did you realize that there is a lot of UML in low-code? As part of my low-code handbook, I analyzed quite a few model-based low-code tools (note that many of the self-declared low-code tools are in fact not using models explicitly) and summarized the main models they offer to the designers to model the software to be generated.

In short, they typically offer:

  • A data modeling language to model the schema of the data to be managed by the applicatoin
  • Some type of behavioral language to express the events the system has to react to and the workflow to follow in response to those events
  • A User Interface model to define the user interface and the data to be displayed

Each tool offers its own language with a different syntax. But when you look at them closely, you realize that they all look very similar. Even more, they all look very similar to another language that we are all familiar with: the UML.

UML doesn’t have many friends (not even its creators) but it’s undeniable that UML keeps influencing the world of software modeling more than 20 years after its creation. UML is not dead!

Take a look for instance at the Mendix data modeling language definition

mendix data modeling language

Sure it’s not exactly a UML class diagram but the differences seem to be more syntactic sugar than fundamental semantic distinctions. And similar with the data languages in other tools. And also with the behavioral models that resemble BPMN, state machines or executable UML versions.  The UI models are not UML based (if anything, they sometimes resemble IFML) as UML has never been a good option to model user interfaces.

So, I believe that low-code platforms could just take UML and strip the parts they are not interested in. In the end, as Bran Selic puts it

UML is the worst modeling language except for all the others

and at least for the UML we are aware of its defects.

But I guess it would be more difficult to sell the tools if they don’t claim to have created new “proprietary” and “specific” languages for their tools 😁.

And sure, we could even go further back in time and say that in fact UML just took concepts present in previous languages. In the end, there is a limited number of useful conceptual modeling primitives (for common domains) and we should stop reinventing the wheel once and for all.

Want to build better software faster?

Want to build better software faster?

Get the latest news in software modeling, model-based and low-code development

Thanks for your interest. Check your inbox and confirm your subscription!

Pin It on Pinterest

Share This