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
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.
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
Recent Comments