StarUML: The software design tool

Old 4 Comments on StarUML: The software design tool 912

In the real world, software is as much an art as it is programming.

Good software designs lead to a flexible, maintainable codebase an helps you to find and fix bugs much efficiently. This art requires some language. A typical software engineer uses Unified Modeling Language (UML) to describe the design of the software, which may consist of subsystems, packages, modules, units and so on.

UML consists of a plethora of diagrams to describe every aspect of the system to be developed, much like a blueprint of a building describes every aspect of the building. A good software designer relies on good software tools to do the job quickly.

Drawing UML diagrams in some word processor or slide is very tedious. That is where UML tools come in handy. Some time ago I was hunting for a good UML tool over many forums and blogposts. After a lot of research, I found that many prefer StarUML. But the screenshots of StarUML were not very convincing. It seemed like an old school GUI which used to come with earlier versions of Microsoft Windows operating systems.

Then I visited the website of StarUML to know more. That is when things changed. Their website was pretty modern as compared to their software screenshots which I had seen. Then I went to the download page and downloaded the latest beta version.

After installing and running it for the first time, I realized that StarUML was a software having a modern look. The screenshots which I had seen were of an earlier version. After playing around with it for an hour or so, I found StarUML pretty good for a start. Even though in its beta, it was able to properly do its job and I was able to sketch up a pretty decent class diagram in an hour.

The diagram elements are in the left pane from which you put elements over on the drawing area. The diagram tree structure and element properties are in the right pane from which you can see the structure of the system being designed and modify selected elements (such as making members static, specifying multiplicity relations, etc.)

Software design tools are something which is based on personal preference. However, I recommend StarUML for its modern UI and simple design. But no matter which tool you use, the end result is the same. A beautiful UML diagram which describes your software system. An art.

Do comment below if you discover an even better UML tool and help fellow developers.


Vivek Prajapati

A moderate level programmer interested in administration and Arduino. Familiar with C++, Java, PHP, C# with my favourite being C++. Just finished my bachelor's degree in IT.

Related Articles


  1. Xaelis September 8, 2014 at 11:31 pm

    Hi Vivek,

    I totally agree with you, software design is very important. However, software developers usually work as team and it is very difficult to collaborate with the old fashion UML tools.
    This is why we have done GenMyModel ( It is the first online real UML tool (real as it is not a drawing tool).
    Please, feel free to give use feedback.

  2. Olumide Babatunde September 15, 2014 at 7:12 am

    Hello all,am sorry this is not going to actually contribute to this post but i need help so i have to cry for help.I am currently supposed to be working on a biometric database and a biometric data caputure software that compares the data capured to the ones in the database yadi yadi yah!!!!!!!!!
    Am sure u all got what i tried to explain,now my problem i dont know the language to use in solving this task and i dont know the language to create my database with.I have never worked with patterns,Please i need help with study material and suggestions on how to go about it best.Please u can contact me via Thanks in anticipation.

    • Vivek Prajapati September 15, 2014 at 10:45 pm

      From what I have understood, figure out what language the biometric data capture API is built from. If it offers a Java interface for manipulation, use Java. If it offers C++ interface, use C++. Refer to the data capture software documentation to find out.
      As far as the database goes, pretty much every database system has required drivers for different languages to connect with. For example, MySQL has Java driver packages which you simply download and import into your Java project and connect with the database by providing the server hostname/IP and database name to connect to.
      Coming to patterns, don’t worry too much about it now. Just draw out a simple conceptual diagram which gives an idea about how your various components will connect. Your first priority should be to build a somewhat working version of the software. Later on, you can refactor it to fit proper design patterns. Browse through some software design books and get a hold of it before you actually start refactoring.

  3. Boraq October 19, 2014 at 4:23 am

    Hey everybody!! definitely agree with what you’ve been talking, to deliver more clue about the software analysis and design, there’s other tools Rational Rose tools thats might help for creating diagrams and pseudocode.

Leave a comment

Back to Top