Lessons Learned from the Development of the easyUML NetBeans Plugin at the University of Belgrade
Join the DZone community and get the full member experience.Join For 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:
Complete sources are available from SVN repository on java.net
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:
There are several benefits from collaboration between open source projects and universities:
Students gain experience in working on real world projects, with tools, frameworks, and get to know development process
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
Open source projects get contributions and promotion, and community growth in long term
Companies will get workers with higher level of experience after graduation, which will significantly shorten initial training and learning curve
However, there were several challenges both for students and teachers with getting students involved in open source development:
Students had to learn new development tools and get introduced to development environment and team work
Students had to learn advanced software architectures, concepts and libraries, in this case NetBeans Platform and Visual Library
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).
Sometimes it turns out that thing students have to learn are too complex for developers without experience
Tasks students have to be very specific, and clearly defined. They need good understanding of what they are expected to do.
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).
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.
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.
Opinions expressed by DZone contributors are their own.
How To Scan and Validate Image Uploads in Java
Building a Robust Data Engineering Pipeline in the Streaming Media Industry: An Insider’s Perspective
Integration Testing Tutorial: A Comprehensive Guide With Examples And Best Practices
Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL