Wednesday, February 20, 2008
Ok, this time I got a guest article from Martin Auer who is an affiliate of my institute; he and his team developed a small UML tool called UMLet. This tool can be of great use in many use-cases, and Martin gives us an overview here:
Goals and Design Rationale
UMLet is an open source UML tool developed by affiliates of our institute. This post outlines the tool's goals and design.
UML has become the standard modeling language in software design. It is often used to create early, exploratory sketches of a system, in industrial and academic environments. Yet this is difficult with many commercial tools: they are bloated with seldom-used features; they require tedious procedures and pop-up windows to change even small parts of a model; and the restrict the user by conforming to the official language specification.
UMLet main goal is to allow people to create UML diagrams like they would on paper - fast, intuitive and free of restrictions. It uses three main approaches to achieve this. First, UML elements are not represented by tiny obscure icons, but by full-fledged template diagrams. That way, even first time users can readily create diagrams in a template-based way. Even experts benefit by being reminded of the syntax of some of the more arcane element types.
Second, the elements are modified not with extensive dialogs, but with a text-based approach and a simple markup language. This, e.g., greatly speeds up the creation of attributes and methods for classes.UMLet also provides fast, text-based ways to create sequence and activity diagrams - avoiding the heavy mouse lifting required with other tools.
Finally, UMLet provides an integrated Java engine to create new graphical element types on the fly, without restarting the tool. This provides maximum flexibility in light of an ever-changing UML standard.
In one of my next postings I would like to talk a little bit more about UML tools, as I did some "research" on that topic recently. As Martin points it out, often there is really not the need for a bloated and expensive "big" UML tool. E.g. when you need to make some UML sketches for a lecture or a documentation. In these cases I myself ended up using UMLet, which has of course limitations, but turns out to be cool for such scenarios.