Organized by Eugene, the panel at Models 2019 was aimed at discussing how modeling and model-driven engineering were used outside the software domain. Panelists were asked to talk about non-software projects where they have used MDE, how MDE had helped and how it had failed.
As one of the panelists, I mentioned our works on modeling firewall security policies, governance of (open source) communities, among others. But I decided to focus on the day I discovered my wife was cheating on me. I caught her modeling graphical workflows in Eclipse without telling me anything about it.
She is a biologist. As part of her PhD thesis, she had to process DNA data to detect gene mutations that could be correlated with an increased risk of developing heart mutations. And for that, she used Knime4Bio (a Knime extension for bioinformatics). Note that this extension was not created by “one of us” but by one of “them” ( Pierre Lindenbaum), not exactly an expert in language design (which as we discussed below, it turns out it doesn’t matter that much).
An example of the models she created, directly taken from the thesis, is the following
As you can see, it’s not a trivial model. And it’s not only a model but an executable one. Knime supports the running of this workflow and the inspection of the data at each point of the process. I believe the fact that she was able to create models like this alone brings up some important reflections for the modeling community. I briefly enumerate them here but I really hope that we (the models community) find the way to discuss and expand them since I do believe that a brighter future for modeling is hiding somewhere in them:
- Nobody calls it modeling. My wife never really thought what she was doing has anything to do with me. Even if she knew I was doing research on (software) modeling. She didn’t waste time in philosophical discussions (e.g. programming vs modeling), just got her job done.
- Modeling is the natural evolution to reduce complexity. We see it every time. Any community, once facing the problem of reducing the complexity of its domain, turns to modeling for help. In this case, as non-programmers, they could not just write the scripts for data processing they needed so they created the abstractions that worked for them. Low-code /no-code solutions are not a new discovery 🙂
- Data modeling / processing still seems to be the strongest selling point. Any domain needs to retrieve and transform data.
- (Good) Tools are the entry point. The only metric she used when considering to use the “modeling” tool was whether it helped her or not. She couldn’t care less about any other factor. For her, the tool was the only “visible” aspect of the modeling infrastructure. She couldn’t care less about the beauty of the underlying metamodels. If the tool wasn’t helping, she would have immediately dropped it. So, to have an impact
- Make sure you create something useful, not perfect
- With a Tool-first approach
- Scalability and usability triumph over consistency and formalism
My main conclusion is that there is plenty of modeling outside the systems / software domain. And that for many of those people, modeling is a natural solution, not a forced one (looking at you, my dear programmers). But unfortunately, they don’t know we exist (as they see us as part of the software development community) and therefore they don’t ask us for help. As a result, the average quality of the languages, notations, transformations they develop could be largely improved (just take a look at some of the tools for modeling AI data pipelines, quite a few of them are really horrible IMHO).
I believe modeling should break free of the software chains and become an independent discipline, ready to help any other science and engineering area where we can be useful. For a long time, we’ve been too focused on discussing how to convince software people to adopt a more model-based approach (which is good and we should continue trying) but we have not been able to realize that there are plenty of communities that “love” us already and could benefit even more from our help. Let’s stop talking only about software modeling, or systems modeling. Let’s talk modeling!. Who is with me?
Featured image by niu niu on Unsplash
ICREA Research Professor at Internet Interdisciplinary Institute (UOC). Leader of the SOM Research Lab focusing on the broad area of systems and software engineering. Home page.
I am with you
Experience from years of software projects: every business domain already has some models, completely independent from the software project. They may be more or less explicitly expressed, but they are definitely there.
And if you see how many people running around in companies, faking domain understanding they don’t have, you could imagine what potential lies in modelling on the domain only (no SW) side.
I am with you!
Your post perfectly illustrate is what my job finally turned to be: starting to do software modelling to ends with domain modelling, enterprise architecture modelling, regulation modelling, etc. Trying to keep doing models when my institution research focus changes.
To me, modelling is a fundamental (and natural) aspect of mankind: a lot of research in linguistic is applicable to modelling.
Indeed, to one extreme, we use it in daily life, through natural language. We use it as a mean to represent (describe) an observation of our reality, an abstract/virtual concept or even a given domain (to serve a communication purpose and beyond). It is also natural to many of us, to take a paper and pen to draw something to explain a concept (i.e., what we call natural modelling)…
Second, it is central to sciences and any engineering domain: as you say a way to address and, hopefully, reduce complexity of a given problem.
Finally, I am also with you when you say that modelling tools, their usability (for their end-users) and flexibility is the entry point…
So, yes, thank you for this post!
I am completely on board with this, and I agree with Jean-Sebastien Sottet’s points, especially about linguistics. I came to modeling after wanting to get a handle on the analysis techniques I’d been using informally for many years. Looking for help, I saw that a lot of disciplines had their own techniques, from mathematics to the social sciences to business management. I wanted to find a common framework that could integrate everyone’s approaches, so I’ve been working on that intermittently for the past year or so. I’ve been calling the topic conceptual modeling because that term has a Wikipedia article along similar lines. But it’s been hard to find other people who treat it that generally, so it’s gratifying to see this post.
Check as well the very active discussion about this post on linkedin