I’m a sinner. Sometimes, I model using Microsoft Office tools (or the equivaent Google ones). In the last months, I’ve done some PowerPoint modeling and ended up offering to our users an Excel interface as “bot modeling tool” for Xatkit.
I can justify both despicable actions (see below) but the truth is that even myself, a true modeling believer, resorts to non-modeling tools to model sometimes. And of course, we see this much more often in the general developer/designer population. I think there is a combination of reasons that justify this:
- Most people already have Office/Google tools and accounts, so there is no installation costs.
- For the same reason, they are “free” as they have been already purchased by the organization. No need to buy new tools (with the long and exhausting paperwork this may imply in some organizations)
- They offer native collaboration (both sync and async) support. In our case, this one a key reason, all the modelers involved in the discussion were fully familiar with the modeling language we were using so even if the tool wasn’t helping with the semantics, we didn’t need that and good collaborative support was more important.
- There are plenty of integrations and add-ons to embed and combine your “models” with other tools.
Perhaps more surprisingly, this preference for drawing tools over modeling tools seems to be also the case even when some reasons above do not hold. See, for instance, this “simulation” of UML class diagram created with the Miro whiteboard collaborative platform that Pieter Van Gorp shared (love the creative use of the stars!).
I bet in this case the key feature is the collaborative features that drawing tools offer, not so common in modeling tools. Probably these aspects also contribute:
- Collaborative drawing tools are usually enough for what many people want/need
- And conversely, collaborative modeling tools do not offer much more, meaning that they don’t exploit the semantics of the models to justify the effort of building consistent models in the first place
- The user interface of drawing tools seems to be better. Of course, the fact they don’t need to worry about semantics allows them to focus more on the UI aspects.
So, while we know we should use modeling tools, we keep often resorting to drawing tools as they sometimes offer a better trade-off sometimes. This “sometimes” typically refers to people modeling blueprints of the system or interested in some kind of lightweight MDE.
And while the plethora of textual and online modeling tools should be the answer to the popular drawing tools, it seems there is still something not yet clicking. JetUML is a promising mixture of drawing and modeling but we need a tool that it’s at the same time collaborative, informal, and user-friendly. And probably with a generous free plan but this is a different discussion.
I’m curious to see how this market niche evolves. In the meantime, we can continue the discussion here or adding your thoughts to this ongoing discussion:
What is the most commonly used tool for presenting architecture diagrams?
What is the most dangerous/useless tool for presenting architecture diagrams?@powerpoint
— Grady Booch (@Grady_Booch) August 3, 2021
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
El papel lo aguanta todo. Por eso no me fio un pelo de los dibujitos.
We are all sinners ;-). It is possible to use a desktop tool (including JetUML) via a shared desktop such as Zoom or WebEx to get the collaborative effect, with resulting models stored in GIT for offline reference. The advantage, compared to real-time online edit tools, is control of the shared desktop must be granted to one person at a time during the meeting, to avoid people shouting over each other and messing up each other’s updates.
It’s not a sin the UML Tools are
I use figjam for example https://www.youtube.com/watch?v=ZJRP6Uny02A (it’s like Miro with the advantage that it’s also used by UX and Designers people)
Now I want to export to classical tools but XMI sucks : there isn’t even any API in emf to do so they’re sinner 😉
I can’t even imagine using a generic shape drawing tool for models, as most of them are much harder to use than my modeling tool of choice, BridgePoint. However, a whiteboard interface is ideal for quick sketches.
This sounds interesting: Executable and translatable UML has been used for large-scale telecommunication systems with more than four million lines of C++. https://xtuml.org/wp-content/uploads/2012/09/xtUML_Summary.pdf
For small sketches any drawing tool, including a sand beach is sufficient.
Nevertheless I miss automated checks when it becomes complex.
To my mind, the three key arguments against using modelling tools are:
1. They are not ubiquitous. Modelling tools are found in a small number of places and are used by a small number of people. This is frequently because most people aren’t familiar with their use. This leads to the second argument.
2. They are hard to learn and hard to master. Modelling tools require a great deal of investment in time and effort to become sufficiently competent in the use of a particular tool. My background is data modelling and pretty much every job has required me to competent in one of Erwin, Data Architect, ER/Studio, and a number of others. Not only that, I can’t bring my own tool to a job because the specified tool is the one that is mandated. This brings me to the third argument.
3. They don’t interoperate at all well – or, sometimes, at all. Each tool has its own idiom and they are frequently set up to allow other tool’s models to be imported, but they don’t export their own. Round-tripping between two tools is frequently so hard as to preclude doing it. So collaboration can only be done on the tool’s terms and the collaboration functions are frequently rudimentary – and expensive. Whereas MS Office and Google Office, for all their faults, have much better collaboration functions.
Of course, what they all fail with is complexity and scalability. A pretty PowerPoint or Visio diagram becomes harder and more time-consuming as the diagram becomes bigger. Modelling tools address this to a greater or lesser extent, but there is still work to be done. I haven’t yet found a data modelling tool that effectively handles a 200 entity plus model. And when it is over 1,000 entities then it becomes very hard indeed. In Visio, it’s just a nightmare and I would quit if I was told to do it in PowerPoint.
Anyway, just my thoughts.
Hi Rick,
I really like your comment. And yes, all three issues are IMHO valid issues. Not only from your perspective, but also from the perspective of many others within systems engineering.
But beside your perspective there is another perspective:
(1) & (2) modeling tools are specialists tools like i.e. CAD tool. CAD tools like CATIA, SolidWorks or NX require years of learning to master, but these are well established and nobody complains about these or even wants the technical drawers to use Microsoft Office.
(3) Is not a principle issue. This highly depends on the way collaboration is facilitated. You cannot export form one modeling tool and import the export file to another without loss. But it is the same with Microsoft Office an Google Office.
Ever tried to use Microsoft Office macros with Google Office?
Or even: Ever tried to import a text document written in DocBook or S1000D into Word?
Nevertheless I achieved good collaboration with using Capella (Arcadia) at system level and EA (UML) on software level.
> I haven’t yet found a data modelling tool that effectively handles a 200 entity plus model. And when it is over 1,000 entities then it becomes very hard indeed.
Strange, really strange. I did system models with more than 20,000 entities (UML classes, SysML blocks) without any problems with both IBM Rational Rhapsody, with Eclipse Papyrus and some years back with Software AG UML Designer. OK, with PreeVision by Vector Informatik GmbH even a magnitude bigger system models resulting in half a GigaByte of XML 😉
Out of curiosity, I just measured a current model being in the early build up phase done with Eclipse Papyrus using the following MOFM2T script:
[comment encoding = UTF-8 /]
[module generate(‘http://www.eclipse.org/uml2/5.0.0/UML’)]
[template public generateElement(aModel : Model)]
[comment @main/]
[file (‘oreport.csv’, true, ‘UTF-8’)][aModel.name/]; [aModel.eAllContents(BehavioredClassifier)->size()/]; [aModel.eAllContents(Relationship)->size()/]
[/file]
[/template]
giving
3222 behaviored classifiers
12019 relationships
No problems due to model size.
My estimate is that when we have finished the numbers are a factor 20 to 30 higher.
I’m sorry that I was unclear with this statement. I was thinking more of the scalability of visualisation – and navigation – of a model. Like you, I’ve worked on models with thousands of entities. The thing is, I wouldn’t want to try doing that with Visio (which is constrained to a page) or PowerPoint (which is constrained to a display).
Similarly, most modelling tools use static diagrams. That is, one places the objects (shapes & lines) on the diagram and arranges them as one sees fit. Again, a data model diagram with more than 200 entities on it is really hard to navigate using the diagram. By this stage, one mostly uses the navigator tree, and search functions. And, yes, one can organise using some form of taxonomy that makes sense to the system (e.g. subject areas).
And really hard to print. By this stage, one is looking at A0 paper and a plotter. Or one gets really good at using sticky tape and scissors. And even then, the font is so small that one needs a magnifying glass.
It would be really nice if a modelling tool had some dynamic visualisation capabilities, like a hypergraph. I saw SchemaSpy some 15 years ago and even though it generates static images, it still managed to create a sense of dynamic navigation of a database. Even now, all I can do is generate (static) images on a web page where clicking on the entity on the diagram just takes me to the textual description of the entity, complete with textual descriptions of all of the relationships formatted in a html table. Maybe UML Designer and Rational Rhapsody have solved this problem but IBM System Architect and IBM Data Architect hadn’t when I last used them in 2016. Certainly, ER/Studio hasn’t as I was talking to the developers about this very topic last year.
In terms of interoperability, as an exercise, would you be able to export a (substantial) portion of one of your UML models and import it into another UML modelling tool, make a change, and import the change into the original model? And not have any problems? UML has XMI for exporting and importing models and yet many UML modelling tools won’t export using XMI but they will import XMI. It’s like so many tools, they don’t want to play nicely with any other modelling tools. My goal is to create a number of EA models using UML with an Archi profile and use that model to generate my starting point of my systems design models. And have any changes in my systems design models able to be reflected back into my EA models. But I can’t, and it’s the cost of transcription errors that really hurts.
Your comment about modelling tools being a specialist tool, like CAD, is true. However, modelling diagrams aren’t regarded by the general IT crowd as a specialist artefact. If it was, then we wouldn’t see the profusion of models in Visio and PowerPoint. People look at a diagram, with its boxes and lines, and think “Yeah, I can do that. What’s so hard?” And then they create some abomination that will never work. Now, I suppose I should be grateful for this because I’ve made a lot of money fixing other people’s models and implementations based on said models (IBM IFW, anyone?), but it has cost me greatly in terms of the psychic pain I have had to endure when having to wade through said abomination in order to make sense of what they were trying to do – and then fix it.
Finally, Visio and PowerPoint don’t scale at all from a visualisation perspective. They are fine for simple and/or small diagrams, but as you add stuff to it, the diagram becomes more and more time-consuming to maintain. I created a small taxonomy in Visio. Big mistake. It quickly grew to over 400 boxes inside other boxes and the page size grew bigger (it’s how I found out that Visio supports A0 pages) and the font got smaller and smaller. In the end, we had to replace the Visio diagram with a spreadsheet, thereby removing any visual capability as a change to a name or change in structure could take a day or more to fix in Visio. My career is littered with such activities, as I suspect yours is, too.
Anyway, that’s my rant for today. Modelling tools are great. And they suck. Says the person who just renewed his Sparx EA license for another year, despite being retired!
Go figure! 🙂
Hi Rick,
some ideas
1. https://www.ariscommunity.com/users/pica/2016-11-22-my-ideas-contest-rules-aris-10-years (BTW, I won that contest 😉
2. https://www.se-trends.de/magische-zahlen/ (sorry, German)
3. https://modeling-languages.com/three-principles-model-complex-systems/ (PDF linked within the teaser)
Thanks for the links. I’ll check them out.
I just read your two English articles (sorry, but I haven’t read German in 45 years) and I am absolutely in alignment with what you wrote. Great stuff!
Interestingly, I was talking to another modeller some years ago and they told me that, for a client of theirs, they had written an interface to the Unreal engine so that one could navigate their models like one could navigate through Doom or any other first or third person game. Sadly, I never saw it in action so I have no idea how good it was. (The fact that I haven’t seen it commercially is probably an indication of how it went.)
I think a 3D visualization of models (“Doom style” or other ways to navigate in 3D) would be cool but also useful. However, it seems this is something has not been really explored. I only had a couple of old references https://modeling-languages.com/x3d-uml-implementation-of-uml-3d-with-x3d/ that went nowhere
Hi Jordi,
the “UML in 3D” approach would perfectly match with Arcadia, CESAM, SysMOD, ArchiMate, NAFv3, UAF (and derivatives including NAFv4) and some other approaches.
Many thanks for sharing.
Silicon Graphics (SGI) once demoed a raytraced 3D desktop on a roadshow back in 1994. Demoed really usable concepts.
Was one 45 tonnes truck for the computer (a 256 node SGI Origin 2×00 prototype), one 45 tonnes truck for the power supply and one as show room.
Modeling tools won’t be ubiquitous until their worth is a proven fact, but that isn’t up to the modeling tools. Software metrics adoption and standardization has to occur first. Right now the closest you can come is collected and published data by Capers Jones that most closely matches your modeling paradigm.
Inter-operation is more of a pipe dream, than a requirement. UML may have provided a common language, but the interpretation is still based upon the modeling paradigm. Importing a model from a tool for one paradigm into another requires a lot of work on the tool sides. There is also no cost basis for doing this for the tool vendors. More modeling tools turning to open source might alleviate the paths to this.
I’ve found the switch from Shlaer-Mellor notation to UML to cause almost as many problems as it solves in BridgePoint. UML users tend to be from elaboration methods and still have trouble adapting to the translation approach of xtUML (Shlaer-Mellor). Teaching a new method and notation together is just as easy as teaching a new method.
Handling large models should be an aspect of the modeling paradigm. e.g., Shlaer and Mellor realized this would be an issue and built the concept of subsystem partitioning of domain models into their method. Subject matter partitioning ala. Shlaer-Mellor usually keeps your models smaller. I can’t imagine a 20,000 entity model using Shlaer-Mellor.
Hi Lee,
> I can’t imagine a 20,000 entity model using Shlaer-Mellor.
Some examples:
A current NHSTA level 3 highly automated car runs some 800 user level algorithms, some 4000 altogether.
A frigate serves some 300 capabilities breaking down to about 1500 user level functions breaking down to about 5000 technical functions.
A single car has about 30,000 parts, counting every part down to the smallest screws, nuts and bolts. In my current project with a truck maker we committed to model from operational analysis level all the way down to software, electric/electronic and mechanical detailed specifications. And the mechanical specifications down to assembly and maintenance instructions. Beside the parts this also implies required tools, required skills, assembly times per skill, … have to be in the system model. And yes this system model shall also serve as a planning tool to plan assembly fabs 😉
OK, the 3rd example isn’t very much Shlaer-Mellor like 😉
And yes, indeed Lee, UML is merely a notation. Shlaer-Mellor and Arcadia are methodologies.
But UML is an extensible notation. SysML 1.x for example is such an extension. Basically an UML model is a network database instance containing and relating data. This makes UML damn adaptable, as it can express almost everything. On the other hand UML modeling desperately requires a modeling guide and good governance. On governance in my current project we have some 400 formal modeling rules checked by a custom model checker.
Arcadia and xtUML tools provide you sane model checkers out of the shelf. But are not that versatile.
It is always a trade off.
On 3D modeling, Mike Finn (https://analysisdesignmatrix) did a Shlaer-Mellor model in Second Life (anyone remember Second Life?) that was 3D.