One of my current main interest is to explore the relationship between software modeling and artificial intelligence (what I call the cognification of model-driven engineering). This post covers the “AI in modeling” direction. In an upcoming post, I’ll explore the opposite direction (modeling tools that help to define and generate AI components).
I’ll list smart low-code and modeling tools, i.e. tools that include some kind of AI assistant to help us (modelers) be more efficient when specifying and designing software systems. This is not an exhaustive review. More the opposite, it’s the result of organizing my notes on the topic, so please get back to me to point out any tool I’m missing (as you’ll see the list of intelligent modeling tools is right now rather short).
Mendix – AI assisted low-code development
- Mentoring new developers with AI-assisted next-step-suggestions to teach them how to build apps in real time. Kind of “pair modeling” but with a virtual modeler.
- Increase developer productivity by suggesting the most likely next steps to complete application logic flows (e.g. see the header image for this post).
- Provide consistency checks and quality oversight to spot potential conflicts on the models (plus feedback on how to correct them).
Mendix Assist is based upon Machine Learning and has been trained over five million anonymized application flows built with Mendix across 15 industries. Mendix claims Assist provides 90 percent accuracy on next-step suggestions in microflows. To learn more about Mendix Assist, read this Mendix Assist introduction or see the video below.
OutSystems and its outsystems.ai research lab
OutSystems is also one of the leaders model-driven, aka low-code, platforms. OutSystems is fully committed to exploring how AI can help software development. They have created a full lab devoted to conduct research on this field.
His first result is, in fact, quite similar to Mendix Assist. OutSystems AI co-pilot has learned from the over 12 million anonymized patterns and apps build with OutSystems to predict your next-needed activity. According to OutSystems, suggestions are already 90 percent accurate and accelerate your work by 25 percent.
But as you can see in this video, they are thinking in other kinds of “suggestions” or autocompletion. For instance, for the data model. Following the same principle, they can recommend how to “extend” your data model with new attributes, classes and associations (that have appeared together in past projects) with a certain percentage of confidence.
I-EMF – Intelligent EMF
At EclipseCon France, there was a talk on Making EMF intelligent with AI. Their goal is to build a framework to facilitate “plugging in” Machine Learning and AI algorithms easily into model-based tooling. See their proposed architecture
Still, my understanding is that these AI tools in EMF will have the purpose to analyze the models and not to help designers creating them. In their context, models can be seen as data (i.e. coming from sensors) that they would like to analyze within EMF. They want to use all the typical clustering, regression,.. algorithms inside EMF to save the hassle of exporting, converting, analyzing and then bringing back the data.
MetaModelAgent is a plugin (for Papyrus and IBM Rational Software Architect) to assist you in the definition of a new Domain-Specific Modeling Language.
This tool is really borderline when it comes to classifying it as a smart modeling tool (in fact, they don’t claim such thing anywhere in the tool description) but since this “category” is not yet very competitive, I decided it was worth including. Even if it’s just to highlight their context-sensitive palette (which adapts to what you’re doing to save you time when navigating the many options that make no sense at that point of your modeling process). Definitely, very useful for the designer. I’d like more tools (smart or no) care about these small details that in the end make a huge difference.
Extremo: meta-model assistant
Extremo is an Eclipse plugin that helps metamodeling experts to build a new metamodel by organizing and presenting in a uniform way the domain information they will need when building the metamodel.
Is that it?
Yes, so far. I guess we’ll soon see other tools jumping on this bandwagon. For instance, I expect some of the major UML players to follow this path (and once one does it, the rest will follow suit). A major issue is having data (i.e. UML models in this case) is key to provide any meaningful recommendation and this is something that only online modeling tools may have available.