Hi, the UMLet team here. Jordi invited us to write a guest entry about our new UML tool “UMLetino” (see www.umletino.com) — thanks Jordi, also for providing a great modeling hub!

UMLetino is a free, web-based UML tool. It features a mix of fast, markup-based element edits, and mouse-controlled overall layout design. (Btw, UMLetino is an offspring of the stand-alone UML tool “UMLet“.)

UMLetino screenshot

Like its ancestor tool UMLet, it aims at the fast creation of UML sketches. Its main idea is retained: let users edit elements with minimal hassle. To achieve this, the GUI took a somewhat different approach than other UML tools:

  • UMLet does away with palettes relying on pictograms or icons, because it is quite tricky to guess what element an icon represented. Instead, UMLet palettes contain typical instances of actual elements – no guessing required. The palette is a 1:1 scale model.
  • Because these palettes simply contain elements, users can, right away, modify the elements on the palette, immediately creating useful custom palettes or element templates.
  • Inserting an element from a palette is then naturally best thought of as duplicating an existing (palette) element. This might resonate with modelers – it’s, after all, a prototype design pattern. We find that pattern much more natural than some notion of “instancing a meta-element” – in fact, after decades, we’re still unable to find out how Microsoft Word handles its template documents.
  • This prototyping or duplicating is often best performed not on palette elements, but on elements on the main diagram panel – it’s just likely that a new class, e.g., might look like some other you just edited in the main diagram. A double-click (in other tools usually reserved for some change-attribute pop-up dialog) simply duplicates an element. It might not sound like much; after all, “select + Ctrl-C + Ctrl-V” would do the same. But in our view, inserting from the palette (possible via double click) and duplicating from a good similar starting element should unconsciously merge in the mindset of the designer.
  • The next issue we needed to address was the flow of creating diagrams – other tools, in our view, relied on way too many pop-up dialogs. They are distracting and require, over time, considerable mental focus from the user. A typical use case we found concerned the common task of setting and then reversing a relation’s direction – in other tools, this often could involve having to open a separate dialog, guessing which relation end is called “A”, selecting a relation end-type from a drop-down list box, closing the dialog, discovering that end “B” was meant instead, and repeating these steps once again. UMLet does away with dialogs and uses a small markup-language, e.g., =<- describes a relation whose left end is an arrow, while =-> is the reverse relation. Changing direction is thus a fast and mentally effortless keyboard activity, as opposed to the much more mentally challenging mouse-pointing/selection activity.
  • UMLet allows all UML elements to be inserted on the same diagram; it allows all relation types to connect to all other UML elements; it does not restrict the designer. That does not seem like much of a feature. In our view, though, it is. Some tools try to be helpful by enforcing UML standards on the user, and prohibiting certain diagram configurations. We find this to be problematic: designers, in our view, naturally have sudden, not fully formed ideas; they try to plot their ideas’ core down, e.g., “a relation exists between entities A and B” – and at this early stage, you might not even be interested in the specific type of relation (inheritance,..). If a tool forces you down the path of choosing, too early, a specific relation type, it distracts you and leads your mind away from where it would like to go – namely to think about entity C, and “whether it should relate to B”.
  • There is, of course, a reason many design tools choose to enforce strict rules: they hope to eventually be able to analyze and, better yet, transform those rule-conforming models into code, and eventually provide full round-trip engineering. This noble goal is impossible to achieve; thus, UMLet does not take into account its rather strict conformance requirements.With UMLetino, this now works in an install-free browser setup. We had to sacrifice some advanced modeling features (e.g., user-generated Java-scripted elements). Still, we think an ever-present online UML tool might come in handy for some quick UML drafts (e.g., on those uninviting, install-blocking workplaces).Some aspects differ from UMLet. The “save” command, e.g., uses a browsers local storage (a HTML5 feature) to save diagrams. Just make sure not to delete the browser cache! The “export” command lets you (via right-clicking on a link) store the diagram in our own uxf format (this can then be opened in UMLet as well), or as png graphic. The “import” command reads in uxf files.One word about the current version number, which is v13. It’s UMLetino’s first major release, but we’ll keep its version number in sync with UMLet’s basic feature set it is able to cover. Because it is our first major release, please be patient (and provide feedback) as we iron out various undiscovered glitches. Finally and quite unrelated, some UMLet lore. UMLetino completes a circle back to our tool’s roots in about 2001. UMLet started out as a UML tool alright, but with two novel features: 3D diagrams, and Java-applet+server architecture. The first feature, 3D UML diagrams (think: UML elements in 3D space, rotated around arbitrary axes), turned out to be rubbish. The second feature seemed more reasonable, but proved too much work as Java-applets and even a primitive server capability just needed too much maintenance and weird workarounds back then. With better browser support and Java-to-JavaScript frameworks, UMLet is now back online – albeit in 2D only.

We sure hope you like UMLetino — and please let us know your feedback at [email protected]!

The UMLet Team

Interested in modeling?

Interested in modeling?

Follow the latest news on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This