Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Lessons Learned from the Development of the easyUML NetBeans Plugin at the University of Belgrade

DZone's Guide to

Lessons Learned from the Development of the easyUML NetBeans Plugin at the University of Belgrade

· Java Zone
Free Resource

Bitbucket is for the code that takes us to Mars, decodes the human genome, or drives your next car. What will your code do? Get started with Bitbucket today, it's free.

The Open Source Software Development Center at the University of Belgrade has released a new version of a UML plugin for NetBeans, called "easyUML". The main motivation for development of this plugin was to create an easy to use UML tool primarily for teaching software design, but which is also a handy tool for developers in general. In practice, that means the focus is on the most commonly used features, together with a nice and friendly UI.

At the moment, easyUML supports class diagrams and has the following features:

  • drawing class diagrams

  • generation of Java code from class diagrams

  • reverse engineering from Java code to class diagrams

Picture below shows the main application window with all its components common to IDE: diagram view, pallete, properties view, explorer view and project view.

The easyUML plugin is available for instal;ation directly from the NetBeans IDE Update Center, or as a download from NetBeans Plugin portal:

http://plugins.netbeans.org/plugin/55435/easyuml.

Complete sources are available from SVN repository on java.net

https://java.net/projects/nb-uml-plugin/sources/nb-umlplugin/show/branches

The developers who participated in this projects were software engineering students from University of Belgrade. This is very good model for collaboration between universities and open source projects which can help overcome the gap between academic education on one side, and requirements in software industry on the other side.

A quick demo and installation instructions are available in this YouTube video:

https://www.youtube.com/watch?v=QME_S7gPnVI

Benefits

There are several benefits from collaboration between open source projects and universities:

  1. Students gain experience in working on real world projects, with tools, frameworks, and get to know development process

  2. Universities improve quality of their study programmes and prepare students for their jobs in software industry after graduatio, since they get some hands on experience

  3. Open source projects get contributions and promotion, and community growth in long term

  4. Companies will get workers with higher level of experience after graduation, which will significantly shorten initial training and learning curve

Challanges

However, there were several challenges both for students and teachers with getting students involved in open source development:

  1. Students had to learn new development tools and get introduced to development environment and team work

  2. Students had to learn advanced software architectures, concepts and libraries, in this case NetBeans Platform and Visual Library

  3. Students had to learn specific details about project and tasks they're working on. Sometimes it can be hard for them to understand code written by others (especially code of poor quality).

  4. Sometimes it turns out that thing students have to learn are too complex for developers without experience

  5. Tasks students have to be very specific, and clearly defined. They need good understanding of what they are expected to do.

  6. Since students working on open source projects require more mentoring then classic teaching, it is only possible to work with small number of students (up to 5).

  7. Maintaining code and design quality in long run, is a big challenge since students lack experience. It will require some refactoring, sometimes significant, but thats exactly the moment when students will learn good design practice, and in context of non trivial problem begin to understand why are these principles important.

  8. Documentation is important part in order to to make it possible for next generation of student developers to understand existing code and continue development

Since many universities have internships as a part of their educational programmes, they are great opportunity for this kind of collaboration.

For example, the University in Switzerland, EPFL has 6 month long internship for their students, and one of their students Boris Perovic participated in development of UML Plugin during his internship in serbian IT company Net Link Solutions. During his internship Boris gave significant contribution to Net Beans UML Plugin, polished many details, added new features and continued to maintain plugin even after his internship. He learned a lot about NetBeans platform and Visual Library, and also contributed to Neuroph Studio, a neural network development environment based on NetBeans Platform. Some of other contributors were: Uros Stojkic, Jelena Djordjevic, Vedrana Gajic, Marjan Hrzic, Ilija Ivanovic, Petrovic Stefan and Milan Djoric.

Our plan after this initial release, is to get feedback from the community, fix all issues and get ideas how to improve usability and have first class UML diagram tool for teaching Java integrated within IDE. It should be noted that the goal of this project is not to compete with existing NetBeans UML Plugin (which has far more features and supported diagrams), rather target different type of users in educational domain.

The development of this plugin will continue with next generations of students, in Open Source Software Development Center at Faculty of Organisational Sciences, University of Belgrade in collaboration with the NetBeans project.

Bitbucket is the Git solution for professional teams who code with a purpose, not just as a hobby. Get started today, it's free.

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}