Generate UML Class Diagrams Automatically using ABAP2yUML
*** This is a blog post republish after being deleted on September 9th, 2013 by force myself as it involves open source and the new SAP developer license was not released at that time. As it seems that I won’t get capital punishment for having ABAP code on GitHub now I decided to republish it. ***
So you might have heard that SAP Netweaver early releases enable developers to generate UML class diagrams automatically based on ABAP code. There is definitely a need to have UML documentation as other SCN contributors like Chris Paine who wrote “Auto generating UML diagrams from ABAP code” recently.
Although I love the idea, I believe we don’t have to wait until these releases be available for our employers. Moreover, the standard tool for viewing Class Diagrams has lots of technical pre requisites (for instance, one of them is a specific version of Java installed locally) which unable this feature to be used on many situations. I would love to give a more detailed opinion about this standard tool if I hadn’t given up of trying to set it up.
“… We want developers to start competing with SAP where it comes to the applications that they build because that is very heathy for the ecosystem…. Let the best guys win.”
yUML is a service which enable other tools to generate simple but very clean UML diagrams: you can see a comprehensive list of integrators using the URL below:
(I will love sharing stuff that I have coded recently into my employers’ Confluence pages)
One of the cool things about yUML is that you can use its DSL to generate diagrams for you online and for free. Moreover, the final diagram can be easily exported to JPEG, PNG, PDF and JSON formats. It might be a great use case for ZJSON project.
Later, I remembered that there were a couple of classes inside ABAPDoc2 project that were able to read ABAP Workbench objects like global classes to finally generate some Javadoc-like html files. So I realized that I could create two projects that might be helpful to generate yUML diagrams for ABAP code.
The first is called “ABAP Workbench Objects Framework“. By its name you might guess what is all about and you are right. Its just a couple of classes abstracting the idea of workbench objects like classes and interfaces with some interesting features related with them. If you will, it encapsulates data provided by the standard function group SEOK. I’m pretty much sure that there are other similar projects but I like the idea of having an open source project relying on another one.
So, the second project I created is called “ABAP2yUML“. If you wanna try to guess again I bet you scored twice. This project aims to convert ABAP objects code and transform it into yUML diagrams using its DSL. On the first moment, class diagrams are the MVP of this GitHub repository.
Being honest, I have worked just a few hours a considerable amount of hours (since this post was deleted) on both projects but as my recent background tells me to “release early and improve often based on customers feedback” (as some guys right here might be design thinking) I decided to write this blog announcing both projects and inviting the community to collaborate and give feedback.
So.. who would like a tool to generate not just class diagrams but also use cases and activity diagrams still in ECC 6 and still in 20134? Please comment if you do.