UML diagrams generation from CWL

Dear CWL community,
at Terradue, an Earth Science company, we strongly rely on CWL as part of the foundation of our Earth Observation data processing platform and, aside the well known and estabilished cwltool, we had the need to develop some side-tools to assist our staff and partners during the development lifecycle.

We also identified the Workflows design as a strategic part of our daily job to make the CWL adoption clear to technical people who are not familiar with CWL, but still able to read UML diagrams and so appreciate its adoption.So, we started developing a set of APIs and CLI command that is able to translate CWL documents as inputs to to a set of PlantUML diagrams; after an initial internal “incubation” phase, we decided to Open Source’d it and you can find it on cwl2puml@GitHub.

Why PlantUML? Being a widely adopted modelling language/tool/service/…, Open Source, community driven and released under an Open Source license, it makes us the benefit to get advantage from a vast set of diagrams useful to describe a CWL.

We currently support:

  • an activity diagram to illustrate the overall Workflow behavior;
  • a component diagram, to show Workflow actors connections;
  • a class diagram, to show Workflow actors specifications;
  • a sequence diagram, to illustrate how the orchestration works;
  • a state diagram, to show the steps and data flow.

You can find interesting representations on our initial sample page where we represent a CWL which adopted conditionals on inputs/outputs, or application-package-patterns, where we wanted to graphically represent Application package data flow patterns in the field of the Earth Observation.

Of course, this tool still is at an early stage and maturity level is guaranteed for the tested cases, but we would be very pleased to hear suggestions, opinions, …, any feedback would be very appreciated.Looking forward to hear from you soon!

Kindly,
-Simone Tripodi

6 Likes