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.
“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.