How to create effective software faster, simpler, and at lower cost

Posted on Wednesday, November 19, 2014

Timothy Lethbridge

We often think that creating powerful technologies require incredible amount of time, money, and very complex tools. But there is a better way: Umple.

Consider a revolutionary technology that enables a two-way programming! Consider an innovative idea that can extend programming languages, such as Java and C++ to a very high level of abstraction! And best of all consider a completely free open source technology that can be used on the web to create powerful software! Imagine all of this, and you will get Umple, a very simple and easy to use modeling system that has taken programming to a whole new level.

 uOttawa Professor Timothy Lethbridge, the leader of the Umple team, explains that this technology is unique and allows you to Defy the conventional.

 “Umple defies the conventions by blending several ideas together in an innovative way:

   - The abstractions in diagrams can be added directly in a textual way to C++ and Java;

   - The programmer can edit the diagram and see their code updated or, the programmer can edit their code and see the diagram edited”.

But, what is in reality this innovative technology?

Launched in 2007, Umple has been created for both academic and industrial purposes. This technology is commonly used in undergraduate teaching in several universities, and has also been used in courses offered to both graduate and high school students.  Umple is being employed in some small companies since it allows creating software faster and avoids risks associated with new programming languages, as it simply serves as a layer on top of languages the companies already use.

To better understand the contribution of Umple in improving the making of software, one has to picture how people usually program computers.

“The convention for software engineers and programmers is to write the program instructions as text in a language like Java or C++. Some software engineers go a little beyond the convention and draw diagrams (called models) to represent code more abstractly. Such a diagram helps programmers understand a design and make it easier to find problems. But for the most part such diagrams are not kept up to date and are often thrown away. This text is called 'code' ”, clarifies Professor Lethbridge.

Lethbridge adds that few software engineers try to go further by using tools that can write code from diagrams, or draw diagrams from code although these tools are often hard to use or expensive. This is where the Umple technology comes in. “Overall Umple makes creating software much faster, and also reduces errors”, says Lethbridge.

Advantages offered by Umple go beyond uOttawa community. As an open source technology, Umple is of benefit to students by allowing them to learn how to create models that really work.  Students from top universities in Canada (U of Waterloo, U of Toronto, U of Alberta, etc.), USA (MIT) and Europe have been building Umple using Umple itself, through the Undergraduate Capstone Open Source Projects consortium. At uOttawa many PhD students are working in the CRuiSE laboratory to improve Umple as part of their research.


“The convention was that students would learn to draw diagrams of programs, but they wouldn't actually run, so the student wouldn't get feedback.

Umple defies this convention and helps students get feedback on their diagrams because the diagrams are just a view of a program”.

4 things you need to know about Umple

  1. Umple is an open source technology, free for anybody to download and use. It uses the standard MIT license.
  2. Like Firefox, Linux and some Apple technologies, Umple fosters participatory web communities and the development of profitable software faster and better.
  3. Umple allows online programming with any web browser.
  4. Umple has received funding through industrial collaborations with companies such as General Motors, IBM and Ericsson.
Back to top