Welcome to this new noob review about Bouml. While writing that code refactoring post a month ago now, I looked for something nice and easy to generate a class diagram to represent the model in an accessible. Even though usually I tend to put all the code in my posts, this one contained too much code that despite being required was not all that interesting. I googled for a few days trying to find something. Something that would work and reduce my workload especially since I started the podcast.
What is Bouml?
Bouml is according to its website a free UML2 toolbox that includes a modeller. Modeller that allows you to generate code in a few languages including Java which is the language I use in that refactoring post.
What they fail to mention is that Bouml allows you not only to generate your model from code but also code from the model. You also have access to a multitude of tools to generate diagrams whether it is a use case, sequence, component or, of course, class diagram. This is what I’ll focus on in this noob review as this is the catalyst to this post.
Let’s just jump into it!
Download, set, go.
First, a pleasant surprise is that Bouml is available on multiple platforms whether it is Windows, Unix or Mac. Once downloaded installing the app is pretty easy and straightforward. I tried on Windows and Mac you get a packaged installer which is pretty much plug-and-play. By the time you grabbed a coffee, you should be able to get started.
I explored the tabs at first trying to figure the clue to reverse engineer the code I wrote and found a tab matching but greyed out. Without needing to look too far I went and created a new project. Whilst I would prefer having the option to get the project created automatically when loading the files I don’t mind too much.
Nice touch letting me know I need to select a language. Even though I’d prefer automatic detection, it prevents me from going crazy trying to figure out why the heck the I can’t generate a model from my code.
Now we’re into the juicy bit, reverse engineering. This step was a bit confusing. However, it could be because I worked all weekend on a go-live in another country which went fine, thanks for asking.
Reverse engineering or why this post exists
Selecting the “Reverse engineering” option sends you to a popup to find a .cat file which I eventually realised must be Catalog. Seen that term in the menu but I don’t have that so I close. Another popup appears but I close it too without paying attention. Getting back to it a bit later, I realise the second popup is to select a folder. Weird UX but ok.
Once I selected the folder to reverse-engineer I realised the model loaded in the sidebar. Not too sure how to proceed though so I went and tried to find an option to display a class diagram. None appears. After moult right clicks I eventually realise there is no option in the toolbar for it and feel like I need to look for another reverse-engineering tool. Que nenni! Right-clicking on one of the package items I realise there is an option to create a class diagram. Awkward for sure, but welcome. I click and surprise, it’s an empty diagram. I did not see that one coming at all. However, I probably should have seen the UX had been fairly unusual so far.
From there I can add model elements directly as any UML modelling tool. However, I can drag and drop every single one of my classes into it. At this point, I felt ready to add the associations myself but nope, it did automatically. That is quite the pleasant surprise I must admit. Maybe all the prior awkwardness built to make this moment enjoyable. Maybe the UX designers behind this planned the dopamine hit that makes you forgive the preceding annoyances.
Wrapping up Bouml
The day is saved, I can write my refactoring post without having to draw and digitalize the model every step of the way. Nor will I have to do it manually nor for loads of money. My search even led me to consider buying an iPad pro with an iPen to draw diagrams which might not be the worst thing. Even though I may do it in the future, this would be a silly reason to. I remember announcing noob review as a series in its inaugural post. Maybe it will become just a thing coming out every 18 months or whenever I (re)learn about some tool.
Go and check out Bouml, make your own idea. Write your own noob review and don’t hesitate to comment, like or even share if you appreciated the post. Thanks for reading!