This is a recurrent question. Even if I barely teach right now, people keep asking me what tool would I recommend to teach UML courses. And it has also been a “hot” topic in our team, especially since NoMagic dropped the academic license for MagicDraw (or complicated a lot the process to get one, still not sure).
I know there is no one-size-fits-all UML tool. In fact, I classify them in different tool categories to try to be a little bit more helpful. But a UML tool for teaching is a different category in itself. To teach UML, I’d like to have a tool that:
- It’s open source, free or, at least, free for students (i.e. an academic license)
- It’s usable. We do not want to give a bad first impression. And providing an intuitive and easy-to-use UML modeling tool is key for this. This includes the installation process (or switch to a web-based UML tool).
- It must be a real modeling tool, not a drawing one.
- At the same time, it would be great if it accepts some flexible / incomplete modeling process where models are eventually consistent but allows for some iterative process instead of assuming models should be precise, complete and correct from the let go.
- Goes beyond modeling, e.g. able to perform some code-generation. This is not really needed to teach UML but it helps to motivate the students about the benefits of learning modeling.
And, if I can dream, it should support OCL to avoid resorting to more “esoteric” tools in advanced modeling courses.
Do you know a tool that checks all these boxes? (I don’t!) Or that comes close? If not, what tool do you use and why?
Summary of your opinions and suggestions
Thank you all for your comments (especially via the comments on this post and this LinkedIn threat). I’ll try to summarize your suggestions. First, two reflections:
- There are not many open source options, nor commercial tools offering a free academic licenses (so that you can use the full features of the tool for free instead of a limited free plan). In fact, we have less than before. A few of you suggested tools that were free / open source before but no more!
- For convenience, textual UML tools (eg. PlantUML) are rather popular. I see them as really useful to deliver assignments or to create UML diagrams to be embedded in other documents, as longa as the actual teaching of UML concepts and constructs is done either on the whiteboard or with a different (graphical) tool. I still think that graphical representation is the best option for some diagrams, especially to discuss alternative representations.
- Pen and pencil was also mentioned as an alternative. I agree with this one as well for in-classroom discussions or to introduce new students to the world of modeling without tools interfering in the process. If we had good and really usable tools, teaching beginners with tools from day one would be a way to help them quickly understand the benefits of modeling. Otherwise, tools may just scare them (see my own experience).
And now let’s see the tools that you suggested:
- Visual Paradigm has indeed a free version (the online version) but at least such free version is more of a drawing tool than a modeling one as I was able to create nice cycles of generalizations with it (obviously, forbidden in UML).
- Modelio Open source and Papyrus were also mentioned. They do satisfy most of the requirements above but I have my doubts regarding the usability one. Just installing them is not easy so they may not be the best tools for beginners. At some point there was an initiative to create a “Papyrus for Education” version.
- GenMyModel is a great free, online and usable suggestion. And it’s also a real modeling tool where you can even export your models as XMI files and import them in other tools for further modeling/analysis. Right now it’s completely free though its future business model is unclear.
- Astah is a not-so-known tool. We had covered it to model with the Goal Structured Notation but I had not really looked into it for UML modeling. And I do like it. It doesn’t have the most “modern” look and feel (it’s a more traditional Java-based classic desktop application) but it does its job. You can easily create all types of UML models with it and it even offers some code generation capabilities. It’s not completely free for teaching purposes but it does seem (information on the website is not 100% clear) that students can get it for free while instructors should pay for an academic license.
All in all, I think it’s clear we can find tools that could help us when teaching UML but there is no clear winner. It all depends on your specific needs. I believe it would be better if we had more options to choose from so I hope to revisit this post in the future and be able to add a few more! In the meantime, please keep pouring your comments and suggestions.