The new software exploration tool Moose2Model is currently under development in Pharo Smalltalk and based on the Moose Analysis platform. See also the blog Legacy Code – Storing the mental model in diagrams.
An extractor (SAP2Moose) is available to extract model data to file. Moose can then be used to analyse. Extractors to Moose are also available for other languages, there is therefore no restriction to ABAP or SAP.
The SAP2Moose extractor is not restricted to ABAP Objects. It extracts also functions, reports, tables, WebDynpro ABAP and to some extend SAP BW coding. This fits to a typical customer IT, where a lot of different logic and data bearing entities are used.
This allowed me to draw fascinating diagrams of SAP applications and explore features that I would not have seen otherwise. My impression is, that this is a good way to explore new coding and get an overview over the structure. The most valuable advantage compared to the UML class diagram is that relations between methods and attributes are shown. This is more detailed than an UML class diagram. This helps to understand legacy application where normally too much details are missed if dependencies are restricted to classes.
But my current job is not to analyse applications on a high level. My duty is to analyze details of complex applications and add changes to them. And to have in mind all side effects that could cause errors. And to be able to really use this tool, I needed a way to make diagrams that fit to the way I (and many other developers) work. But for everyday work I missed features:
Moose was originally developed in other languages and was ported 2008 to Pharo Smalltalk, because this is an environment that allows for easy adapting and developing of applications. Pharo runs in a virtual machine and is written in Smalltalk itself. All coding can be changed and analyzed, it is therefore easy to adapt Moose if needed. This can be done in the virtual machine without need for compiling or in most cases even restarting an application. This gives a developer who works full time in SAP projects a chance to develop a software exploration tool that provides the features needed.
The new application is named Moose2Model. It is currently hosted on github as Moose2Model, the internal name space is RWDiagram. It is not restricted to SAP ABAP or to the mse files that are provided by SAP2Moose. Smalltalk coding can be analyzed also, I do this to while developing the tool. Java, C and many other languages (as soon as an extractor is available) should work also (But is not tested currently).
It works fine for me and I use it for existing and new applications. It generates customized diagrams like this: .
I checked the available literature on Software Exploration Tools to get a hint on how to improve it. See for instance Margaret-Anne Storey “Designing a Software Exploration Tool Using a Cognitive Framework” (DOI: 10.1007/978-1-4615-0457-3_5) and Seonah Lee and Sungwon Kang “What situational information would help developers when using a graphical code recommender?” (DOI: 10.1016/j.jss.2016.02.050) pdf
The challenge is to develop an application that fits to the needs of developers and has a chance to be adopted for everyday work. It should be as easy as possible to implement and use. So that the benefits outweigh the additional complexity of the tool.
I plan to do the needed changes to the current Software Evaluation Tool to achieve this.
Please give me feedback, either by comments to this blog or by opening issues in github. What do you need?
I will update this blog during implementation.