The Product

UML is a widely used programming language for visualizing the behaviour and structure of a certain system or process. UML Component Diagrams are used to visualize the structure of components of a system and their relationships. It would be great if there would be some sort of tool where a user can model and save such a diagram. It would be even better if we can generate prototypes based on this model. This is exactly what our product wants to achieve. Our application enables users to make their model of UML components. Users first need to create a model and system. After that, they can easily add and delete components, even within other components. They can add and delete a provided interface and required interface and connect it to respectively the source or target port of a component. They can also switch these ports if they want to. Now they can drag a component with a provided interface to a component with a required interface. They can also add and delete relations or dependencies. The names and sizes of components can be edited at any time, and the names of edges can be changed as well. Every change in the front end is directly sent to the back end. This enables the user to continue their work where they left off. They only need to select the same model and system, they created earlier. In the end, the user can also save their model as a PNG. Thus, using our application users can easily model and save a UML Component Diagram of their system. The final product should use our application to automatically generate several prototypes of the implementation of the created model.

The Customer

We had weekly meetings (with some exceptions) with our customer, Guus Ramackers. Most of the meetings were online in Teams. During these meetings, we discussed our progress, priorities and problems regarding the project. Guus is an assistant professor at Leiden University and a software architecture & development consultant. He is a very busy man, so getting in touch with him can be difficult sometimes. We maintained contact with him via email or Teams. The meetings were always valuable to us as he gave us the directions and tools to continue the project. Altogether, we have a good relationship with the client.

  • “Use libraries, save time”
  • “Underpromise and overdeliver”
  • “This is perfect bullshit”
The Team

Our team consists of three Computer Science students and three Data Science & AI students which makes it a diverse team. We tried to use everyone’s interests and strengths as much as possible. One person focused on testing and the rest helped to develop the product for the client. We had one lead architect telling everyone what to do. Furthermore, we had a Scrum Master making sure Scrum is being used correctly and we had a product owner maintaining contact with the client. We also had someone who took notes during the meetings in order to look things up later. In the end, it worked out quite well, we are happy with the work we delivered together.

The Technologies