Programming Tools: UML Tools
A communication gap exists in most organizations of any size. This even applies to small groups--think job turnover. One of the most common ways of passing on knowledge is through diagrams. In our field, these diagrams often take the form of UML drawings.
None of the UML shapes are complex to create, but automating their creation and rearrangement saves time and also adds consistency. Most of us want something that draws what we want quickly and easily. All of the UML tools I review here can do this to slightly different degrees. However, only one tool is open source. The differences are instructive.
Reviewed here are the DIA drawing program, which is open source, Poseidon by Gentleware and No Magic's MagicDraw. The latter two products have binary-only Community Editions that are available for free for non-commercial purposes. All of them run under Linux and Windows.
The simple tests that I applied below are taken from Scott Ambler's excellent little book The Elements of UML Style.
DIA is a drawing package based on the GNOME Toolkit, gtk+, that tries to emulate the functionality of Microsoft's VISIO program. For simple-minded applications, such as putting predefined visual objects on a sheet, it works fine. However, shapes and pallets have little semantic knowledge about the shapes they contain.
The first figure example in Ambler's book demonstrates how crossing lines have a little bump in one set of lines to indicate that the lines are crossing and not merging. None of the packages showed this distinction this simply. For DIA, I ended up composing this type of line out of an arc and two line segments. It was doable, though, and I then was able to put this crossover connector shape into the UML palette.
Creating most of the other diagram examples in DIA was laborious. In a number of cases, I needed to compose the standard shapes I wanted from more basic shapes. For example, I needed to draw an Associated Class using a regular class object and an association line.
DIA's do-it-yourself figure creation ability can be both a strength and a weakness. For instance, the other two packages were so highly structured that I did not have this flexibility to create what I needed. Figure 1 shows an overview of the DIA GUI.
Nits with this version of DIA include:
The main File menu has New and Open options but no Save, SaveAs or Close options.
Once a group of objects is created, it cannot be resized. Also, the properties of an object do not include its size, making resizing an object this way impossible.
In the context menu for a selected object, the first option, Modify, does not seem to do anything.
Documentation that comes with the package does not explain how to create pallets or template objects. However, this information is available on the Web.
DIA crashed a number of times, once while I was saving a diagram.
Poseidon has a nice GUI, which makes using the product a pleasant experience. The company also uses a business model for Poseidon that I like: a non-commercial, single-user Community Edition and Commercial Editions for business purposes. Unlike DIA, however, Poseidon is not open source.
Poseidon is a sophisticated UML drawing program. As shown in Figure 2, it is geared to UML creation. I was not able to create, for example, the crossover connector that I did in DIA. Nor could I figure out how to add new symbols to the pallete. However, I was able to create more sophisticated diagrams more quickly using Poseidon. See Figure 2 for an idea of what this product can do.
Nits with this version of Poseidon include:
The Community Edition does not support copying a model element completely with all user-provided data, only their visual representation. This is according to the included documentation. However, I could not get Paste to work in any form.
I could not convert a diagonal association into a series of horizontal and vertical line segments.
There is no way of applying attributes such as bold, italics and the like to text elements. However, color and size can be used.
Adding a visible legend to each diagram is a tedious process.
When trying to create a design diagram, there is no way to suppress visibility or an operation's parameter lists.
There is no way of specifying a return type determined by implementation.
In a class diagram, there seemed to be no way of specifying a multiplicity of 0..*
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
|CentOS 6.8 Released||May 27, 2016|
|Secure Desktops with Qubes: Introduction||May 27, 2016|
|Chris Birchall's Re-Engineering Legacy Software (Manning Publications)||May 26, 2016|
|ServersCheck's Thermal Imaging Camera Sensor||May 25, 2016|
|Petros Koutoupis' RapidDisk||May 24, 2016|
|The Italian Army Switches to LibreOffice||May 23, 2016|
- Secure Desktops with Qubes: Introduction
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- CentOS 6.8 Released
- The Italian Army Switches to LibreOffice
- Linux Mint 18
- ServersCheck's Thermal Imaging Camera Sensor
- Chris Birchall's Re-Engineering Legacy Software (Manning Publications)
- Petros Koutoupis' RapidDisk
- Oracle vs. Google: Round 2
- The FBI and the Mozilla Foundation Lock Horns over Known Security Hole
Until recently, IBM’s Power Platform was looked upon as being the system that hosted IBM’s flavor of UNIX and proprietary operating system called IBM i. These servers often are found in medium-size businesses running ERP, CRM and financials for on-premise customers. By enabling the Power platform to run the Linux OS, IBM now has positioned Power to be the platform of choice for those already running Linux that are facing scalability issues, especially customers looking at analytics, big data or cloud computing.
￼Running Linux on IBM’s Power hardware offers some obvious benefits, including improved processing speed and memory bandwidth, inherent security, and simpler deployment and management. But if you look beyond the impressive architecture, you’ll also find an open ecosystem that has given rise to a strong, innovative community, as well as an inventory of system and network management applications that really help leverage the benefits offered by running Linux on Power.Get the Guide