In this project, we constructed an editor for creating UML Activity Diagrams, in order to help
less technically-inclined people with visualizing process models and data flows within applications.
The user can utilize
this online editor to connect a client visualizing his application with a processing server that provides
real-time feedback for the client. This library is made to be as modular as possible, making it easy to
implement custom types of nodes of connections. This in turn allows for easy implementations of different
types of diagrams. Developers can easily upgrade
the library to include custom behaviour for nodes. We also support recursive diagrams, which means that a
single node can contain a new diagram.
This editor was designed to be the central part of a greater application, that eventually should be able to convert between UML Activity Diagrams and the source code of a program in real-time. This will allow developers to visualize and edit the greater structure in projects more easily, cutting down development time. The following projects that depend on the editor are currently in development: a processor for natural language into a UML Activity Diagram, implementing UML Class Diagrams, and various others.
Our project was created for multiple customers. This included multiple master and PHD students, supervised by Dr. Ramackers, a researcher and lecturer at the Leiden Institute of Advanced Computer Science. During the project, Dr. Ramackers introduced us to our other customers, each of which would start using the UML Activity Designer upon its completion. The client set clear goals and enthused us to work on the project. He encouraged us to set clear boundaries and work in an orderly fashion. This resulted in a healthy workflow, and in a clear and orderly division of tasks between team members.
The team consists of six computer science students, two of whom also study mathematics. Only one of us really had experience in web development and thus he took charg of the development activities. While we didn't have many web-focused team members, most of us caught up pretty quickly. During our bi-weekly sprints, we assigned team members to tasks according to their skill set, leading to efficient development. By using GitHub, we were able to keep up to date with the work of our team members, and could review and improve it continuously to ensure the quality of the code base. Overall it was a very pleasant working experience.