DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • 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

Trending

  • 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
  1. DZone
  2. Popular
  3. Open Source
  4. Lessons Learned from the Development of the easyUML NetBeans Plugin at the University of Belgrade

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

Zoran Sevarac user avatar by
Zoran Sevarac
·
Apr. 28, 15 · Interview
Like (0)
Save
Tweet
Share
7.15K Views

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:

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.

NetBeans Open source Software development

Opinions expressed by DZone contributors are their own.

Trending

  • 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

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: